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

下載本文檔

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

文檔簡介

1、選擇題1在進程的組成部分之中,進程在運行中不可修改的部分是_B_。A私用程序段 B共享程序段C數(shù)據段 D進程控制塊2在消息緩沖通信中,消息隊列屬于_A_資源。A 臨界 B 共享 C 永久 D 可剝奪3進程間的同步是指進程間在邏輯上的相互_B_關系。A 聯(lián)接 B 制約 C 繼續(xù) D 調用4進程A和進程B通過共享緩沖區(qū)協(xié)作完成數(shù)據處理,進程A負責生產數(shù)據并放入緩沖區(qū),進程B從緩沖區(qū)中讀數(shù)據并輸出。進程A和進程B之間的關系是_B_。A互斥關系 B同步關系 C互斥和同步 D無制約關系5進程從運行狀態(tài)到阻塞狀態(tài)可能是由于_C_。A進程調度程序的調度 B現(xiàn)運行進程的時間片耗盡C現(xiàn)運行進程執(zhí)行了wait操作

2、 D現(xiàn)運行進程執(zhí)行了signal操作6下面關于線程的敘述中正確的是_A_。A線程包含CPU現(xiàn)場,可以獨立執(zhí)行程序 B每個線程有自己獨立的地址空間C線程之間的通信必須使用系統(tǒng)調用函數(shù) D進程只能包含一個線程7并發(fā)進程之間_D_。A彼此無關 B必須同步 C必須互斥 D可能需要同步或互斥8信號量S不能用于_D_操作。Asignal Bwait C賦初值 D運算表達式9_D_是一種只能進行wait操作和signal操作的特殊變量 A 調度 B 進程 C 同步 D 信號量10分配給進程占用處理機的時間到而強迫進程P讓出處理器,或有更高優(yōu)先級的進程要運行,迫使正在運行的進程P讓出處理器,則進程P狀態(tài)變化的

3、情況為_A_ A 運行態(tài)就緒態(tài) B 運行態(tài)等待態(tài)C 就緒態(tài)運行態(tài) D 等待態(tài)就緒態(tài)11下面關于進程的敘述中正確的是_A_。A進程獲得CPU運行是通過調度得到的B優(yōu)先級是進程調度的重要依據,一旦確定就不能改變C在單CPU的系統(tǒng)中,任何時刻都有一個進程處于運行狀態(tài)D進程申請CPU得不到滿足時,其狀態(tài)變?yōu)樽枞?2操作系統(tǒng)通過_B_對進程進行管理。A 進程 B 進程控制塊 C 進程啟動程序 D 進程控制區(qū)13. 若一個進程擁有100個線程,這些線程屬于用戶級線程,它們在系統(tǒng)調度執(zhí)行時間上占用的時間片個數(shù)是_A_。A1 B100 C1/100 D014. 到其他3種狀態(tài)的進程狀態(tài)是_D_。A就緒 B阻塞

4、 C完成 D執(zhí)行15信號量的初值為2,當前值為-3,則表示等待進程有_C_。A1個 B2個 C3個 D5個16wait操作可能導致_C_。A進程就緒 B進程結束 C進程阻塞(等待) D新進程創(chuàng)建17下列的進程狀態(tài)變化中不可能發(fā)生的變化是_A_。A等待運行 B運行等待 C運行就緒 D等待就緒18如果有三個進程共享同一互斥段,而且每次最多允許兩個進程進入該互斥段,則信號量的初值應設置為_C_。A 3 B 1 C 2 D 019一個進程釋放一種資源將有可能導致一個或幾個進程_D_。 A由就緒變運行 B由運行變就緒 C由阻塞變運行 D由阻塞變就緒20進程控制塊PCB不包括的內容是_D_。ACPU現(xiàn)場

5、B進程優(yōu)先級 C進程運行狀態(tài) D文件緩沖區(qū)21PCB是描述進程狀態(tài)和特性的數(shù)據結構,一個進程_D_。A可以有多個PCB B可以和其他進程共用一個PCBC可以沒有PCB D只能有唯一的PCB22進程和程序的本質區(qū)別是_B_。A內存和外存 B動態(tài)和靜態(tài)特征 C共享和獨占使用計算機資源 D順序和非順序執(zhí)行指令23用于解決進程間互斥的方法是_B_。 信號量及wait、signal操作 加鎖與解鎖 信箱方式 消息緩沖方式 特權指令方式A、和 B和 C和 D和24在操作系統(tǒng)中,每個進程具有獨立性,進程之間又具有相互制約性。對于任何兩個并發(fā)進程,它們_C_。A必定無關 B必定相關 C可能相關 D可能相同25

