浙大遠程操作系統(tǒng)原理離線作業(yè)及答案_第1頁
浙大遠程操作系統(tǒng)原理離線作業(yè)及答案_第2頁
浙大遠程操作系統(tǒng)原理離線作業(yè)及答案_第3頁
浙大遠程操作系統(tǒng)原理離線作業(yè)及答案_第4頁
浙大遠程操作系統(tǒng)原理離線作業(yè)及答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

浙?遠程操作系統(tǒng)原理離線作業(yè)及答案操作系統(tǒng)原理離線作業(yè)?、單選題1.進程P0和P1的共享變量定義及其初值為booleanflag[2];intturn=0;flag[0]=FALSE;flag[1]=FALSE;若進程P0和P1訪問臨界資源的類C代碼實現(xiàn)如下:voidP0()//P0進程{while(TURE){flag[0]=TRUE;turn=1;while(flag[1]&&turn==1);臨界區(qū);flag[0]=FALSE;}}voidP1()//P1進程{while(TURE){flag[1]=TRUE;turn=0;while(flag[0]&&turn==0);臨界區(qū);flag[1]=FALSE;}}則并發(fā)執(zhí)?進程P0和P1時產(chǎn)?的情況是:DA.不能保證進程互斥進?臨界區(qū)、會出現(xiàn)“饑餓”現(xiàn)象B.不能保證進程互斥進?臨界區(qū)、不會出現(xiàn)“饑餓”現(xiàn)象C.能保證進程互斥進?臨界區(qū)、會出現(xiàn)“饑餓”現(xiàn)象D.能保證進程互斥進?臨界區(qū)、不會出現(xiàn)“饑餓”現(xiàn)象2.有兩個進程P1和P2描述如下:shareddata:intcounter=6;P1:Computing;counter=counter+1;P2:

Printing;counter=counter-2;兩個進程并發(fā)執(zhí)?,運?完成后,counter的值不可能為C。A.4B.5C.6D.73.某計算機采??級頁表的分頁存儲管理?式,按字節(jié)編址,頁??為210字節(jié),頁表項??為2字節(jié),邏輯地址結(jié)構為:頁?錄號頁號頁內(nèi)偏移量邏輯地址空間??為216頁,則表?整個邏輯地址空間的頁?錄表中包含表項的個數(shù)?少是BA.64B.128C.256D.5124.在動態(tài)分區(qū)系統(tǒng)中,有如下空閑塊:空閑塊塊??(KB)塊的基址18060275150355250490350此時,某進程P請求50KB內(nèi)存,系統(tǒng)從第1個空閑塊開始查找,結(jié)果把第4個空閑塊分配給了P進程,請問是?哪?種分區(qū)分配算法實現(xiàn)這??案?CA.?次適應B.最佳適應C.最差適應D.下次適應5.在?頁式存儲管理系統(tǒng)中,頁表內(nèi)容如下所?。頁號幀號021128若頁??為1K,邏輯地址的頁號為2,頁內(nèi)地址為451,轉(zhuǎn)換成的物理地址為AA.8643B.8192C.2048D.24996.采?段式存儲管理的系統(tǒng)中,若地址?32位表?,其中20位表?段號,則允許每段的最?長度是BA.224B.212C.210D.2327.在?段式存儲管理系統(tǒng)中,某段表的內(nèi)容如下:段號段?址段長

0100K35K1560K20K2260K15K3670K32K若邏輯地址為(2,158),則它對應的物理地址為__B___。A.100K+158B.260K+158C.560K+158D.670K+1588.?個分段存儲管理系統(tǒng)中,地址長度為32位,其中段長占8位,則最?段長是CA.28字節(jié)B.216字節(jié)C.224字節(jié)D.232字節(jié)9.有?請求分頁式存儲管理系統(tǒng),頁???為每頁100字節(jié),有?個50×50的整型數(shù)組按?為主序連續(xù)存放,每個整數(shù)占兩個字節(jié),將數(shù)組初始化為0的程序描述如下:intA[50][50];for(inti=0;i<50;i++)for(intj=0;j<50;j++)A[i,j]=0;若在程執(zhí)?時內(nèi)存只有?個存儲塊?來存放數(shù)組信息,試問該程序執(zhí)?時產(chǎn)?B次缺頁中斷。A.1B.50C.100D.250010.?臺計算機有4個頁框,裝?時間、上次引?時間、和每個頁的訪問位R和修改位M,如下所?:頁裝?時間上次引?時間RM012627900123026010212027211316028011采?FIFO算法將淘汰C頁;A.0B.1C.2D.311.?臺計算機有4個頁框,裝?時間、上次引?時間、和每個頁的訪問位R和修改位M,如下所?:頁裝?時間上次引?時間RM012627900123026010212027211316028011采?NRU算法將淘汰A頁;A.0B.1C.2D.312.?臺計算機有4個頁框,裝?時間、上次引?時間、和每個頁的訪問位R和修改位M,如下所?:

