數(shù)據(jù)庫作業(yè)第二章第三章_第1頁
數(shù)據(jù)庫作業(yè)第二章第三章_第2頁
數(shù)據(jù)庫作業(yè)第二章第三章_第3頁
數(shù)據(jù)庫作業(yè)第二章第三章_第4頁
數(shù)據(jù)庫作業(yè)第二章第三章_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章一、思考題1. 什么是PSW,它有何作用?psw:操作系統(tǒng)將程序運行時的一組動態(tài)信息會聚在一起,稱為程序的狀態(tài)字 作用:實現(xiàn)程序狀態(tài)的保護和恢復3.為什么要把機器指令分成特權指令和非特權指令?應用程序在執(zhí)行有關資源管理的機制指令時易于導致系統(tǒng)混亂,造成系統(tǒng)或用戶信息被破壞,因此在多道程序設計環(huán)境中,從資源管理和控制程序執(zhí)行的角度出發(fā),必須把指令系統(tǒng)中的指令分成這兩類。4.試分別從中斷事件的性質、來源和實現(xiàn)角度對其進行分類從中斷事件的性質和激活的手段來說,可以分成兩類: (1)強迫性中斷事件強迫性中斷事件不是正在運行的程序所期待的,而是由于某種事故或外部請求信息所引起的,分為:機器故障中斷

2、事件。程序性中斷事件。外部中斷事件。輸入輸出中斷事件。(2)自愿性中斷事件自愿性中斷事件是正在運行的程序所期待的事件。按事件來源和實現(xiàn)手段分類:(1) 硬中斷;硬中斷分為外中斷(中斷、異步中斷)和內中斷(異常、同步中斷);(2) 軟中斷;軟中斷分為信號和軟件中斷。9.什么是系統(tǒng)調用?試述API、庫函數(shù)及系統(tǒng)調用間的關系。敘述系統(tǒng)調用執(zhí)行流程。由操作系統(tǒng)實現(xiàn)的所有系統(tǒng)調用所構成的集合即程序接口或應用編程接口(Application Programming Interface,API)。系統(tǒng)調用是一種API,是應用程序同系統(tǒng)之間的接口。庫函數(shù)是語言本身的一部分,可以調用多個系統(tǒng)調用;系統(tǒng)調用(函數(shù)

3、)是內核提供給應用程序的接口,屬于系統(tǒng)的一部分,可以認為是某種內核的庫函數(shù);操作系統(tǒng)API是有系統(tǒng)調用(函數(shù))的集合(也就是將許多的系統(tǒng)調用封裝在了一起)。一是編寫系統(tǒng)調用服務例程;二是設計系統(tǒng)調用入口地址表,每個入口地址都指向一個系統(tǒng)調用的服務例程,有的還包括系統(tǒng)調用自帶的參數(shù)個數(shù);三是陷阱處理機制,需要開辟現(xiàn)場保護區(qū),以保存發(fā)生系統(tǒng)調用時應用程序的處理器現(xiàn)場。應用程序執(zhí)行系統(tǒng)調用,產生中斷指向內核態(tài),進入陷阱處理程序,它將按功能查詢入口地址表,并轉至對應服務例程執(zhí)行,完成后退出中斷,返回應用程序斷點繼續(xù)運行。14.簡述Linux的快中斷和慢中斷快中斷:快中斷處理僅要保存被常規(guī)C函數(shù)修改的寄

4、存器;中斷處理時會屏蔽所有其他中斷;中斷處理完畢后,通常恢復現(xiàn)場返回被中斷的進程繼續(xù)執(zhí)行(是非搶先式調度)。慢中斷:處理慢中斷前需保存所有寄存器的內容,中斷處理時,不屏蔽其他中斷信號,慢中斷處理完畢后,通常不立即返回被中斷的進程,而是進入調度程序重新調度,調度結果未必是被中斷的進程運行(是搶先式調度)。17.討論Linux系統(tǒng)的tasklet、work queue和softirq任務延遲處理進制。(1)tasklet:能更好支持SMP,它基于軟中斷來實現(xiàn),但比軟中斷接口簡單,鎖保護要求低;softirq保留給執(zhí)行頻率及時間要求特高的下半部分使用(如網絡和SCSI),多數(shù)場合下可使用taskle

5、t。使用tasklet的步驟:聲明 、編程、調度 。 BH全局串行處理,不適應SMP環(huán)境,而不同tasklet可同時運行于不同CPU上,當然,系統(tǒng)保證相同tasklet不會同時在不同CPU上運行,在這種情形下,tasklet就不需要是可重入的。在新版Linux中,tasklet是建議的異步任務延遲執(zhí)行機制。(2)work queue:Linux 2.5內核引入-工作隊列,它把一個任務延遲,并交給內核線程去完成,且該任務總是在進程上下文中執(zhí)行,通過工作隊列執(zhí)行的代碼能占盡進程上下文的優(yōu)勢,最重要的是工作隊列允許重新調度及阻塞。默認的工作者線程:event/n如果延遲執(zhí)行的任務需要阻塞,需要獲取信

6、號量或需要獲得大量主存時,那么,可選擇工作隊列,否則可使用tasklet或softirq。(3) Sorfirq:(軟中斷)是一種軟中斷機制,亦即是一種信號機制,中斷處理程序在其返回前標記下半部分,讓其稍后執(zhí)行;它又是一個框架,納入了tasklet及為網絡操作專門設計的軟中斷。18.什么是進程?計算機系統(tǒng)中為什么要引入進程?(1)進程定義:進程是可并發(fā)執(zhí)行的程序在某個數(shù)據(jù)集合上的一次計算活動,也是操作系統(tǒng)進行資源分配和保護的基本單位(2)刻畫系統(tǒng)的動態(tài)性,發(fā)揮系統(tǒng)的并發(fā)性,提高資源利用率。程序是并發(fā)執(zhí)行的,即不是連續(xù)而是走走停停的。程序的并發(fā)執(zhí)行引起資源共享和競爭問題,執(zhí)行的程序不再處在封閉環(huán)

