為了幫助考生們熟悉作業系統的論述題,以下小編特地提供了計算機四級作業系統歷年論述題真題,希望能給予大家一定的幫助!
1.(1996年)程序通訊就是程序之間進行資訊交換。系統中各程序非同步執行,但有些程序之間必須保持一定的聯絡,以便協調一致地完成指定任務。這種聯絡就是通過交換一定數量的資訊來實現的。
訊息緩衝通訊技術是一種高階通訊機制,由Hansen首先提出。其基本是:根據"生產者-消費者關係",利用公共訊息緩衝區實現程序之間的資訊交換。
(1)試敘述高階通訊機制與低階通訊機制P、V原語操作的主要區別。(5分)
(2)試敘述解釋訊息緩衝通訊技術的基本原理。(10分)
(3)訊息緩衝通訊機制中提供傳送訊息原語。Send(receiver,a)和接收訊息原語Receive(a)。呼叫引數a分別表示傳送訊息的記憶體區首地址或接收程序的記憶體訊息區首地址。試設計相應的資料結構,並用P、V操作原語實現Send和Receive原語。(15分)
答案:
(1)要點:程序間通訊時所交換的資訊量可多可少。少者僅是一些狀態和資料的.交換,或者僅是一個簡單的喚醒訊號;多者可交換大量資訊。前者稱為程序同步與程序互斥,亦稱程序間低階通訊;後者通訊方式稱為程序間高階通訊。
(答出要點給3分,根據組織情況再給2分)
(2)要點:①由作業系統在系統空間維護一組緩衝區;
②由作業系統提供兩個程序高階通訊原語Send和Receive;
③傳送程序要傳送訊息時,執行Send系統呼叫命令,產生自願性中斷進入作業系統
核心;
④作業系統為傳送程序分配一個空緩衝區,並將所傳送的訊息內容從傳送程序空間拷貝到該緩衝區中;然後將此緩衝區連線到接收程序的訊息佇列尾;傳送程序就完成了傳送,返回到使用者態繼續執行;
⑤當接收程序執行到receive系統呼叫命令時,也產生自願性中斷,進入作業系統核心;
⑥作業系統將載有訊息的緩衝區從訊息佇列中取出,並將訊息內容拷貝到接收程序空間中,然後收回空閒緩衝區;接收程序完成了訊息接收,返回到使用者態繼續執行;
(①、②、④、⑥為2分;③、⑤為1分)
(3)要點:①訊息緩衝區的資料結構為:
TypeMessage=Recoud
Sender(訊息傳送者)
Size(訊息長度)
text(訊息正文)
pointer(訊息佇列指標)
End,
②設定訊號如下:
*每個接收程序有一個m-mutex:互訴對訊息佇列的操作,初值為1;
*buffe:空閒緩衝區,初值為空閒緩衝區個數;
*b-mutex:互訴操作空閒緩衝區,初值為為1;
*message:管理接收程序訊息,初值為0;
③Send(receiver,a)
Begin
根據引數R尋找接收程序,如果未找到,則出錯返回;
P(buffer);
P(b-mutex);
從訊息緩衝區鏈上摘取一個空閒訊息緩衝區;
V(b-mutex);
將訊息長度及訊息正文由a指示由傳送區拷貝到訊息緩衝區中;
將傳送程序的名字也記錄在該緩衝區中;
P(m-mutex);
將訊息緩衝區掛到接收程序訊息鏈的尾部;
V(m-mutex);
V(mmssage)
End.
④Receive(a)
Begin
P(message);
P(m-mutex);
從訊息佇列中取一個載有訊息的緩衝區;
V(m-mutex);
將訊息長度及肖息正文由訊息緩衝區拷貝到接收區(由a指示);
P(b-mutex);
將空閒緩衝區掛到系統訊息緩衝區鏈尾;
V(b-mutex);
V(buffer);
End.
(①3分②4分③4分④4分③,④重點在P,V操作)
2.(2000年)
(1).程序排程的主要功能。(8分)
(2).何時可進行程序排程?(8分)
(3).程序排程演算法解決以何種次序對各就緒程序進行處理機的分配以及按何種時間比例讓程序佔用處理機。時間片輪轉程序排程演算法的基本思想是什麼?時間片的大小對系統有什麼影響?在選取時間片時應考慮哪些因素?(14分)
答案:(1).程序排程的主要功能是:
①.記錄系統中所有程序的執行狀況;(2分)
②.根據一定的排程演算法,從就緒佇列中選出一個程序來,準備把CPU分給它;(2分)
③.把CPU分配給程序,即把選中的程序控制塊內在關的現場資訊,如程式狀態字,通用暫存器的內容送入處理器相應的暫存器中,從而讓它佔用CPU執行.(4分)
(2).程序排程的時機是:
①.正在執行的程序執行完畢;(1分)
②.正在執行的程序呼叫阻塞原語或P原語操作將自己阻塞起來進入等待狀態;(2分)
③.執行中的程序提出I/O請求後被阻塞;(1分)
④.在分時系統中時間片已經用完;(2分)
以上都是在CPU為不可剝奪方式下引起程序排程的原因.在CPU方式為可剝奪時,有以下原因:
⑤.就緒佇列中的某個程序的優先順序變得高於當前執行程序的優先順序,從而也將引起程序排程.(2分)
(3).時間片輪轉法(RR):
這主要是分時系統中使用的一種排程演算法.時間片輪轉法的基本思想是:將CPU的處理時間劃分成一個個時間片(2分),就緒佇列中的諸程序輪流執行一個時間片(2分).當時間片結束時,就強迫執行程序讓出CPU,該程序進入就緒佇列,等待下一次排程(1分).同時,程序排程又去選擇就緒佇列中的一個程序,分配給它一個時間片,以投入執行(1分)
在輪轉法中,時間片長度的選擇非常重要,將直接影響系統開銷和響應時間(1分).如果時間片長度很小,則排程程式剝奪處理機的次數頻繁,加重系統開銷(2分);反之,如果時間片長度選擇過長,比方說一個時間片就能保證就緒佇列中所有程序都執行完畢,則輪轉法就退化成先進先出演算法(2分)