頁裝?時間上次引?時間RM012627900123026010212027211316028011采?LRU算法將淘汰B頁;A.0B.1C.2D.313.?臺計算機有4個頁框,裝?時間、上次引?時間、和每個頁的訪問位R和修改位M,如下所?:頁裝?時間上次引?時間RM012627900123026010212027211316028011采?第?次機會算法將淘汰___A___頁;A.0B.1C.2D.3?、綜合題1.4在所列的兩種設置中,哪些功能需要操作系統(tǒng)提供?持?(a)?持設備(b)實時系統(tǒng)。a.批處理程序b.虛擬存儲器c.分時答:對于實時系統(tǒng)來說,操作系統(tǒng)需要以?種公平的?式?持虛擬存儲器和分時系統(tǒng)。對于?持系統(tǒng),操作系統(tǒng)需要提供虛擬存儲器,但是不需要提供分時系統(tǒng)。批處理程序在兩種環(huán)境中都是?必需的。1.17列出下列操作系統(tǒng)的基本特點:a.批處理b.交互式c.分時d.實時e.?絡f.并?式g.分布式h.集群式i.?持式答:a.批處理:具有相似需求的作業(yè)被成批的集合起來,并把它們作為?個整體通過?個操作員或?動作業(yè)程序裝置運?通過計算機。通過緩沖區(qū),線下操作,后臺和多道程序,運?嘗試保持CPU和I/O?直繁忙,從?使得性能被提?。批處理系統(tǒng)對于運?那些需要較少互動的?型作業(yè)?分適?。它們可以被更遲地提交或獲得。a.交互式:這種系統(tǒng)由許多短期交易構成,并且下?個交易的結(jié)果是?法預知的。從?戶提交到等待結(jié)果的響應時間應該是?較短的,通常為1秒左右。b.分時:這種系統(tǒng)使?CPU調(diào)度和多道程序來經(jīng)濟的提供?個系統(tǒng)的?機通信功能。CPU從?個?戶快速切換到另?個?戶。以每個程序從終端機中讀取它的下?個控制卡,并且把輸出的信息正確快速的輸出到顯?器上來替代?soopledcardimages定義的作業(yè)。c.實時:經(jīng)常?于專門的?途。這個系統(tǒng)從感應器上讀取數(shù)據(jù),?且必須在嚴格的時間內(nèi)做出響應以保證正確的性能。

d.?絡:提供給操作系統(tǒng)?個特征,使得其進??絡,?如;?件共享。e.并?式:每?個處理器都運?同?個操作系統(tǒng)的拷貝。這些拷貝通過系統(tǒng)總線進?通信。f.分布式:這種系統(tǒng)在?個物理處理器中分布式計算,處理器不共享內(nèi)存或時鐘。每個處理器都有它各?的本地存儲器。它們通過各種通信線路在進?通信,?如:?條?速的總線或?個本地的?絡。g.集群式:集群系統(tǒng)是由多個計算機耦合成單?系統(tǒng)并分布于整個集群來完成計算任務。i.?持式:?種可以完成像記事本,email和?頁瀏覽等簡單任務的?型計算機系統(tǒng)。?持系統(tǒng)與傳統(tǒng)的臺式機的區(qū)別是更?的內(nèi)存和屏幕以及更慢的處理能?。2.3討論向操作系統(tǒng)傳遞參數(shù)的三個主要的?法。答:1.通過寄存器來傳遞參數(shù)2.寄存器傳遞參數(shù)塊的?地址3.參數(shù)通過程序存放或壓進堆棧中,并通過操作系統(tǒng)彈出堆棧。2.12采?微內(nèi)核設計系統(tǒng)的主要優(yōu)點是什么?在微內(nèi)核中如何使客戶程序和系統(tǒng)服務相互作??微內(nèi)核缺點是什么?答:a)增加?個新的服務不需要修改內(nèi)核b)在?戶模式中?在內(nèi)核模式中更安全、更易操作c)?個簡單的內(nèi)核設計和功能?般導致?個更可靠的操作系統(tǒng)?戶程序和系統(tǒng)服務通過使?進程件的通信機制在微內(nèi)核中相互作?,例如發(fā)送消息。這些消息由操作系統(tǒng)運送。微內(nèi)核最主要的缺點是與進程間通信的過度聯(lián)系和為了保證?戶程序和系統(tǒng)服務相互作??頻繁使?操作系統(tǒng)的消息傳遞功能。3.2問:描述?下內(nèi)核在兩個進程間進?上下?功換的動作.答:總的來說,操作系統(tǒng)必須保存正在運?的進程的狀態(tài),恢復進程的狀態(tài)。保存進程的狀態(tài)主要包括CPU寄存器的值以及內(nèi)存分配,上下?切換還必須執(zhí)??些確切體系結(jié)構的操作,包括刷新數(shù)據(jù)和指令緩存。進程關聯(lián)是由進程的PCB來表?的,它包括CPU寄存器的值和內(nèi)存管理信息等。當發(fā)?上下?切換時,內(nèi)核會將舊進程的關聯(lián)狀態(tài)保存在其PCB中,然后裝?經(jīng)調(diào)度要執(zhí)?的新進程的已保存的關聯(lián)狀態(tài)。3.4如下所?的程序,說明LINEA可能會輸出什么?#include#include#includeintvalue=8;intmain(){pid_tpid;/*forkachildprocess*/pid=fork();if(pid==0){/*childprocess*/value+=15;}else{/*parentprocess*//*parentwillwaitforthechildtocomplete*/wait(NULL);printf("Parent:value=%d\n",value);/*LINEA*/exit(0);}

}答:Parent:value=8。4.4在多線程程序中,以下哪些程序狀態(tài)組成是被線程共享的?a.寄存值b.堆內(nèi)存c.全局變量d.棧內(nèi)存答:?個線程程序的線程共享堆內(nèi)存和全局變量,但每個線程都有屬于??的?組寄存值和棧內(nèi)存。4.7由圖4.11給出的程序使?了Pthread的應?程序編程接?(API),在程序的第c?和第p?分別會輸出什么?#include#includeintvalue=0;void*runner(void*param);/*thethread*/intmain(intargc,char*argv[]){intpid;pthread_ttid;pthread_attr_tattr;pid=fork();if(pid==0){/*childprocess*/pthread_attr_init(&attr);pthread_create(&tid,&attr,runner,NULL);pthread_join(tid,NULL);printf(“CHILD:value=%d”,value);/*LINEC*/}elseif(pid>0){/*parentprocess*/wait(NULL);printf(“PARENT:value=%d”,value);/*LINEP*/}}void*runner(void*param){value=10;pthread_exit(0);}答:c?會輸出10,p?會輸出0.5.4考慮下列進程集,進程占?的CPU區(qū)間長度以毫秒來計算:進程區(qū)間時間優(yōu)先級P1103P211P323P414