7、境中?!俺绦颉弊陨碇皇怯嬎闳蝿盏闹噶詈蛿?shù)據(jù)的描述,是靜態(tài)概念無法刻畫程序的并發(fā)特性,系統(tǒng)需要尋找一個能描述程序動態(tài)執(zhí)行過程的概念,這就是進程。它能解決系統(tǒng)的“共享性”,正確描述程序的執(zhí)行狀態(tài)。程序與程序的執(zhí)行不再一一對應19.進程有哪些主要屬性?試解釋之共享性:同一程序同時運行于不同數(shù)據(jù)集合上時構成不同進程,即多個不同進程可執(zhí)行相同的程序,所以進程和程序不是一一對應的。動態(tài)性:進程是程序在數(shù)據(jù)集合上的一次執(zhí)行過程,是動態(tài)概念,同時它有生命周期,由創(chuàng)建而產生、由調度而執(zhí)行、由事件而等待、由撤銷而消亡;而程序是一組有序指令序列,是靜態(tài)概念,所以程序作為系統(tǒng)中的一種資源是永遠存在的獨立性:每個進程是

8、操作系統(tǒng)中的一個獨立實體,有自己的虛存空間,程序計數(shù)器和內部狀態(tài);制約性:進程因共享進程資源或協(xié)同工作產生相互制約關系,造成進程執(zhí)行速度的不可預測,必須對進程的執(zhí)行次序或相對執(zhí)行速度加以協(xié)調;并發(fā)性:多個進程的執(zhí)行在時間上可以重疊,在單處理器系統(tǒng)中可并發(fā)執(zhí)行;在多處理器環(huán)境中可并發(fā)執(zhí)行。因此,并發(fā)的執(zhí)行是可被打斷的,或者說,進程執(zhí)行完一條指令后在執(zhí)行下一條指令前可能被迫讓出處理器,由其它若干個進程執(zhí)行若干條指令后才能再次獲得處理器執(zhí)行。20.進程最基本的狀態(tài)有哪些?哪些事件可能引起不同狀態(tài)間的轉換?運行態(tài)、就緒態(tài)、等待態(tài)(1)運行態(tài)-等待態(tài):運行進程等待使用某種資源或者某事件發(fā)生(2)等待態(tài)-

9、就緒態(tài):所需資源得到滿足或某事件已經完成(3)運行態(tài)-就緒態(tài):運行時間片到時或出現(xiàn)更高優(yōu)先級的進程,當前進程被迫讓出處理器。(4)就緒態(tài)-運行態(tài):當CPU空閑時,調度程序選中一個就緒進行執(zhí)行21.五態(tài)模型的進程中,新建態(tài)和終止態(tài)的主要作用是什么?新建態(tài):對應于進程被創(chuàng)建時的狀態(tài),進程尚未進入就緒隊列,對于進程管理非常有用。終止態(tài):進程完成任務到達正常結束點或者因錯誤而終止,或被操作系統(tǒng)及有終止權的進程時所處的狀態(tài)。進入終止態(tài)程序不再執(zhí)行,等待操作系統(tǒng)進行善后處理。24.什么是進程的掛起狀態(tài)?列出掛起進程的主要特征。(1)為了讓某些進程暫時不參與低級調度,釋放它占有的資源,將其置于磁盤對換區(qū)中,

10、以平滑系統(tǒng)負荷的目的而需引入掛起態(tài);(2)特征:該進程不能立即被執(zhí)行。掛起進程可能會等待事件,但所等待事件是獨立于掛起條件的,事件結束并不能導致進程具備執(zhí)行條件。進程進入掛起狀態(tài)是由于操作系統(tǒng)、父進程或進程本身阻止它的運行。結束進程掛起狀態(tài)的命令只能通過操作系統(tǒng)或父進程發(fā)出25.試述組成進程的基本要素,并說明其作用??刂茐K:存儲進程的標志信息,現(xiàn)場信息和控制信息;程序塊:規(guī)定進程的一次運行所應完成的功能;核心塊:用來保護中斷/異常現(xiàn)場,保存函數(shù)調用的參數(shù)和返回地址;數(shù)據(jù)塊:存放各種私有數(shù)據(jù)26.何謂進程控制塊(PCB)?它包含哪些基本信息?(1)進程控制塊P C B ,是操作系統(tǒng)用于記錄和刻劃

11、進程狀態(tài)及有關信息的數(shù)據(jù)結構。也是操作系統(tǒng)掌握進程的唯一資料結構,它包括進程執(zhí)行時的情況,以及進程讓出處理器后所處的狀態(tài)、斷點等信息。 (2)進程控制塊包含三類信息 標識信息 現(xiàn)場信息 控制信息28.請列舉組織進程隊列的各種方法通用隊列組織方式: 線性方式 鏈接方式 索引方式30.什么是進程上下文?簡述其主要內容操作系統(tǒng)中把進程物理實體和支持進程運行的環(huán)境合稱為進程上下文。當系統(tǒng)調度新進程占有處理器時,新老進程隨之發(fā)生上下文切換。進程的運行被認為是上下文中執(zhí)行。 進程上下文組成用戶級上下文系統(tǒng)級上下文寄存器上下文31.什么是進程切換?試述進程切換的主要步驟(1)進程切換是讓處于運行態(tài)的進程中斷

