程序員操作系統筆試題
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)線程:相對與進程而言,線程是一個更加接近與執行體的.概念,它可以與同進程的其他線程共享數據,但擁有自己的?臻g,擁有獨立的執行序列。
兩者都可以提高程序的并發度,提高程序運行效率和響應時間。線程和進程在使用上各有優缺點:線程執行開銷小,但不利于資源管理和保護;而進程正相反。同時,線程適合于在SMP機器上運行,而進程則可以跨機器遷移。
答:用多進程時每個進程有自己的地址空間,線程則共享地址空間。所有其他區別都是由此而來的:(1)速度:線程產生的速度快,線程間的通信快,切換快等,因為它們在同一個地址空間內。(2)資源利用率:線程的資源利用率比較好也是因為它們在同一個地址空間內。(3)同步問題:線程使用公共變量/內存時需要使用同步機制,還是因為它們在同一個地址空間內。
4. 操作系統中常見的進程調度策略有哪幾種?
答:FCFS(先來先服務),優先級,時間片輪轉,多隊列、多級反饋隊列。
5.進程間的通信如何實現?
答:現在最常見的進程間通信的方式有:信號,信號量,消息隊列,共享內存,管道。信號是使用信號處理器來進行的,信號量是使用P、V操作來實現的。消息隊列是比較高級的一種進程間通信方法,因為它真的可以在進程間傳送消息。
6.在Windows編程中互斥器(mutex)的作用和臨界區(critical section)類似,請說一下二者間的主要區別。
答:兩者的區別是mutex開業用于進程之間互斥,critical section是線程之間的互斥。
7.進程進入等待狀態有哪幾種方式?
答:CPU調度給優先級更高的Thread(線程),原先Thread 進入Waiting(等待)狀態。阻塞的Thread獲得資源或者信號,進入Waiting狀態。在時間片輪轉的情況下,如果時間片到了,也將進入等待狀態。
8.試說明進程在三個基本狀態之間轉換的典型原因。
答:a.處于就緒狀態的進程,當進程調度程序為之分配了處理機后,該進程便由就緒狀態變為執行狀態。b.當前進程因發生某事件而無法執行,如訪問已被占有的臨界資源,就會使進程由執行狀態變為阻塞狀態。c.當前進程因事件片用完而被暫停執行,該進程便由執行狀態變為就緒狀態。
9.同步機構應遵循哪些基本準則?
答:a.空閑讓進;b.忙則等待;c.有限等待;d.讓權等待。
10.在單處理機環境下,進程間有哪幾種通信方式?
答:a.共享存儲器系統通信方式;b.消息傳遞系統通信方式;c.管道通信方式。
11.試比較消息隊列與管道通信機制。
答:a.所謂管道,是指用于連接一個讀進程和一個寫進程,以實現它們之間通信的共享文件,又稱pipe文件,管道通信是屬于共享存儲系統的。b.消息隊列通信機制屬于消息傳遞系統通信機制,存在通信鏈路,有消息的格式,有若干緩沖隊列,采用獨特的發送原語和接受原語。
12.在請求分頁系統中,常采用哪幾種頁面置換算法?
答:a.最佳置換算法;b.先進先出算法;c.最近最久未使用LRU置換算法;d.Clock置換算法;e.此外,還有最少使用置換算法和頁面緩沖算法。
【程序員操作系統筆試題】相關文章:
360筆試題目07-11
華為2017筆試題08-16
華為2017筆試試題08-10
桂林銀行筆試題筆經07-20
普通PHP程序員筆試題01-02
java程序員面試試題08-14
java程序員面試題08-27
"火柴棍式"程序員筆試題12-20
初級java程序員面試試題08-16
Java程序員面試題集錦08-14