1. 程式人生 > >第三章—程序描述和控制【計算機作業系統】

第三章—程序描述和控制【計算機作業系統】

3.1   什麼是指令跟蹤?

指令跟蹤是指為該程序而執行的指令序列。

3.2   通常那些事件會導致建立一個程序?

新的批處理作業;互動登入;作業系統因為提供一項服務而建立;由現有的程序派生。(表3.1)

3.3   對於圖3.6中的程序模型,請簡單定義每個狀態。

執行態:該程序正在執行。就緒態:程序做好了準備,只要有機會就開始執行。

阻塞態:程序在某些事件發生前不能執行,如I/O操作完成。

新建態:剛剛建立的程序,作業系統還沒有把它加入到可執行程序組中。

退出態:作業系統從可執行程序組中釋放出的程序,或者是因為它自身停止了,或者是因為某種原因被取消。

3.4   搶佔一個程序是什麼意思?

處理器為了執行另外的程序而終止當前正在執行的程序,這就叫程序搶佔。

3.5   什麼是交換,其目的是什麼?

交換是指把主存中某個程序的一部分或者全部內容轉移到磁碟。當主存中沒有處於就緒態的程序時,作業系統就把一個阻塞的程序換出到磁碟中的掛起佇列,從而使另一個程序可以進入主存執行。

3.6   為什麼圖3.9(b)中有兩個阻塞態?

有兩個獨立的概念:程序是否在等待一個事件(阻塞與否)以及程序是否已經被換出主存(掛起與否)。為適應這種2*2的組合,需要兩個阻塞態和兩個掛起態。

3.7   列出掛起態程序的4個特點。

1.程序不能立即執行。

2.程序可能是或不是正在等待一個事件。如果是,阻塞條件不依賴於掛起條件,阻塞事件的發生不會使程序立即被執行。

3.為了阻止程序執行,可以通過代理把這個程序置於掛起態,代理可以是程序自己,也可以是父程序或作業系統。

4.除非代理顯式地命令系統進行狀態轉換,否則程序無法從這個狀態中轉移。

3.8   對於哪類實體,作業系統為了管理它而維護其資訊表?

記憶體、I/O、檔案和程序。

3.9   列出程序控制塊中的三類資訊。

程序標識,處理器狀態資訊,程序控制資訊。

3.10 為什麼需要兩種模式(使用者模式和核心模式)?

使用者模式下可以執行的指令和訪問的記憶體區域都受到限制。這是為了防止作業系統受到破壞或者修改。而在核心模式下則沒有這些限制,從而使它能夠完成其功能。

3.11 作業系統建立一個新程序所執行的步驟是什麼?

1.給新程序分配一個唯一的程序標識號。2.給程序分配空間。3.初始化程序控制塊。4.設定正確的連線。5.建立或擴充其他的資料結構。

3.12 中斷和陷阱有什麼區別?

中斷與當前正在執行的程序無關的某些型別的外部事件相關,如完成一次I/O操作。陷阱與當前正在執行的程序所產生的錯誤或異常條件相關,如非法的檔案訪問。

3.13 舉出中斷的三個例子。

時鐘終端,I/O終端,記憶體失效。

3.14 模式切換和程序切換有什麼區別?

發生模式切換可以不改變當前正處於執行態的程序的狀態。發生程序切換時,一個正在執行的程序被中斷,作業系統指定另一個程序為執行態。程序切換需要儲存更多的狀態資訊。