12、運行,讓出處理器,這時要做一次進程上下文切換、即保存老進程狀態(tài)而裝入被保護了的新進程的狀態(tài),以便新進程運行(2)保存被中斷進程的處理器現(xiàn)場信息修改被中斷進程的進程控制塊有關信息,如進程狀態(tài)等把被中斷進程的PCB加入有關隊列選擇下一個占有處理器運行的進程修改被選中進程的PCB的有關信息根據(jù)被選中進程設置操作系統(tǒng)用到的地址轉換和存儲保護信息根據(jù)被選中進程恢復處理器現(xiàn)場32.什么是模式切換?它與進程切換之間有何區(qū)別?模式切換即CPU模式切換,是從用戶態(tài)到核心態(tài)或者核心態(tài)到用戶態(tài)的轉換是CPU模式切換,此時仍然在同一個進程中運行。模式切換不同于進程切換,它不一定會引起進程狀態(tài)的轉換,也不一定會引起進程

13、切換,在完成系統(tǒng)調度服務或中斷處理之后,可通過逆向模式來恢復被中斷進程的運行。35.在操作系統(tǒng)引入進程概念后,為什么還有引入線程的概念?操作系統(tǒng)中再引入線程,則是為了減少程序并發(fā)執(zhí)行時所付出的時空開銷,使得并發(fā)粒度更細、并發(fā)性更好。38.試從調度、并發(fā)性、擁有資源和系統(tǒng)開銷等四個方面對傳統(tǒng)進程和多線程進程進行比較。40.試對下列系統(tǒng)任務進行比較:(1)創(chuàng)建一個線程和創(chuàng)建一個進程(2)兩個進程間通信與同一進程中的兩個線程間通信 (3)同一進程中的兩個線程的上下文切換和不同進程中兩個線程的上下文切換。43.列舉線程的組織方式和應用場合。答:線程組織方式:(1)調度員/工作者方式(2)組模式(3)流

14、水線模式應用場合:(1)前臺和后臺工作(2)C/S應用模式(3)異步處理(4)加快執(zhí)行速度(5)設計用戶接口45.試分析Linux系統(tǒng)的進程和線程。進程描述符task_struct中包含:進程標識、鏈接信息、調度信息、文件信息、虛存空間信息、信號處理信息等。Linux中認為線程就是共享地址空間及其他資源的進程,故并沒有單獨為線程定義數(shù)據(jù)結構,有一套在用戶模式下運行的線程庫-pthread,但每個線程都擁有惟一隸屬于自己的task_struct48.處理器調度分為哪幾種類型?簡述各種調度的主要任務。答:(1)高級調度:在多道處理操作系統(tǒng)中,從輸入系統(tǒng)的一批作業(yè)中按照預定的調度策略挑選若干個作業(yè)進

15、入主存,為其分配所需資源,并創(chuàng)建作業(yè)的相應用戶進程后便完成啟動階段的高級調度任務;(2)中級調度:根據(jù)主存資源決定主存中所能容納的進程數(shù)目,并根據(jù)進程的當前狀態(tài)來決定輔助存儲器和主存中的進程的對換;(3)低級調度:根據(jù)某種原則決定就緒隊列中的哪個進程或內核級線程獲得處理器,并將處理器讓出給它使用。49.試述衡量一個處理器調度算法優(yōu)劣的主要任務。根據(jù)調度機制 的三個邏輯功能程序模塊組成來評判:(1)隊列管理程序(2)上下文切換程序(3)分派程序52.解釋:(1)作業(yè)周轉時間;(2)作業(yè)帶權周轉時間;(3)相應時間;(4)吞吐率。答:(1)作業(yè)周轉時間:批處理用戶從系統(tǒng)提交作業(yè)開始,到作業(yè)完成為止

16、的時間間隔;(2)作業(yè)帶權周轉時間:在操作系統(tǒng)中,帶權周轉時間反映作業(yè)(或進程)長短問題,帶權周轉時間越大,作業(yè)(或進程)越短;帶權周轉時間越小,作業(yè)(或進程)越長。(3)響應時間:從交互式進程提交一個請求至得到響應之間的時間間隔稱為響應時間。(4)吞吐率:單位時間CPU處理作業(yè)的個數(shù)。53.試述作業(yè)、進程、線程和程序之間的關系。進程是操作系統(tǒng)結構的基礎;是一個正在執(zhí)行的程序;計算機中正在運行的程序實例;可以分配給處理器并由處理器執(zhí)行的一個實體;由單一順序的執(zhí)行顯示,一個當前狀態(tài)和一組相關的系統(tǒng)資源所描述的活動單元。 線程(thread, 臺灣稱 執(zhí)行緒)是"進程"中某個單

17、一順序的控制流。也被稱為輕量進程(lightweight processes)。計算機科學術語,指運行中的程序的調度單位。作業(yè):用戶在一次運算過程中,或一次事務處理中要求計算機所做的全部工作的總和。進程是在自身的虛擬地址空間正在運行的一個程序 程序運行產生進程 程序是一組靜態(tài)的指令集,不占用系統(tǒng)運行資源 進程是隨時都可能發(fā)生變化的,動態(tài)的。占用系統(tǒng)運行資源的程序 一個程序可以產生多個進程 作業(yè)嘛,是一個或多個正在執(zhí)行的相關進程。一般來講當進程與作業(yè)控制相關聯(lián)時才被稱為作業(yè)55.在時間片輪轉低度調級算法中,根據(jù)哪些因素確定時間片的長短?答:進程數(shù)目、切換開銷、系統(tǒng)效率及響應時間等多方面因素。57

18、.為什么多級反饋隊列算法能較好地滿足各種用戶的需求?答:高級調度的主要任務是根據(jù)某種算法,把外存上處于后備隊列中的那些作業(yè)調入內存。低級調度是保存處理機的現(xiàn)場信息,按某種算法先取進程,再把處理器分配給進程。引入中級調度的主要目的是為了提高內存利用率和系統(tǒng)吞吐量。使那些暫時不能運行的進程不再占用內存資源,將它們調至外存等待,把進程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài)。58.分析靜態(tài)優(yōu)先數(shù)和動態(tài)優(yōu)先數(shù)低級調度算法各自的優(yōu)缺點。答:靜態(tài)優(yōu)先級在進程或線程創(chuàng)建時確定,且生命周期中不再改變,可按照外部指定和內部指定方法計算靜態(tài)優(yōu)先級。靜態(tài)優(yōu)先級算法的實現(xiàn)簡單,但會產生饑餓現(xiàn)象,使某些低優(yōu)先級進程或線程無限期

