操作系統(tǒng)原理作業(yè)_第1頁
操作系統(tǒng)原理作業(yè)_第2頁
操作系統(tǒng)原理作業(yè)_第3頁
操作系統(tǒng)原理作業(yè)_第4頁
操作系統(tǒng)原理作業(yè)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第3章作業(yè)3.2 試比較進程和程序的區(qū)別。答:(1)進程是一個動態(tài)概念,而程序則是一個靜態(tài)概念。程序是指令的有序集合,沒有任何執(zhí)行的含義。而進程則強調執(zhí)行過程,它動態(tài)地被創(chuàng)建,并被調度執(zhí)行后消亡;(2)進程具有并發(fā)特征,而程序沒有; (3)進程是競爭計算機系統(tǒng)資源的基本單位,從而其并發(fā)性受到系統(tǒng)自己的制約。這里制約就是對進程獨立性和異步性; (4)不同的進程可以包含同一程序,只要該程序所對應的數(shù)據(jù)集不同。3.3我們說程序的并發(fā)執(zhí)行將導致最終結果失去封閉性。這話對所有的程序都成立嗎?試距離說明。答:并非對所有的程序都成立。如: Begin local x;x=10;print(x); End上述

2、程序中x是內部變量,不可能被外部程序訪問,因此這段程序的運行不會手外部環(huán)境影響。3.7并發(fā)進程間的制約有哪2種?引起制約的原因是什么?答:并發(fā)進程間的制約有兩種:直接制約和間接制約。直接制約是由并發(fā)進程互相共享對方的私有資源所引起的。間接制約是由競爭公有資源引起的。3.8什么是進程間的互斥?什么是進程間的同步?答:進程間的互斥是指:一組并發(fā)進程中的一個或多個程序段,因共享某一共有資源而導致它們必須以一個不許交叉執(zhí)行的單位執(zhí)行,集不允許兩個以上的共享該資源的并發(fā)進程同時進入臨界區(qū)。 進程間的同步是指:異步環(huán)境下的一組并發(fā)進程陰直接制約互相發(fā)送消息二進行合作、互相等待,是個進程按一定的速度執(zhí)行的過

3、程。3.13編寫一個程序使用系統(tǒng)調用fork生成三個子進程,并使用系統(tǒng)調用pipe創(chuàng)建一管道,使得這3個子進程和父進程公用同一條管道進行信息通信。答: main()  int r,i,P1,P2,fd2;  char buf50,s50;  pipe(fd);  while(P1=fork()=-1);  if(P1=0)      lockf(fd1,1,0);    sprintf(buf,"child process P1 is sending messages!n")

4、;    printf("child process P1!n");    write(fd1,buf,50);    sleep(5);    lockf(fd1,0,0);    exit(0);    else      while(P2=fork()=-1);    if(P2=0)            lockf(f

5、d1,1,0);       sprintf(buf,"child process P2 is sending messages!n");       printf("child process P2!n");       write(fd1,buf,50);       sleep(5);       lo

6、ckf(fd1,0,0);       exit(0);     else      while(P3=fork()=-1);    if(P3=0)            lockf(fd1,1,0);       sprintf(buf,"child process P3 is sending messages!n"

7、;);       printf("child process P3!n");       write(fd1,buf,50);       sleep(5);       lockf(fd1,0,0);       exit(0);wait(0);    if(r=read(fd0,s,50)=-1)

8、60;      printf("can't read pipen");    else  printf("%sn",s);    wait(0);    if(r=read(fd0,s,50)=-1)       printf("can't read pipen");    else  printf("%sn"

9、,s);wait(0);    if(r=read(fd0,s,50)=-1)       printf("can't read pipen");    else  printf("%sn",s);exit(0);       3.14設有5個哲學家,共享一張放有五把椅子的桌子,每人分得一把椅子。但是桌子上總共只有5支筷子,在每人兩邊分開各放一支。哲學家們在肚子饑餓時才試圖分兩次從兩邊拾起筷子就餐。條件:(1

10、)只有拿到兩只筷子時,哲學家才能吃飯;(2)如果筷子已在他人手上,則該哲學家必須等待到他人吃完之后才能拿到筷子;(3)任一哲學家在自己未拿到兩只筷子吃飯之前,絕不放下自己手中的筷子。試: (1)描述一個保證不會出現(xiàn)兩個鄰座同時要求吃飯的通信算法。(2)描述一個既沒有兩鄰座同時吃飯,又沒有人餓死(永遠拿不到筷子)的算法。(3)在什么情況下,5個哲學家全部吃不上飯。答:(1)設信號量c0c4,初始值均為1,分別表示I號筷子被拿(I=0,1,2,3,4)send(I):第一個哲學家要吃飯BeginP(cI); P(cI+1 mod 5); Eat; V(cI+1 mod 5); V(cI); End