P552假設在時刻0以進程P1,P2,P3,P4,P5的順序到達。a.畫出4個Gantt圖分別演??FCFS、SJF、?搶占優(yōu)先級(數(shù)字?代表優(yōu)先級?)和RR(時間?=1)算法調(diào)度時進程的執(zhí)?過程。b.每個進程在每種調(diào)度算法下的周轉(zhuǎn)時間是多少?c.每個進程在每種調(diào)度算法下的等待時間是多少?d.哪?種調(diào)度算法的平均等待時間對所有進程??最??答:a.?特圖FCFSP1P2P3P4P512345678910111213141516171819SJFP2P4P3P5P112345678910111213141516171819Non-preemptivePriorityP2P5P1P3P412345678910111213141516171819RR(quantum=1)P1P2P3P4P5P1P3P5P1P5P1P5P1P5P1P1P1P1P112345678910111213141516171819b.TurnaroundTimeProcessFCFSSJFNPPRR(quantum=1)P110191619P211112P3134187P4142194P5199614Average13.47.2129.2c.WaitingTimeProcessFCFSSJFNPPRR(quantum=1)P10969P210001P3112165P4131183P514419Average9.63.28.25.4

d.SJF5.5下?哪些算法會引起饑餓a.先來先服務b.最短作業(yè)優(yōu)先調(diào)度c.輪轉(zhuǎn)法調(diào)度d.優(yōu)先級調(diào)度答:最短作業(yè)優(yōu)先調(diào)度和優(yōu)先級調(diào)度算法會引起饑餓。5.7考慮?個運?10個I/O約束(型)任務和?個CPU約束(型)任務的系統(tǒng)。假設,I/O約束任務每進?1毫秒的CPU計算發(fā)射?次I/O操作,但每個I/O操作的完成需要10毫秒。同時,假設上下?切換要0.1毫秒,所有的進程都是長進程。對?個RR調(diào)度來說,以下情況時CPU的利?率是多少:a.時間?是1毫秒b.時間?是10毫秒答:a.時間?是1毫秒:不論是哪個進程被調(diào)度,這個調(diào)度都會為每?次的上下?切換花費?個0.1毫秒的上下?切換。CPU的利?率是1/1.1*100=92%。b.時間?是10毫秒:這I/O限制任務會在使?完1毫秒時間?后進??次上下?切換。這個時間?要求在所有的進程間都??遍,因此,10*1.1+10.1(因為每個I/O限定任務執(zhí)?為1毫秒,然后承擔上下?切換的任務,?CPU限制任務的執(zhí)?10毫秒在承擔?個上下?切換之前)。因此,CPU的利?率是20、21.1*100=94%。6.01在?產(chǎn)者和消費者問題中,信號量mutex,empty,full的作?是什么?如果對調(diào)?產(chǎn)者進程中的兩個wait操作和兩個signal操作,則可能發(fā)?什么情況?答:信號量mutex的作?是保證各?產(chǎn)者進程和消費者進程對緩沖池的互斥訪問。信號量empty和full均是資源信號量,它們分別對應于緩沖池中的空閑緩沖區(qū)和緩沖池中的產(chǎn)品,?產(chǎn)者需要通過wait(empty)來申請使?空閑緩沖區(qū),?消費者需要通過wait(full)才能取得緩沖中的產(chǎn)品,可見,這兩個信號量起著同步?產(chǎn)者和消費者的作?,它們保證?產(chǎn)者不會將產(chǎn)品存放到滿緩沖區(qū)中,?消費者不會從空緩沖區(qū)中取產(chǎn)品。在?產(chǎn)者—消費者問題中,如果將兩個wait操作,即wait(full)和wait(mutex)互換位置,或者wait(empty)和wait(mutex)互換位置,都可能引起死鎖??紤]系統(tǒng)中緩沖區(qū)全滿時,若??產(chǎn)者進程先執(zhí)?了wait(mutex)操作并獲得成功,當再執(zhí)?wait(empty)操作時,它將因失敗?進?阻塞狀態(tài),它期待消費者執(zhí)?signal(empty)來喚醒??,在此之前,它不可能執(zhí)?signal(mutex)操作,從?使企圖通過wait(mutex)進???的臨界區(qū)的其他?產(chǎn)者和所有的消費者進程全部進?阻塞狀態(tài),系統(tǒng)進?死鎖狀態(tài)。類似地,消費者進程若先執(zhí)?wait(mutex),后執(zhí)?wait(full)同樣可能造成死鎖。signal(full)和signal(mutex)互換位置,或者signal(empty)和signal(mutex)互換位置,則不會引起死鎖,其影響只是使某個臨界資源的釋放略為推遲?些。6.02?組合作進程,執(zhí)?順序如下圖。請?wait、signal操作實現(xiàn)進程間的同步操作。答:如圖?并發(fā)進程之間的前趨關系,為了使上述進程同步,可設置8個信號量a、b、c、d、e、f、g、h,它們的初值均為0,?相應的進程可描述為(其中“…”表?進程原來的代碼):main()cobegin{P1(){…;signal(a);signal(b);}P2(){wait(a);…;signal(c);signal(d);}P3(){wait(b);…;signal(e);signal(f);}P4(){wait(c);wait(e);…;signal(g);}P5(){wait(d);wait(f);…;signal(h);}P6(){wait(g);wait(h);…;}}coend6.03在?產(chǎn)者和消費者問題中,多個?產(chǎn)者進程(ProducerProcess)和多個消費者進程(ConsumerProcess)共享?個??為8的緩沖區(qū),他們的信號量和共享變量設置如下:intnextc=0,nextp=0,buf[8];semaphorefull;empty;mutex;?產(chǎn)者進程和消費者進程問題的算法描述如下:ProducerProcess:ConsumerProcess:intitemp;intitemc;while(1){while(1){hgfedcbaP1P4P5P6P3P2各進程的執(zhí)?順序P6P5

P2P1P3P41itemp=rand();//Generateanumber1wait(full);2wait(empty);2wait(mutex);3wait(mutex);3itemc=buf[nextc];4buf[nextp]=itemp;4nextc=(nextc+1)%8;5nextp=(nextp+1)%8;5signal(mutex);6signal(mutex);6signal(empty);7signal(full);7cout<<itemc<<endl;}}(1)?產(chǎn)者進程和消費者進程的臨界區(qū)是哪些?(2)信號量full、empty和mutex的初值是多少?(3)如果對調(diào)?產(chǎn)者進程中的兩個P操作即第2?和第3?,以及對調(diào)消費者進程中的兩個P操作即第1?和第2?,如下所???赡馨l(fā)?什么情況?ProducerProcessConsumerProcess……1itemp=rand();//Generateanumber1wait(mutex);2wait(mutex);2wait(full);3wait(empty);3itemc=buf[nextc];……(4)上?的?產(chǎn)者和消費者同步算法有?個缺點,在有空緩沖區(qū)時,當消費者進程正在臨界區(qū)時,?產(chǎn)者進程必須等待,反之亦然。您如何可以解決這個問題,以提??產(chǎn)者和消費者進程之間并發(fā)?寫出新的?產(chǎn)者進程和消費者進程的同步算法。答:(1)?產(chǎn)者進程的臨界區(qū)是第4?和第5?;消費者進程的臨界區(qū)是第3?和第4?。(2)信號量full、empty和mutex的初值分別是:empty=8,full=0,mutex=1。(3)系統(tǒng)可能會產(chǎn)?死鎖。例如,?產(chǎn)者進程得到信號量mutex,但是沒有空緩沖區(qū)即empty≤0時,此時?產(chǎn)者進程阻塞;?消費者進程??法得到信號量mutex,此時消費者進程也阻塞,系統(tǒng)產(chǎn)?了死鎖。(4)增加?個信號量mutex1,初值為1,其算法如下:ProducerProcessConsumerProcessintitemp;intitemc;while(1){while(1){1itemp=rand();//Generateanumber1wait(full);2wait(empty);2wait(mutex);3wait(mutex1);3itemc=buf[nextc];4buf[nextp]=itemp;4nextc=(nextc+1)%8;5nextp=(nextp+1)%8;5signal(mutex);6signal(mutex1);6signal(empty);7signal(full);7cout<<itemc<<endl;}

}6.04有2個合作的進程P1、P2。他們從?臺輸?設備讀?數(shù)據(jù),P1進程讀?數(shù)據(jù)a,P2進程讀?數(shù)據(jù)b。輸?設備是?臺獨享設備。兩個進程做如下計算:P1:x=a+bP2:y=a*b計算完成后結(jié)果的x、y由進程P1輸出。?信號量實現(xiàn)P1、P2同步算法。答:設置三個信號:s1表?數(shù)據(jù)a是否讀?,s2表?數(shù)據(jù)b是否讀?,s3表?數(shù)據(jù)y=a*b計算是否完成。P1和P2兩個進程的同步算法如下:P1P2輸?設備Input(a)Input(b)輸出設備semaphores1=0,s2=0,s3=0;main()cobegin{P1:P2:{{input(a);wait(s1);signal(s1);input(b);wait(s2);signal(s2);x=a+b;y=a*b;wait(s3);signal(s3);Print(x,y,z);}}}coend7.1假設有如下圖所?的交通死鎖情況:(1)說明產(chǎn)?死鎖的4個必要條件在此處成?。(2)給出?個避免死鎖的簡單規(guī)則。答:(1)在此處,產(chǎn)?死鎖的四個必要條件如下:1)互斥條件。每個車道的每段道路只能被?輛車占?。2)請求與保持條件。每個車隊占?了?個車道,并請求前?的車道,即使需等待前?車道上的車隊駛離,它仍將持有已占?的車道。3)不搶占(剝奪)條件。在前?的車道被其它車隊占?時,因為是單車道,?其它車隊?不會后退,所以?法從其它車隊處搶占車道。4)環(huán)路等待條件。向東?駛的車隊等待向北?駛的車隊讓出車道,向北?駛的車隊等待向西?駛的車隊讓出車道,向西?駛的車隊等待向南?駛的車隊讓出車道,?向南?駛的車隊則等待向東?駛的車隊讓出車道。故存在?循環(huán)等待鏈。(2)增加?個約束條件:只有前?兩個路?都空閑時,才能占?第?個路??;蛘撸稍?字路?設置?交通信號燈,并使南北?向的兩個車隊和東西?向的兩個車隊互斥地使??字路?,便可避免交通死鎖。7.11設有?系統(tǒng)在某時刻的資源分配情況如下:進程號已分配資源最?請求資源剩余資源ABCDABCDABCDP0001200121520P110001750P213542356P306320652P400140656請問:(1)系統(tǒng)中各進程尚需資源數(shù)各是多少?(2)當前系統(tǒng)安全嗎?(3)如果此時進程P1提出資源請求(0,4,2,0),系統(tǒng)能分配給它嗎?答:(1)尚需資源數(shù)矩陣如下:Need=Max–AllocationNeedABCDP00000P10750P21002P30020P40642(2)系統(tǒng)是安全的,因為可以找到?個安全序列:(3)如P1申請(0,4,2,0),則:Request1(0,4,2,0)<=need1(0,7,5,0)Request1(0,4,2,0)<=available(1,5,2,0)新的狀態(tài)為AllocationMaxNeedAvailable