19、對的被推遲進行。動態(tài)優(yōu)先級使各進程或線程優(yōu)先級隨時間而改變,克服了靜態(tài)優(yōu)先級的饑餓問題,等待時間足夠長的進程或線程會因其優(yōu)先級不斷提高而被調度運行。62.在多級反饋隊列中,對不同的隊列分配大小不同的時間片值,其意義何在?應用題1.下列指令中,哪些只能在內核態(tài)運行?(1)讀時鐘日期 (2)訪管指令 (3)設時鐘日期 (4)加載PSW(5)置特殊寄存器 (6)改變存儲器映像圖 (7)啟動I/O指令4.在按照動態(tài)優(yōu)先數(shù)調度進程的系統(tǒng)中,每個進程的優(yōu)先數(shù)需定時重新計算。在處理器不斷在進程之間交替的情況下,重新計算進程優(yōu)先數(shù)的時間從何而來?許多操作系統(tǒng)重新計算進程的優(yōu)先數(shù)在時鐘中斷處理例程中進行,由于中

20、斷是隨機碰到哪個進程,就插入哪個進程中運行處理程序,并把處理時間記在這個進程的賬上。7. 8.10. 按照最短作業(yè)優(yōu)先的算法可以使平均響應時間最短。X取值不定,按照以下情況討論: 1) x3 次序為:x,3,5,6,9 2) 3<x5 次序為:3,x,5,6,9 3) 5<x6 次序為:3,5,x,6,9 4) 6<x9 次序為:3,5,6,x,9 5) 9<x 次序為:3,5,6,9,x11.( l ) FCFS 調度算法( 2 )優(yōu)先級調度算法 ( 3 )時間片輪轉法按次序ABCDEBCDECDEDEE 輪轉執(zhí)行。12 16.20.21. A 10:00 12:40

21、 160B 10:20 10:50 30C 10:30 11:50 80D 10:50 13:00 130E 12:00 12:20 80F 11:50 1200 50平均作業(yè)周轉時間 =(160+30+80+130+80+50)/6=88.3326.(1) Job4最后一個完成(2) 各個作業(yè)的平均周轉時間為:(90+40+120+120+30)/5 = 80 各個作業(yè)的平均帶權周轉時間為:(1.8+1+2.4+6+3)/5 = 2.8432. 循環(huán)周期為4*100+400=800ms A類進程需要2*1000/100=20個時間片的執(zhí)行時間,B類進程需要2*1000/400=5個時間片的執(zhí)

22、行時間, A類進程的平均周轉時間為20*0.8=16s B類進程的平均周轉時間為5*0.8=4s第三章思考題:一:試述順序程序設計的特點,以及采用順序程序設計的優(yōu)缺點。答:順序程序設計的特性:(1):執(zhí)行的順序性。一個程序在處理器上嚴格按序執(zhí)行的,每一個操作必須在下一個操作開始之前結束。(2):環(huán)境的封閉性。運行程序獨占全機資源,資源狀態(tài)只能由此程序本身決定和改變,也不受外界因素的影響。(3):結果的確定性。程序在執(zhí)行過程中允許出現(xiàn)中斷,但這種中斷不會對程序的最終結果產生影響。(4):過程的可在現(xiàn)行。程序針對同一個數(shù)據(jù)結構的執(zhí)行過程在下一次執(zhí)行時會重現(xiàn),即重復執(zhí)行的程序會獲得相同的執(zhí)行過程和計

23、算結果。 程序順序執(zhí)行與其速度無關,即程序的最終輸出僅與初始輸入數(shù)據(jù)有關,而與時間無關。優(yōu)點:為程序的編制和調試帶來很大方便。缺點:計算機系統(tǒng)的效率不高。二:試述并發(fā)程序設計的特點,以及采用并發(fā)程序設計的優(yōu)缺點。答:特性:從宏觀上看:并發(fā)性反映一個時間段內有幾個程序都處于運行但運行尚未結束的狀態(tài);從微觀上看:任一時刻僅有一個程序的一個操作在處理器上執(zhí)行。程序的并發(fā)執(zhí)行產生資源共享的需求,從而使程序失去封閉性、順序性、確定性、可在現(xiàn)行。優(yōu)點:(1):若為單處理系統(tǒng),可以有效地利用資源,讓處理器和設備、設備和設備同時工作,充分發(fā)揮硬部件的并行工作能力;(2):若為多處理系統(tǒng),可讓進程在不同處理器上

24、物理的并行工作,加快計算速度;(3):簡化程序設計任務,一般來說,編制并發(fā)執(zhí)行的小程序進度快,容易保持正確性。可見,計算機硬部件能并行工作僅具備提高效率的可能性而并行工作的實現(xiàn)還需要通過并發(fā)程序設計和操作系統(tǒng)引入并發(fā)技術來發(fā)揮。五:解釋并發(fā)進程的無關性和交互性。答:無關性:無關的并發(fā)進程是指他們分別在不同的變量集合上操作,一個進程的執(zhí)行與其他并發(fā)進程的進展無關,即一個進程不會改變另一個與其并發(fā)執(zhí)行的晉城的變量。 交互性:交互的并發(fā)進程共享某些變量,一個進程的執(zhí)行可能會影響其他進程的執(zhí)行結果,交互的并發(fā)進程之間具有制約關系。六:并發(fā)進程的執(zhí)行可能產生于時間有關的錯誤,試各舉一例來說明于時間有關錯