6、進程所請求的一次打印輸出結束后,將使進程狀態(tài)從_D_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)解析:運行中的進程有3種狀態(tài):運行狀態(tài)、就緒狀態(tài)和等待狀態(tài)。運行狀態(tài):是指進程已獲得CPU,并且在CPU中執(zhí)行的狀態(tài)。就緒狀態(tài):是指進程已具備運行條件,但由于沒有獲得CPU而不能運行所處的狀態(tài),一旦CPU分配給它,就可以運行。等待狀態(tài):是指進程因等待某種事件發(fā)生而暫時不能運行的狀態(tài)。例如,當兩個進程競爭使用同一資源時,沒有占用該資源的進程便處于等待狀態(tài)。它必須等到該資源被釋放后才可以去使用它。引起等待的原因一旦消失,進程就變?yōu)榫途w狀態(tài),以便在適當?shù)臅r候投入運行。26

7、在下面的敘述中,不正確的是_C_。A一個進程可創(chuàng)建一個或多個線程 B一個線程可創(chuàng)建一個或多個線程C一個線程可創(chuàng)建一個或多個進程 D一個進程可創(chuàng)建一個或多個進程27在下面的敘述中正確的是_B_。A線程是比進程更小的能獨立運行的基本單位B引入線程可提高程序并發(fā)執(zhí)行的程度,可進一步提高系統(tǒng)效率C線程的引入增加了程序執(zhí)行時時空開銷D一個進程一定包含多個線程解析:線程是進程內一個相對獨立的執(zhí)行單元,但并不能單獨運行,只能在程序中運行。線程的引入減少了程序執(zhí)行時的時空開銷。一個進程可包含一個或多個線程。28下面關于線程的敘述中,正確的是_C_)。A不論是系統(tǒng)支持線程還是用戶級線程,其切換都需要內核的支持B

8、線程是資源的分配單位,進程是調度和分配的單位C不管系統(tǒng)中是否有線程,進程都是擁有資源的獨立單位D在引入線程的系統(tǒng)中,進程仍是資源分配和調度分派的基本單位解析:引入線程后,進程仍然是資源分配的單位。線程是處理器調度和分派的單位,線程本身不具有資源,它可以共享所屬進程的全部資源29. 在下面的敘述中,正確的是_D_。A引入線程后,處理機只在線程間切換B引入線程后,處理機仍在進程間切換C線程的切換,不會引起進程的切換D線程的切換,可能引起進程的切換30. 進程依靠_D_從阻塞狀態(tài)過渡到就緒狀態(tài)。A程序員的命令 B系統(tǒng)服務C等待下一個時間片到來 D合作進程的喚醒二、簡答題1什么是線程?進程和線程的關系

9、是什么?線程可定義為進程內的一個執(zhí)行單位,或者定義為進程內的一個可調度實體。 在具有多線程機制的操作系統(tǒng)中,處理機調度的基本單位不是進程而是線程。一個進程可以有多個線程,而且至少有一個可執(zhí)行線程。 進程和線程的關系是: (1)線程是進程的一個組成部分。 (2)進程的多個線程都在進程的地址空間活動。 (3)資源是分給進程的,而不是分給線程的,線程在執(zhí)行中需要資源時,系統(tǒng)從進程的資源分配額中扣除并分配給它。 (4)處理機調度的基本單位是線程,線程之間競爭處理機,真正在處理機上運行的是線程。 (5)線程在執(zhí)行過程中,需要同步。2進程能自己將自己喚醒嗎?進程能自己將自己撤銷嗎?喚醒進程和撤消進程都是要

10、通過CPU上運行程序來實現(xiàn)的。一個進程入睡了,它就不可能被調度到CPU上運行;一個進程在撤消前必須先進入終止狀態(tài),而處于終止狀態(tài)的進程不可能被調度到CPU上運行。因此,進程被喚醒、被撤消都不能由自己來完成,只能由別的進程實現(xiàn)。3父進程創(chuàng)建子進程之后,父子進程間的關系是什么?一個進程創(chuàng)建子進程之后,進程與產生的進程之間的關系是父子關系,分別稱為父進程和子進程。子進程一經產生就與父進程并發(fā)執(zhí)行,子進程共享父進程的正文段和已經打開的文件。4簡述引進線程的好處。(1)以線程作為系統(tǒng)調度的基本單位,減少了系統(tǒng)的時空開銷。以進程為系統(tǒng)調度的基本單位的系統(tǒng)中,進程的切換是很頻繁的。在切換中由于要保留當時的運