P00012001200001100P1142017500330P2135423561002P3063206520020P4001406560642該狀態(tài)是安全的,存在安全序列如,所以可以分配資源給P1。8.3某系統(tǒng)有五個固定分區(qū),其長度依次為100K,500K,200K,300K,600K。今有四個進程,對內(nèi)存的需求分別是212K,417K,112K,426K。當分別?First-fit,Best-fit,Worst-fit算法響應這四個進程的內(nèi)存申請時,請分別給出系統(tǒng)的內(nèi)存分配動態(tài)。哪種算法最有效?答:根據(jù)First-fit、Best-fit、Worst-fit算法,計算結(jié)果如下:First-fit:212K進程裝到500K分區(qū)417K進程裝到600K分區(qū)112K進程裝到200K分區(qū)426K進程暫時等待Best-fit:212K進程裝到300K分區(qū)417K進程裝到500K分區(qū)112K進程裝到200K分區(qū)426K進程裝到600K分區(qū)Worst-fit:212K進程裝到600K分區(qū)417K進程裝到500K分區(qū)112K進程裝到300K分區(qū)426K進程暫時等待8.5對下列問題,試?較連續(xù)內(nèi)存分配?案、純段式分配?案、純頁式分配?案中的內(nèi)存組織?法:a.外部碎?b.內(nèi)部碎?c.共享跨進程代碼的能?答:連續(xù)內(nèi)存分配會產(chǎn)?外部碎?,因為地址空間是被連續(xù)分配的,當舊進程結(jié)束,新進程初始化的時候,洞會擴?。連續(xù)內(nèi)存分配也不允許進程共享代碼,因為?個進程的虛擬內(nèi)存段是不被允許闖?不連續(xù)的段的。純段式分配也會產(chǎn)?外部碎?,因為在物理內(nèi)存中,?個進程的段是被連續(xù)放置的,以及當死進程的段被新進程的段所替代時,碎?也將會產(chǎn)?。然?,段式分配可以使進程共享代碼;?如,兩個不同的進程可以共享?個代碼段,但是有不同的數(shù)據(jù)段。純頁式分配不會產(chǎn)?外部碎?,但會產(chǎn)?內(nèi)部碎?。進程可以在頁granularity中被分配,以及如果?頁沒有被完全利?,它就會產(chǎn)?內(nèi)部碎?

