面試題(3)

軟件工程基礎

  • 什麼是軟件工程:採用工程的概念、原理、技術和方法來開發和維護軟件
    • 軟件是一種邏輯實體;
    • 軟件開發和運行常常受到計算機系統的限制,對計算機系統有着不同程度的依賴性
    • 軟件成本相當昂貴。需要投入大量的、複雜的、高強度的腦力勞動
    • 相當多的軟件工作設計到社會因素。許多軟件的開發和運行涉及機構、體制及管理方式
  • 軟件開發原則:抽象、信息隱藏、模塊化、局部化、一致性、完整性、可驗證性
  • 軟件危機:軟件生產方式無法滿足迅速增長的計算機軟件需求,不能有效地開發大型、複雜的軟件,從而導致軟件開發與維護過程中出現一系列嚴重問題的現象
  • 軟件的4大開發模型:
    • 瀑布模型:各項活動嚴格按照線性方式進行
    • 原型模型:快速建立起來的,它所能完成的功能往往是最終產品能完成功能的一個子集
    • 螺旋模型:將瀑布模型和原型模型結合起來,加入風險分析;(風險驅動)
    • 增量模型:融合了瀑布模型的基本成分和原型的迭代特徵,採用隨着時間的進展而交錯的線性序列

軟件測試:

  • 黑盒測試:根據軟件產品的功能設計規格,對軟件進行測試,以證實每個實現了的功能是否符合要求。完全不考慮程序內部邏輯結構和內部特性
  • 白盒測試:根據軟件產品的內部工作過程,對軟件進行測試,以證實每種內部操作、所有內部流程是否符合設計規則要求

什麼是操作系統:用於管理計算機系統的硬件資源、軟件資源及數據資源,控制程序運行,提供操作接口,爲其他應用軟件提供支持等的軟件系統

進程是由進程控制塊、程序段、數據段3部分組成

  • 進程和線程的區別:
    • 一個程序至少有一個進程,一個進程至少有一個線程
    • 進程在執行過程中擁有獨立的內存單元(地址空間),而多個線程共享進程所擁有的內存
    • 進程可以獨立運行,但線程不能獨立執行,必須依存在進程中,由使用該進程的應用程序提供多個線程執行控制
  • 如何實現多線程的同步:可以使用臨界區、互斥量和信號量等方式來實現
    • 臨界區:只能用於對同一進程內的線程進行同步;在某一時間內只允許一個線程執行某個給定代碼段
    • 互斥量(線程鎖):多線程中的同步訪問的方法,它允許程序鎖住某個對象,每次只允許一個線程訪問它。在訪問這個對象之前鎖住一個互斥量,訪問完成之後解鎖
    • 信號量:是特殊的線程鎖,允許多個線程同時訪問臨界資源
  • Linux進程間的通信:
    • 管道
    • 信號:用於通知接收進程有某種事件發生,除了用於進程間通信外,進程還可以發送信號給進程本身
    • 消息隊列:消息隊列是消息的鏈接表;有足夠權限的進程可以向隊列中添加消息,被賦予讀權限的進程則可以讀取隊列中的消息
    • 共享內存:多個進程可以訪問同一塊內存空間,是最快的IPC
    • 信號量:作爲進程間以及同一進程不同線程之間的同步手段
    • 套接字:更爲一般地進程間通信機制,可用於不同機器之間的進程間通信

內存與作業調度

作業調度:在多個作業運行時,系統如何處理作業的運行順序
內存管理:主要包括向用戶程序提供內存邏輯地址,並完成邏輯地址到物理地址的轉換,完成用戶程序的載入工作,採用各種技術提高內存使用率,保護內存及其安全等功能
- 內存管理方式:無管理方式(不劃分系統區和用戶區);單一分區;固定分區;可變分區;頁模式(將內存固定劃分爲等長的頁面,程序也劃分爲等長的頁;程序運行時,將程序的各頁裝入到內存的各空閒頁)
- 作業狀態:進入狀態,後備狀態,運行狀態和完成狀態

計算機網絡結構

  • OSI七層模型:應用層,表示層,會話層,傳輸層,網絡層,數據鏈路層,物理層
  • TCP/IP參考模型:應用層,傳輸層,網際互聯層,網絡接入層
  • TCP協議是一個面向連接的、可靠的協議。它將一臺主機發出的字節流無差錯地發往互聯網上的其他主機
  • UDP是一個不可靠、無連接協議,主要適用於不需要對報文進行排序和流量控制的場合
  • 什麼是TCP/IP協議:是internet最基本的協議,定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。通常說的TCP/IP是Internet協議族
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章