1. 程式人生 > >北大《作業系統原理》公開課:第三週測驗解析

北大《作業系統原理》公開課:第三週測驗解析

多道程式設計技術是作業系統中最早引入的軟體技術,引入它的目的是 * 充分利用記憶體,有利於資料共享 * 提高系統的實時響應速度 * 提高檔案系統性能,減少內外存之間的資訊傳輸量 * 充分利用CPU,提高CPU利用率

下列關於程序控制塊PCB的敘述中,哪一個是錯誤的? * 作業系統利用PCB描述程序的基本特徵 * PCB可用於描述程序的運動變化過程 * PCB通常儲存在磁碟上 * 一個PCB唯一對應一個程序

解析:PCB通常被裝載在RAM中。

在某一條件下,程序會在狀態之間相互轉換。下列哪一種程序狀態轉換不會發生? * 就緒態→等待態 * 等待態→就緒態 * 執行態→等待態 * 就緒態→執行態

假設某單處理器計算機系統中有10個程序,則系統中處於等待狀態的程序最多有幾個? * 10 * 1 * 9 * 0

下列關於程序控制操作的敘述中,哪一個是不正確的? * 阻塞原語使一個程序變為等待狀態 * 撤銷程序就是釋放該程序佔有的記憶體資源 * 一個程序可以使用建立原語建立一個新的程序 * 喚醒原語使從等待佇列中撤出程序

解析:釋放程序佔有的資源只是撤銷程序過程的一部分。當程序完成任務或在執行的過程中發生異常時,系統將呼叫程序終止原語來終止該程序。根據被終止程序的識別符號從PCB集合中查詢到該程序的PCB,從中讀出該程序的狀態,終止該程序的執行;若該程序還有子孫程序,應該將其所有子孫程序終止,防止它們成為不可控程序;然後回收程序所擁有的資源,最後將被終止程序從所在佇列中移出,等待其它程式來收集資訊。

下列哪一項工作不是建立程序時所作的? * 初始化新程序的程序控制塊 * 給新程序分配一個唯一標識 * 給新程序分配虛擬地址空間 * 將處理器控制權交給新程序

程序控制原語有多種,下列哪一項不是程序控制原語? * 改變程序優先順序 * 掛起程序 * 程序上下文切換 * 程序喚醒

解析:程序控制原語包括:程序的建立、程序的撤銷、程序的等待和程序的喚醒。

在UNIX作業系統中執行如下C語言程式:

int main()
{
 pid_t pid;
 int a=5;
 pid = fork();
 if (pid==0)
  printf ("This is the son process, a=%d
\n"
, --a); else printf ("This is the dad process, a=%d\n", ++a); }

假設編譯連結過程正確且程式正確執行,那麼執行結果是 * This is the son process, a=4; This is the dad process, a=6 * This is the son process, a=4 * This is the dad process, a=4; This is the son process, a=6 * This is the dad process, a=6

程序映像由幾部分組成,下列哪一項不屬於程序映像? * 程式程式碼 * 使用者棧 * 就緒佇列 * 程序控制塊

某作業系統在程序中引入了多個執行序列——執行緒,那麼下列敘述中,哪些描述了程序與執行緒的聯絡和區別? * 程序是資源分配的基本單位 * 執行緒是資源分配的基本單位 * 執行緒不能獨立於程序而存在 * 程序是處理器排程的基本單位 * 執行緒是處理器排程的基本單位

解析:此題應注意,執行緒才是cpu排程的基本單位

下列各種事件中,一定產生程序狀態改變的事件是 * 新程序建立成功 * 執行的程序時間片用完 * 執行的程序正常退出 * 執行的程序因種種原因而阻塞 * 阻塞的程序被喚醒

解析:新程序剛剛建立後將處於新建態,此時並沒有被提交執行,作業系統有時將根據系統性能或主存容量的限制推遲新建態程序的提交,之後才可以進入就緒態。

程序執行時,其硬體狀態儲存在相應暫存器中;當它被切換下CPU時,其硬體狀態儲存在核心棧中。 * 正確 * 錯誤

解析:當程序被切換下CPU時,其硬體狀態儲存在PCB中。

當某個正在執行的程序需要進行I/O操作時,可以通過呼叫掛起原語將自己從執行狀態變為等待狀態。 * 錯誤 * 正確

使用者級執行緒執行時,同一程序不同執行緒的切換不需要核心支援。 * 正確 * 錯誤

在支援執行緒的作業系統中,同一個程序中的各個執行緒共享該程序的使用者棧。 * 正確 * 錯誤

解析: 一個程序中的所有執行緒共享該程序的地址空間,但它們有各自獨立的棧,而堆才為本程序中所有執行緒共享。