版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《操作系統(tǒng)》習(xí)題分析總問題概念要清楚、定義要準(zhǔn)確敘述要清楚、具體解題過程要詳細(xì)有關(guān)PV操作的題必須編寫程序,給出算法第1章補(bǔ)充作業(yè)1、設(shè)在內(nèi)存中有三道程序A、B和C,并按A、B、C的優(yōu)先次序運(yùn)行,其內(nèi)部計(jì)算和I/O操作的時(shí)間如圖1所示。若處理機(jī)調(diào)度程序每次進(jìn)行程序狀態(tài)轉(zhuǎn)換的時(shí)間為2ms,請(qǐng)畫出多道程序系統(tǒng)中在處理機(jī)調(diào)度程序管理下各程序狀態(tài)轉(zhuǎn)換的時(shí)間關(guān)系圖,并計(jì)算出完成這三道程序共花多少時(shí)間?比單道運(yùn)行節(jié)省了多少時(shí)間?圖1各程序內(nèi)部計(jì)算和I/O操作的時(shí)間
圖2各程序執(zhí)行與狀態(tài)轉(zhuǎn)換的時(shí)間關(guān)系圖解:多道程序系統(tǒng)中,在處理機(jī)調(diào)度程序管理下各程序狀態(tài)轉(zhuǎn)換的時(shí)間關(guān)系圖如圖2所示。單道系統(tǒng)中,三道程序共運(yùn)行的時(shí)間為:T=60+2+30+2+40+2+50+2+20+2+50+2+70+2+50+2+40+2+30+2+20+2=482多道運(yùn)行比單道運(yùn)行節(jié)省時(shí)間為:482-306=176第3章進(jìn)程管理教材p832、6、7、8、9、10、11、13、14、15第3章進(jìn)程管理1.設(shè)有三個(gè)并發(fā)進(jìn)程R、M、P,它們共享一個(gè)緩沖區(qū)。R負(fù)責(zé)從輸入設(shè)備讀信息,每讀一個(gè)記錄后,就把它存放在緩沖區(qū)中;M在緩沖區(qū)中加工讀入的記錄;P把加工后的記錄打印輸出。讀入的記錄經(jīng)加工輸出后,緩沖區(qū)又可存放下一個(gè)記錄。試寫出它們能正確執(zhí)行的程序。緩沖區(qū)輸入進(jìn)程R打印進(jìn)程P處理進(jìn)程M3.6進(jìn)程同步緩沖區(qū)計(jì)算進(jìn)程PC打印進(jìn)程PP計(jì)算進(jìn)程PC
:反復(fù)地把每次計(jì)算結(jié)果放入緩沖區(qū)Buf中打印進(jìn)程PP
:將計(jì)算進(jìn)程每次放入緩沖區(qū)Buf中的數(shù)據(jù)取出,通過打印機(jī)打印輸出緩沖區(qū)Buf
:一次只可放一個(gè)數(shù)據(jù)例,共享一個(gè)緩沖區(qū)的合作進(jìn)程Begin
Sc,Sp:semaphore;Sp=0;/*信號(hào)量Sp,表示緩沖區(qū)Buf
是否存放計(jì)算結(jié)果*/Sc=1;/*信號(hào)量Sc,表示緩沖區(qū)Buf
是否為空*/CobeginPc:While(計(jì)算未結(jié)束);/*計(jì)算進(jìn)程*/{計(jì)算;
P(Sc);/*緩沖區(qū)是否為空?若非空,則等待*/
Buf←計(jì)算結(jié)果;
V(Sp);}Pp:While(打印未完成);/*打印進(jìn)程*/{P(Sp);/*緩沖區(qū)是否為數(shù)據(jù)?若無,則等待*/
從緩沖區(qū)Buf取數(shù)據(jù);
V(Sc);打印數(shù)據(jù);
}
CoendEnd分析緩沖區(qū)是臨界資源,必須互斥訪問信號(hào)量empty:表示緩沖區(qū)是否為空,初值為1信號(hào)量Sr:進(jìn)程R是否已輸入信息,初值Sr=0信號(hào)量Sm:進(jìn)程M是否已加工信息,初值Sm=0beginempty,Sr,Sm,Sp:semaphoreempty:=1;Sr:=0;Sm:=0;
CobeginPr:Repeat
從輸入設(shè)備讀一個(gè)記錄;
P(empty);
將記錄存入緩沖區(qū);
V(Sr);UntilfalsePm:Repeat
P(Sr);
在緩沖區(qū)中加工記錄;
V(Sm);Untilfalse
Pp:Repeat
P(Sm);
從緩沖區(qū)取出一個(gè)記錄;
V(empty);
打印記錄;
Untilfalse
Coendend第3章進(jìn)程管理2.有一閱覽室,讀者進(jìn)入時(shí)必須先在一張登記表上進(jìn)行登記。該表為每一座位列出一個(gè)表目,包括座號(hào)、姓名。讀者離開時(shí)撤消登記信息。閱覽室有100個(gè)座位,試問:(1)為描述讀者的動(dòng)作,應(yīng)編寫幾個(gè)程序,應(yīng)該設(shè)置幾個(gè)進(jìn)程?進(jìn)程和程序之間的對(duì)應(yīng)關(guān)系如何?(2)試用P、V操作描述這些進(jìn)程間的同步算法。分析讀者動(dòng)作:登記、讀書、撤消座位總數(shù):100登記/撤消都需要在登記表修改信息,一次只能有一個(gè)讀者對(duì)登記表進(jìn)行訪問登記表是臨界資源,必須互斥訪問一個(gè)讀者一個(gè)進(jìn)程信號(hào)量的設(shè)置
S:用于讀者互斥訪問(登記/撤消)登記表,初值為1
Sn:表示空座位數(shù),初值為100每個(gè)座位設(shè)一個(gè)狀態(tài)位:滿/空(類似信箱通訊)程序beginS,Sn:Semaphore;S:=1;Sn:=100;
CobeginprocessReaderi(i=1,2,……,n)
begin
P(Sn);P(S);
選擇標(biāo)志為空的座位X;登記;置座位X的標(biāo)志為滿;
V(S);
讀書;
P(S)
在登記表中查找座位X;撤消登記信息;
置座位X的標(biāo)志為空;
V(Sn)V(S)end
Coend討論并分析上述程序:采用指針形式(類似生產(chǎn)者-消費(fèi)者問題)給每個(gè)座位設(shè)置一個(gè)信號(hào)量(類似哲學(xué)家就餐問題)第3章補(bǔ)充題3.桌上有一只盤子,每次只能放入一個(gè)水果。爸爸專向盤中放蘋果,媽媽專向盤中放桔子,一個(gè)女兒專等吃盤中的蘋果,一個(gè)兒子專等吃盤中的桔子。試用P、V操作寫出他們能同步的程序。分析:信號(hào)量S:表示盤子是否為空,初值為1信號(hào)量So:表示盤中是否有桔子,初值為0信號(hào)量Sa:表示盤子是否有蘋果,初值為0程序beginS,Sa,So:semaphoreS=1;Sa=0;So=0;
Cobeginfather:RepeatP(S);
將蘋果放入盤中;
V(Sa);Untilfalsemother:RepeatP(S);
將桔子放入盤中;
V(So);Untilfalse
daughter:RepeatP(Sa);
從盤中取出蘋果;
V(S);
吃蘋果;
Untilfalseson:RepeatP(So);
從盤中取出桔子;
V(S);
吃桔子;
Untilfalse
Coendend第3章補(bǔ)充題4、某大學(xué)軍訓(xùn)正在進(jìn)行實(shí)彈練習(xí)?,F(xiàn)有一保管員負(fù)責(zé)管理槍支彈藥,有A、B兩組學(xué)生,A組學(xué)生每人都有一支槍,B組學(xué)生每人都備有足夠的子彈,任一學(xué)生只要有槍和子彈就可以進(jìn)行實(shí)彈練習(xí)。在打靶場(chǎng)有一個(gè)可以放一只槍或一發(fā)子彈的盒子,當(dāng)盒中無物品時(shí),保管員就可以任意放一支槍或一發(fā)子彈供學(xué)生取用。當(dāng)盒中有學(xué)生所需材料時(shí),每次允許一個(gè)學(xué)生從中取出自己所需的材料,材料取走后,保管員再放一件材料。(1)試說明A、B兩組學(xué)生、保管員之間的相互制約關(guān)系。(2)應(yīng)設(shè)置哪些信號(hào)量,它們的初值是什么?(3)試用P、V寫出他們并發(fā)執(zhí)行的程序(類C或類PASCAL語言)。解答解:(1)這是一個(gè)生產(chǎn)者-消費(fèi)者問題。
A、B兩組學(xué)生是消費(fèi)者,保管員是生產(chǎn)者,盒子是緩沖區(qū),是一個(gè)臨界資源。它們之間的相互制約關(guān)系是:保管員與學(xué)生之間不僅要同步,而且保管員與A、B兩組學(xué)生之間、以及A、B兩組學(xué)生之間還要互斥。(2)設(shè)置3個(gè)信號(hào)量如下:公用信號(hào)量S:初值為1,表示盒子是否為空;私用信號(hào)量Sgun:表示盒子中是否有一支槍,初值為0;私用信號(hào)量Sbullet:表示盒子中是否有一發(fā)子彈,初值為0程序如下:BeginS,Sgun,Sbullet:semaphoreS=1;/*表示盒子是否為空,初值為1*/
Sgun=0;/*表示盒子中是否有一支槍,初值為0*/
Sbullet=0;/*表示盒子中是否有一發(fā)子彈,初值為0*/
CobeginKeeper:
RepeatP(S);
將一支槍或一發(fā)子彈放入盒子中;
If放入的是一支槍
Then
V(Sgun)Else
V(Sbullet)
fiUntilfalse
StudentAi(i=1,2,…)Repeat
P(Sbullet);
從盒子中取出子彈;
V(S);
打靶;
UntilfalseStudentBj(j=1,2,…)Repeat
P(Sgun);
從盒子中取出槍;
V(S);
打靶;
Untilfalse
Coendend5、假定系統(tǒng)中有五個(gè)進(jìn)程{P0,P1,P2,P3,P4}和三種類型的資源{A,B,C},每種資源的數(shù)量分別為10,5,7,在T時(shí)刻的資源分配情況如表所示。
(1)T時(shí)刻系統(tǒng)是否為安全狀態(tài),若是,請(qǐng)給出安全序列。
(2)如果進(jìn)程P4此時(shí)提出資源申請(qǐng)(3,3,1),系統(tǒng)能否將資源分配給它?為什么?資源進(jìn)程最大需求矩陣M分配矩陣RABCABCP0P1P2P3P4753322902222433010200302211002第3章補(bǔ)充題解:(1)進(jìn)程的最大資源需求數(shù)減去當(dāng)前進(jìn)程已分配到的資源數(shù)就是進(jìn)程仍需要的資源數(shù)。此時(shí)各進(jìn)程的仍需資源數(shù)向量為進(jìn)程仍需資源數(shù)QP0743P1122P2600P3011P4431已知:系統(tǒng)的可用資源向量為W=(10,5,7)已分配的資源向量為P=(7,2,5)則,系統(tǒng)的當(dāng)前剩余資源向量為S=(3,3,2)在T時(shí)刻系統(tǒng)存在如下進(jìn)程執(zhí)行序列,可以使進(jìn)程順利進(jìn)行完畢,所以該狀態(tài)是安全的,安全序列為P1、P3、P0、P4、P2。具體如下:進(jìn)程系統(tǒng)可用資源數(shù)SP1完成后:5,3,2P3完成后:7,4,3P0完成后:7,5,3P4完成后:7,5,5P2完成后:10,5,7(2)如果進(jìn)程P4此時(shí)提出資源申請(qǐng)(3,3,1),系統(tǒng)滿足進(jìn)程P4的請(qǐng)求,則系統(tǒng)的可用資源數(shù)變?yōu)椋?,0,1)。而此時(shí)各進(jìn)程的仍需資源數(shù)向量為:進(jìn)程仍需資源數(shù)P0743P1122P2600P3011P4100這時(shí)系統(tǒng)的可用資源數(shù)(0,0,1)不能滿足任何一個(gè)進(jìn)程,系統(tǒng)處于不安全狀態(tài)。因此,系統(tǒng)不能將資源分配給進(jìn)程P4。P833.10P62經(jīng)典生產(chǎn)者-消費(fèi)者問題經(jīng)典生產(chǎn)者—消費(fèi)者問題設(shè)生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程是互相等效的,其中,各生產(chǎn)者進(jìn)程使用過程deposit(data),各消費(fèi)者使用的過程remove(data)生產(chǎn)者-消費(fèi)者問題是一個(gè)同步問題消費(fèi)者想接收數(shù)據(jù)時(shí),緩沖區(qū)中至少有一個(gè)單元是滿的生產(chǎn)者想發(fā)送數(shù)據(jù)時(shí),緩沖區(qū)中至少有一個(gè)單元是空的生產(chǎn)者-消費(fèi)者問題是一個(gè)互斥問題緩沖區(qū)是臨界資源經(jīng)典生產(chǎn)者—消費(fèi)者問題設(shè)置信號(hào)量公用信號(hào)量mutex:保證生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程之間的互斥;初值為1,表示沒有進(jìn)程進(jìn)入臨界區(qū)私用信號(hào)量avail:生產(chǎn)者進(jìn)程的私用信號(hào)量,表示可用緩沖區(qū)數(shù),初值為n私用信號(hào)量full:消費(fèi)者進(jìn)程的私用信號(hào)量,表示產(chǎn)品數(shù)目,初值為
0生產(chǎn)者—消費(fèi)者進(jìn)程描述生產(chǎn)者進(jìn)程生產(chǎn)一種產(chǎn)品P(avail)P(mutex)產(chǎn)品送入緩沖區(qū)V(full)V(mutex)消費(fèi)者進(jìn)程P(full)P(mutex)從緩沖區(qū)取一產(chǎn)品V(avail)V(mutex)消耗該產(chǎn)品生產(chǎn)者指針P
消費(fèi)者指針R
有界緩沖區(qū)初始狀態(tài)RP…
I12J……n為什么要互斥訪問緩沖區(qū)?…
I12J…中間狀態(tài)RP…n什么情況下,出現(xiàn)阻塞?經(jīng)典生產(chǎn)者—消費(fèi)者問題設(shè)置信號(hào)量公用信號(hào)量S:初值為1,表示沒有進(jìn)程進(jìn)入臨界區(qū),用于實(shí)現(xiàn)進(jìn)程互斥私用信號(hào)量S0:表示產(chǎn)品數(shù)目,初值為0私用信號(hào)量Sn:表示可用緩沖區(qū)數(shù),初值為n生產(chǎn)者—消費(fèi)者進(jìn)程描述生產(chǎn)者進(jìn)程生產(chǎn)一種產(chǎn)品P(Sn)P(S)產(chǎn)品送入緩沖區(qū)V(S0)V(S)消費(fèi)者進(jìn)程P(S0)P(S)從緩沖區(qū)取一產(chǎn)品V(Sn)V(S)消耗該產(chǎn)品BeginB:array[0..n-1]ofinteger;P,R:integer;S,Sn,S0:semaphore;P:=R:=0;S:=1;Sn:=n;S0:=0;
CobeginProcessProducei(i=1,2,…,m)BeginL1:produceaproduct
P(Sn);P(S);B[P]:=product;P:=(P+1)modn;V(S0);V(S);
gotoL1endProcessconsumerj(j=1,2,…,k)BeginL2:P(S0);P(S);takeaproductfromB[R];R:=(R+1)modn;
V(Sn);V(S);consumegotoL2end
CoendendP833.10解:設(shè)互斥信號(hào)量mutex[n]為緩沖區(qū)的公用信號(hào)量,初始值為1。設(shè)信號(hào)量S1為生產(chǎn)者進(jìn)程信號(hào)量,初始值為m。設(shè)信號(hào)量S2為消費(fèi)者信號(hào)量,初始值為0。各生產(chǎn)者進(jìn)程使用的過程Deposit(data)如下:Deposit(data) Begin P(S1)
選擇第n個(gè)空緩沖區(qū)
P(mutex[n])
送數(shù)據(jù)入第n個(gè)緩沖區(qū)
V(S2)
V(mutex[n])End各消費(fèi)者進(jìn)程使用的過程Remove(data)如下:Remove(data) Begin P(S2)
選擇一個(gè)已有數(shù)據(jù)的緩沖區(qū)k
P(mutex[k])
取出緩沖區(qū)k中的數(shù)據(jù)
V(S1)
V(mutex[k]) EndP833.11P61例P61例,設(shè)進(jìn)程PA和PB通過緩沖區(qū)隊(duì)列傳遞數(shù)據(jù)(如圖3.14)。PA為發(fā)送進(jìn)程,PB為接收進(jìn)程。PA發(fā)送數(shù)據(jù)時(shí)調(diào)用發(fā)送過程deposit(data),PB接收數(shù)據(jù)時(shí)調(diào)用過程remove(data)。且數(shù)據(jù)的發(fā)送和接收過程滿足如下條件:在PA至少送一塊數(shù)據(jù)入一個(gè)緩沖區(qū)之前,PB不可能從緩沖區(qū)中取出數(shù)據(jù)(假定數(shù)據(jù)塊長等于緩沖區(qū)長度)PA往緩沖隊(duì)列發(fā)送數(shù)據(jù)時(shí),至少有一個(gè)緩沖區(qū)是空的由PA發(fā)送的數(shù)據(jù)塊在緩沖隊(duì)列中按先進(jìn)先出(FIFO)方式排列描述發(fā)送進(jìn)程deposit(data)和接收進(jìn)程remove(data)圖3.14緩沖區(qū)隊(duì)列P833.11解:由題可知,進(jìn)程PA調(diào)用發(fā)送過程deposit(data)和進(jìn)程PB調(diào)用過程remove(data)必須同步執(zhí)行,因此,設(shè):Bufempty為進(jìn)程PA的私用信號(hào)量,初值Bufempty=nBuffull為進(jìn)程PB的私用信號(hào)量,初值Buffull=0
則,過程deposit(data)和remove(data)描述如下:P833.11設(shè):有兩個(gè)緩沖區(qū)隊(duì)列i=1、2,每個(gè)緩沖區(qū)隊(duì)列有n個(gè)緩沖區(qū)。
buf[i](k)表示第i個(gè)緩沖隊(duì)列的第k個(gè)緩沖區(qū)bufempty[0],buffull[1]為PA的私有信號(hào)量buffull[0],buffempty[1]是PB的私有信號(hào)量bufempty[0]=bufempty[1]=nbuffull[0]=buffull[1]=0PA調(diào)用send(0,m)發(fā)送數(shù)據(jù),receive(1,m)接收數(shù)據(jù);PB調(diào)用send(1,m)發(fā)送數(shù)據(jù),receive(0,m)接收數(shù)據(jù);發(fā)送過程send(i,m)begin
P(bufempty[i]) FIFO方式選擇一個(gè)空緩沖區(qū)k
buf[i](k)=m
buf[i](k)置滿標(biāo)記
V(buffull[i])End接收過程Receive(i,m)begin
P(buffull[i]) FIFO方式選擇一個(gè)滿緩沖區(qū)k m=buf[i](k)
buf[i](k)置空標(biāo)記
V(bufempty[i])endP843.13(參考p72例2)#include<stdio.h>Main(){
inti,r,P1,P2,fd[3]; charbuf[50],s[50];
pipe(fd); while((P1=fork())==-1); if(P1==0){ lockf(fd[1],1,0);
sprintf(buf,”childprocessP1issendingmessages!\n”);
printf(“childprocessP1!\n”); write(fd[1],buf,50); sleep(5); lockf(fd[1],0,0); exit(0); }
Else{ while((P2=fork())==-1); if(P2==0){ lockf(fd[1],1,0);
sprintf(buf,”childprocessP2issendingmessages!\n”);
printf(“childprocessP2!\n”); write(fd[1],buf,50); sleep(5); lockf(fd[1],0,0); exit(0); }
Else{ while((P3=fork())==-1); if(P3==0){ lockf(fd[1],1,0);
sprintf(buf,”childprocessP3issendingmessages!\n”);
printf(“childprocessP3!\n”); write(fd[1],buf,50); sleep(5); lockf(fd[1],0,0); exit(0); }
Wait(0);
If(r=read(fd[0],s,50)==-1)
Printf(“can’treadpipe\n”); Elseprintf(“%s\n”,s); Wait(0);
If(r=read(fd[0],s,50)==-1)
Printf(“can’treadpipe\n”); Elseprintf(“%s\n”,s);Wait(0);
If(r=read(fd[0],s,50)==-1)
Printf(“can’treadpipe\n”); Elseprintf(“%s\n”,s); Exit(0); } }}3.14哲學(xué)家就餐問題(習(xí)題p15)
有五個(gè)哲學(xué)家圍坐在一圓桌旁,桌中央有一盤通心粉,每人面前有一只空盤子,每兩人之間放一只筷子每個(gè)哲學(xué)家的行為是思考,感到饑餓,然后吃通心粉為了吃通心粉,每個(gè)哲學(xué)家必須拿到兩只筷子,并且每個(gè)人只能直接從自己的左邊或右邊去取筷子Repeat
思考;取fork[i];/*取左邊筷子*/
取fork[(i+1)mod5];/*取右邊筷子*/
進(jìn)食;
放fork[i];/*放左邊筷子*/
放fork[(i+1)mod5];/*放右邊筷子*/Untilfalse;方法:為每根筷子單獨(dú)設(shè)置一個(gè)信號(hào)量,取筷子執(zhí)行P操作,放筷子執(zhí)行V操作Varchopstick:array[0..4]ofsemaphore;Fori=0to4chopstick[i]=1NextiPi:Repeatthink;P(chopstick[i]);P(chopstick[i+1mod5]);eat;V(chopstick[i]);V(chopstick[i+1mod5]);Untilfalse;存在問題上述方法簡單,并能保證任何時(shí)候均不存在兩個(gè)相鄰的哲學(xué)家同時(shí)在吃飯。但由于進(jìn)程的并發(fā)執(zhí)行與CPU的調(diào)度問題,可能使得每個(gè)哲學(xué)家都只能拿到了自己左邊的筷子,那么這一組進(jìn)程就會(huì)發(fā)生死鎖現(xiàn)象。
為防止死鎖發(fā)生可采取的措施:最多允許4個(gè)哲學(xué)家同時(shí)坐在桌子周圍僅當(dāng)一個(gè)哲學(xué)家左右兩邊的筷子都可用時(shí),才允許他拿筷子()給所有哲學(xué)家編號(hào),奇數(shù)號(hào)的哲學(xué)家必須首先拿左邊的筷子,偶數(shù)號(hào)的哲學(xué)家則反之為了避免死鎖,把哲學(xué)家分為三種狀態(tài),思考,饑餓,進(jìn)食,并且一次拿到兩只筷子,否則不拿state:array[0..4]of(思考,饑餓,進(jìn)食);ph:array[0..4]ofsemaphore;mutex:semaphore;i:0..4;Proceduretest(i:=0…4);beginif(state[i]=饑餓)And(state[(i-1)mod5]<>進(jìn)食)And(state[(i+1)mod5]<>進(jìn)食)thenstate[i]=進(jìn)食
V(ph[i])
fiendProcedurephilosopher(i:0~4)BeginRepeat
思考;
state[i]:=饑餓;
P(mutex);test(i);
V(mutex);P(ph[i]);
拿左筷子;拿右筷子;進(jìn)食;放左筷子;放右筷子;
P(mutex)state[i]:=思考;
test([i-1]mod5);tset([i+1]mod5);
V(mutex);untilfalesEndstate[I]=思考ph[I]=0mutex=1第4章處理機(jī)調(diào)度P108習(xí)題2、4、5、6第4章處理機(jī)調(diào)度4.6假設(shè)有4道作業(yè),它們的提交時(shí)刻和執(zhí)行時(shí)間由下表給出:作業(yè)號(hào)提交時(shí)刻/小時(shí)執(zhí)行時(shí)間/小時(shí)110:002210:201310:400.5410:500.3計(jì)算在單道程序環(huán)境下,采用先來先服務(wù)調(diào)度算法和最短作業(yè)優(yōu)先調(diào)度算法時(shí)的平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間,并指出它們的調(diào)度順序。1.先來先服務(wù)(FCFS)調(diào)度算法將用戶作業(yè)和就緒進(jìn)程按提交順序或變?yōu)榫途w狀態(tài)的先后排隊(duì),按照先來先服務(wù)的方式調(diào)度
對(duì)于作業(yè)調(diào)度,該算法就是從后備作業(yè)隊(duì)列中(按進(jìn)入的時(shí)間順序排隊(duì))選擇隊(duì)首一個(gè)或幾個(gè)作業(yè),調(diào)入內(nèi)存,創(chuàng)建進(jìn)程,放入就緒隊(duì)列對(duì)于進(jìn)程調(diào)度,該算法就是從就緒隊(duì)列中選擇一個(gè)最先進(jìn)入隊(duì)列的進(jìn)程,將CPU分配于它表面上,F(xiàn)CFS算法是公平的。但對(duì)于執(zhí)行時(shí)間較短的作業(yè)或進(jìn)程,當(dāng)它們處于某些執(zhí)行時(shí)間很長的作業(yè)或進(jìn)程之后到達(dá),則它們將等待很長的時(shí)間
采用先來先服務(wù)調(diào)度算法時(shí)的周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間如下表所示,計(jì)算可得:平均周轉(zhuǎn)時(shí)間為:T=157m=2.6167h平均帶權(quán)周轉(zhuǎn)時(shí)間為:W=4.8075它們的調(diào)度順序是:作業(yè)1→作業(yè)2→作業(yè)3→作業(yè)4作業(yè)號(hào)提交時(shí)間
Tin執(zhí)行時(shí)間Tr開始時(shí)間TS結(jié)束時(shí)間Tc周轉(zhuǎn)時(shí)間T(m)帶權(quán)周轉(zhuǎn)時(shí)間W110:002(120)10:0012:00T1=120(2h)WA=1210:201(60)12:0013:00T2=160(2.67h)WB=2.67310:400.5(30)13:0013:30T3=170(2.83h)WC=5.67410:500.3(18)13:3013:48T4=178(2.97h)WD=9.89平均T=157m=2.6167hW=4.8075
先來先服務(wù)算法(FCFS)
最短作業(yè)優(yōu)先法(SJF)方法:選擇那些估計(jì)需要執(zhí)行時(shí)間最短的作業(yè)投入執(zhí)行優(yōu)點(diǎn):系統(tǒng)在同一時(shí)間內(nèi)處理的作業(yè)個(gè)數(shù)最多,吞吐量大于其他調(diào)度方式問題:SJF需要事先知道或至少需要估計(jì)每個(gè)作業(yè)所需的處理機(jī)時(shí)間只要不斷的有短作業(yè)進(jìn)入系統(tǒng),就有可能使長作業(yè)長期得不到運(yùn)行而“餓死”SJF偏向短作業(yè),不利于分時(shí)系統(tǒng)(由于不可搶占性)
采用最短作業(yè)優(yōu)先法時(shí)的周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間如下表所示(情況1:將作業(yè)收集成一批再處理),計(jì)算可得:平均周轉(zhuǎn)時(shí)間為:T=123m=2.05h平均帶權(quán)周轉(zhuǎn)時(shí)間為:W=1.8875它們的調(diào)度順序是:作業(yè)4→作業(yè)3→作業(yè)2→作業(yè)1作業(yè)號(hào)提交時(shí)間
Tin執(zhí)行時(shí)間Tr開始時(shí)間TS結(jié)束時(shí)間Tc周轉(zhuǎn)時(shí)間T(m)帶權(quán)周轉(zhuǎn)時(shí)間W110:002(120)12:3814:38T1=278W1=2.3167210:201(60)11:3812:38T2=138W2=2.3310:400.5(30)11:0811:38T3=58W3=1.93410:500.3(18)10:5011:08T4=18W4=1平均T=123m=2.05hW=1.8875最短作業(yè)優(yōu)先法(SJF)
采用最短作業(yè)優(yōu)先法時(shí)的周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間如下表所示(情況2:有作業(yè)就執(zhí)行),計(jì)算可得:平均周轉(zhuǎn)時(shí)間為:T=123m=2.05h平均帶權(quán)周轉(zhuǎn)時(shí)間為:W=1.8875它們的調(diào)度順序是:作業(yè)1→作業(yè)4→作業(yè)3→作業(yè)2作業(yè)號(hào)提交時(shí)間
Tin執(zhí)行時(shí)間Tr開始時(shí)間TS結(jié)束時(shí)間Tc周轉(zhuǎn)時(shí)間T(m)帶權(quán)周轉(zhuǎn)時(shí)間W110:002(120)10:0012:00T1=120(2h)W1=1210:201(60)12:4813:48T2=208(3.47h)W2=3.467310:400.5(30)12:1812:48T3=128(2.13h)W3=4.267410:500.3(18)12:0012:18T4=88(1.46h)W4=4.889平均T=136m=2.265hW=3.4057最短作業(yè)優(yōu)先法(SJF)
第5章存儲(chǔ)管理p144習(xí)題2、3、4、6、9、10、11、15、16、19補(bǔ)充作業(yè)1、存儲(chǔ)管理系統(tǒng)中,假定某進(jìn)程分得三個(gè)內(nèi)存塊,其頁面走向?yàn)橐韵滦蛄校?/p>
5、0、1、2、1、3、2、4、2、3、0、3、2、1、2、0、1、5、0、1
試用先進(jìn)先出(FIFO)、最近最久未使用(LRU)和理想置換算法分別計(jì)算程序訪問過程中所發(fā)生的缺頁次數(shù)和缺頁率。走向50121324230321201501頁150121324230321201501頁25012132423032120150頁3500213342203312015缺頁××××√×√×√√×√√×√×√×√√走向50121324230321201501頁150122334440021111500頁25011223334402222155頁3500112223340000211缺頁××××√×√×√√×√××√√√××√FIFO算法的缺頁中斷次數(shù)F=11,缺頁率f=11/20=55%
LRU算法的缺頁中斷次數(shù)F=10,缺頁率f=10/20=50%
走向50121324230321201501頁150122334440001111555頁25011223333330000111頁3500002222222222000缺頁√√√√√√√√√√√理想置換算法的缺頁中斷次數(shù)F=9
缺頁率f=9/20=45%
補(bǔ)充題2、某系統(tǒng)采用請(qǐng)求分頁存儲(chǔ)管理,頁長為2KB(即2048B),某作業(yè)的頁表如下所示。請(qǐng)簡述執(zhí)行指令60LOADA,5168的地址變換過程。358解:執(zhí)行指令60LOADA,5168的地址變換過程為:(1)取指令:首先根據(jù)該指令的邏輯地址60,得到相應(yīng)的邏輯頁式地址為(0,60),然后查頁表得到其物理塊為3,計(jì)算出物理地址為:
3×2048+60=6204
所以,從6204單元中取出指令執(zhí)行。(2)取數(shù)據(jù):首先根據(jù)數(shù)據(jù)的邏輯地址5168,得到相應(yīng)的邏輯頁式地址為(2,1072),然后查頁表得到其物理塊為8,計(jì)算出物理地址為:
8×2048+1072=17456
所以,從17456單元中取出數(shù)據(jù),放入寄存器A中。具體來說,該指令的執(zhí)行過程是:首先從內(nèi)存的6204
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中藥調(diào)劑員模擬試題與答案
- 稅務(wù)策劃面試題庫及答案
- 東莞市公開遴選公務(wù)員筆試題及答案解析
- 長沙市岳麓區(qū)輔警考試題《公安基礎(chǔ)知識(shí)》綜合能力試題庫附答案
- 臨床護(hù)理三基測(cè)試題(附答案)
- 2025年政府采購評(píng)審專家考試題庫含答案
- 路橋一建考試真題及答案
- 房地產(chǎn)開發(fā)經(jīng)營與管理《房地產(chǎn)市場(chǎng)與市場(chǎng)運(yùn)行考試題》考試題含答案
- 2025年度中式烹調(diào)師初級(jí)工理論知識(shí)考試試題庫及答案
- 醫(yī)學(xué)史考試試題及答案
- 《筑牢安全防線 歡度平安寒假》2026年寒假安全教育主題班會(huì)課件
- 信息技術(shù)應(yīng)用創(chuàng)新軟件適配測(cè)評(píng)技術(shù)規(guī)范
- 養(yǎng)老院老人生活設(shè)施管理制度
- 2026年稅務(wù)稽查崗位考試試題及稽查實(shí)操指引含答案
- (2025年)林業(yè)系統(tǒng)事業(yè)單位招聘考試《林業(yè)知識(shí)》真題庫與答案
- 租賃手機(jī)籌資計(jì)劃書
- 短篇文言文翻譯
- 疾病產(chǎn)生分子基礎(chǔ)概論
- 演示文稿第十五章文化中心轉(zhuǎn)移
- 醫(yī)療設(shè)備購置論證評(píng)審表
- GB/T 16998-1997熱熔膠粘劑熱穩(wěn)定性測(cè)定
評(píng)論
0/150
提交評(píng)論