操作系統(tǒng)第4章答案復(fù)習(xí)課程_第1頁(yè)
操作系統(tǒng)第4章答案復(fù)習(xí)課程_第2頁(yè)
操作系統(tǒng)第4章答案復(fù)習(xí)課程_第3頁(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)介

1、趙盈盈2011210593第四章作業(yè)上1. 解釋名詞:程序的順序執(zhí)行;程序的并發(fā)執(zhí)行。答: 程序的順序執(zhí)行:一個(gè)具有獨(dú)立功能的程序獨(dú)占cpu 直到得到最終結(jié)果的進(jìn)程。程序的并發(fā)執(zhí)行: 兩個(gè)或兩個(gè)以上程序在計(jì)算機(jī)系統(tǒng)中同時(shí)處于一開(kāi)始執(zhí)行且尚未結(jié)束的狀態(tài)。2. 什么是進(jìn)程?進(jìn)程與程序的主要區(qū)別是什么?答:進(jìn)程: 進(jìn)程是具有獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng),資源分配和調(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)

2、多個(gè)進(jìn)程進(jìn)程可以創(chuàng)建其他進(jìn)程,程序不能進(jìn)程是系統(tǒ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è)記錄)。getcopyputfstg圖 1改進(jìn)后的謄抄過(guò)程答:PPCGCCPGG4. 進(jìn)程有哪幾種基本狀態(tài)?試畫出進(jìn)程狀態(tài)變遷圖,并標(biāo)明發(fā)生變遷的可能原因。答: 進(jìn)程基本狀態(tài):運(yùn)行、就緒

3、、等待狀態(tài)轉(zhuǎn)換圖:運(yù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

4、個(gè)進(jìn)程互斥時(shí)的程序描述,并說(shuō)明信號(hào)燈值的取值范圍。答: main()int mutex=1;cobeginfor(i=1;1=n;i+) pi();coendpi()p(mutex);v(mutex);執(zhí)行進(jìn)程Pi;對(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í)

5、現(xiàn)如圖2(a) 、 (b) 中所示進(jìn)程之間的同步,并寫出程序描述。SSSP (S1)P11P5( S5)P6( S6)P (S4)P ( S2)P (S3)4423P (S4)P3( S3)P7( S57、 S67)P2(S2)f5( S35、S45)fPf圖2圖3答: PV操作實(shí)現(xiàn)( a)及程序?qū)崿F(xiàn)main()int S2=0,S3=0,S4=0;P1()P2()P3()P4()CobeginP1();P2();P3();P4();執(zhí)行 P1;P( S2);P( S3); P( S4);CoendV(S2);執(zhí)行 P2;執(zhí)行 P3;執(zhí)行 P4;V(S3);V(S4);PV操作實(shí)現(xiàn)( b)及程

6、序?qū)崿F(xiàn)main()int S5=0,S6=0;P5()P6()P7()int S57=0,S67=0;CobeginP(S5);P( S6);P( S57);P5();P6();P7();執(zhí)行 P5;執(zhí)行 P6;P( S67);CoendV(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);CobeginV(S2)

7、;執(zhí)行 S2;P1();P2();P3();P4();P5();V(S3);CoendV(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)程之間的同步,并寫出程序描述。getcopyput緩沖區(qū)s緩沖區(qū)t圖4答: PV

8、操作實(shí)現(xiàn)及程序?qū)崿F(xiàn)Main()int S1=1,S2=0;/S1表示空緩沖區(qū)s 個(gè)數(shù), S2 表示緩沖區(qū)是否有內(nèi)容可以被int T1=1, T2=0; / T1表示空緩沖區(qū)t 個(gè)數(shù), T2 表示緩沖區(qū)是否有內(nèi)容可以被CobeginGet();Copy();copyputPut();CoendGet()Copy while(1) while(1) P(S1); /檢查 S 是否為空 P(S2);/檢查 S 是否為滿put data to buffer S /補(bǔ)數(shù)據(jù)放入Scopy data from buffer S; / copyV(S2); / S已滿V(S1); /清空 S/whileP(T

9、1); / 檢查 T 是否為空/Getput data to buffer T;V(T2);/T已滿數(shù)據(jù)Put() while(1)P(T2) ; / 檢測(cè) T 是否為滿Output data from buffer TV(T1) ; / 清空緩沖區(qū)T; /輸出T 中數(shù)據(jù)10. 什么是進(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)

10、程間的這種關(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,用以指

11、示緩沖區(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) 答:改正如下:Sint s =-1 ;int S13=0,S23=0;P2P1cobeginp1( );p2( );P3p3( );coendfp ( )P1()1圖 5v(s) ;V(S13);p ( )P2()2p(s) ;V(S23);圖 4.25p3( )P3() P(S13);p(s)

12、;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)程B 進(jìn)程P(S)P(S)向 t 寫入信息P(S1)csbV(S1)CSav(s2)P( S2)從 t 讀出信息V(S)V(S2)注:信號(hào)燈 s 的值為 0注:信號(hào)燈 s 、 s的值均為 012圖 6圖 7答:解( 2) A 進(jìn)程與 B 進(jìn)程之間是協(xié)同關(guān)系。A 進(jìn)程往緩沖區(qū)寫入信息之前要先判斷緩沖區(qū)是否為滿。寫入之后看聲明緩沖區(qū)數(shù)據(jù)可以被取走B 進(jìn)程從緩沖區(qū)

13、取數(shù)據(jù)之前 先檢測(cè)緩沖區(qū)是否已滿, 從 t 中讀出信息之后要聲明緩沖區(qū)數(shù)據(jù)已被取走。Main()int S1=1,S2=0;/S1緩沖區(qū)是否裝滿,S0 表示緩沖區(qū)內(nèi)容是否陪取走CobeginA();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è)信

14、號(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)

溫馨提示

  • 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)論