第三章—程序描述和控制【計算機作業系統】
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 模式切換和程序切換有什麼區別?
發生模式切換可以不改變當前正處於執行態的程序的狀態。發生程序切換時,一個正在執行的程序被中斷,作業系統指定另一個程序為執行態。程序切換需要儲存更多的狀態資訊。