25、誤的兩種表現(xiàn)形式。 答:時間有關的錯誤有兩種形式,一是結果不唯一,二是永遠等待。 結果不唯一:飛機售票問題。 永遠等待:內存資源的管理問題。八:試述進程的互斥和同步兩個概念之間的異同。答:進程互斥是指若干進程因相互爭奪獨占性資源而產生的競爭制約關系。 進程同步是指為完成共同任務的并發(fā)進程基于某個條件來協(xié)調其活動,因為需要在某些位置上排定執(zhí)行的先后順序而等待、傳遞順序或消息所產生的協(xié)調制約關系。進程互斥關系是一種特殊的進程同步關系,即逐次使用進程同步資源,也是對進程使用資源的次序的一種協(xié)調。九:什么是臨界區(qū)和臨界資源?臨界區(qū)管理的基本規(guī)則是什么?答:并發(fā)進程中與共享變量有關的程序稱為臨界區(qū)。共享

26、變量所代表的資源稱為臨界資源。臨界區(qū)管理的基本規(guī)則:(1):一次至多只有一個進程進入臨界區(qū)內執(zhí)行。(2):如果已有近程在臨界區(qū)中,試圖進入此臨界區(qū)的其他程序應等待。(3):進入臨界區(qū)內的進程應在有限時間內退出,以便讓等待隊列中的一個進程進入??砂雅R界區(qū)的調度原則總結為三句話:互斥使用,有空讓進;忙碌要等,有限等待;擇一而入,算法可行。十二:那些硬件設施可以實現(xiàn)臨界區(qū)的管理,簡述其的用法。答:1:關中斷。用法:在進程進入臨界區(qū)時關中斷,進程進入臨界區(qū)時開中斷。終端被關閉后,時鐘中斷也被屏蔽,進程上下文切換都是由中斷事件引起的,這樣進程的執(zhí)行再也不會被打斷,因此采用關中斷、開中斷的辦法就能確保并發(fā)

27、進程互斥的進入臨界區(qū)。 2:測試并設置指令。用法:使用硬件所提供的“測試并設置“機器指令TS(Test and Set),可把這條指令看做函數(shù),他有布爾型參數(shù)x和返回條件碼,當TS(&x)測到x值為true時則置x為false,且根據(jù)所測試到的x值形成條件碼。 3:兌換指令。用法:為每個臨界區(qū)設置布爾型鎖變量。十三:什么是信號量?如何對其進行分類? 答:信號量:將交通管制中的多種顏色的信號燈管理方法引入操作系統(tǒng),讓多個進程通過特殊變量展開交互。一個進程在某一關鍵點上被迫停止執(zhí)行直至接受到對應的特殊變量值,通過這一措施,任何復雜的進程交互要求均可達到滿足,這種特殊變量就是信號量。對其進行

28、分類:按用途分有兩種:公用信號量;私有信號量。按取值分為兩種:二值信號量;一般信號量,又稱計數(shù)信號量。十五:何謂管程?他有什么屬性?答:管程是指吧分散在各個進程之間的臨界區(qū)集中起來管理,并把共享資源用數(shù)據(jù)用數(shù)據(jù)結構抽象的表示,由于臨界區(qū)是訪問資源的代碼段,建立一個“秘書“程序管理到來的訪問。管程與進程具有同等的表達能力。管程的屬性:進程調用管程的過程是有一定的限制。 (1):共享性。管程中的移出過程可悲所有要調用管程的進程共享。 (2):安全性。管程的局部變量只能由此管理的過程訪問,不允許進程訪問或其他管程來直接訪問,一個管程的過程也不應該訪問非局部于他的變量。(3):互斥性。在任意時刻共享資

29、源的進程可以訪問管程中的管理此資源的過程,但最多只有一個調用者能夠真正地進入管程,其他調用者必須等待直至管程可用。十六:試述管程中條件變量的含義和作用。答:含義:條件變量是出現(xiàn)在關城內的一種數(shù)據(jù)結構,且只有在管程中才能被訪問,其功能是進程可以在該條件變量上等待或被喚醒他對管程內的所有過程是全局的,只能通過兩個原語操作來控制它。十七:試比較管程與進程的不同點。答:(1):管程定義的是公用數(shù)據(jù)結構,而進程所定義的是私有數(shù)據(jù)結構;(2):管程把共享變量上的同步操作集中起來統(tǒng)一管理,而臨界區(qū)卻分散在每個進程中;(3):管程是為解決進程共享資源的互斥而建立的,而進程是為戰(zhàn)友系統(tǒng)資源和實現(xiàn)系統(tǒng)并發(fā)性而引入

30、的;(4):管程被欲使用共享資源的所有進程所調用,管程和調用它的進程不能明確并行工作;而進程之間能夠并行工作,并發(fā)性是其固有特性。(5):管程可作為語言或操作系統(tǒng)成分,不必創(chuàng)建或撤銷;而進程有生命周期,由創(chuàng)建產生至撤銷便消失。十八:已經有信號量和pv操作可用作同步工具,為什么還要有消息傳遞機制?答:進程同步本質上是一種僅傳送信號的進程通信,通過修改信號量,進程之間可以建立聯(lián)系,相互協(xié)同運行和協(xié)同工作,但他缺乏傳遞數(shù)據(jù)的能力。在多任務系統(tǒng)中,可由多個進程分工協(xié)作完成同一任務,于是他們需要共享一些數(shù)據(jù),和相互交換信息,在很多場合需要交換大批量數(shù)據(jù)可以通過通信機制來完成。二十二:試述信號通信機制及其

31、實現(xiàn)。答:(1):每個進程task_struct結構中signal域專門保存接收到的信號,內核根據(jù)所發(fā)生的時間產生相應的信號并發(fā)送給接收數(shù)據(jù)。(2):進程task_struct結構中的blocked是信號屏蔽標記,相當于中斷屏蔽寄存器。(3):信號處理函數(shù)的入口存放在進程task_struct的sigaction數(shù)組中,利用sigction函數(shù)為進程設置信號處理函數(shù)。(4):函數(shù)sigaction(signo,act,oldacd)為指定信號設置處理函數(shù)。(5):函數(shù)kill(pid,sig)用來向指定的進程或進程組發(fā)送指定信號。(6):信號檢測和相應總發(fā)生在系統(tǒng)空間。23:試述進程的低級通信