11、行環(huán)境,還要設置新選中的進程的運行環(huán)境,這既花費了處理機的時間,又增加了主存的空間,從而也限制了系統(tǒng)進程的數(shù)量和進程的切換速度。(2)引進線程提高了系統(tǒng)的并行能力。線程作為進程內的一個可執(zhí)行實體,減少了并行粒度。線程作為調度的基本單位而不是資源分配的基本單位,調度更為容易,而且采用線程提高系統(tǒng)的并行能力比采用進程更為有效。(3)同一進程的線程共享進程的用戶地址空間,所以同一進程的線程間的通信更容易實現(xiàn)。5當一個進程的父進程被撤銷時,該進程是撤銷好還是不撤銷好?在實際系統(tǒng)中,兩種處理辦法都是可行的,且各有優(yōu)缺點。若撤消,則該進程的任務可能還沒有完成,這顯然是不利的,特別是當該進程的運行結果對其他

12、進程的運行很重要(如該進程是其他進程的前趨進程,沒有它的運行結果其他進程無法運行)時;若不撤消,則該進程又可能成為不可控的孤兒,從而產生不可預測的結果。比較好的做法是,當一個進程的父進程被撤消時,可以將該進程過繼給系統(tǒng)內一個級別較高的進程(如Unix中的1#進程),讓它有一個新的父親,這樣既可以繼續(xù)完成其任務又不會成為不可控的。6為什么說進程同步問題關系到OS的成?。客綑C制應遵循的準則是什么?進程同步問題若處理不當,有可能會產生種種與時間有關性錯誤,特別是當兩個或多個進程共享了公共變量而又沒有互斥地使用這些變量時,極有可能導致用戶程序運行結果的不正確,這量種災難性的后果。這種OS顯然是不成功

13、的,是用戶不敢使用的。有以下四條準則:空閑讓進、忙則等待、有限等待、讓權等待。7進程之間存在哪幾種相互制約關系?各是什么原因引起的?下列活動分別屬于哪種制約關系?(1)若干同學去圖書館借書。(2)兩隊舉行籃球比賽。(3)流水線生產的各道工序。(4)商品生產和消費。進程間存在著兩種相互制約的關系:直接制約關系(即同步問題)和間接制約關系(即互斥問題)。同步問題是存在邏輯關系的進程之間相互等待產生的制約關系,互斥問題是相互無邏輯關系的進程間競爭使用相同的資源所發(fā)生的制約關系。 (1)屬于互斥關系,因為書的個數(shù)是有限的,一本書只能借給一個同學。 (2)屬于互斥關系,籃球只有一個,兩隊都要爭奪。 (3

14、)屬于同步關系,各道工序的開始都依賴前道工序的完成。 (4)屬于同步關系,商品沒生產出來,消費無法進行,商品未消費完,生產也無需進行。8試比較說明進程和程序的區(qū)別有哪些?(1)每個進程實體中包含了程序段和數(shù)據段這兩個部分,因此說進程是與程序是緊密相關的。但從結構上看,進程實體中除了程序段和數(shù)據段外,還必須包含一個數(shù)據結構,即進程控制塊PCB。(2)進程是程序的一次執(zhí)行過程,因此是動態(tài)的;動態(tài)性還表現(xiàn)在進程由創(chuàng)建而產生、由調度而執(zhí)行、由撤消而消亡,即它具有一定的生命周期。而程序則只是一組指令的有序集合,并和永久地存放在某種介質上,其本身不具有運動的含義,因此是靜態(tài)的。(3)多個進程實體可同時存放

15、在內存中并發(fā)地執(zhí)行,也正是引入進程的目的。而程序(在沒有為它創(chuàng)建進程時)的并發(fā)執(zhí)行具有不可再現(xiàn)性,因此程序不能正確地并發(fā)執(zhí)行。(4)進程是一個能夠獨立運行、獨立分配資源和獨立接受調度的基本單位。而因程序不具有PCB,所以它是不可能在多道程序環(huán)境下獨立運行的。(5)程與程序不一一對應。同一個程序的多次運行,將形成多個不同的進程;同一個程序的一次執(zhí)行也可以產生多個進程;而一個進程也可以執(zhí)行多個程序三、應用題1. 有一個理發(fā)師,一把理發(fā)椅和n把供等候理發(fā)的顧客坐的椅子。如果沒有顧客,則理發(fā)師便在理發(fā)椅子上睡覺;當一個顧客到來時,必須喚醒理發(fā)師,進行理發(fā);如果理發(fā)師正在理發(fā)時,又有顧客來到,則如果有空

16、椅子可坐,他就坐下來等,如果沒有空椅子,他就離開。為理發(fā)師和顧客各編一段程序描述他們的行為,要求不能帶有競爭條件。#define CHAIRS /* 為等候的顧客準備的椅子數(shù) */semaphore customers=0;semaphore barbers=0;semaphore mutex=1; /* 用于互斥 */int waiting=0;void customers()wait (mutex);if(waitingCHAIRS)waiting=waiting+1;signal (mutex):signal (customers);坐下等待;wait (barbers);elsesig

17、nal (mutex);void barber()while (1)wait(customers);wait (mutex);waiting=waiting-1;signal (mutex);理發(fā);signal(barbers);2. 計算進程PC和打印進程P01、P02共享一個單緩沖區(qū),計算進程負責計算,并把計算結果放入單緩沖中;打印進程P01、P02則負責從單緩沖中取出計算結果進行打印,而且對每個計算結果,P01和P02都需分別打印一次。請用記錄型信號量描述上述進程間的同步關系。為了實現(xiàn)計算進程和打印進程之間的同步,并使單緩沖中的每個計算結果都被兩個打印進程分別打印一次??稍O置四個信號量:

18、full1表示緩沖中是否有可供P01打印的計算結果,full2表示緩沖中是否有可給P02打印的計算結果;emptypl、empty2則表示計算結果是否已被P01l、P02取走,只有當一個結果被兩個打印進程都取走后,緩沖區(qū)才變空,計算進程才可將下一個計算結果放入單緩沖。相應的同步算法可描述如下: semaphore empty1=1,enpty2=1,full1=0,full2=0;PC: While(1) computrt next number; wait(empty1): wait(empty2); add the number to bufer; signal(full1); signa

19、l(full2);P01: While(1) wait(full1); take from bufer; signal(emptyl): print last number;P02: wait(full2); take from buffer; signal(empty2); print last number;3. 設有三個進程,輸入進程(input)、計算進程(compute)和輸出進程(output),它們通過共享兩個緩沖區(qū)buf1和buf2協(xié)作完成任務。如下圖所示三個進程之間的合作關系如下:(1)輸入進程使用put()函數(shù)把數(shù)據送到buf1,供計算進程調用calculate()函數(shù)計算

20、;(2)計算進程每次調用get()函數(shù)從buf1取出已輸入的可計算的數(shù)據進行計算,并把計算結果使用put()函數(shù)把數(shù)據送到buf2送入buf供輸出進程打?。唬?)輸出進程調用get()函數(shù)把buf2中的數(shù)據使用print()函數(shù)輸出。定義合適的信號量,并用偽代碼完成實現(xiàn)過程。信號量:nonf1、none1:輸入進程與計算進程同步,buf1是否為空;nonf2 、none1:計算進程與輸出進程同步,buf2是否為空; s1、s2:分別互斥使用buf1和buf2procedure inputwhile(1)wait(nonf1)wait(s1) put(data); signal(s1); sig