并且會產(chǎn)??個相當?shù)目臻g浪費。在頁granularity,頁式分配也允許進程共享代碼。8.9考慮?個分頁式存儲管理系統(tǒng),其頁表常駐內(nèi)存。(1)如果內(nèi)存訪問耗時200ns,那么,訪問內(nèi)存中的數(shù)據(jù)需要多長時間?(2)如果引?聯(lián)想寄存器,?且75%的頁?可以從關聯(lián)寄存器中找到,那么,此時的有效訪問時間為多少?(假設訪問關聯(lián)寄存器的時間可以忽略)答:(1)400納秒,其中,200納秒訪問頁表,200納秒訪問內(nèi)存中的數(shù)據(jù)。(2)有效訪問時間=0.75*(200納秒訪問內(nèi)存數(shù)據(jù)+0納秒訪問關聯(lián)寄存器)+0.25*(200納秒訪問內(nèi)存數(shù)據(jù)+200納秒訪問頁表)=250納秒8.12假設有下列段表:段基地址段長度02196001230014290100313275804195296下列邏輯地址對應的物理地址是什么?(1)0,430(2)1,10(3)2,500(4)3,400(5)4,112答:(1)219+430=649(2)2300+10=2310(3)第2段的有效長度是100。段內(nèi)偏移量500超過了這個上限,所以這是個?法地址(4)132700=1727(5)第4段的有效長度是96。段內(nèi)偏移量112超過了這個上限,所以這是個?法地址9.5假設?個“按需調(diào)頁”虛擬存儲空間,頁表由寄存器保存。在存在空閑頁幀的條件下,處理?次缺頁的時間是8毫秒。如果沒有空閑頁?,但待換出頁?并未更改,處理?次缺頁的時間也是8毫秒。如果待換出頁?已被更改,則需要20毫秒。訪問?次內(nèi)存的時間是100納秒。假設70%的待換出頁?已被更改,請問缺頁率不超過多少,才能保證有效訪問時間?于或等于200納秒?答:設缺頁率為P。題?并沒有明確,當缺頁中斷時,內(nèi)存中是否有空閑頁幀,所以假設內(nèi)存總是忙的。訪問內(nèi)存中頁?:(1-P)*100ns頁?不在內(nèi)存,但不需要保存待換出頁?:P*(1–70%)*(8ms+100ns)頁?不在內(nèi)存,但需要保存待換出頁?:P*70%*(20ms+100ns)所以,有效訪問時間=(1-P)*100ns+P*(1–70%)*(8ms+100ns)+P*70%*(20ms+100ns)=200nsP=0.0000069.10對?個請求調(diào)頁系統(tǒng)測得如下數(shù)據(jù):●CPU利?率20%●?作頁?交換的磁盤的利?率97.7%●其它I/O設備利?率5%下列措施中,哪些會改善CPU利?率(如果有的話),請說明理由:(1)安裝?個更快的CPU(2)安裝?個更?容量的磁盤?作頁?交換(3)增加并發(fā)進程數(shù)(4)減少并發(fā)進程數(shù)(5)安裝更多內(nèi)存

