1. 程式人生 > >10-25作業系統刷題

10-25作業系統刷題

1、信箱通訊是一種間接通訊方式。
信箱通訊最大的好處是傳送方和接收方不必直接建立聯絡,沒有處理時間上的限制。傳送方可以在任何時間傳送資訊,接受方也可以在任何時間收信。
2、一臺計算機往往有多個處理器,它們各有其不同的任務,有的用於繪圖、通訊,其中承擔系統軟體和應用軟體執行任務的處理器稱為中央處理器。
3、程序與程式的主要區別:
(1)程式是永存的;程序是暫時的,是程式在資料集上的一次執行,有建立有撤銷,存在是暫時的;
(2)程式是靜態的觀念,程序是動態的觀念;
(3)程序具有併發性,而程式沒有;
(4)程序是競爭計算機資源的基本單位,程式不是。
(5)程序和程式不是一一對應的: 一個程式可對應多個程序即多個程序可執行同一程式; 一個程序可以執行一個或幾個程式
4、若干個等待訪問磁碟者依次要訪問的磁軌為19、43、40、4、79、11、76,當前磁頭位於40號柱面,若用最短尋道時間優先磁碟排程演算法,則磁頭移動總距離(道數)為117.
解析:根據最短尋道優先(SSTF)磁碟排程演算法的原理可知尋找與自身最近的磁軌進行訪問,所以他的訪問順序為:40-43-19-11-4-76-79;所以移動總距離為:3+24+8+7+72+3=117。
5、Linux提供一種機制可以保證只要父程序想知道子程序結束時的狀態資訊,就可以得到。這種機制就是:在每個程序退出的時候,核心釋放該程序所有的資源,包括開啟的檔案,佔用的記憶體等。但是仍然為其保留一定的資訊(包括程序號the process ID,退出狀態the termination status of the process,執行時間the amount of CPU time taken by the process等)。直到父程序通過wait/waitpid來取時才釋放。
孤兒程序:一個父程序退出,而它的一個或多個子程序還在執行,那麼那些子程序將成為孤兒程序。孤兒程序將被init程序(程序號為1)所收養,並由init程序對它們完成狀態收集工作。
殭屍程序:一個程序使用fork建立子程序,如果子程序退出,而父程序並沒有呼叫wait或waitpid獲取子程序的狀態資訊,那麼子程序的程序描述符仍然儲存在系統中。這種程序稱之為殭屍程序。
僵死程序並不是問題的根源,罪魁禍首是產生出大量僵死程序的那個父程序,所以解決辦法就是kill那個父程序,於是殭屍程序就可以被init程序接收、釋放。
6、就檔案的共享方式來說,基於符號鏈的檔案共享方式會在檔案主刪除其共享檔案後留下懸空指標的問題。
7、作業從提交到完成的時間間隔稱為作業的週轉時間。從開始到完成的是響應時間。
週轉時間:從程序提交到程序完成的時間間隔為週轉時間,也就是等待進入記憶體的時間。
響應時間:從提交第一個請求到產生第一個響應所用時間。
8、採用統一編址時,CPU訪存和訪問I/O埠的是一樣的指令,所以防存指令可以訪問I/O埠。
9、
在這裡插入圖片描述


能保證程序互斥進入臨界區,不會出現“飢餓”現象。
這是皮特森演算法的實際實現,保證進入臨界區的程序合理安全。該演算法為了防止兩個程序為進入臨界區而無限期等待,設定變數turn,表示不允許進入臨界區的編號,每個程序在先設定自己標誌後再設定turn標誌,不允許另一個程序進入,這時,再同時檢測另一個程序狀態標誌和不允許進入表示,這樣可以保證當兩個程序同時要求進入臨界區時只允許一個程序進入臨界區。儲存的是較晚的一次賦值,則較晚的程序等待,較早的程序進入。先到先入,後到等待,從而完成臨界區訪問的要求。
其實這裡可以想象為兩個人進門,每個人進門前都會和對方客套一句“你走先”。如果進門時沒別人,就當和空氣說句廢話,然後大步登門入室;如果兩人同時進門,就互相請先,但各自只客套一次,所以先客套的人請完對方,就等著對方請自己,然後光明正大地進門。
10、程序排程不屬於分派任務