21、nal(none1); procedure computewhile(1)wait(none1);wait(s1); data=get(); data=calculate(data);signal(s1);signal(nonf1);wait(nonf2);wait(s2);put(data);signal(s2);signal(none2);procedure outputwhile(1)wait(none2);wait(s2); data=get();print(data);signal(s2); signal(nonf2);4.下面給出的兩個進程互斥的算法是安全的嗎?為什么? defin

22、e true; # define false; Int flag2; flag1=flag2=false; enter-crtsec(i) int i; While(flag1-i) flagi=true; leave-crtsec(i) Int i; flagi=false; process I; Enter-crtsec(i); In critical section;Leave-crtsec(i);從概念上講,系統(tǒng)中各進程在邏輯上是獨立的,它們可以按各自的速度向前推進。但由于它們共享某些臨界資源,因而產生了臨界區(qū)問題。對于具有臨界區(qū)問題的并發(fā)進程,它們之間必須互斥,以保證不會同時進入臨界

23、區(qū)。這種算法不是安全的。因為,在進入臨界區(qū)的enter-crtsec()不是一個原語操作,如果兩個進程同時執(zhí)行完其循環(huán)(此前兩個flag均為false),則這兩個進程可同時進入臨界區(qū)。5. 進程 A1,A2,An 通過 K 個緩沖區(qū)向進程 B1,B2,Bm 不斷地發(fā)送消息。發(fā)送和接收工作遵循如下規(guī)則:(1) 每個發(fā)送進程一次發(fā)送一個消息,寫入緩沖區(qū),緩沖區(qū)大小與消息長度一致;(2) 對每個消息,B1,B2,Bm 都需接收一次,讀入各自的數(shù)據區(qū)內;(3) K 個緩沖區(qū)都滿時,發(fā)送進程等待,沒有可讀的消息時,接收進程等待。試用 wait 和 signal 原語操作組織正確的發(fā)送和接收操作。生產者-消費者問題的一個變形,一組生產者A1,A2.,An和一組消費者B1,B2,.,Bm共用k個緩沖區(qū),每個緩沖區(qū)只要寫一次,但需要讀m次。因此

溫馨提示

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

評論

0/150

提交評論