32、機制以及其高級通信機制。24:什么是死鎖?什么是饑餓?試舉生活中的例子加以說明。答:如果一個進程集合中的每個進程都在等待只能由此集合中的其他進程才能引發(fā)的事件,而無限期的陷入僵持的局面稱為死鎖。25:試述產生死鎖的必要條件。答:(1):互斥條件:臨界資源是獨占資源,進程應互斥且排他的使用這些資源。(2):占有和等待資源:進程在等待資源得不到滿足而等待時,不釋放以占有資源。(3):不剝奪條件:又稱為不可搶占,已獲資源只能有進程自愿釋放,不允許被其他進程剝奪。(4):循環(huán)等待條件:又稱環(huán)路條件,存在循環(huán)等待鏈,其中每個進程都在循環(huán)等代練中等待下一個進程所處有的資源,造成這組進程處于永遠等待狀態(tài)。2

33、6:列舉死鎖的各種防止策略。答:破壞條件1(互斥條件):使資源可同時訪問而不是互斥使用,就沒有錦城湖阻塞在資源上,從而不發(fā)生死鎖。破壞條件2(戰(zhàn)友和等待條件):靜態(tài)分配是指進程必須在執(zhí)行之前就申請需要的全部資源,且直至所需要的資源全部得到滿足后才開始執(zhí)行。破壞條件3(不剝奪條件):剝奪調度能夠防止死鎖但只是用于內存和處理器資源。破壞條件4(循環(huán)等待條件):采用層次分配策略,將系統(tǒng)中所有資源排列到不同層次中。27:何謂銀行家算法?試述其基本思想。答:銀行家算法:一種能夠避免死鎖的調度方法?;舅枷耄合到y(tǒng)中所有進程放入進程集合,在安全狀態(tài)下系統(tǒng)受到進程的資源請求后,先把資源試探性的分配給他,然后系

34、統(tǒng)將剩下的可用資源和進程集合中的其他進程還需要的資源數(shù)作比較,找出剩余資源能滿足最大需求量的進程,從而保證進程運行完畢并歸還全部資源;這時吧這個進程從進程集合中刪除,歸還其所占用的所有資源,系統(tǒng)的剩余資源則更多;反復執(zhí)行上述步驟,最后檢查進程集合,若為空則表明本次申請可行,系統(tǒng)處于安全狀態(tài),可以真正實施本次分配,否則只要進程集合非空,系統(tǒng)便處于不安全狀態(tài),本次資源分配暫不實施,讓申請資源的進程等待。28:解釋進程-資源分配圖,死鎖的判定法則,死鎖定理。答:設某個計算機系統(tǒng)中有多種資源和多個進程,每個資源類用一個方框表示,方框中的黑圓點表示此資源類中的各個資源,每個進程用一個類來表示,用有向邊表

35、示進程申請資源和資源被分配的情況。死鎖判定:(1):如果進程-資源分配圖中無環(huán)路,此時系統(tǒng)沒有發(fā)生死鎖。(2):如果進程-資源分配圖中有環(huán)路,且每個資源類中僅有一個資源,則系統(tǒng)中發(fā)生死鎖。此時環(huán)路是系統(tǒng)發(fā)生死鎖的充要條件,環(huán)路中的進程就是死鎖中的進程。(3):如果進程-資源分配圖中有環(huán)路,且所涉及的資源類中有多個資源,則環(huán)路的存在只是系統(tǒng)發(fā)生死鎖的必要條件而不是充分條件,系統(tǒng)不一定會發(fā)生死鎖。死鎖定理即系統(tǒng)產生死鎖的充要條件為:當且僅當此狀態(tài)的進程-資源分配圖是不可完全簡化的。29:系統(tǒng)有輸入及和打印機各一臺,現(xiàn)有兩個進程都要使用他們,采用PV操作實現(xiàn)請求使用和歸還資源后還會產生死鎖嗎?說明理

36、由,若是,則給出防止死鎖的方法。答:不會產生死鎖,因為系統(tǒng)的輸入機和行式打印機作為臨界資源分別用兩個信號量表示,初值為1,在需要使用它們時用P操作申請,在需要歸還他們時用V操作釋放,這樣就保證了兩個進程對輸入機和行式打印機的互斥作用,可防止死鎖的產生。34:什么是競爭條件?答:多個進程并發(fā)訪問和操作同一數(shù)據(jù)且執(zhí)行結果與訪問的特定順序有關,稱為競爭條件35:什么是忙式等待?答:不進入等待狀態(tài)的等待稱為忙式等待。38:試舉出系統(tǒng)資源分配圖有環(huán)鎖和環(huán)而不鎖的示例。答:應用題:1:有三個并發(fā)進程:R負責從輸入設備讀入信息塊,M負責對信息塊加工處理;P負責打印輸出信息塊。今提供;1) 一個緩沖區(qū),可放置

37、K個信息塊;2) 二個緩沖區(qū),每個可放置K個信息塊;試用信號量和P、V操作寫出三個進程正確工作的流程。答: 2:設有n個進程共享一個互斥段,如果:(1)每次只允許一個進程進入互斥段;(2)每次最多允許m個進程(mn)同時進入互斥段。試問:所采用的信號量初值是否相同?信號量值的變化范圍如何?答:所采用的互斥信號量初值不同。 1)互斥信號量初值為1,變化范圍為-n+1,1。當沒有進程進入互斥段時,信號量值為1;當有1個進程進入互斥段但沒有進程等待進入互斥段時,信號量值為0;當有1個進程進入互斥段且有一個進程等待進入互斥段時,信號量值為-1;最多可能有n-1個進程等待進入互斥段,故此時信號

