1.(1996年)進(jìn)程通信就是進(jìn)程之間進(jìn)行信息交換。系統(tǒng)中各進(jìn)程異步執(zhí)行,但有些進(jìn)程之間必須保持一定的聯(lián)系,以便協(xié)調(diào)一致地完成指定任務(wù)。這種聯(lián)系就是通過交換一定數(shù)量的信息來實(shí)現(xiàn)的。
消息緩沖通信技術(shù)是一種高級通信機(jī)制,由Hansen首先提出。其基本思想是:根據(jù)"生產(chǎn)者-消費(fèi)者關(guān)系"原理,利用公共消息緩沖區(qū)實(shí)現(xiàn)進(jìn)程之間的信息交換。
(1)試敘述高級通信機(jī)制與低級通信機(jī)制P、V原語操作的主要區(qū)別。(5分)
(2)試敘述解釋消息緩沖通信技術(shù)的基本原理。(10分)
(3)消息緩沖通信機(jī)制中提供發(fā)送消息原語。Send(receiver,a)和接收消息原語Receive(a)。調(diào)用參數(shù)a分別表示發(fā)送消息的內(nèi)存區(qū)首地址或接收進(jìn)程的內(nèi)存消息區(qū)首地址。試設(shè)計(jì)相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并用P、V操作原語實(shí)現(xiàn)Send和Receive原語。(15分)
答案:
(1)要點(diǎn):進(jìn)程間通信時(shí)所交換的信息量可多可少。少者僅是一些狀態(tài)和數(shù)據(jù)的交換,或者僅是一個(gè)簡單的喚醒信號;多者可交換大量信息。前者稱為進(jìn)程同步與進(jìn)程互斥,亦稱進(jìn)程間低級通信;后者通信方式稱為進(jìn)程間高級通信。
(答出要點(diǎn)給3分,根據(jù)組織情況再給2分)
(2)要點(diǎn):
①由操作系統(tǒng)在系統(tǒng)空間維護(hù)一組緩沖區(qū);
②由操作系統(tǒng)提供兩個(gè)進(jìn)程高級通信原語Send和Receive;
③發(fā)送進(jìn)程要發(fā)送消息時(shí),執(zhí)行Send系統(tǒng)調(diào)用命令,產(chǎn)生自愿性中斷 進(jìn)入操作系統(tǒng) 核心;
④操作系統(tǒng)為發(fā)送進(jìn)程分配一個(gè)空緩沖區(qū),并將所發(fā)送的消息內(nèi)容從發(fā)送進(jìn)程空間拷貝到該緩沖區(qū)中;然后將此緩沖區(qū)連接到接收進(jìn)程的消息隊(duì)列尾;發(fā)送進(jìn)程就完成了發(fā)送,返回到用戶態(tài)繼續(xù)執(zhí)行;
⑤當(dāng)接收進(jìn)程執(zhí)行到receive系統(tǒng)調(diào)用命令時(shí),也產(chǎn)生自愿性中斷,進(jìn)入操作系統(tǒng)核心;
⑥操作系統(tǒng)將載有消息的緩沖區(qū)從消息隊(duì)列中取出,并將消息內(nèi)容拷貝到接收進(jìn)程空間中,然后收回空閑緩沖區(qū);接收進(jìn)程完成了消息接收,返回到用戶態(tài)繼續(xù)執(zhí)行;
(①、②、④、⑥為2分;③、⑤為1分)
(3)要點(diǎn):①消息緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)為:
TypeMessage=Recoud
Sender(消息發(fā)送者)
Size(消息長度)
text(消息正文)
pointer(消息隊(duì)列指針)
End,
②設(shè)置信號如下:
*每個(gè)接收進(jìn)程有一個(gè)m-mutex:互訴對消息隊(duì)列的操作,初值為1;
*buffe:管理空閑緩沖區(qū),初值為空閑緩沖區(qū)個(gè)數(shù);
*b-mutex:互訴操作空閑緩沖區(qū),初值為為1;
*message:管理接收進(jìn)程消息,初值為0;
③Send(receiver,a)
Begin
根據(jù)參數(shù)R尋找接收進(jìn)程,如果未找到,則出錯(cuò)返回;
P(buffer);
P(b-mutex);
從消息緩沖區(qū)鏈上摘取一個(gè)空閑消息緩沖區(qū);
V(b-mutex);
將消息長度及消息正文由a指示由發(fā)送區(qū)拷貝到消息緩沖區(qū)中;
將發(fā)送進(jìn)程的名字也記錄在該緩沖區(qū)中;
P(m-mutex);
將消息緩沖區(qū)掛到接收進(jìn)程消息鏈的尾部;
V(m-mutex);
V(mmssage)
End. ?、躌eceive(a)
Begin
P(message);
P(m-mutex);
從消息隊(duì)列中取一個(gè)載有消息的緩沖區(qū);
V(m-mutex);
將消息長度及肖息正文由消息緩沖區(qū)拷貝到接收區(qū)(由a指示);
P(b-mutex);
將空閑緩沖區(qū)掛到系統(tǒng)消息緩沖區(qū)鏈尾;
V(b-mutex);
V(buffer);
End.
(①3分②4分③4分④4分③,④重點(diǎn)在P,V操作)
2.(2000年)
(1).進(jìn)程調(diào)度的主要功能。(8分)
(2).何時(shí)可進(jìn)行進(jìn)程調(diào)度?(8分)
(3).進(jìn)程調(diào)度算法解決以何種次序?qū)Ω骶途w進(jìn)程進(jìn)行處理機(jī)的分配以及按何種時(shí)間比例讓進(jìn)程占用處理機(jī)。時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度算法的基本思想是什么?時(shí)間片的大小對系統(tǒng)有什么影響?在選取時(shí)間片時(shí)應(yīng)考慮哪些因素?(14分)
答案:(1).進(jìn)程調(diào)度的主要功能是:
①.記錄系統(tǒng)中所有進(jìn)程的執(zhí)行狀況;(2分)
②.根據(jù)一定的調(diào)度算法,從就緒隊(duì)列中選出一個(gè)進(jìn)程來,準(zhǔn)備把CPU分給它;(2分)
③.把CPU分配給進(jìn)程,即把選中的進(jìn)程控制塊內(nèi)在關(guān)的現(xiàn)場信息,如程序狀態(tài)字,通用寄存器的內(nèi)容送入處理器相應(yīng)的寄存器中,從而讓它占用CPU運(yùn)行.(4分)
(2).進(jìn)程調(diào)度的時(shí)機(jī)是:
①.正在執(zhí)行的進(jìn)程運(yùn)行完畢;(1分)
②.正在執(zhí)行的進(jìn)程調(diào)用阻塞原語或P原語操作將自己阻塞起來進(jìn)入等待狀態(tài);(2分)
③.執(zhí)行中的進(jìn)程提出I/O請求后被阻塞;(1分)
④.在分時(shí)系統(tǒng)中時(shí)間片已經(jīng)用完;(2分)
以上都是在CPU為不可剝奪方式下引起進(jìn)程調(diào)度的原因.在CPU方式為可剝奪時(shí),有以下原因:
⑤.就緒隊(duì)列中的某個(gè)進(jìn)程的優(yōu)先級變得高于當(dāng)前運(yùn)行進(jìn)程的優(yōu)先級,從而也將引起進(jìn)程調(diào)度.(2分)
(3).時(shí)間片輪轉(zhuǎn)法(RR):
這主要是分時(shí)系統(tǒng)中使用的一種調(diào)度算法.時(shí)間片輪轉(zhuǎn)法的基本思想是:將CPU的處理時(shí)間劃分成一個(gè)個(gè)時(shí)間片(2分),就緒隊(duì)列中的諸進(jìn)程輪流運(yùn)行一個(gè)時(shí)間片(2分).當(dāng)時(shí)間片結(jié)束時(shí),就強(qiáng)迫運(yùn)行進(jìn)程讓出CPU,該進(jìn)程進(jìn)入就緒隊(duì)列,等待下一次調(diào)度(1分).同時(shí),進(jìn)程調(diào)度又去選擇就緒隊(duì)列中的一個(gè)進(jìn)程,分配給它一個(gè)時(shí)間片,以投入運(yùn)行(1分)
在輪轉(zhuǎn)法中,時(shí)間片長度的選擇非常重要,將直接影響系統(tǒng)開銷和響應(yīng)時(shí)間(1分).如果時(shí)間片長度很小,則調(diào)度程序剝奪處理機(jī)的次數(shù)頻繁,加重系統(tǒng)開銷(2分);反之,如果時(shí)間片長度選擇過長,比方說一個(gè)時(shí)間片就能保證就緒隊(duì)列中所有進(jìn)程都執(zhí)行完畢,則輪轉(zhuǎn)法就退化成先進(jìn)先出算法(2分)
影響時(shí)間片大小設(shè)置的主要因素有:系統(tǒng)響應(yīng)時(shí)間(1分),就緒進(jìn)程數(shù)目(終端數(shù)目)(1分)和計(jì)算機(jī)處理能力(1分).
消息緩沖通信技術(shù)是一種高級通信機(jī)制,由Hansen首先提出。其基本思想是:根據(jù)"生產(chǎn)者-消費(fèi)者關(guān)系"原理,利用公共消息緩沖區(qū)實(shí)現(xiàn)進(jìn)程之間的信息交換。
(1)試敘述高級通信機(jī)制與低級通信機(jī)制P、V原語操作的主要區(qū)別。(5分)
(2)試敘述解釋消息緩沖通信技術(shù)的基本原理。(10分)
(3)消息緩沖通信機(jī)制中提供發(fā)送消息原語。Send(receiver,a)和接收消息原語Receive(a)。調(diào)用參數(shù)a分別表示發(fā)送消息的內(nèi)存區(qū)首地址或接收進(jìn)程的內(nèi)存消息區(qū)首地址。試設(shè)計(jì)相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并用P、V操作原語實(shí)現(xiàn)Send和Receive原語。(15分)
答案:
(1)要點(diǎn):進(jìn)程間通信時(shí)所交換的信息量可多可少。少者僅是一些狀態(tài)和數(shù)據(jù)的交換,或者僅是一個(gè)簡單的喚醒信號;多者可交換大量信息。前者稱為進(jìn)程同步與進(jìn)程互斥,亦稱進(jìn)程間低級通信;后者通信方式稱為進(jìn)程間高級通信。
(答出要點(diǎn)給3分,根據(jù)組織情況再給2分)
(2)要點(diǎn):
①由操作系統(tǒng)在系統(tǒng)空間維護(hù)一組緩沖區(qū);
②由操作系統(tǒng)提供兩個(gè)進(jìn)程高級通信原語Send和Receive;
③發(fā)送進(jìn)程要發(fā)送消息時(shí),執(zhí)行Send系統(tǒng)調(diào)用命令,產(chǎn)生自愿性中斷 進(jìn)入操作系統(tǒng) 核心;
④操作系統(tǒng)為發(fā)送進(jìn)程分配一個(gè)空緩沖區(qū),并將所發(fā)送的消息內(nèi)容從發(fā)送進(jìn)程空間拷貝到該緩沖區(qū)中;然后將此緩沖區(qū)連接到接收進(jìn)程的消息隊(duì)列尾;發(fā)送進(jìn)程就完成了發(fā)送,返回到用戶態(tài)繼續(xù)執(zhí)行;
⑤當(dāng)接收進(jìn)程執(zhí)行到receive系統(tǒng)調(diào)用命令時(shí),也產(chǎn)生自愿性中斷,進(jìn)入操作系統(tǒng)核心;
⑥操作系統(tǒng)將載有消息的緩沖區(qū)從消息隊(duì)列中取出,并將消息內(nèi)容拷貝到接收進(jìn)程空間中,然后收回空閑緩沖區(qū);接收進(jìn)程完成了消息接收,返回到用戶態(tài)繼續(xù)執(zhí)行;
(①、②、④、⑥為2分;③、⑤為1分)
(3)要點(diǎn):①消息緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)為:
TypeMessage=Recoud
Sender(消息發(fā)送者)
Size(消息長度)
text(消息正文)
pointer(消息隊(duì)列指針)
End,
②設(shè)置信號如下:
*每個(gè)接收進(jìn)程有一個(gè)m-mutex:互訴對消息隊(duì)列的操作,初值為1;
*buffe:管理空閑緩沖區(qū),初值為空閑緩沖區(qū)個(gè)數(shù);
*b-mutex:互訴操作空閑緩沖區(qū),初值為為1;
*message:管理接收進(jìn)程消息,初值為0;
③Send(receiver,a)
Begin
根據(jù)參數(shù)R尋找接收進(jìn)程,如果未找到,則出錯(cuò)返回;
P(buffer);
P(b-mutex);
從消息緩沖區(qū)鏈上摘取一個(gè)空閑消息緩沖區(qū);
V(b-mutex);
將消息長度及消息正文由a指示由發(fā)送區(qū)拷貝到消息緩沖區(qū)中;
將發(fā)送進(jìn)程的名字也記錄在該緩沖區(qū)中;
P(m-mutex);
將消息緩沖區(qū)掛到接收進(jìn)程消息鏈的尾部;
V(m-mutex);
V(mmssage)
End. ?、躌eceive(a)
Begin
P(message);
P(m-mutex);
從消息隊(duì)列中取一個(gè)載有消息的緩沖區(qū);
V(m-mutex);
將消息長度及肖息正文由消息緩沖區(qū)拷貝到接收區(qū)(由a指示);
P(b-mutex);
將空閑緩沖區(qū)掛到系統(tǒng)消息緩沖區(qū)鏈尾;
V(b-mutex);
V(buffer);
End.
(①3分②4分③4分④4分③,④重點(diǎn)在P,V操作)
2.(2000年)
(1).進(jìn)程調(diào)度的主要功能。(8分)
(2).何時(shí)可進(jìn)行進(jìn)程調(diào)度?(8分)
(3).進(jìn)程調(diào)度算法解決以何種次序?qū)Ω骶途w進(jìn)程進(jìn)行處理機(jī)的分配以及按何種時(shí)間比例讓進(jìn)程占用處理機(jī)。時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度算法的基本思想是什么?時(shí)間片的大小對系統(tǒng)有什么影響?在選取時(shí)間片時(shí)應(yīng)考慮哪些因素?(14分)
答案:(1).進(jìn)程調(diào)度的主要功能是:
①.記錄系統(tǒng)中所有進(jìn)程的執(zhí)行狀況;(2分)
②.根據(jù)一定的調(diào)度算法,從就緒隊(duì)列中選出一個(gè)進(jìn)程來,準(zhǔn)備把CPU分給它;(2分)
③.把CPU分配給進(jìn)程,即把選中的進(jìn)程控制塊內(nèi)在關(guān)的現(xiàn)場信息,如程序狀態(tài)字,通用寄存器的內(nèi)容送入處理器相應(yīng)的寄存器中,從而讓它占用CPU運(yùn)行.(4分)
(2).進(jìn)程調(diào)度的時(shí)機(jī)是:
①.正在執(zhí)行的進(jìn)程運(yùn)行完畢;(1分)
②.正在執(zhí)行的進(jìn)程調(diào)用阻塞原語或P原語操作將自己阻塞起來進(jìn)入等待狀態(tài);(2分)
③.執(zhí)行中的進(jìn)程提出I/O請求后被阻塞;(1分)
④.在分時(shí)系統(tǒng)中時(shí)間片已經(jīng)用完;(2分)
以上都是在CPU為不可剝奪方式下引起進(jìn)程調(diào)度的原因.在CPU方式為可剝奪時(shí),有以下原因:
⑤.就緒隊(duì)列中的某個(gè)進(jìn)程的優(yōu)先級變得高于當(dāng)前運(yùn)行進(jìn)程的優(yōu)先級,從而也將引起進(jìn)程調(diào)度.(2分)
(3).時(shí)間片輪轉(zhuǎn)法(RR):
這主要是分時(shí)系統(tǒng)中使用的一種調(diào)度算法.時(shí)間片輪轉(zhuǎn)法的基本思想是:將CPU的處理時(shí)間劃分成一個(gè)個(gè)時(shí)間片(2分),就緒隊(duì)列中的諸進(jìn)程輪流運(yùn)行一個(gè)時(shí)間片(2分).當(dāng)時(shí)間片結(jié)束時(shí),就強(qiáng)迫運(yùn)行進(jìn)程讓出CPU,該進(jìn)程進(jìn)入就緒隊(duì)列,等待下一次調(diào)度(1分).同時(shí),進(jìn)程調(diào)度又去選擇就緒隊(duì)列中的一個(gè)進(jìn)程,分配給它一個(gè)時(shí)間片,以投入運(yùn)行(1分)
在輪轉(zhuǎn)法中,時(shí)間片長度的選擇非常重要,將直接影響系統(tǒng)開銷和響應(yīng)時(shí)間(1分).如果時(shí)間片長度很小,則調(diào)度程序剝奪處理機(jī)的次數(shù)頻繁,加重系統(tǒng)開銷(2分);反之,如果時(shí)間片長度選擇過長,比方說一個(gè)時(shí)間片就能保證就緒隊(duì)列中所有進(jìn)程都執(zhí)行完畢,則輪轉(zhuǎn)法就退化成先進(jìn)先出算法(2分)
影響時(shí)間片大小設(shè)置的主要因素有:系統(tǒng)響應(yīng)時(shí)間(1分),就緒進(jìn)程數(shù)目(終端數(shù)目)(1分)和計(jì)算機(jī)處理能力(1分).