(6)安裝更快的硬盤,或安裝更多的硬盤和控制器(7)增加?個預取頁?算法(8)增加頁?長度答:a.?先判斷系統(tǒng)正在頻繁地進?換頁操作。所以,減少并發(fā)進程數(shù)會顯著地減少換頁操作,提?CPU的利?率。其它措施也有些效果,例如,安裝更多內(nèi)存。b.安裝?個更快的CPU。沒?。c.安裝?個更?容量的磁盤?作頁?交換。沒?,交換空間本來就?夠了。d.增加并發(fā)進程數(shù)。沒?,情況將會更糟。e.減少并發(fā)進程數(shù)。效果明顯。f.安裝更多內(nèi)存??赡軙行Ч?,因為空閑頁幀增加了,換頁的?率將相對減少。g.安裝更快的硬盤,或安裝更多的硬盤和控制器。效果不明顯。h.增加?個預取頁?算法。效果不確定。i.增加頁?長度。如果順序訪問居多,則會減少缺頁次數(shù)。如果隨機訪問居多,因為單個頁?占?更?的物理空間,頁幀總數(shù)減少,所以缺頁次數(shù)會增加;因為頁?長度增加,頁?的傳輸時間會增加。綜上,此?案的效果不確定。9.14?頁式虛擬存儲系統(tǒng),?于頁?交換的磁盤的平均訪問、傳輸時間是20毫秒。頁表保存在主存,訪問時間1微秒。也就是說,每引??次指令或數(shù)據(jù),需要訪問兩次內(nèi)存。為改善性能,我們可以增設?個關聯(lián)寄存器。如果頁表項在關聯(lián)寄存器?,則只要訪問?次內(nèi)存就夠了。假設80%的訪問,其頁表項在關聯(lián)寄存器中;剩下的20%?,10%的訪問(即總數(shù)的2%)會產(chǎn)?缺頁。請計算有效訪問時間。答:有效訪問時間=80%*1微秒+(1-80%)((1-10%)*1微秒*2+10%*(1微秒*2+20毫秒))=0.8+0.2*(0.9*2+0.1*20002)=0.8+0.2*2002=401.2微秒9.01在某請求分頁管理系統(tǒng)中,?個作業(yè)共5頁,作業(yè)執(zhí)?時依次訪問如下頁?:1,4,3,1,2,5,1,4,2,1,4,5,若分配給該作業(yè)的主存塊數(shù)為3,分別采?FIFO、LRU,試求出缺頁中斷的次數(shù)及缺頁率。(要求畫出頁?置換情況表)答:(1)采?FIFO頁?置換算法,其缺頁情況如表所?:FIFO頁?置換算法的缺頁情況143125142145頁??向塊1111222444塊244455522塊33331115缺頁√√√√√√√√√缺頁中斷次數(shù)為9,缺頁率為9/12=75%。(2)采?LRU頁?置換算法,其缺頁情況如表所?。LRU頁?置換算法的缺頁情況頁?