11、;該過程能保證兩鄰座不同時吃飯,但會出現(xiàn)5個哲學家一人拿一支筷子,誰也吃不上飯的死鎖情況。(2)解決的思路如下:讓奇數(shù)號的哲學家先取右手邊的筷子,讓偶數(shù)號的哲學家先取左手邊的筷子。這樣,任何一個哲學家拿到一只筷子以后,就已經(jīng)組織了他鄰座的一個哲學家吃飯的企圖,除非某個哲學家一支吃下去,否則不會有人會餓死。send(I)Begin if I mod 2 = 0 then P(cI,P(cI+1 mod 5) Eat; V(cI,V(cI+1 mod 5)else P(cI+1 mod 5) P(cI) Eat V(cI+1 mod 5) V(cI)End(3)在循環(huán)等待的情況下,5個哲學家全部吃

12、不上飯。有兩個進程P1,P2,他們分別執(zhí)行下面的程序體,其中total是兩個進程都能訪問的共享變量,初始值為0,count是每個進程的私有變量。假設兩個進程并發(fā)執(zhí)行,并可自由交叉,則兩個進程都執(zhí)行完后,total可能得到的最小值為:P1 int count; for(count=1;count<=50;count+) total=total+1;P2 int count; for(count=1;count<=50;count+) total=total+2; 答:total可能得到的最小值為:3。第4章作業(yè)4.2試述作業(yè)調度的主要功能。答:作業(yè)調度的主要功能是:按一定得原則對外存

13、輸入井上的大量后備作業(yè)進行選擇,給選出的作業(yè)分配內存、輸入輸出設備等必要的資源,并建立相應的進程,是改作業(yè)的相關進程獲得競爭處理機的權利。另外,當作業(yè)執(zhí)行完畢時,還負責回收系統(tǒng)資源。4.4進程調度的功能有哪些?答:進程調度的功能有:(1)記錄系統(tǒng)中所有進程的執(zhí)行情況;(2)選擇占有處理機的進程;(3)進行進程上下文切換。4.5進程調度的時機有哪幾種?答:進程調度的時機有:(1)正在執(zhí)行的進程執(zhí)行完畢。這時,如果不選擇新的就緒進程執(zhí)行,將浪費處理機資源;(2)執(zhí)行中進程自己調用阻塞原語將自己阻塞起來進入睡眠等待狀態(tài);(3)執(zhí)行中進程調用了P原語,從而因資源不足而被阻塞;或調用了V原語操作激活了等

14、待資源的進程隊列;(4)執(zhí)行中進程提出I/O請求后被阻塞;(5)在分時系統(tǒng)中時間片已經(jīng)用完;(6)在執(zhí)行完系統(tǒng)調用,在系統(tǒng)程序返回用戶進程時,可認為系統(tǒng)進程執(zhí)行完畢,從而可調度選擇一新的用戶進程執(zhí)行;以上都是在CPU執(zhí)行不可剝奪方式下所引起進程調度的原因。在CPU執(zhí)行方式是剝奪時,還有:(7)就緒隊列中的某進程的優(yōu)先級變得高于當前執(zhí)行進程的優(yōu)先級,從而也將引發(fā)進程調度。4.6假設有4到作業(yè),它們的提交時刻及執(zhí)行時間由下表給出:作業(yè)號提交時刻/小時執(zhí)行時間/小時110:002210:201310:400.5410:500.3計算在單道程序環(huán)境下,采用先來先服務調度算法和最短作業(yè)優(yōu)先調度算法時的平均周轉時間和平均帶權周轉時間,并指出它們的調度順序。答:假設所有作業(yè)都已經(jīng)到達,則 (1)先來先服務調度算法:順序開始時間結束時間執(zhí)行時間等待時間110:0012:0020210:2013:0011.67310:4013:300.52.33410:5013:480.32.67T = 0.25*(2+2.67+2.83+2.97) = 0.25*10.47 = 2.6175(h)W = 0.25*(4+0+1.67/1+2.33/0.5+2.67/0.3) =

溫馨提示

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

評論

0/150

提交評論