38、量的值應為-(n-1)也就是-n+1。2)互斥信號量初值為m,變化范圍為-n+m,m。當沒有進程進入互斥段時,信號量值為m;當有1個進程進入互斥段但沒有進程等待進入互斥段時,信號量值為m-1;當有m個進程進入互斥段且沒有一個進程等待進入互斥段時,信號量值為0;當有m個進程進入互斥段且有一個進程等待進入互斥段時,信號量值為-1;最多可能有n-m個進程等待進入互斥段,故此時信號量的值應為-(n-m)也就是-n+m。3:有兩個優(yōu)先級相同的進程P1和P2,各自執(zhí)行的操作如下,信號量S1和S2初值均為0。試問P1、P2并發(fā)執(zhí)行后,x、y、z的值各為多少?P1: P2:begin beginy:=1; x

39、:=1;y:=y+3; x:=x+5;V(S1); P(S1);z:=y+1; x:=x+y;P(S2); V(S2);y:=z+y z:=z+x;end. End.5:有一閱覽室,讀者進入時必須先在一張登記表上登記,該表為每一座位列出一個表目,包括座號、姓名,讀者離開時要注銷登記信息;假如閱覽室共有100個座位。試用:1)信號量和P、V操作;2)管程,來實現(xiàn)用戶進程的同步算法。答:1) 使用信號量和P、V操作: 6:在一個盒子里,混裝了數(shù)量相等的黑白圍棋子?,F(xiàn)在用自動分揀系統(tǒng)把黑子、白子分開,設分揀系統(tǒng)有二個進程P1和P2,其中P1揀白子;P2揀黑子。規(guī)定每個進程每次揀一子;當一個

40、進程在揀時,不允許另一個進程去揀;當一個進程揀了一子時,必須讓另一個進程去揀。試寫出兩進程P1和P2能并發(fā)正確執(zhí)行的程序。答:實質上是兩個進程的同步問題,設信號量S1和S2分別表示可揀白子和黑子,不失一般性,若令先揀白子。coend8:設公共汽車上,司機和售票員的活動分別如下:司機的活動:啟動車輛:正常行車;到站停車。售票員的活動:關車門;售票;開車門。在汽車不斷地到站、停車、行駛過程中,這兩個活動有什么同步關系?用信號量和P、V操作實現(xiàn)它們的同步。答:在汽車行駛過程中,司機活動與售票員活動之間的同步關系為:售票員關車門后,向司機發(fā)開車信號,司機接到開車信號后啟動車輛,在汽車正常行駛過程中售票

41、員售票,到站時司機停車,售票員在車停后開門讓乘客上下車。因此,司機啟動車輛的動作必須與售票員關車門的動作取得同步;售票員開車門的動作也必須與司機停車取得同步。 應設置兩個信號量:s1、s2;s1表示是否允許司機啟動汽車(其初值為0);s2表示是否允許售票員開門(其初值為0)。用P、V原語描述如下:9:一個快餐廳有4類職員:(1)領班:接受顧客點菜;(2)廚師:準備顧客的飯菜;(3)打包工:將做好的飯菜打包;(4)出納員:收款并提交食品。每個職員可被看作一個進程,試用一種同步機制寫出能讓四類職員正確并發(fā)運行的程序。答:S的值表示它代表的物理資源的使用狀態(tài):S>0表示還有共享資源可

42、供使用。S=0表示共享資源正被進程使用但沒有進程等待使用資源。S<0表示資源已被分配完,還有進程等待使用資源。10:二個并發(fā)進程并發(fā)執(zhí)行,其中,A、B、C、D、E是原語,試給出可能的并發(fā)執(zhí)行路徑。Process P Process Qbegin beginA; C;B; D;C; end;end;16:另一個經典同步問題:吸煙者問題(patil,1971)。三個吸煙者在一個房間內,還有一個香煙供應者。為了制造并抽掉香煙,每個吸煙者需要三樣東西:煙草、紙和火柴,供應者有豐富貨物提供。三個吸煙者中,第一個有自己的煙草,第二個有自己的紙和第三個有自己的火柴。供應者隨機地將兩樣東西放在桌子上,允

43、許一個吸煙者進行對健康不利的吸煙。當吸煙者完成吸煙后喚醒供應者,供應者再把兩樣東西放在桌子上,喚醒另一個吸煙者。試采用:(1)信號量和P、V操作;(2)管程編寫他們同步工作的程序。18:系統(tǒng)有同類資源m個,被n個進程共享,問:當mn和mn時,每個進程最多可以請求多少個這類資源時,使系統(tǒng)一定不會發(fā)生死鎖?答:當mn時,每個進程最多請求1個這類資源時,系統(tǒng)一定不會發(fā)生死鎖。當m>n時,如果m/n不整除,每個進程最多可以請求”商+1”個這類資源,否則為”商”個資源,使系統(tǒng)一定不會發(fā)生死鎖。19:N個進程共享M個資源,每個進程一次只能申請/釋放一個資源,每個進程最多需要M個資源,所有進程總共的資