143125142145?向塊111111111塊24422444塊3335525缺頁√√√√√√√√缺頁中斷次數(shù)為8,缺頁率為8/12=67%。10.1假設有?個?件系統(tǒng),它??的?件被刪除后,當連接到該?件的鏈接依然存在時,?件的磁盤空間會再度被利?。如果?個新的?件被創(chuàng)建在同?個存儲區(qū)域或具有同樣的絕對路徑名,這會產(chǎn)?什么問題?如何才能避免這些問題?答:假設F1是舊的?件,F(xiàn)2是新的?件。當?個?戶通過已存在的鏈接訪問F1,實際卻是訪問F2。這?使?的是對?件F1的存取保護?不是與?件F2相關的存儲保護。采?刪除指向?個已刪除?件的所有鏈接的?法避免該問題。可以通過?種?法實現(xiàn):1.設置?個記錄指向?個?件的所有鏈接的鏈表,當這個?件被刪除時,刪掉這些鏈接。2.保留這些鏈接,當試圖訪問?個已被刪除的?件時,刪掉這些鏈接。3.設置?個?件的指針鏈表(或計數(shù)器),當指向該?件的所有指針被刪除時才真正刪除這個?件。10.9有些系統(tǒng)?件提供?件共享時候只保留?件的?個拷貝,?另外的?個系統(tǒng)則是保留多個拷貝,對共享?件的每?個?戶提供?個拷貝,論述這種?法的相對優(yōu)點。答:在?個單?的復制,同時更新了?個?件可能會導致?戶獲得不正確的信息,?件被留在了不正確的狀態(tài).隨著多份拷貝,它會浪費存儲?且各種副本可能不?致11.6假設?個在磁盤上的?件系統(tǒng),其中邏輯塊和物理塊??為512字節(jié)。假定每個?件的信息已經(jīng)在內(nèi)存中,對于三種分配策略中的每?種(連續(xù)、鏈接、索引),請回答下?這些問題。(1)說明在這個系統(tǒng)中是如何實現(xiàn)從邏輯地址到物理地址映射的?(對于索引分配,假設?件的長度總是?于512塊)。(2)如果當前位于邏輯塊10(即最后?次訪問的邏輯塊是10),且希望訪問邏輯塊4,必須從磁盤上讀多少個物理塊?答:令Z是開始邏輯地址(塊號)。a.若使?連續(xù)分配策略時。?512去除邏輯地址,則X和Y分別表?得到的整數(shù)和余數(shù)。(1)將X加上Z得到物理塊號,Y為塊內(nèi)的位移(2)1b.若使?鏈接分配策略。?511去除邏輯地址,則X和Y分別表?得到的整數(shù)和余數(shù)。(1)查找鏈表到第X+1塊,Y+1位該塊內(nèi)的位移量(2)4c.若使?索引分配策略。?512去除邏輯地址,則X和Y分別表?得到的整數(shù)和余數(shù)。(1)把索引塊讀?內(nèi)存中,則物理塊地址存放在索引塊在第X位置中,Y為塊內(nèi)的位移量(2)211.01考慮?個含有100塊的?件。假如?件控制塊(和索引塊,當?索引分配時)已經(jīng)在內(nèi)存中。當使?連續(xù)、鏈接、單級索引分配策略時,各需要多少次磁盤I/O操作?假設在連續(xù)分配時,在開始部分沒有擴張的空間,但在結(jié)尾部分有擴張空間,并且假設被增加塊的信息已在內(nèi)存中:(1)在開始增加?塊。(2)在中間增加?塊。(3)在末端增加?塊。(4)在開始刪除?塊。(5)在中間刪除?塊。(6)在末端刪除?塊。

