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