操作系統(tǒng)第4章答案(上)_第1頁(yè)
操作系統(tǒng)第4章答案(上)_第2頁(yè)
操作系統(tǒng)第4章答案(上)_第3頁(yè)
操作系統(tǒng)第4章答案(上)_第4頁(yè)
操作系統(tǒng)第4章答案(上)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.趙盈盈 2011210593 第四章作業(yè)上1. 解釋名詞:程序的順序執(zhí)行;程序的并發(fā)執(zhí)行。答:程序的順序執(zhí)行:一個(gè)具有獨(dú)立功能的程序獨(dú)占cpu直到得到最終結(jié)果的進(jìn)程。 程序的并發(fā)執(zhí)行:兩個(gè)或兩個(gè)以上程序在計(jì)算機(jī)系統(tǒng)中同時(shí)處于一開始執(zhí)行且尚未結(jié)束的狀態(tài)。2. 什么是進(jìn)程?進(jìn)程與程序的主要區(qū)別是什么?答:進(jìn)程:進(jìn)程是具有獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨(dú)立單元。進(jìn)程和程序的區(qū)別:程序是靜態(tài)的,進(jìn)程是動(dòng)態(tài)的進(jìn)程有程序和數(shù)據(jù)兩部分組成進(jìn)程具有生命周期,有誕生和消亡,是短暫的;而程序是相對(duì)長(zhǎng)久的進(jìn)程能更真實(shí)的描述并發(fā),而程序不行。一個(gè)進(jìn)程可以對(duì)應(yīng)多個(gè)程序。一個(gè)程序可以對(duì)應(yīng)多個(gè)進(jìn)程進(jìn)程可以創(chuàng)建其他進(jìn)程,程序不能3. 圖1所示,設(shè)一謄抄程序,將f中記錄序列正確謄抄到g中,這一程序由get、copy、put三個(gè)程序段組成,它們分別負(fù)責(zé)獲得記錄、復(fù)制記錄、輸出記錄。請(qǐng)指出這三個(gè)程序段對(duì)f中的m個(gè)記錄進(jìn)行處理時(shí)各種操作的先后次序,并畫出謄抄此記錄序列的先后次序圖(假設(shè)f中有1,2,m個(gè)記錄,s,t為設(shè)置在主存中的軟件緩沖區(qū),每次只能裝一個(gè)記錄)。fscopytputgget圖1 改進(jìn)后的謄抄過(guò)程答:GCGPCPGCP4. 進(jìn)程有哪幾種基本狀態(tài)?試畫出進(jìn)程狀態(tài)變遷圖,并標(biāo)明發(fā)生變遷的可能原因。答:進(jìn)程基本狀態(tài):運(yùn)行、就緒、等待運(yùn)行狀態(tài)轉(zhuǎn)換圖:等待就緒就緒到運(yùn)行:調(diào)度程序選擇一個(gè)新的進(jìn)程運(yùn)行運(yùn)行到就緒:運(yùn)行進(jìn)程用完了時(shí)間片或運(yùn)行進(jìn)程被中斷,因?yàn)橐粋€(gè)高優(yōu)先級(jí)的進(jìn)程處于就緒狀態(tài)運(yùn)行到等待:OS尚未完成服務(wù)或?qū)σ毁Y源的訪問(wèn)尚不能進(jìn)行 或初始化I/O 且必須等待結(jié)果 或等待某一進(jìn)程提供輸入(IPC)等待到就緒:當(dāng)所有的事件發(fā)生時(shí)5. 什么是進(jìn)程控制塊?它有什么作用?答:PCB:為了便于系統(tǒng)控制和描述進(jìn)程的活動(dòng)過(guò)程,在操作系統(tǒng)核心中為進(jìn)程定義的一個(gè)專門的數(shù)據(jù)結(jié)構(gòu)。作用:系統(tǒng)用PCB來(lái)控制和管理進(jìn)程的調(diào)用,PCB也是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志6. n個(gè)并發(fā)進(jìn)程共用一個(gè)公共變量Q,寫出用信號(hào)燈的p、v操作實(shí)現(xiàn)n個(gè)進(jìn)程互斥時(shí)的程序描述,并說(shuō)明信號(hào)燈值的取值范圍。答:main() pi() int mutex=1; p(mutex);cobegin 執(zhí)行進(jìn)程Pi; for(i=1;1=n;i+) pi(); v(mutex);coend 對(duì)于N并發(fā)進(jìn)程,互斥子信號(hào)燈取值范圍為【-(n-1),1】Mutex = 1,表示沒(méi)有進(jìn)程進(jìn)入緩沖區(qū)。 Mutex = 0,表示有一個(gè)進(jìn)程進(jìn)入緩沖區(qū),沒(méi)有進(jìn)程等待Mutex = -1,表示有一個(gè)進(jìn)程進(jìn)入緩沖區(qū),一個(gè)進(jìn)程等待Mutex =-(n-1),表示有一個(gè)進(jìn)程進(jìn)入緩沖區(qū),n-1個(gè)進(jìn)程等待7. 我們用進(jìn)程流圖來(lái)描述一組合作進(jìn)程執(zhí)行的先后次序。試用信號(hào)燈的p、v操作實(shí)現(xiàn)如圖2(a)、(b)中所示進(jìn)程之間的同步,并寫出程序描述。SP1(S1)P6(S6)P5(S5)fSP1SfP3(S3)P2(S2)P4(S4)P4(S4)P7(S57、S67)P3(S3)P2(S2)P5(S35、S45)f圖2 圖3答:PV操作實(shí)現(xiàn)(a)及程序?qū)崿F(xiàn)main()int S2=0,S3=0,S4=0; P1() P2() P3() P4()Cobegin P1();P2();P3();P4(); 執(zhí)行P1; P(S2); P(S3); P(S4);Coend V(S2); 執(zhí)行P2; 執(zhí)行P3; 執(zhí)行P4; V(S3); V(S4); PV操作實(shí)現(xiàn)(b)及程序?qū)崿F(xiàn)main()int S5=0,S6=0; P5() P6() P7()int S57=0,S67=0; Cobegin P(S5); P(S6); P(S57);P5();P6();P7(); 執(zhí)行P5; 執(zhí)行P6; P(S67);Coend V(S57) V(S67); 執(zhí)行P7; 8. 如圖3所示的進(jìn)程流圖中,有五個(gè)進(jìn)程合作完成某一任務(wù),試說(shuō)明這五個(gè)進(jìn)程之間的同步關(guān)系,并用p、v操作實(shí)現(xiàn)之,并要求寫出程序描述。答:PV操作實(shí)現(xiàn)及程序?qū)崿F(xiàn) Main() P1() P2()int S1=0,S2=0,S3=0,S4=0;S35=0,S45=0; 執(zhí)行P1; P(S2); Cobegin V(S2); 執(zhí)行S2; P1();P2();P3();P4();P5(); V(S3); Coend V(S4); P3() P4() P5()P(S3); P(S4); P(35); 執(zhí)行P3; 執(zhí)行P4; P(45);V(35); V(45); 執(zhí)行P5; 9. 如圖4所示,get、copy、put三進(jìn)程共用兩個(gè)緩沖區(qū)s、t(其大小為每次存放一個(gè)記錄)。get進(jìn)程負(fù)責(zé)不斷地把輸入記錄送入緩沖區(qū)s中,copy進(jìn)程負(fù)責(zé)從緩沖區(qū)s中取出記錄復(fù)制到緩沖t中,而put進(jìn)程負(fù)責(zé)把記錄從緩沖區(qū)t中取出打印。試用p、v操作實(shí)現(xiàn)這三個(gè)進(jìn)程之間的同步,并寫出程序描述。putcopyget緩沖區(qū)s緩沖區(qū)t圖4答:PV操作實(shí)現(xiàn)及程序?qū)崿F(xiàn)Main()int S1=1,S2=0;/S1表示空緩沖區(qū)s個(gè)數(shù),S2表示緩沖區(qū)是否有內(nèi)容可以被copy int T1=1,T2=0;/ T1表示空緩沖區(qū)t個(gè)數(shù),T2表示緩沖區(qū)是否有內(nèi)容可以被putCobegin Get();Copy();Put();CoendGet() Copy while(1) while(1) P(S1); /檢查S是否為空 P(S2);/檢查S是否為滿put data to buffer S /補(bǔ)數(shù)據(jù)放入S copy data from buffer S;/ copy數(shù)據(jù) V(S2);/ S已滿 V(S1); /清空S /while P(T1);/檢查T是否為空/Get put data to buffer T; V(T2);/T已滿 Put() while(1)P(T2);/檢測(cè)T是否為滿 Output data from buffer T;/輸出T中數(shù)據(jù) V(T1);/清空緩沖區(qū)T10. 什么是進(jìn)程的互斥與同步?同步和互斥這兩個(gè)概念有什么聯(lián)系與區(qū)別?答:進(jìn)程同步:是指進(jìn)程之間一種直接的協(xié)同關(guān)系,是一些進(jìn)程相互合作,共同完成一項(xiàng)任務(wù),進(jìn)程剪得直接相互作用構(gòu)成進(jìn)程的同步。進(jìn)程互斥:在系統(tǒng)中,許多進(jìn)程需要共享資源,而這些資源往往要求排他性的使用,即一次只能為一個(gè)進(jìn)程服務(wù)。因此,個(gè)進(jìn)程間互斥使用這些資源,進(jìn)程間的這種關(guān)系叫做進(jìn)程互斥。 聯(lián)系:進(jìn)程互斥與同步是指在進(jìn)程推進(jìn)時(shí)的相互制約關(guān)系。在多道程序系統(tǒng)中,由于資源共享與進(jìn)程合作,這種進(jìn)程間的制約成為可能。 區(qū)別:進(jìn)程同步主要源于進(jìn)城合作,是進(jìn)程間共同完成一項(xiàng)任務(wù)時(shí)直接發(fā)生相互作用,為進(jìn)城提供直接制約關(guān)系。在多道環(huán)境下,這種進(jìn)程在執(zhí)行次序上的協(xié)調(diào)是必不可少的。 而進(jìn)程互斥,主要源于資源共享,是進(jìn)程間的間接制約關(guān)系。在多道系統(tǒng)中,每次只允許一個(gè)進(jìn)程訪問(wèn)的資源成為臨界資源,進(jìn)程互斥就是保證每次只有一個(gè)進(jìn)程使用臨界資源。11. 在生產(chǎn)者一消費(fèi)者問(wèn)題中,我們?cè)O(shè)置三個(gè)信號(hào)燈,一個(gè)用于互斥的信號(hào)燈mutex,其初值為1;另外兩個(gè)信號(hào)燈是:full(初值為0,用以指示緩沖區(qū)內(nèi)是否有物品)和empty(初值為n,表示可利用的緩沖區(qū)數(shù)目)。試寫出此時(shí)的生產(chǎn)者一消費(fèi)者問(wèn)題的描述。答:該問(wèn)題描述的是一個(gè)多個(gè)生產(chǎn)者 一個(gè)消費(fèi)者12. 判斷正是列同步算法是否有錯(cuò),請(qǐng)指出錯(cuò)誤原因并改正。(1)三個(gè)進(jìn)程并發(fā)活動(dòng)的進(jìn)程流圖5所示,其同步算法描述如下:main( ) 解(1) 答:改正如下:SfP3P2P1int s =-1; int S13=0,S23=0;cobeginp1( );p2( );p3( );coendp1( ) P1() 圖5 v(s); V(S13); p2( ) P2() p(s); 圖4.25 V(S23); p3( ) P3() P(S13);p(s); P(S23); (2)設(shè)a、b兩進(jìn)程共用一緩沖區(qū)t,a向t寫入信息,b則從t讀出信息,算法框圖如圖6所示。(3)設(shè)a、b為兩個(gè)并發(fā)進(jìn)程,它們共享一臨介資源。其執(zhí)行臨界區(qū)的算法框圖如圖7所示。B進(jìn)程A進(jìn)程 A進(jìn)程P(S)P(S) 向t寫入信息 V(S1)csbP(S1)CSaB進(jìn)程v(s2)從t讀出信息 P(S2) V(S) V(S2)注:信號(hào)燈s的值為0注:信號(hào)燈s1、s2的值均為0圖6 圖7答:解(2)A 進(jìn)程與B進(jìn)程之間是協(xié)同關(guān)系。A進(jìn)程往緩沖區(qū)寫入信息之前要先判斷 緩沖區(qū)是否為滿。寫入之后看聲明緩沖區(qū)數(shù)據(jù)可以被取走B進(jìn)程從緩沖區(qū)取數(shù)據(jù)之前 先檢測(cè)緩沖區(qū)是否已滿,從t中讀出信息之后要聲明緩沖區(qū)數(shù)據(jù)已被取走。 Main()int S1=1,S2=0;/S1緩沖區(qū)是否裝滿,S0表示緩沖區(qū)內(nèi)容是否陪取走Cobegin A();B();Coend;A() B()while(1) while(1) Input data to buffer T; P(S1);/檢驗(yàn)緩沖區(qū)是否為滿V(S1);/緩沖區(qū)是否已滿 output data to buffer T;P(S2);/緩沖區(qū)數(shù)據(jù)可以被取走 V(S2);/緩沖區(qū)數(shù)據(jù)被取走/while /while /A() /B()答:解(3)進(jìn)程A、B之間為互斥關(guān)系,用一個(gè)信號(hào)燈就夠了。 改正如圖 A、B只需進(jìn)入臨界區(qū)之前檢測(cè)臨界區(qū)是否為空。出來(lái)之后聲明臨界區(qū)可用即可圖可以表現(xiàn)為13. 試說(shuō)明進(jìn)程創(chuàng)建的主要功能是什么?答:(1)為新建進(jìn)程創(chuàng)建PCB。(2)賦予一個(gè)統(tǒng)一進(jìn)程標(biāo)識(shí)符(3)為進(jìn)程映像分配空間(4)初始化進(jìn)程控制塊(5)設(shè)置相應(yīng)的鏈接,將新建進(jìn)程設(shè)置為就緒狀態(tài),把PCB排入就緒隊(duì)列 中。14. 用于進(jìn)程控制的原語(yǔ)主要有哪幾個(gè)?答:用于進(jìn)程控制的原語(yǔ)主要有:創(chuàng)建原語(yǔ),撤銷原語(yǔ),阻塞原語(yǔ),喚醒原語(yǔ)15. 什么是線程?線程與進(jìn)程有什么區(qū)別? 答:線程是進(jìn)程中的一個(gè)實(shí)體,是cpu調(diào)度和分派的基本單位。 區(qū)別:(1)調(diào)度:線程是調(diào)度和分配的基本單位,進(jìn)程是資源擁有的基本單位;在同一個(gè)進(jìn)程中線程的切換不會(huì)引起進(jìn)程的切換,在一個(gè)進(jìn)程中線程切換到另一個(gè)進(jìn)程中是會(huì)引起進(jìn)程的切換。(2)并發(fā)性:引入線程的OS中,不僅進(jìn)程之間可以并發(fā)執(zhí)行,而且一個(gè)進(jìn)程的多個(gè)線程也可以并發(fā)執(zhí)行。因而是OS有更好的并發(fā)性,從而能更有效地使用系統(tǒng)資源提高系統(tǒng)吞吐率。(3)擁有資源:進(jìn)城

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論