44、源需求少于M+N個,證明該系統(tǒng)此時不會產生死鎖。答:設max(i)表示第i個進程的最大資源需求量,need(i)表示第i個進程還需要的資源量,alloc(i)表示第i個進程已分配的資源量。由題中所給條件可知: max(1)+max(n)=(need(1)+need(n)+(alloc(1)+alloc(n)<m+n如果在這個系統(tǒng)中發(fā)生了死鎖,那么一方面m個資源應該全部分配出去,alloc(1)+alloc(n)=m,另一方面所有進程將陷入無限等待狀態(tài)??梢酝瞥鰊eed(1)+ +need(n)<n上式表示死鎖發(fā)生后,n個進程還需要的資源量之和小于n,這意味著此刻

45、至少存在一個進程i,need(i)=0,即它已獲得了所需要的全部資源。既然該進程已獲得了它所需要的全部資源,那么它就能執(zhí)行完成并釋放它占有的資源,這與前面的假設矛盾,從而證明在這個系統(tǒng)中不可能發(fā)生死鎖。21:Jurassic公園有一個恐龍博物館和一個花園,有m個旅客和n輛車,每輛車僅能乘一個旅客。旅客在博物館逛了一會,然后,排隊乘坐旅行車,當一輛車可用時,它載入一個旅客,再繞花園行駛任意長的時間。若n輛車都已被旅客乘坐游玩,則想坐車的旅客需要等待。如果一輛車已經空閑,但沒有游玩的旅客了,那么,車輛要等待。試用信號量和P、V操作同步m個旅客和n輛車子。答:23:設當前的系統(tǒng)狀態(tài)如下,系統(tǒng)此時Av

46、ailable=(1,1,2):Claim Allocation進程, R1 R2 R3 R1 R2 R3P1 3 2 2 1 0 0P2 6 1 3 5 1 1P3 3 1 4 2 1 1P4 4 2 2 0 0 2(1) 計算各個進程還需要的資源數(shù)Cki-Aki?(2) 系統(tǒng)是否處于安全狀態(tài),為什么?(3) P1發(fā)出請求向量request2(1,0,1),系統(tǒng)能把資源分給它嗎?(4) 若在P2申請資源后,若P1發(fā)出請求向量request1(1,0,1),系統(tǒng)能把資源分給它嗎?(5) 若在P1申請資源后,若P3發(fā)出請求向量request3(0,0,1),系統(tǒng)能把資源分給它嗎?答:(1)

47、60;P1,P2,P3,P4的Cki-Aki分別為:(2,2,2)、(1,0,2)、(1,0,3)、(4,2,0) (2) 系統(tǒng)處于安全狀態(tài),存在安全序:P2,P1,P3,P4 (3) 可以分配,存在安全序列:P2,P1,P3,P4。 (4) 不可以分配。 (5) 不可以分配。24:系統(tǒng)有A、B、C、D共4種資源,在某時刻進程P0、P1、P2、P3和P4對資源的占有和需求情況如表,試解答下列問題:Allocation Claim Available進程 A B C D A B C D A B C DP0 0 0 3

48、 2 0 0 4 4 1 6 2 2P1 1 0 0 0 2 7 5 0P2 1 3 5 4 3 6 10 10P3 0 3 3 2 0 9 8 4P4 0 0 1 4 0 6 6 10(1)系統(tǒng)此時處于安全狀態(tài)嗎?(2) 若此時P1發(fā)出request1(1、2、2、2),系統(tǒng)能分配資源給它嗎?為什么?答:(1)系統(tǒng)處于安全狀態(tài),存在安全序列:P0,P3,P4,P1,P2。   (2)不能分配,否則系統(tǒng)會處于不安全狀態(tài)。25:把死鎖檢測算法用于下面的數(shù)據(jù),并請問:Available=(1,0,2,0)1 1 0 03 0 1 10 1 1 2 Allocation

49、= 0 1 0 0Need=3 1 1 1 1 0 0 01 1 0 10 0 1 0=2 1 1 0 0 0 0 0(1)此時系統(tǒng)此時處于安全狀態(tài)嗎?(2)若第二個進程提出資源請求request2(0,0,1,0),系統(tǒng)能分配資源給它嗎?(3)若第五個進程提出資源請求request5(0,0,1,0),系統(tǒng)能分配資源給它嗎?答:(1)此時可以找出進程安全序列:P4,P1,P5,P2,P3。故系統(tǒng)處于安全狀態(tài)。 (2)可以分配,存在安全序列:P4,P1,P5,P2,P3。(3)不可分配,系統(tǒng)進入不安全狀態(tài)。26:考慮一個共有150個存儲單元的系統(tǒng),如下分配給三個進程,P1最大需求70

50、,己占有25;P2最大需求60,己占有40;P3最大需求60,己占有45。使用銀行家算法,以確定下面的任何一個請求是否安全。(1)P4進程到達,P4最大需求60,最初請求25個。(2)P4進程到達,P4最大需求60,最初請求35。如果安全,找出安全序列;如果不安全,給出結果分配情況。答:29:進程A1、A2、An1通過m個緩沖區(qū)向進程B1、B2、Bn2不斷地發(fā)送消息。發(fā)送和接收工作符合以下規(guī)則:(1) 每個發(fā)送進程每次發(fā)送一個消息,寫進一個緩沖區(qū),緩沖區(qū)大小與消息長度相等;(2) 對每個消息,B1、B2、Bn2都需接收一次,并讀入各自的數(shù)據(jù)區(qū)內;(3) 當M個緩沖區(qū)都滿時,則發(fā)送進程等待,當沒

51、有消息可讀時,接收進程等待。試用信號量和PV操作編制正確控制消息的發(fā)送和接收的程序。答:30:某系統(tǒng)有R1設備3臺,R2設備4臺,它們被P1、P2、P3和P4進程共享,且已知這4個進程均按以下順序使用設備:申請R1申請R2申請R1釋放R1釋放R2釋放R1(1) 系統(tǒng)運行中可能產生死鎖嗎?為什么?(2) 若可能的話,請舉出一種情況,并畫出表示該死鎖狀態(tài)的進程資源圖。答:39:一組生產者進程和一組消費者進程共享九個緩沖區(qū),每個緩沖區(qū)可以存放一個整數(shù)。生產者進程每次一次性向3個緩沖區(qū)寫入整數(shù),消費者進程每次從緩沖區(qū)取出一個整數(shù)。請用:(1)信號量和P、V操作;(2)管程,寫出能夠正確執(zhí)行的程序。答:41:下述流程是解決兩進程互斥訪問臨界區(qū)問題的一種方法。試從“互斥”(mutual exclusion)、“空閑讓進”(progres

溫馨提示

  • 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

提交評論