計算機專業(yè)基礎綜合(進程管理)模擬試卷1(共103題)_第1頁
計算機專業(yè)基礎綜合(進程管理)模擬試卷1(共103題)_第2頁
計算機專業(yè)基礎綜合(進程管理)模擬試卷1(共103題)_第3頁
計算機專業(yè)基礎綜合(進程管理)模擬試卷1(共103題)_第4頁
計算機專業(yè)基礎綜合(進程管理)模擬試卷1(共103題)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機專業(yè)基礎綜合(進程管理)模擬試卷1(共4套)(共103題)計算機專業(yè)基礎綜合(進程管理)模擬試卷第1套一、單選題(本題共15題,每題1.0分,共15分。)1、正在運行的進程,因某種原因而暫時停止運行,等待某個事件的發(fā)生,此時處于()狀態(tài)。A、運行B、完成C、就緒D、阻塞標準答案:D知識點解析:此題主要考查進程的基本狀態(tài)及其轉換等相關內容。在操作系統(tǒng)中,進程的三種基本狀態(tài)之一的阻塞狀態(tài)是指正在運行的進程,因某種原因而暫停運行(如發(fā)生了I/O請求等),等待某個事件的發(fā)生,導致進程不能繼續(xù)運行且交出處理機時的狀態(tài)。2、進程從運行狀態(tài)轉換為就緒狀態(tài)的可能原因是()。A、被調度程序選中占用處理機B、等待某一事件C、等待的事件已經發(fā)生D、時間片用完標準答案:D知識點解析:就緒狀態(tài)是指一個進程獲得了除處理機以外的一切資源,當得到調度時,就由就緒狀態(tài)轉換為運行狀態(tài);運行狀態(tài)就是一個進程在處理機上正在運行。當處于運行狀態(tài)的進程在運行過程中所分配的時間片用完,則會被強制撤離處理機,以便調度其他進程運行。由于原先運行的進程是非自愿地離開運行狀態(tài),所以沒有其他的事件相關,只有繼續(xù)在就緒隊列中等候下一次的調度,所以選項D是正確的。選項A的情形是由就緒狀態(tài)轉換為運行狀態(tài);選項B的情形是由運行狀態(tài)轉換為阻塞狀態(tài);選項C的情形是由阻塞狀態(tài)轉換為就緒狀態(tài)。3、設m為同類資源數,n為系統(tǒng)中并發(fā)進程數。當n個進程共享m個互斥資源時,每個進程的最大需求是w,則下列情況中會出現系統(tǒng)死鎖的是()。A、m=2,n=1,w=2B、m=2,n=2,w=1C、m=4,n=3,w=2D、m=4,n=2,w=3標準答案:D知識點解析:本題考查死鎖的檢測。選項A不會發(fā)生死鎖,只有一個進程時不會發(fā)生死鎖。選項B不會發(fā)生死鎖,兩個進程各需要一個資源,而系統(tǒng)中恰好有2個資源。選項C不會發(fā)生死鎖,3個進程需要的最多資源數都是2,系統(tǒng)總資源數是4,所以總會有一個進程得到2個資源,運行完畢后釋放資源。選項D可能會發(fā)生死鎖,當2個進程各自都占有了2個資源后,系統(tǒng)再無可分配資源。由此可得出結論:當滿足m≥n(w-1)+1時,不會產生死鎖。4、在操作系統(tǒng)中引入并發(fā)可以提高系統(tǒng)效率。若有三個進程P1、P2和P3,按照P1,P2到P3的優(yōu)先次序運行,采用可搶占式調度,其運行過程如下:P1:計算6ms,I/O8ms,計算2msP2:計算12ms,I/O6ms,計算2msP3:計算4ms,I/O8ms,計算4ms不計系統(tǒng)開銷,相比單通道順序運行,多道并發(fā)可以節(jié)省的時間和CPU利用率分別是()。A、14ms;79%B、16ms;83%C、12ms;75%D、22ms;100%標準答案:A知識點解析:本題考查多道程序運行的工作方式,解決此類問題的關鍵一般是根據進程的優(yōu)先級和時序關系畫出時序圖,注意I/O設備不能搶奪,CPU可以根據優(yōu)先級來搶奪。根據題意,進程運行時序圖如下:單道運行時需要耗時:6+8+2+12+6+2+4+8+4=52(ms)從表中分析,并發(fā)運行時需要耗時:6+8+2+4+4+2+2+6+4=38(ms)節(jié)省時間為52-38=14(ms)CPU效率為(6+8+2+4+4+2+4)/38=79%5、系統(tǒng)產生死鎖的可能原因是()。A、共享資源分配不當B、系統(tǒng)資源不足C、進程運行太快D、CPU內核太多標準答案:A知識點解析:系統(tǒng)死鎖的可能原因主要是時間上和空間上的。時間上由于進程運行中推進順序不當,即調度時機不合適,不該切換進程時進行了切換,可能會造成死鎖??臻g上的原因是對共享資源分配不當,互斥資源部分分配又不可剝奪,極易造成死鎖。那么,為什么系統(tǒng)資源不足不是造成死鎖的原因呢?系統(tǒng)資源不足只會對進程造成“饑餓”,例如,某系統(tǒng)只有3臺打印機,若進程運行中要申請4臺,顯然不能滿足,該進程會永遠等待下去。如果該進程在創(chuàng)建時便聲明需要4臺打印機,那么操作系統(tǒng)立即就會拒絕,不會創(chuàng)建該進程。一般地,系統(tǒng)由于部分分配的剩余資源不足時,可能會造成死鎖,這實際上是資源分配不當的一種表現。不能以系統(tǒng)資源不足來描述剩余資源不足的情形。6、若有一進程擁有100個線程,這些線程都屬于用戶級線程,則在系統(tǒng)調度執(zhí)行時間上占用的時間片是()。A、1B、100C、1/100D、0標準答案:A知識點解析:本題主要考查關于進程和線程之間資源共享的知識點。在引入線程的操作系統(tǒng)中,線程是進程中的一個實體,是系統(tǒng)獨立調度和分派的基本單位。但是線程自己基本上不擁有系統(tǒng)資源,所以它不是資源分配的基本單位,它只擁有一部分在運行中必不可少的與處理機相關的資源,如線程狀態(tài)、寄存器上下文和棧等,它同樣有就緒、阻塞和執(zhí)行三種基本狀態(tài)。它可與同屬一個進程的其他線程共享進程所擁有的全部資源。一個線程可以創(chuàng)建和撤銷另一個線程;同一個進程中的多個線程之間可以并發(fā)執(zhí)行。由于用戶線程不依賴于操作系統(tǒng)內核,因此,操作系統(tǒng)內核是不知道用戶線程的存在的,用戶線程是由用戶來管理和調度的,用戶利用線程庫提供的API來創(chuàng)建、同步、調度和管理線程。所以,用戶線程的調度在用戶程序內部進行,通常采用非搶占式和更簡單的規(guī)則,也無須用戶態(tài)和核心態(tài)切換,所以速度很快。由于操作系統(tǒng)不知道用戶線程的存在,所以,操作系統(tǒng)把CPU的一時間片分配給用戶進程,再由用戶進程的管理器將時間分配給用戶線程。那么,用戶進程能得到的時間片即為所有用戶線程共享。因此,正確答案應為A。7、有五個進程共享一個互斥段,如果最多允許兩個進程同時進入互斥段,則所采用的互斥信號量初值應該是()。A、5B、2C、1D、0標準答案:B知識點解析:因為最多允許兩個進程同時進入互斥段,所以信號量為2。如果一個互斥段可以同時允許兩個進程進入,則相當于有兩個互斥段。8、2個優(yōu)先級相同的并發(fā)進程P1和P2,它們的執(zhí)行過程如下所示,假設當前信號量s1=0,s2=0,當前的z=2,進程運行結束后,x、y和z的值分別為()。進程P1進程P2y:=1;x:=1;y:=y+2;x:=x+1;z:=y+1;P(s1);V(s1);x:=x+y;P(s2);z:=x+z;y:=z+y;V(s2);A、5,9,9B、5,9,4C、5,12,9D、5,12,4標準答案:C知識點解析:本題考查并發(fā)進程的特點,并結合信號量進行同步的原理。由于進程并發(fā),所以進程的執(zhí)行具有不確定性,在P1、P2執(zhí)行到第一個P、V操作前,應該是相互無關的。現在考慮第一個對1的P、V操作,由于進程P2是P(s1)操作,所以,它必須等待P1執(zhí)行完V(s1)操作以后才可繼續(xù)運行,此時x、y、z的值分別為3、3、4,當進程P1執(zhí)行完V(s1)以后便在P(S2)上阻塞,此時P2可以運行直到V(s2),此時x、y、z值分別為5、3、9,進程Pl繼續(xù)運行直到結束,最終的x、y、z值分別為5、12、909、設有3個作業(yè),其運行時間分別為2小時、5小時、3小時,假定它們同時到達,并在同一臺處理機上以單道運行方式運行,則平均周轉時間最小的執(zhí)行順序是()。A、J1,J2,J3B、J3,J2,J1C、J2,J1,J3D、J1,J3,J2標準答案:D知識點解析:本題考查平均周轉時間的概念,周轉時間=等待時間+運行時間,平均周轉時間=總周轉時間÷n。在本題中,選項A的順序J1,J2,J3的平均周轉時間是(2+7+10)÷3=19÷3=6.3(小時);選項B的順序J3,J2,J1的平均周轉時間是(3+8+10)÷3=21÷3:7(小時);選項C的順序J2,J1,J3的平均周轉時間是(5+7+10)÷3=22÷3=7.3(小時);選項D的順序J1,J3,J2的平均周轉時間是(2+5+10)÷3=17÷3=5.7(小時)。因此,答案為D。10、關于臨界區(qū)問題(criticalsectionproblem)有如下算法(假設只有進程P0和P1可能進入該臨界區(qū)),算法如下(i為0或1),該算法()。repeatretry:if(turn≠一1)turn:=i;if(tum≠i)gotoretry;turn:=一1;criticalsection(臨界區(qū))turn=0:remaindersection(其他區(qū)域)untilfalse;A、不能保證進程互斥進入臨界區(qū),且會出現“饑餓”B、不能保證進程互斥進入臨界區(qū),但不會出現“饑餓”C、保證進程互斥進入臨界區(qū),但會出現“饑餓”D、保證進程互斥進入臨界區(qū),不會出現“饑餓”標準答案:A知識點解析:例如當P0執(zhí)行完語句turn:=-1,剛好要進入臨界區(qū)時,CPU又調度P1執(zhí)行,Pl能夠順利進入臨界區(qū),不能滿足互斥。當P0執(zhí)行完臨界區(qū)時,CPU調度P1執(zhí)行,P1在retry循環(huán),CPU調度P0執(zhí)行,P0繼續(xù)執(zhí)行,重復以上過程,會導致P1“饑餓”。11、下列死鎖的論述中,正確的是()。A、由于產生死鎖的基本原因是系統(tǒng)資源不足,因而,預防死鎖最常用的方法是根據系統(tǒng)規(guī)模,配置足夠的系統(tǒng)資源B、由于產生死鎖的另一個基本原因是進程推進順序不當,因而,預防死鎖的常用方法是使進程的推進順序合法C、只要系統(tǒng)不進入不安全狀態(tài),便不會產生死鎖,因而,預防死鎖的常用方法是防止系統(tǒng)進入不安全狀態(tài)D、可以通過破壞產生死鎖的四個必要條件之一或其中幾個的方法來預防發(fā)生死鎖標準答案:D知識點解析:選項A,不可能根據系統(tǒng)的規(guī)模,配置足夠的系統(tǒng)資源,因為系統(tǒng)的資源是有限的。選項B,這種方法不能保證死鎖不發(fā)生,而且進程推進過程很復雜,實現合理的順序不太可能。選項C,系統(tǒng)進入不安全狀態(tài)不一定會產生死鎖,防止系統(tǒng)進入不安全狀態(tài)不太可能,故不是常用的方法。12、下列關于進程的敘述中,最不符合操作系統(tǒng)對進程的理解的是()。A、進程是在多程序并行環(huán)境中的完整的程序B、進程可以由程序、數據和進程控制塊描述C、線程是一種特殊的進程D、進程是程序在一個數據集合上運行的過程,是系統(tǒng)進行資源管理的一個獨立單位標準答案:A知識點解析:A的說法不夠全面。13、下列進程調度算法中,綜合考慮了CPU密集型進程和I/O密集型進程的是()。A、時間輪轉B、優(yōu)先級C、多重隊列D、FIFO標準答案:C知識點解析:多重隊列通過將進程分類,在系統(tǒng)中設置若干隊列進行進程調度,綜合考慮了CPU密集型進程和I/0密集型進程。14、進程P1、P2和P3單獨執(zhí)行時間分別為10min、15min和20min,其中處理機占用時間分別為2min、3min和12min。如果采用多道程序設計技術使其并發(fā),并假設處理機的利用率可以達到60%,加上系統(tǒng)開銷5min,則并發(fā)使得計算機系統(tǒng)的效率提高了()。A、63%B、38%C、74%D、26%標準答案:D知識點解析:本題考查并發(fā)的計算。由于本題并沒有詳細描述進程的執(zhí)行過程,所以,計算是以總體效率來進行的??傮w效率是指并發(fā)執(zhí)行所花費的時間值與原時間值相比提高了多少。依本題題意,可以計算出處理機所需時間為2+3+12=17(min),按處理機60%的利用率,并發(fā)所需總時間為17÷60%+5=33.33(min),單道運行時所需要的總時間為10+15+20=45(min),則系統(tǒng)效率提高了(45—33.33)÷45=26%。注意題意,并發(fā)時不要忘記系統(tǒng)開銷5min。單道執(zhí)行時由于較少需要進程切換,因此系統(tǒng)開銷一般忽略不計。并發(fā)時系統(tǒng)要進行大量的進程切換,因此,系統(tǒng)開銷有時會比較大,此時就應該納入計算。15、進程創(chuàng)建的時候,不需要做的是()。A、填寫一個該進程的進程表項B、分配該進程適當的內存C、將該進程插入就緒隊列D、為該進程分配CPU標準答案:D知識點解析:本題考查的是進程創(chuàng)建的過程。進程創(chuàng)建最主要的工作是為該進程申請并填寫一張進程表。進程表內包含有多個與進程有關的數據結構,例如,進程號、進程組、進程的優(yōu)先級、進程所分配的內存、進程需要的I/O設備、進程要打開的文件等。當填寫好了進程表以后,進程創(chuàng)建模塊便將進程表按照該系統(tǒng)規(guī)定的法則插入到就緒隊列的適當位置,等待進程調度模塊進行下一步的調度。所以進程創(chuàng)建的過程中不會包含分配CPU的過程,這不是進程創(chuàng)建的工作,而是調度器的工作。二、綜合應用題(本題共11題,每題1.0分,共11分。)16、有一閱覽室,讀者進入時必須先在一張登記表上登記,該表為每一座位列出一個表目,包括座號、姓名,讀者離開時要注銷登記信息;假如閱覽室共有100個座位。試分別用信號量和P、V操作以及管程來實現用戶進程的同步算法。標準答案:(1)使用信號量和P、V操作:varA:array[1..100]ofRec;Rec=recordnumber:integer;name:string;end;i:integer;fori:=1to100do{A[i].number:=i;A[i].name:=null;}mutex,seatcount:semaphore;//semaphore:信號量mutex:=1:seatcount:=100;cobeginprocessreaderi(varreadername:string)(i=1,2,…){P(seatcount);P(mutex);fori:=1to100do{i++:ifA[i].name=-nullthenA[i].name:=readername;//讀者登記}/*必須采用這種方式,因為該空位是隨機產生的。我們無法知道哪個讀者何時離開*/V(mutex)進入閱覽室,座號i,坐下讀書:P(mutex);//讀書完畢,需要退場A[i]name:=null;V(mutex);V(seatcount);離開閱覽室;}coend(2)使用管程操作:TYPEreadbook=monitorVARR:condition;i,seatcount:integer;name:array[1..100]ofstring;DEFINEreadercome,readerleave;USEcheck,wait,signal,release;procedurereadereome(readername)begancheck(IM):ifseatcount≥1100wait(R,IM)seatcount:=seatcount+1:fori=1to100doi++ifname[i]==nullthenname[i]:=readername:gettheseatnumber=i;release(IM);endprocedurereaderleave(readername)begincheck(IM);seatcount--:fori=1t0100doi++ifname[i]==readernamethenname[i]:=null:release(IM):endbeginseatcount:=100;name:=null:endeobeginprocessreaderi(1=1,2.…)begmreadercome(readername);readthebook:readerleave(readername):leavethereadroom;endcoend知識點解析:暫無解析17、設有n個進程共享一個互斥段,如果:(1)每次只允許一個進程進入互斥段;(2)每次最多允許m個進程(m≤n)同時進入互斥段。試問:所采用的信號量初值是否相同?信號量值的變化范圍如何?標準答案:所采用的互斥信號量初值不同。(1)互斥信號量初值為1,變化范圍為[-n+1,1]。當沒有進程進入互斥段時,信號量值為1;當有1個進程進入互斥段但沒有進程等待進入互斥段時,信號量值為0;當有1個進程進入互斥段且有一個進程等待進入互斥段時,信號量值為一1:最多可能有n-1個進程等待進入互斥段,故此時信號量的值應為-(n-1),也就是-n+1。(2)互斥信號量初值為m,變化范圍為[-n+m,m]。當沒有進程進入互斥段時,信號量值為m;當有1個進程進入互斥段但沒有進程等待進入互斥段時,信號量值為m-1;當有m個進程進入互斥段且沒有一個進程等待進入互斥段時,信號量值為0;當有m個進程進入互斥段且有一個進程等待進入互斥段時,信號量值為-1;最多可能有n-m個進程等待進入互斥段,故此時信號量的值應為-(n-m),也就是-n+m。知識點解析:暫無解析設某系統(tǒng)采用可搶占的優(yōu)先級進程調度算法,系統(tǒng)在某一段時間內有A、B、C三個進程,進程C優(yōu)先級最高,進程A優(yōu)先級最低,進程B優(yōu)先級介于進程A、C之間,它們的就緒時刻、計算與I/O所需時間如下表所示:18、若系統(tǒng)采用多道方式運行,給出這三個進程運行完成總共所需的時間,并用圖示給出三個進程的實際運行過程(忽略進行系統(tǒng)調度所需時間)。標準答案:若系統(tǒng)采用多道方式運行,這三個進程運行完成總共所需的時間為68ms。知識點解析:暫無解析19、采用多道方式運行比采用單道方式運行可節(jié)省多少時間?標準答案:采用單道方式運行,這三個進程運行完成總共所需的時間為113ms。采用多道方式運行比采用單道方式運行節(jié)省時間:113-68=45(ms)知識點解析:暫無解析某系統(tǒng)中進程有如下的狀態(tài)變化圖:請回答下列問題:20、該系統(tǒng)采用了怎樣的進程調度算法?說明理由。標準答案:該系統(tǒng)采用的是時間片輪轉調度算法。該調度算法讓就緒進程按就緒的先后次序排成隊列,每次總是選擇就緒隊列中的第一個進程占用處理器,但規(guī)定只能使用一個時間片。如果一個時間片用完,進程工作尚未結束,則它也必須讓出處理器而被重新排到就緒隊列的末尾,等待再次運行,當再次輪到運行時,重新開始使用一個新的時間片。這樣,就緒隊列中的進程就依次輪流地占用處理器運行。知識點解析:暫無解析21、把圖中發(fā)生①~④的狀態(tài)變化原因填入下表中。標準答案:知識點解析:暫無解析22、中斷分為哪幾種類型?請給出各自的含義。標準答案:(1)硬件故障中斷。它是由于機器故障造成的,例如,電源故障、主存出錯等。(2)程序中斷。這是由于程序執(zhí)行到某條機器指令時可能出現的各種問題而引起的中斷,例如,發(fā)現定點操作數溢出、除數為“0”、地址越界、使用非法指令碼、目態(tài)下的用戶使用了特權指令等。(3)外部中斷。這是由各種外部事件引起的中斷,例如,按壓了控制板上的一個中斷鍵、設置的定時時鐘的時間周期到。(4)輸入/輸出中斷。輸入/輸出控制系統(tǒng)發(fā)現外圍設備完成了輸入/輸出操作或在執(zhí)行輸入/輸出操作時通道或外圍設備產生錯誤而引起的中斷。(5)訪管中斷。它是正在運行的進程為了請求調用操作系統(tǒng)的某個功能而執(zhí)行一條訪管指令所引起的中斷。例如,用戶要求分配一臺外圍設備、要求分配一些主存區(qū)域、要求啟動外圍設備讀一批數據等。知識點解析:暫無解析23、引起進程切換的時機有哪些?標準答案:我們把處理機從一個進程轉到另一個進程稱為進程切換。引起進程切換的時機有以下幾種情況:(1)一個進程從運行狀態(tài)變?yōu)榈却隣顟B(tài)。(2)一個進程從運行狀態(tài)變?yōu)榫途w狀態(tài)。(3)一個進程從等待狀態(tài)變?yōu)榫途w狀態(tài)。(4)一個進程運行完成而撤離系統(tǒng)。知識點解析:暫無解析24、時間片輪轉調度算法中,時間片值的選取對系統(tǒng)有什么影響?標準答案:(1)時間片取值的大小關系到計算機系統(tǒng)的效率和用戶的滿意度,所以,時間片的值應根據進程要求系統(tǒng)給出應答的時間和進入系統(tǒng)的進程數來決定。如果要求系統(tǒng)快速應答,則時間片小些,這樣使輪轉一遍的總時間減少而可對進程盡快應答。如果進程數少,則時間片可以大些,這樣可減少進程調度的次數,提高系統(tǒng)效率。(2)對每個進程可規(guī)定相同的時間片,但有的系統(tǒng)對不同的進程規(guī)定不同的時間片,例如,對很少使用外圍設備而需要運算時間長的進程,給一個大一些的時間片,以達到減少調度次數,加快進程執(zhí)行速度的目的。但應注意到,時間片值過大時該算法退化為先來先服務;時間片值過小時加重系統(tǒng)開銷。知識點解析:暫無解析25、什么是搶占式優(yōu)先級調度和非搶占式優(yōu)先級調度?標準答案:采用“非搶占式”調度時,一旦有某個高優(yōu)先數的進程占用了處理器,就一直讓它運行下去,直到該進程由于自身的原因主動讓出處理器或進程執(zhí)行結束而讓出處理器。此時,進程調度才重新再按優(yōu)先數選擇另一個占用處理器的進程。采用“可搶占”式的調度方式嚴格保證任何時刻總是讓具有最高優(yōu)先數的進程在處理器上運行。也就是說,當某一進程在處理器上運行時,一旦有另一個更高優(yōu)先數的進程就緒,進程調度就要剝奪正在處理器上運行的進程使用處理器的權力,搶回分配給它的處理器,而把處理器讓給具有更高優(yōu)先數的進程使用。這種搶占式的優(yōu)先數調度算法在實時系統(tǒng)中很有用。例如,在實際系統(tǒng)中可把處理緊急情況的報警進程賦予最高優(yōu)先數,一旦有緊急事件發(fā)生,觸發(fā)報警進程就緒,進程調度就讓這個報警進程搶占處理器進行緊急處理和發(fā)出警告信號。知識點解析:暫無解析26、設有三個進程A、B、C,進程A和進程B各需要運行3ms的處理器時間,而進程C卻要24ms的處理器時間,分別考慮當三個進程到達順序為A,B,C時及C,B,A時,用先來先服務進行調度時各自的平均等待時間。標準答案:(1)當三個進程到達順序為A、B、C時,按照先來先服務的順序,進程A先占用處理器,進程B需等待3ms后才能去占用處理器,進程C在等待6ms的時間后可以占用處理器。于是,它們的平均等待時間為(0+3+6)÷3=3(ms)。(2)如果進程是按C、B、A的次序排入隊列,則進程C先占用處理器運行24ms后才能讓進程B占用,即進程B需等待24ms,而進程A在等了27ms后才可占用處理器,現在這三個進程的平均等待時間為(27+24+0)÷3=17(ms)??梢姰斶\行時間長的進程先就緒時,先來先服務算法使系統(tǒng)效率受到影響。知識點解析:暫無解析計算機專業(yè)基礎綜合(進程管理)模擬試卷第2套一、單選題(本題共15題,每題1.0分,共15分。)1、臨界區(qū)是指()。A、一組臨界資源的集合B、可共享的一塊內存區(qū)C、訪問臨界資源的一段代碼D、請求訪問臨界資源的代碼標準答案:C知識點解析:每個進程中訪問臨界資源的那段程序稱為臨界區(qū)(臨界資源是一次僅允許一個進程使用的可輪流分享的資源)。使用時,每次只準許一個進程進入臨界區(qū),一旦一個進程進入臨界區(qū)之后,不允許其他進程同時進入。進程進入臨界區(qū)的調度原則是:(1)如果有若干進程要求進入空閑的臨界區(qū),一次僅允許一個進程進入。(2)任何時候,處于臨界區(qū)內的進程不可多于一個。如已有進程進入自己的臨界區(qū),則其他所有試圖進入臨界區(qū)的進程必須等待。(3)進入臨界區(qū)的進程要在有限時間內退出,以便其他進程能及時進入自己的臨界區(qū)。(4)如果進程不能進入自己的臨界區(qū),則應讓出CPU,避免進程出現“忙等”現象。2、在一段時間內,只允許一個進程訪問的資源稱為()。A、共享資源B、獨占資源C、臨界資源D、共享區(qū)標準答案:C知識點解析:在現代計算機系統(tǒng)中,有一些資源不能被多個進程同時使用,這樣的資源如果使用或分配不當會造成錯誤,它們只能被排他地使用,這樣的資源就是臨界資源。3、不需要信號量能實現的功能是()。A、進程同步B、進程互斥C、執(zhí)行的前趨關系D、進程的并發(fā)執(zhí)行標準答案:D知識點解析:本題考查信號量的功能。在多道程序系統(tǒng)中,信號量機制是一種有效的實現進程同步與互斥的工具。進程執(zhí)行的前趨關系實質上是指進程的同步關系。除此以外,只有進程的并發(fā)執(zhí)行不需要信號量來控制,因此正確答案為D。4、當中斷發(fā)生后,進入中斷處理的程序屬于()。A、用戶程序B、OS程序C、可能是用戶程序,也可能是OS程序D、單獨的程序,既不是用戶程序,也不是OS程序標準答案:B知識點解析:在現代操作系統(tǒng)的設計中,為了保證系統(tǒng)的安全,將系統(tǒng)的工作狀態(tài)劃分為目態(tài)和管態(tài)兩種,只有操作系統(tǒng)的核心才能工作在管態(tài),而中斷處理程序必須工作在管態(tài),故其屬于操作系統(tǒng)程序。5、某計算機系統(tǒng)中有8臺打印機,有K個進程競爭使用,每個進程最多需要3臺打印機。該系統(tǒng)可能會發(fā)生死鎖的K的最小值是()。A、2B、3C、4D、5標準答案:C知識點解析:當K<4(即K的值取為3及其以下值)的時候,系統(tǒng)可以為某個進程分配打印機資源,并可以確保在有限的時間內使某個進程完成并且退還其已經占用的打印機,進而使各個進程能夠依次順利地完成。而當K>14的時候,就構成了死鎖需要的條件,會引起死鎖的產生,所以答案為C。6、進程P0和P1的共享變量定義及其初值如下:booleanflag[2];intturn=0;flag[0]=false;flag[1]=false;若進程P0和P1訪問臨界資源的偽代碼按照下面設計:voidP0(){//進程P0voidP1(){//進程P1while(TRUE){while(TRUE){flag[0]=TRUE;flag[0]=TRUE;turn=1;turn=0;while(nag[1]&&(turn==1))while(nag[0]&&(torn==0))臨界區(qū);臨界區(qū);flag[0]=FALSE;flag[1]=FALSE;}}}}則并發(fā)執(zhí)行進程P0和P1時產生的情況是()。A、不能保證進程互斥進入臨界區(qū),會出現“饑餓”現象B、不能保證進程互斥進入臨界區(qū),不會出現“饑餓”現象C、能保證進程互斥進入臨界區(qū),會出現“饑餓”現象D、能保證進程互斥進入臨界區(qū),不會出現“饑餓”現象標準答案:A知識點解析:從題中給出的偽代碼可知,由于信號量flag的賦值方法不對,因此會使得不能保證進程互斥進入臨界區(qū),會出現“饑餓”現象。7、下列選項中,降低進程優(yōu)先級的合理時機是()。A、進程的時間片用完B、進程剛完成I/O,進入就緒列隊C、進程長期處于就緒列隊D、進程從就緒狀態(tài)轉為運行狀態(tài)標準答案:A知識點解析:在此題中,進程完成I/O,進入就緒隊列;長期處于就緒隊列的進程需要盡快得到處理機為它服務,進程從就緒狀態(tài)轉為運行狀態(tài)的時候也不能降低進程的優(yōu)先級,只有在進程的時間片用完才是降低進程優(yōu)先級的最好時機。8、假設與某類資源相關聯的信號量初值為3,當前值為1,若M表示該資源的可用個數,N表示等待該資源的進程數,則M、N分別是()。A、0、1B、1、0C、1、2D、2、0標準答案:B知識點解析:按照信號量的定義,與資源相關聯的信號量的取值是與當前可用資源數量一致的,因此M為1,而依題意,目前沒有等候該資源的進程,故N的值為0。9、下列選項中,導致創(chuàng)建新進程的操作是()。I.用戶登錄成功Ⅱ.設備分配Ⅲ.啟動程序執(zhí)行A、僅Ⅰ和ⅡB、僅Ⅱ和ⅢC、僅Ⅰ和ⅢD、Ⅰ、Ⅱ、Ⅲ標準答案:C知識點解析:用戶登錄成功、啟動程序執(zhí)行均會導致創(chuàng)建新進程,而設備分配則不會。10、下列選項中,操作系統(tǒng)提供給應用程序使用的接口是()。A、系統(tǒng)調用B、中斷C、庫函數D、原語標準答案:A知識點解析:在現代操作系統(tǒng)中,操作系統(tǒng)提供了包括系統(tǒng)調用、命令接口、圖形接口等方便用戶使用系統(tǒng)資源的接口,在上述接口中,只有系統(tǒng)調用是提供給程序使用的。11、下列進程調度算法中,綜合考慮了進程等待時間和執(zhí)行時間的是()。A、時間片輪轉調度算法B、最短進程優(yōu)先調度算法C、先來先服務調度算法D、高響應比優(yōu)先調度算法標準答案:D知識點解析:在若干進程調度算法中,時間片輪轉調度算法考慮的是時間分配上的均衡,最短進程優(yōu)先調度算法主要考慮的是短作業(yè)的等待時間,先來先服務調度算法考慮的是到達順序的合理性,而只有高響應比優(yōu)先調度算法做到了綜合考慮進程等待時間和執(zhí)行時間。12、單處理機系統(tǒng)中,可并行的是()。Ⅰ.進程與進程Ⅱ.處理機與設備Ⅲ.處理機與通道Ⅳ.設備與設備A、Ⅰ、Ⅱ和ⅢB、Ⅰ、Ⅱ和ⅣC、Ⅰ、Ⅲ和ⅣD、Ⅱ、Ⅲ和Ⅳ標準答案:D知識點解析:在單處理機系統(tǒng)中,僅有一個處理機,所以在一個特定的時刻只能有一個進程能夠獲得處理機的使用權,因而排除選項A、B和C,只有選項D是合理的答案。13、如果有一個進程從運行狀態(tài)變成等待狀態(tài),或完成工作后就撤銷,則必定會發(fā)生()。A、進程切換B、存儲器再分配C、時間片輪轉D、死鎖標準答案:A知識點解析:此題主要考查進程切換的相關內容。進程調度將從就緒隊列中另選一個進程占用處理機。使一個進程讓出處理要,由另一個進程占用處理機的過程稱為進程切換。若有一個進程從運行狀態(tài)變成等待狀態(tài),或者進程完成工作后被撤銷,則必定會發(fā)生進程切換;若一個進程從等待狀態(tài)變成就緒狀態(tài),則不一定會發(fā)生進程切換。14、在時間片輪轉算法中,()的大小對計算機性能有很大影響。A、對換B、分頁C、時間片D、程序段標準答案:C知識點解析:此題主要考查在時間片輪轉算法中時間片大小對于系統(tǒng)性能的重要性。在時間片輪轉算法中,時間片的大小對計算機性能有很大影響。如果時間片劃分不當,則系統(tǒng)不能提供令用戶滿意的響應時間。時間片的大小應選擇得適當,通常要考慮以下幾個因素:(1)系統(tǒng)對響應時間的要求;(2)就緒隊列中進程的數目;(3)系統(tǒng)的處理能力。15、在操作系統(tǒng)中,資源分配、調度和管理的最小單位是()。A、進程B、線程C、作業(yè)D、程序段標準答案:A知識點解析:此題主要考查進程調度的基本概念等相關內容。進程的引入可以更好地描述系統(tǒng)中的并發(fā)活動。它被定義為一個具有獨立功能的程序關于某個數據集合的一次運行活動。在操作系統(tǒng)中,進程是進行系統(tǒng)資源分配、調度和管理的最小獨立單位,操作系統(tǒng)的各種活動都與進程有關。二、綜合應用題(本題共10題,每題1.0分,共10分。)16、簡述預防死鎖的辦法。標準答案:(1)方法一:如果系統(tǒng)當前存在的資源數量能夠滿足進程的資源需求,便一次性地為進程分配其所需的全部資源;在該進程完成之后再一次性地回收全部資源。這個做法被稱為摒棄“請求和保持”條件,該方法可以預防死鎖。(2)方法二:當系統(tǒng)中某些進程在已經占有一定數量資源的情況下,又提出新的資源請求,操作系統(tǒng)不能立即滿足該進程的需求時,該進程必須立即釋放已經占有和保持的所有資源,待以后需要時再重新申請;這種可以剝奪進程資源的做法可以有效地防止死鎖的產生。其被稱為摒棄“不可剝奪”條件。(3)方法三:就是采用一定的方法,將所有可提供的資源按類型排序編號,所有進程對資源的請求也必須嚴格按序號遞增的次序提出,避免產生資源占有和資源需求的回路出現,造成死鎖的產生。此方法也被稱為摒棄“環(huán)路等待”條件。知識點解析:暫無解析17、為使用戶進程互斥地進入臨界區(qū),可以把整個臨界區(qū)實現成不可中斷的過程,即用戶有屏蔽所有中斷的能力。每當用戶程序進入臨界區(qū)的時候,屏蔽所有中斷;當出了臨界區(qū)的時候,再開放所有中斷。你認為這種方法有什么缺點?標準答案:此題主要考查中斷概念在操作系統(tǒng)設計過程中的重要作用與臨界區(qū)的概念。用戶進程進入臨界區(qū)時屏蔽所有中斷,包括系統(tǒng)程序的中斷。假如屏蔽的是用戶進程,確實可以保護臨界資源,但如果連系統(tǒng)所發(fā)出的中斷也被屏蔽的話,就會引起系統(tǒng)錯誤。雖然系統(tǒng)外中斷往往與當前運行的程序無關,但如果是一些重要的硬件中斷,如電源故障等,就可能會引起錯誤,故不可盲目屏蔽所有中斷。知識點解析:暫無解析18、有三個進程PA、PB和PC合作解決文件打印問題:PA將文件記錄從磁盤讀入主存的緩沖區(qū)1,每執(zhí)行一次讀一個記錄;PB將緩沖區(qū)1的內容復制到緩沖區(qū)2,每執(zhí)行一次復制一個記錄;PC將緩沖區(qū)2的內容打印出來,每執(zhí)行一次打印一個記錄。緩沖區(qū)的大小等于一個記錄的大小。請用P、V操作來保證文件的正確打印。標準答案:(1)進程PA、PB、PC之間的關系為:PA與PB共用一個單緩沖區(qū),PB又與PC共用一個單緩沖區(qū),其合作方式如下圖所示。當緩沖區(qū)1為空時,進程PA可將一個記錄讀入其中;若緩沖區(qū)1中有數據且緩沖區(qū)2為空,則進程PB可將記錄從緩沖區(qū)1復制到緩沖區(qū)2中;若緩沖區(qū)2中有數據,則進程PC可以打印記錄。其他條件下,相應進程必須等待。事實上,這是一個生產者一消費者問題。為遵循這一同步規(guī)則。應設置4個信號量empty1、empty2、fulll、full2,信號量empty1和empty2分別表示緩沖區(qū)1及緩沖區(qū)2是否為空,其初值為1;信號量full1和full2分別表示緩區(qū)1及緩沖區(qū)2是否有記錄可供處理,其初值為0。(2)相應的進程描述如下:semaphoreempty1=1://緩沖區(qū)1是否為空semaphorefull1=0://緩沖區(qū)1是否有記錄可供處理semaphoreempty2=l://緩沖區(qū)2是否為空semaphorefull2=0://緩沖區(qū)2是否有記錄可供處理cobegin{processPA(){while(TRuE){從磁盤讀入一條記錄;P(emptyl);將記錄存入緩沖區(qū)1;V(full1);}}processPB(){while(TRUE){P(full1);從緩沖區(qū)1中取出一條記錄;V(empty1);P(empty2);將取出的記錄存入緩沖區(qū)2;V(full2);}}processPC(){while(TRUE){P(full2);從緩沖區(qū)2中取出一條記錄;V(empty2);將取出的記錄打印出來;}}}coend知識點解析:暫無解析19、在一間酒吧里有3個音樂愛好者隊列,第l隊的音樂愛好者只有隨身聽,第2隊只有音樂磁帶,第3隊只有電池。而要聽音樂就必須隨身聽、音樂磁帶和電池這3種物品俱全。酒吧老板一次出售這3種物品中的任意兩種。當~名音樂愛好者得到這3種物品并聽完一首樂曲后,酒吧老板才能再一次出售這3種物品中的任意兩種。于是第2名音樂愛好者得到這3種物品,并開始聽樂曲。全部買賣就這樣進行下去。試用P、V操作正確解決這一買賣。標準答案:(1)第1隊音樂愛好者要競爭“待出售的音樂磁帶和電池”,而且在初始狀態(tài)下系統(tǒng)并無“待出售的音樂磁帶和電池”,故可為該種資源設置一初值為0的信號量buy1;同樣,需設置初值為0的buy2、buy3分別對應“待出售的隨身聽和電池”、“待出售的隨身聽和音樂磁帶”。另外,為了同步買者的付費動作和賣者的給貨動作,還需設置信號量payment和goods,以保證買者在付費后才能得到所需商品。信號量music_over用來同步音樂愛好者聽樂曲和酒吧老板的下一次出售行為。(2)具體的算法描述如下:semaphorebuy1=buv2=buy3=0:semaphorepayment=0:semaphoregoods=0;semaphoremusic_over=0;cobegin{processboss(){//酒吧老板while(TRUE){拿出任意兩種物品出售;if(出售的是音樂磁帶和電池)V(buyl);elseif(出售的是隨身聽和電池)V(buy2);elseif(出售的是隨身聽和音樂磁帶)V(buy3);P(payment);//等待付費V(goods);//給貨P(music_over);//等待樂曲結束}}processfanl(){//第1隊音樂愛好者while(TRUE){P(buy1);//等待有音樂磁帶和電池出售V(payment);//付費P(goods);//取貨欣賞一曲樂曲;V(music_over);//通知老板樂曲結束}}processfan2(){//第2隊音樂愛好者while(TRUE){P(buy2);//等待有隨身聽和電池出售V(payment);//付費P(goods);//取貨欣賞一曲樂曲;V(music_over);//通知老板樂曲結束}}processfan3(){//第3隊音樂愛好者while(TRUE){P(buy3);//等待有隨身聽和音樂磁帶出售V(payment);//付費P(goods);//取貨欣賞一曲樂曲:V(music_over);//通知老板樂曲結束}}}coend知識點解析:暫無解析兄弟倆共同使用一個賬號,每次限存或取10元,存錢與取錢的進程分別如下所示:intamount=0:SAVE(){TAKE(){intm1;intm2:m1=amount;m2=amount;m2=m2—10:amount=m2;}m1=m1+10:amount=m1:}由于兄弟倆可能同時存錢和取錢,因此兩個進程是并發(fā)的。若哥哥先存了兩次錢,但在第三次存錢時弟弟在取錢。請問:20、最后賬號amount上面可能出現的值是多少?標準答案:哥哥存兩次錢后,共享變量amount的值為20。哥哥的第三次存錢與弟弟的取錢同時進行,如果兩者順序執(zhí)行,則最后amount的值為20;如果在一個進程的執(zhí)行過程中進行CPU調度,轉去執(zhí)行另一進程,則最后amount的值取決于amount=ml及amount=m2的執(zhí)行先后次序,若前者先執(zhí)行,則最后amount的值為10,若后者先執(zhí)行,則最后amount的值為30。因此,最后賬號amount上可能出現的值有10、20、30。知識點解析:暫無解析21、如何用P、V操作實現兩并發(fā)進程的互斥執(zhí)行?標準答案:在上述問題中,共享變量amount是一個臨界資源,為了實現兩并發(fā)進程對它的互斥訪問,可為它設置一初值為1的互斥信號量mutex,并將上述算法修改為:intamount=0;semaphoremutex=1;//互斥訪問amount變量的信號量cobegin{processSAVE(){intml;P(mutex):ml=amount;ml=ml+10;amount=m1;V(mutex);}processTAKE(){intm2;P(mutex);m2amount;m2=m2-10:amount=m2;V(mutex);}}coend知識點解析:暫無解析某系統(tǒng)有R1、R2和R3三種資源,在T0時刻P1、P2、P3和P4四個進程對資源的占用和需求情況如下表所示,此時系統(tǒng)的可用資源向量為(2,1,2)。試問:22、系統(tǒng)是否處于安全狀態(tài)?如安全,請給出一個安全序列。標準答案:利用安全性算法對T0時刻的資源分配情況進行分析,可得到如下表所示的安全性檢測情況??梢钥闯?,此時存在一個安全序列{P2,P3,P4,P1},故該系統(tǒng)是安全的。知識點解析:暫無解析23、如果此時P1和P2均發(fā)出資源請求向量Request(1,0,1),為了保證系統(tǒng)的安全性,應該如何分配資源給這兩個進程,7說明你所采用的策略的原因。標準答案:若此時P1發(fā)出資源請求Request1(1,0,1),按銀行家算法進行檢查:Request1(1,0,1)≤Need1(2,2,2)Request1(1,0,1)≤AVailable(2,1,2)試分配并修改相應的數據結構,由此形成的資源分配情況如下表所示。知識點解析:暫無解析24、如果(2)中兩個請求立即得到滿足,系統(tǒng)此刻是否處于死鎖狀態(tài)?標準答案:如果(2)中兩個請求立即得到滿足,此刻系統(tǒng)并沒有立即進入死鎖狀態(tài),因為這時所有進程沒有提出新的資源申請,全部進程均沒有因資源請求沒有得到滿足而進入阻塞狀態(tài)。只有當進程提出資源請求,且全部進程都進入阻塞狀態(tài)時,系統(tǒng)才處于死鎖狀態(tài)。知識點解析:暫無解析25、系統(tǒng)有5個進程,其就緒時刻(指在該時刻已進入就緒隊列)、服務時間如下表所示。分別計算采用先來先服務、短作業(yè)優(yōu)先、高響應比優(yōu)先的平均周轉時間和帶權周轉時間。標準答案:(1)采用先來先服務調度時,執(zhí)行作業(yè)的次序為P1、P2、P3、P4、P5,如下表所示。(2)采用短作業(yè)優(yōu)先調度時,執(zhí)行作業(yè)的次序為P1、P2、P5、P3、P4,如下表所示。(3)采用高響應比優(yōu)先調度時,響應比=響應時間/運行時間。在時刻0,只有進程P1就緒,執(zhí)行P1,在時刻3結束。此時刻只有P2就緒,執(zhí)行P2,在時刻9結束。此時刻P3、P4、P5均就緒,計算它們的響應比分別為2.25、1.6、1.5,則選擇執(zhí)行P3,在時刻13結束。此時刻P4、P5均就緒,計算它們的響應比分別為2.4、3.5,則選擇執(zhí)行P5,在時刻15結束。此時刻只有P4就緒,執(zhí)行P4,在時刻20結束。整個執(zhí)行作業(yè)的次序為P1、P2、P3、P5、P4,如下表所示。知識點解析:暫無解析計算機專業(yè)基礎綜合(進程管理)模擬試卷第3套一、單選題(本題共16題,每題1.0分,共16分。)1、“可搶占”和“不可搶占”的優(yōu)先級調度算法相比,()。A、前者開銷小B、前者開銷大C、兩者開銷大致相同D、兩者開銷不能相比標準答案:B知識點解析:因為“可搶占”優(yōu)先級調度始終保證在處理機上運行的是優(yōu)先級最高的進程,這樣,當處理機正在運行某個進程時,很可能會被其他優(yōu)先級更高的進程“搶占”引起處理機調度,與“不可搶占”算法相比,前者的調度次數會更頻繁,而每調度一次都會引起保護現場、恢復現場的工作,所以“可搶占”的優(yōu)先級調度算法開銷更大。2、一個進程獲得了除CPU以外的所有資源,則該進程可能處于()狀態(tài)。A、運行B、就緒C、等待D、就緒和等待標準答案:B知識點解析:處于就緒狀態(tài)的進程,只要獲得處理機(被進程調度選中),即可變?yōu)檫\行狀態(tài)。3、銀行家算法在解決死鎖問題中是用于()的。A、預防死鎖B、避免死鎖C、檢測死鎖D、解除死鎖標準答案:B知識點解析:本題考查銀行家算法在分配資源時采用安全性檢查,從而避免死鎖。4、保護現場是指將現場信息保存至()。A、磁盤B、各相應的寄存器C、進程的PCB中D、內存系統(tǒng)區(qū)標準答案:C知識點解析:進程控制塊(PCB)是記錄進程有關信息的一塊主存,其中包括該進程的中斷現場保護區(qū),它是進程存在的唯一標識。5、計算機系統(tǒng)中判別是否有中斷事件發(fā)生應是在()。A、進程切換時B、執(zhí)行完一條指令后C、執(zhí)行P操作后D、由用戶態(tài)轉入核心態(tài)時標準答案:B知識點解析:系統(tǒng)中,只有當執(zhí)行完一條指令后,才判別是否有中斷發(fā)生。6、若當前進程因時間片用完而讓出處理機時,該進程應轉變?yōu)?)狀態(tài)。A、就緒B、等待C、運行D、完成標準答案:A知識點解析:當時間片用光后,進程變?yōu)榫途w狀態(tài)。7、一種既有利于短小作業(yè)又兼顧到長作業(yè)的作業(yè)調度算法是()。A、先來先服務B、輪轉C、最高響應比優(yōu)先D、均衡調度標準答案:C知識點解析:暫無解析8、作業(yè)調度程序是從處于()狀態(tài)的作業(yè)中選取一個作業(yè)并把它裝入主存。A、輸入B、收容C、執(zhí)行D、完成標準答案:B知識點解析:在作業(yè)調度中,選取的是正在收容的作業(yè)裝入內存。9、進程處于下列()等待狀態(tài)時,它是處于非阻塞狀態(tài)。A、等待從鍵盤輸入數據B、等待協作進程的一個信號C、等待操作系統(tǒng)分配CPU時間D、等待網絡數據進入內存標準答案:C知識點解析:等待操作系統(tǒng)分配CPU時間屬于就緒狀態(tài),其他三種均屬于阻塞狀態(tài)。10、若系統(tǒng)中有五個并發(fā)進程涉及某個相同的變量A,則變量A的相關臨界區(qū)是由()臨界區(qū)構成。A、2個B、3個C、4個D、5個標準答案:D知識點解析:暫無解析11、在多進程的并發(fā)系統(tǒng)中,肯定不會因競爭()而產生死鎖。A、打印機B、磁帶機C、磁盤D、CPU標準答案:D知識點解析:暫無解析12、通常不采用()方法來解除死鎖。A、終止一個死鎖進程B、終止所有死鎖進程C、從死鎖進程處搶奪資源D、從非死鎖進程處搶奪資源標準答案:D知識點解析:解除死鎖的主要方法有:①終止一個或多個死鎖進程;②剝奪死鎖進程的資源。13、進程所請求的一次打印輸出結束后,將使進程狀態(tài)從()。A、運行態(tài)變?yōu)榫途w態(tài)B、運行態(tài)變?yōu)榈却龖B(tài)C、就緒態(tài)變?yōu)檫\行態(tài)D、等待態(tài)變?yōu)榫途w態(tài)標準答案:D知識點解析:暫無解析14、共享變量是指()訪問的變量。A、只能被系統(tǒng)進程B、只能被多個進程互斥C、只能被用戶進程D、可被多個進程標準答案:D知識點解析:暫無解析15、UNIX系統(tǒng)中,進程調度采用的技術是()。A、時間片輪轉B、先來先服務C、靜態(tài)優(yōu)先數D、動態(tài)優(yōu)先數標準答案:D知識點解析:暫無解析16、死鎖現象是由于()造成的。A、CPU數量不足B、內存數量不足C、多個進程搶奪并獨占資源D、作業(yè)批處理標準答案:C知識點解析:死鎖是指多個進程在占有一定資源的同時還寄希望得到其他進程占有的資源,而該進程也是占有一定的資源且不放棄的同時期望獲得其他進程占有的資源,進程間相互不讓步,造成各個進程均無法推進的現象。二、綜合應用題(本題共10題,每題1.0分,共10分。)17、我們?yōu)槟撑R界區(qū)設置一把鎖W,當W=1時表示關鎖,W=0時表示鎖已打開。試寫出開鎖原語和關鎖原語,并利用它們去實現互斥。標準答案:(1)開鎖原語:unlock(W):W=0;關鎖原語:lock(W);if(W==1)dono_op;W=1;(2)利用開關鎖原語實現互斥:valW:semaphore:=0;beginparbeginprocess:beginrepeatlock(W);criticalsectionunlock(W);remaindersectionuntilfalse;endparend知識點解析:暫無解析18、試修改下面生產者一消費者問題解法中的錯誤。producer;beginrepeatproduceraniteminnextp;wait(mutex);wait(full);buffer(in):=nextp;signal(mutex);untilfalse;endconsumer:beginrepeatwait(mutex);wait(empty);nextc:=buffer(out);out:=out+1;signal(mutex);consumeriteminnextc;untilfalse;end標準答案:producer;beginrepeatproduceraniteminnextp;wait(mutex);wait(full);/*應為wait(empty),而且還應該在wait(mutex)的前面*/buffer(in):=nextp;/木緩沖池數組游標應前移:in:=(in+1)modn:*/signal(mutex);/*signal(full);*/untilfalse;endconsumer;beginrepeatwait(mutex);wait(empty);/*應為wait(full),而且還應該在wait(mutex)的前面*/nextc:=buffer(out);out:=out+1;/*考慮循環(huán),應改為:out:=(out+1)modn;*/signal(mutex);/*signal(empty);*/consumeriteminnextc:untilfalse;end知識點解析:暫無解析19、3個進程P1、P2、P3互斥使用一個包含Ⅳ個(N>0)單元的緩沖區(qū),P1每次用produce()生成一個正整數并用put()送入緩沖區(qū)某一空單元中;P2每次用getodd()從該緩沖區(qū)中取出一個奇數并用countodd()統(tǒng)計奇數個數;P3每次用geteven()從該緩>中區(qū)中取出一個偶數并用counteven()統(tǒng)計偶數個數。請用信號量機制實現這3個進程的同步與互斥活動,并說明所定義的信號量的含義。要求用偽代碼描述。標準答案:(1)定義信號量sl控制P1與P2之間的同步,s2控制P1與P3之間的同步,empty控制生產者與消費者之間的同步,mutex控制進程間互斥使用緩沖區(qū)。(2)程序如下:varsl=0,s2=0,empty=N,mutex=1;parbeginP1:beginX=produce();/*生成一個數*/P(empty);/*判斷緩沖區(qū)是否有空單元*/P(mutex);/*緩沖區(qū)是否被占用術/Put();Ifx%2==0V(s2);/*如果是偶數,向P3發(fā)出信號*/elseV(s1);/*如果是奇數,向P2發(fā)出信號*/V(mutex);/*使用完緩沖區(qū),釋放木/endP2:beginP(s1);/*收到P1發(fā)來的信號,已產生一個奇數*/P(mutex);/*緩沖區(qū)是否被占用木/Getodd();Countodd():=countodd()+1;V(mutex);/*釋放緩沖區(qū)*/V(empty);/*向P1發(fā)信號,多出一個空單元*/endP3:beginP(S2)/*收到P1發(fā)來的信號,已產生一個偶數*/P(mutex);/*緩沖區(qū)是否被占用*/Geteven():Counteven():=counteven()+1;V(mutex);/*釋放緩沖區(qū)*/V(empty);/*向P1發(fā)信號,多出一個空單元*/endparend知識點解析:暫無解析20、假設程序PA和PB單獨執(zhí)行時所需的時間分別用TA和TB表示,并且假設TA=1h,TB=1.5h,其中處理器工作時間分別為TA=18min,TB=27min,如果采用多道程序設計方法,讓PA和PB并行工作,假定處理器利用率達到50%,系統(tǒng)開銷為15min,請問系統(tǒng)效率能提高多少?標準答案:(1)在串行情況下,兩個程序運行時間共計2.5h;在并行方式下,處理器利用率為50%,說明處理器的工作時間占總運行時間的50%。根據已知條件,“處理器工作時間分別為TA=18min,TB=27min”,即總運行時間為(18+27)÷50%(min),考慮到還有15min系統(tǒng)開銷,故并行與串行的效率比為并行處理所需的時間÷串行處理所需要的時間總和=[(18+27)÷50%+15]÷2.5÷60=70%。(2)即采用多道處理技術之后,完成程序PA和程序PB所需的時間為串行處理方法的70%。因此可以說效率提高了30%。知識點解析:暫無解析某多道程序設計系統(tǒng)配有一臺處理器和兩臺外設101、102,現有3個優(yōu)先級由高到低的J1、J2、J3都已裝入了主存,它們使用資源的先后順序和占用時間分別是:j1:IO2(30ms),CPU(10ms);IO1(30ms),CPU(10ms);J2:IO1(20ms),CPU(20ms);IO2(40ms);J3:CPU(30ms),IO1(20ms)。處理器調度采用可搶占的優(yōu)先數算法,忽略其他輔助操作時間,回答下列問題。21、分別計算作業(yè)J1、J2和J3從開始到完成所用的時間。標準答案:為了清楚地描述作業(yè)執(zhí)行情況,我們對題目假設的情況分析如下:J1占用IO2傳輸30ms時,J1傳輸完成,搶占J2的CPU,運行10ms,再傳輸30ms,運行10ms,完成。J1從開始到完成所用的時間為:30+10+304+10=80(ms)。J2與其并行地在I1上傳輸20ms,搶占J3的CPU,J2運行10ms后,被J1搶占CPU,等待10ms之后,J2再次得到CPU,運行10ms,J2啟動IO2傳輸,40ms完成。J2從開始到完成所用的時間為:20+10+10+10+40=90(ms)。J3在CPU上執(zhí)行20ms,被J2搶占CPU,等待30ms,再運行10ms,等待10ms,J3啟動IO1運行20ms的傳輸,完成。J3從開始到完成所用的時間為20+304-10+10+20=90(ms)。知識點解析:暫無解析22、3個作業(yè)全部完成時CPU的利用率。標準答案:三個作業(yè)全部完成時,CPU的利用率為(10+20+30+10)/90=7/9=7.8%。知識點解析:暫無解析23、3個作業(yè)全部完成時外設IO1的利用率。標準答案:三個作業(yè)全部完成時,外設IO1的利用率為(20+30+20)/90=7/9=78%。知識點解析:暫無解析有A、B兩個程序,程序A按順序使用CPU為10s,使用設備甲為5s,使用CPU為5,使用設備乙為5s,最后使用CPU為10s。程序B按順序使用設備甲為10s、使用CPU為10s,使用設備乙為5s,再使用CPU為5s,使用設備乙為10s,試問:24、在順序環(huán)境下執(zhí)行程序A和程序B,CPU的利用率是多少?標準答案:程序A和程序B順序執(zhí)行時,程序A執(zhí)行完畢程序B才開始執(zhí)行。兩個程序共耗時75s,其中占用CPU的時間為40s,因此順序執(zhí)行時CPU的利用率為40÷75=53%。知識點解析:暫無解析25、在多道程序環(huán)境下,CPU的利用率是多少?標準答案:在多道程序環(huán)境下,兩個程序并發(fā)執(zhí)行,其執(zhí)行情況如下表所示。由表中數據可以看出,兩個程序共耗時40s,其中CPU運行時間為40s,故此時CPU的利用率為40/40=100%。知識點解析:暫無解析26、何謂死鎖?產生死鎖的原因和必要條件是什么?在解決死鎖問題的幾個方法中,哪種方法最容易實現?哪種方法使資源的利用率最高?標準答案:(1)死鎖是指多個進程因競爭資源而造成的一種僵局,若無外力作用,這些進程都將永遠不能再向前推進。(2)產生死鎖的原因有二,一是競爭資源,二是進程推進順序非法。(3)產生死鎖的必要條件是互斥條件、請求和保持條件、不可剝奪條件和循環(huán)等待條件。(4)解決死鎖可歸納為四種方法:預防死鎖、避免死鎖、檢測死鎖和解除死鎖。(5)解決死鎖的四種方法中,預防死鎖是最容易實現的,而避免死鎖的發(fā)生則可以使資源的利用率最高。知識點解析:暫無解析計算機專業(yè)基礎綜合(進程管理)模擬試卷第4套一、單選題(本題共16題,每題1.0分,共16分。)1、進程處于()等待狀態(tài)時,它是處于非阻塞狀態(tài)的。A、等待從鍵盤輸入數據B、等待協作進程的一個信號C、等待操作系統(tǒng)分配CPU寸間D、等待網絡數據進入內存標準答案:C知識點解析:暫無解析2、下列敘述中,錯誤的是()。A、操作系統(tǒng)是用戶與計算機之間的接口B、程序的并發(fā)執(zhí)行,使程序失去了順序執(zhí)行時具有的封閉性和可再現性,程序與程序的執(zhí)行不再一一對應C、進程從一個狀態(tài)到另一個狀態(tài)的轉換,都是靠使用不同的原語來實現的D、在單CPU系統(tǒng)中,任何時刻處于就緒狀態(tài)的進程有多個,而且只有處于就緒狀態(tài)的進程經調度程序選中后才可進入運行狀態(tài)標準答案:C知識點解析:從用戶的角度看,操作系統(tǒng)是用戶使用計算機的橋梁,用戶通過操作系統(tǒng)的兩類接口來達到操縱計算機的目的。選項A正確。選項B的敘述也是正確的,因為這正是引入進程概念的原因。進程從一個狀態(tài)到另一個狀態(tài)的轉換是一個非常復雜的過程,除了要使用不同的原語外,有時還要借助于硬件觸發(fā)器才能完成。例如,UNIX系統(tǒng)中,從系統(tǒng)態(tài)到用戶態(tài)的轉換要借助硬件觸發(fā)器。因此,選項C錯誤。處于就緒狀態(tài)的進程已經獲得了除CPU之外的所有資源,由于只有一個CPU,任何時刻就只能有一個進程獲得CPU,而其他的就只能在就緒狀態(tài)對應的隊列上排隊等待調度程序的調度。所以選項D也正確。3、進程調度是從()選擇一個進程投入運行的。A、就緒隊列B、等待隊列C、作業(yè)后備隊列D、提交隊列標準答案:A知識點解析:處于就緒隊列的進程是獲得了除處理機以外的所有資源處于準備執(zhí)行的狀態(tài)。進程調度就是負責從就緒隊列中挑選進程投入運行的。4、下列敘述中,正確的是()。A、分時系統(tǒng)中,時間片越小,響應時間越長B、多道程序的引入,主要是為了提高CPU及其他資源的利用率C、飛機票訂票系統(tǒng)是分時系統(tǒng)D、PCB是進程存在的唯一標志,而程序是系統(tǒng)感知進程存在的唯一實體標準答案:B知識點解析:分時系統(tǒng)的響應時間T≈nq,n是用戶數目,而q是時間片。當在用戶數目一定的情況下,時間片越小,響應時間越短。因此,選項A錯誤。在單道程序環(huán)境中,系統(tǒng)的全部資源為一個作業(yè)所獨占,如果該作業(yè)在進行輸入或輸出時,CPU仍然被它所占有,處于等待狀態(tài)。由于CPU與外設處理速度上的差異,如果采用多道程序設計技術,當某個作業(yè)輸入或輸出時,CPU就可處理其他的作業(yè),其他資源也是類似的。因此,選項B正確。飛機票訂票系統(tǒng)是實時信息處理系統(tǒng)。所以,選項C錯誤。PCB是進程存在的唯一標志,也是系統(tǒng)感知進程存在的唯一實體,而進程的程序部分描述了進程所要完成的功能。因此,選項D錯誤。5、一個進程被喚醒,意味著()。A、該進程重新占有了CPUB、進程狀態(tài)變?yōu)榫途wC、它的優(yōu)先權變?yōu)樽畲驞、其PCB移至就緒隊列的隊首標準答案:B知識點解析:進程被喚醒是進入就緒隊列。是否插入到就緒隊列的什么地方,取決于就緒的管理方法和進程調度的算法。如果進程調度是最高優(yōu)先數優(yōu)先,該進程按優(yōu)先數插入該隊列中;如果該隊列是按到達的先后次序排列的,則按到達的先后插入。6、進程和程序的本質區(qū)別是()。A、存儲在內存和外存B、順序和非順序執(zhí)行機器指令C、分時使用和獨占使用計算機資源D、動態(tài)和靜態(tài)特征標準答案:D知識點解析:程序是指令的集合,而進程是可以和其他程序并發(fā)執(zhí)行的程序的一次執(zhí)行過程。程序可以作為資料長期保存,而進程有從產生到消亡的過程。7、系統(tǒng)感知進程的唯一實體是()。A、JCBB、FCBC、PCBD、SJT標準答案:C知識點解析:進程控制塊PCB是進程存在的唯一標志。8、一進程在某一時刻具有()。A、一種狀態(tài)B、兩種狀態(tài)C、三種狀態(tài)D、四種狀態(tài)標準答案:A知識點解析:進程可能處于就緒、運行、等待三種基本狀態(tài),但進程在任一時刻只能處于一種狀態(tài)。9、在單處理機的多進程系統(tǒng)中,進程什么時候占用處理機以及決定占用時間的長短是()。A、進程相應的代碼長度B、進程總共需要運行的時間C、進程特點和進程調度策略D、進程完成什么功能標準答案:C知識點解析:本題考查進程調度的時機和進程調度的策略。進程調度的時機與進程特點有關,例如,進程是CPU繁忙型還是I/O繁忙型、自身的優(yōu)先級等。但是僅有這些特點是不夠的,能否得到調度還取決于進程調度策略,若采用優(yōu)先級調度算法,則進程的優(yōu)先級才起作用。至于占用處理機運行時間的長短,則要看進程自身,若進程是I/O繁忙型,運行過程中要頻繁訪問I/O,也就是說,可能會頻繁主動放棄CPU,所以,占用CPU的時間就不會長,一旦放棄CPU,則必須等待下次調度。若進程是CPU繁忙型,則一旦占有CPU就可能會運行很長時間,但是,運行時間還取決于進程調度策略。多數情況下,交互式系統(tǒng)為改善用戶的響應時間,大多采用時間片輪轉算法,這種算法在進程長期占用CPU到一定時間后,會強制將其換下,以保證其他進程的CPU使用權。所以,本題的正確答案應為選項C。10、進程從運行狀態(tài)變?yōu)樽枞脑蚩赡苁?)。A、輸入/輸出事件發(fā)生B、時間片到C、輸入/輸出事件完成D、某個進程被喚醒標準答案:A知識點解析:正在運行的進程如果要申請輸入或輸出,這時進程的狀態(tài)將從運行變?yōu)榈却瑢PU讓出,等待輸入或輸出完成。11、進程創(chuàng)建原語的任務是()。A、為進程編制程序B、為進程建立PCB表C、為進程分配CPUD、為進程分配所需的各種資源標準答案:B知識點解析:進程存在的標志是進程控制塊,所以創(chuàng)建進程就是要創(chuàng)建PCB,并將有關參數填入PCB中。12、進程被創(chuàng)建后即進入()排隊。A、阻塞隊列B、就緒隊列C、緩沖隊列D、運行隊列標準答案:B知識點解析:進程創(chuàng)建后,按就緒隊列的排列順序插入其中,等待進程調度程序的調度。13、多道程序系統(tǒng)中,()的作用是從就緒狀態(tài)中挑選一個進程投入運行。A、作業(yè)調度B、交換調度C、進程調度D、SPOOLing調度標準答案:C知識點解析:暫無解析14、多道系統(tǒng)環(huán)境下,操作系統(tǒng)分配資源以()為基本單位。A、作業(yè)B、指令C、程序D、進程標準答案:D知識點解析:多道環(huán)境下,程序這個概念已經難以反映程序并發(fā)執(zhí)行的特點,所以,在多道環(huán)境下,為了更好地描述程序并發(fā)執(zhí)行的特點,引入了進程的概念。進程是在多道環(huán)境下資源分配的基本單位。15、進程調度主要負責()。A、選作業(yè)進入內存B、選一進程占有CPUC、建立一進程D、撤銷一進程標準答案:B知識點解析:進程調度主要負責選擇下一個將要運行的進程,進程運行與進程占用CPU是同一過程。16、出現下列的情況可能導致死鎖的是()。A、進程釋放資源B、一個進程進入死循環(huán)C、多個進程競爭資源出現了循環(huán)等待D、多個進程競爭使用共享型的設備標準答案:C知識點解析:死鎖的定義:兩個或兩個以上并發(fā)進程,如果每個進程持有某種資源,而又等待著別的進程釋放它或它們現在保持著的資源,否則就不能向前推進。此時,每個進程都占用了一定的資源,但又都不能向前推進。這種現象稱為死鎖。死鎖的起因:互斥條件,不可剝奪條件,部分分配,環(huán)路條件。二、綜合應用題(本題共10題,每題1.0分,共10分。)17、簡述判斷死鎖的必要條件。標準答案:(1)互斥條件。進程競爭的資源必須互斥使用。(2)請求與保持條件。當前已擁有資源的進程,仍能申請新的資源,而當該進程因為新的資源被其他進程占據而被阻塞時,它仍保持自己的資源不釋放。(3)不可剝奪條件。進程申請的資源只能在使用完畢時自行釋放。(4)循環(huán)等待條件。存在一個至少包含兩個進程的循環(huán)等待鏈,鏈中的每個進程都在等待下一個進程所占有的資源。知識點解析:暫無解析18、假定系統(tǒng)有三個并發(fā)進程read、move和print共享緩沖器B1和B2。進程read負責從輸入設備上讀信息,每讀出一條記錄后把它存放到緩沖器B1中。進程move從緩沖器B1中取出一條記錄,加工后存入緩沖器B2。進程print將B2中的記錄取出打印輸出。緩沖器B1和B2每次只能存放一條記錄。要求三個進程協調完成任務,使打印出來的與讀入的記錄的條數,次序完全一樣。請用wait和signal原語寫出它們的并發(fā)程序。標準答案:beginSR,SM1,SM2,SP:semaphore;B1,B2:record;SR:=1;SM1:=0;SM2:=1;SP:=0;cobeginprocessreadX:record;beginR:(接收來自輸入設備上一條記錄)X:=接收的一條記錄;wait(SR);B1:=X;signal(SM1);gotoR;end;ProcessmoveY:record;beginM:wait(SMl);Y:=B1:Signal(SR)加工Ywait(SM2);B2:=Y;signal(SP);gotoM;end;ProcessprintZ:record;beginP:wait(SP);Z:=B2;signal(SM2)打印ZgotoP;end;coend;end;知識點解析:暫無解析19、舉例說明,P、V操作為什么要求設計成原語(即對同一信號量上的操作必須互斥)。P(S)操作:S.value--;if(S.value<0){AddthisprocesstoS.L;Block();}V(S)操作:S.value++:if(s.value<=0){RemoveaprocessPfromS.L:Wakeup(P);}標準答案:例如,用P、V操作來實現進程對臨界資源互斥使用。此時,只需定義一個信號量S,其初值{1,NULL},并在臨界區(qū)前執(zhí)行P(S)操作,而在臨界區(qū)后執(zhí)行V(S)操作。此時P、V操作不設計成原語,那么在執(zhí)行P、V操作時進程可以被中斷。由于在初始狀態(tài)下臨界資源空閑,故應允許第一個申請臨界資源的進程進入臨界區(qū)使用臨界資源,但如果該進程在執(zhí)行到P操作的語句S.value一一后(此時S.Value的值為0)便被另一個進程中斷,而那個進程也企圖通過執(zhí)行P(S)操作進入臨界區(qū),則第二個進程也必須執(zhí)行語句S.value一,從而將S.value的值為一1,并由于S.value<0而被阻塞,而第一個進程再次獲得CPU后也同樣由于S.value<0而被阻塞,這就造成了臨界資源雖然空閑但進程卻申請不到臨界資源的情況,也就是說,此時的P、V操作已無法滿足同步機制的要求。同樣,一個執(zhí)行P(S)操作的進程被中斷后另一進程去執(zhí)行V(S)操作,一個執(zhí)行V(S)操作的進程被中斷后而另一個進程去執(zhí)行P(S)或V(S)操作,都將發(fā)生混亂而難以實現進程同步。因此,P、V操作必須設計成原語的方式。知識點解析:暫無解析20、并發(fā)使得處理機的利用率得到提高,其主要原因是處理機與I/O可以同時為多個進程服務,也即處理機與I/O設備真正地并行。但是處理機的利用率提高并不是簡單地將兩個進程的處理機利用率相加,而是遵循一定的規(guī)律?,F在有一個計算機系統(tǒng)采用多道程序技術實現了并發(fā),調度算法采用時間片輪轉,時間片很小可以不計進程并發(fā)時的次序。忽略計算機系統(tǒng)的開銷。假設進程創(chuàng)建時間和完全占有CPU運行的確切時間如下表所示。已知其I/O繁忙率為80%,處理機的利用率為20%。請計算并填寫下列空格和圖表空格處。標準答案:本題考查的是并發(fā)進程之間的計算。計算機引入多道程序設計技術主要是為提高處理機的利用率。在多道程序并發(fā)的情況下,處理機的利用

溫馨提示

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

評論

0/150

提交評論