答:各種策略相應的磁盤I/O操作次數(shù)如表連續(xù)鏈接索引a.20111b.101521c.131d.19810e.98520f.0100011.02有?磁盤組共有10個盤?,每個盤?上有100個磁道,每個磁道有16個扇區(qū)。假設分配以扇區(qū)為單位。(1)若使?位?圖管理磁盤空間,問位?圖需要占?多少空間?(2)若空??件?錄的每個表?占?5個字節(jié),問什么時候空??件?錄?于位?圖?答:空??件?錄是管理磁盤空間的?種?法,該?法將?件存儲設備上的每個連續(xù)空閑區(qū)看作?個空??件,系統(tǒng)為所有空??件單獨建??個?錄,每個空??件在這個?錄中占?個表項;表項的內(nèi)容?少包括第?個空?塊的地址(物理塊號)、空?塊的數(shù)?。(1)由題設所給條件可知,磁盤組扇區(qū)總數(shù)為16*100*10=16000(個)因此,使?位?圖描述扇區(qū)狀態(tài)需要的位數(shù)為16000(位)/8(位/字節(jié))=2000(字節(jié))(2)已知空??件?錄的每個表項占5個字節(jié).?位?圖需占2000字節(jié).即2000字節(jié)可存放的表項數(shù)為2000/5=400(個).當空?區(qū)數(shù)??于400時,空??件?錄?于位?圖。12.2假設?個磁盤驅(qū)動器有5000個柱?,從0到4999,驅(qū)動器正在為柱?143的?個請求提供服務,且前?的?個服務請求是在柱?125。按FIFO順序,即將到來的請求隊列是86,1470,913,1774,948,1509,1022,1750,130從現(xiàn)在磁頭位置開始,按照下?的磁盤調(diào)度算法,要滿?隊列中即將到來的請求要求磁頭總的移動距離(按柱?數(shù)計)是多少?a.FCFSb.SSTFc.SCANd.LOOKe.C-SCAN答:a.FCFS的調(diào)度是143,86,1470,913,1774,948,1509,1022,1750,130??倢で缶嚯x是7081。b.SSTF的調(diào)度是143,130,86,913,948,1022,1470,1509,1750,1774??倢で缶嚯x是1745。c.SCAN的調(diào)度是143,913,948,1022,1470,1509,1750,1774,4999,130,86??倢で缶嚯x是9769。d.LOOK的調(diào)度是143,913,948,1022,1470,1509,1750,1774,130,86。總尋求距離是3319。e.C-SCAN的調(diào)度是143,913,948,1022,1470,1509,1750,1774,4999,86,130??倢で缶嚯x是9985。f.C-LOOK的調(diào)度是143,913,948,1022,1470,1509,1750,1774,86,130??倢で缶嚯x是3363。12.14MTBF(平均?故障時間)是硬盤可靠性的?個指標。雖然這個指標被稱作“時間”,但實際上MTBF通常是以設備的正常?作?時數(shù)度量的。(1)如果?個系統(tǒng)包含1000個磁盤驅(qū)動器,每個驅(qū)動器的MTBF是750000?時,下?的描述中哪?個最符合該系統(tǒng)發(fā)??次磁

盤故障的時間:每1000年,每世紀,每?年,每個?,每個星期,每天,每?時,每分鐘,每秒鐘?(2)統(tǒng)計表明,?個20到21歲的美國公民平均死亡率為千分之?,由此推論20歲的MTBF時間(單位由?時轉(zhuǎn)換為年),對于?個20歲的?來說,MTBF給出期望的壽命是多??(3)某類磁盤驅(qū)動器,?產(chǎn)商保證的MTBF為1百萬?時你能推算出它們的保質(zhì)期是多少年嗎?答:(1)750000/1000=750(?時)約等于31天,每個?發(fā)??次磁盤故障。(2)1年是8760?時,8760?時/0.001=8760000?時(1000年)也就是說對于?個20歲的?來說,MTBF給出期望的壽命是1000年,這沒有任何實際意義。(3)從上??題可看出,MTBF給出期望的壽命沒有任何實際意義。?般來說,磁盤驅(qū)動器設計的壽命是5年,假如真的有?個MTBF為1百萬?時的磁盤,那么在其期望的壽命內(nèi)是不可能有故障的。12.01假設計算機系統(tǒng)采?CSCAN(循環(huán)掃描)磁盤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論