1.基本知識點:
1) 操作系統是控制和管理計算機軟硬件資源,以盡量合理有效的方法組織多個用戶共享多種資源的程序集合。
2) 操作系統的基本功能:(1)處理機管理。主要功能包括進程控制、進程調度、進程同步和進程通信。(2)存儲器管理。主要功能包括內存分配、地址映射、內存保護和內存擴充。(3)設備管,也叫I/O管理。主要功能包括緩沖區管理、設備分配、設備驅動和設備的無關性處理。(4)文件管理。主要功能包括文件存儲空間的管理、文件操作的一般管理、目錄管理、文件的讀寫管理和存取控制。(5)用戶界面管理。操作系統的用戶界面就是操作系統與用戶的接口,包括控制接口和程序接口。
3) 現代操作系統的基本特征:并發性、共享性、虛擬性、異步性和不確定性。
4) 所謂中斷是指系統發生某一事件后,CPU暫停正在執行的程序去執行處理該事件的程序過程,處理中斷事件的程序稱為中斷處理程序,產生中斷信號的那個部件稱為中斷源。中斷處理具體過程:保存現場;分析原因,轉中斷處理程序;恢復現場。
5) 進程是一個具有獨立功能的程序關于數據集合的一次可以并發執行的運行活動,其基本特征:動態特征、并發特征、獨立性、相互制約性。進程的構成:程序、數據和進程控制塊。進程有三種基本的調度狀態:執行狀態、就緒狀態和等待狀態。
6) 進程的引入大大地提高了資源的利用率和系統的吞吐量,而引入線程的目的是為了減少程序并發所付出的系統開銷。進程是資源分配的單位,而線程是系統調度的單位。
7) 所謂死鎖是多個進程間的一種僵持狀態。進程死鎖的原因:資源競爭及進程推進順序非法。死鎖的4個必要條件:互斥、占有等待、不可剝奪、環路。死鎖的處理:鴕鳥策略、預防策略、避免策略、檢測與解除死鎖。
8) 臨界資源是一次只允許一個進程使用的資源。臨界區是在進程中操作臨界資源的程序段。
2.進程和線程的區別?
答:線程是指進程內的一個執行單元,也是進程內的可調度實體.與進程的區別:(1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位。(2)并發性:不僅進程之間可以并發執行,同一個進程的多個線程之間也可并發執行。(3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬于進程的資源. (4)系統開銷:在創建或撤消進程時,由于系統都要為之分配和回收資源,導致系統的開銷明顯大于創建或撤消線程時的開銷。
3.網絡編程中設計并發服務器,使用多進程 與 多線程 ,請問有什么區別?
解析:(1)進程:子進程是父進程的復制品。子進程獲得父進程數據空間、堆和棧的復制品
(2)線程:相對與進程而言,線程是一個更加接近與執行體的概念,它可以與同進程的其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列。
兩者都可以提高程序的并發度,提高程序運行效率和響應時間。線程和進程在使用上各有優缺點:線程執行開銷小,但不利于資源管理和保護;而進程正相反。同時,線程適合于在SMP機器上運行,而進程則可以跨機器遷移。
答:用多進程時每個進程有自己的地址空間,線程則共享地址空間。所有其他區別都是由此而來的:(1)速度:線程產生的速度快,線程間的通信快,切換快等,因為它們在同一個地址空間內。(2)資源利用率:線程的資源利用率比較好也是因為它們在同一個地址空間內。(3)同步問題:線程使用公共變量/內存時需要使用同步機制,還是因為它們在同一個地址空間內。
4. 操作系統中常見的進程調度策略有哪幾種?
答:FCFS(先來先服務),優先級,時間片輪轉,多隊列、多級反饋隊列。