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

下載本文檔

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

文檔簡介

第二章一、思考題1. 什么是PSW,它有何作用?psw:操作系統(tǒng)將程序運行時的一組動態(tài)信息會聚在一起,稱為程序的狀態(tài)字 作用:實現(xiàn)程序狀態(tài)的保護和恢復3.為什么要把機器指令分成特權(quán)指令和非特權(quán)指令?應(yīng)用程序在執(zhí)行有關(guān)資源管理的機制指令時易于導致系統(tǒng)混亂,造成系統(tǒng)或用戶信息被破壞,因此在多道程序設(shè)計環(huán)境中,從資源管理和控制程序執(zhí)行的角度出發(fā),必須把指令系統(tǒng)中的指令分成這兩類。4.試分別從中斷事件的性質(zhì)、來源和實現(xiàn)角度對其進行分類從中斷事件的性質(zhì)和激活的手段來說,可以分成兩類: (1)強迫性中斷事件強迫性中斷事件不是正在運行的程序所期待的,而是由于某種事故或外部請求信息所引起的,分為:機器故障中斷事件。程序性中斷事件。外部中斷事件。輸入輸出中斷事件。(2)自愿性中斷事件自愿性中斷事件是正在運行的程序所期待的事件。按事件來源和實現(xiàn)手段分類:(1) 硬中斷;硬中斷分為外中斷(中斷、異步中斷)和內(nèi)中斷(異常、同步中斷);(2) 軟中斷;軟中斷分為信號和軟件中斷。9.什么是系統(tǒng)調(diào)用?試述API、庫函數(shù)及系統(tǒng)調(diào)用間的關(guān)系。敘述系統(tǒng)調(diào)用執(zhí)行流程。由操作系統(tǒng)實現(xiàn)的所有系統(tǒng)調(diào)用所構(gòu)成的集合即程序接口或應(yīng)用編程接口(Application Programming Interface,API)。系統(tǒng)調(diào)用是一種API,是應(yīng)用程序同系統(tǒng)之間的接口。庫函數(shù)是語言本身的一部分,可以調(diào)用多個系統(tǒng)調(diào)用;系統(tǒng)調(diào)用(函數(shù))是內(nèi)核提供給應(yīng)用程序的接口,屬于系統(tǒng)的一部分,可以認為是某種內(nèi)核的庫函數(shù);操作系統(tǒng)API是有系統(tǒng)調(diào)用(函數(shù))的集合(也就是將許多的系統(tǒng)調(diào)用封裝在了一起)。一是編寫系統(tǒng)調(diào)用服務(wù)例程;二是設(shè)計系統(tǒng)調(diào)用入口地址表,每個入口地址都指向一個系統(tǒng)調(diào)用的服務(wù)例程,有的還包括系統(tǒng)調(diào)用自帶的參數(shù)個數(shù);三是陷阱處理機制,需要開辟現(xiàn)場保護區(qū),以保存發(fā)生系統(tǒng)調(diào)用時應(yīng)用程序的處理器現(xiàn)場。應(yīng)用程序執(zhí)行系統(tǒng)調(diào)用,產(chǎn)生中斷指向內(nèi)核態(tài),進入陷阱處理程序,它將按功能查詢?nèi)肟诘刂繁?,并轉(zhuǎn)至對應(yīng)服務(wù)例程執(zhí)行,完成后退出中斷,返回應(yīng)用程序斷點繼續(xù)運行。14.簡述Linux的快中斷和慢中斷快中斷:快中斷處理僅要保存被常規(guī)C函數(shù)修改的寄存器;中斷處理時會屏蔽所有其他中斷;中斷處理完畢后,通?;謴同F(xiàn)場返回被中斷的進程繼續(xù)執(zhí)行(是非搶先式調(diào)度)。慢中斷:處理慢中斷前需保存所有寄存器的內(nèi)容,中斷處理時,不屏蔽其他中斷信號,慢中斷處理完畢后,通常不立即返回被中斷的進程,而是進入調(diào)度程序重新調(diào)度,調(diào)度結(jié)果未必是被中斷的進程運行(是搶先式調(diào)度)。17.討論Linux系統(tǒng)的tasklet、work queue和softirq任務(wù)延遲處理進制。(1)tasklet:能更好支持SMP,它基于軟中斷來實現(xiàn),但比軟中斷接口簡單,鎖保護要求低;softirq保留給執(zhí)行頻率及時間要求特高的下半部分使用(如網(wǎng)絡(luò)和SCSI),多數(shù)場合下可使用tasklet。使用tasklet的步驟:聲明 、編程、調(diào)度 。 BH全局串行處理,不適應(yīng)SMP環(huán)境,而不同tasklet可同時運行于不同CPU上,當然,系統(tǒng)保證相同tasklet不會同時在不同CPU上運行,在這種情形下,tasklet就不需要是可重入的。在新版Linux中,tasklet是建議的異步任務(wù)延遲執(zhí)行機制。(2)work queue:Linux 2.5內(nèi)核引入-工作隊列,它把一個任務(wù)延遲,并交給內(nèi)核線程去完成,且該任務(wù)總是在進程上下文中執(zhí)行,通過工作隊列執(zhí)行的代碼能占盡進程上下文的優(yōu)勢,最重要的是工作隊列允許重新調(diào)度及阻塞。默認的工作者線程:event/n如果延遲執(zhí)行的任務(wù)需要阻塞,需要獲取信號量或需要獲得大量主存時,那么,可選擇工作隊列,否則可使用tasklet或softirq。(3) Sorfirq:(軟中斷)是一種軟中斷機制,亦即是一種信號機制,中斷處理程序在其返回前標記下半部分,讓其稍后執(zhí)行;它又是一個框架,納入了tasklet及為網(wǎng)絡(luò)操作專門設(shè)計的軟中斷。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)境中?!俺绦颉弊陨碇皇怯嬎闳蝿?wù)的指令和數(shù)據(jù)的描述,是靜態(tài)概念無法刻畫程序的并發(fā)特性,系統(tǒng)需要尋找一個能描述程序動態(tài)執(zhí)行過程的概念,這就是進程。它能解決系統(tǒng)的“共享性”,正確描述程序的執(zhí)行狀態(tài)。程序與程序的執(zhí)行不再一一對應(yīng)19.進程有哪些主要屬性?試解釋之共享性:同一程序同時運行于不同數(shù)據(jù)集合上時構(gòu)成不同進程,即多個不同進程可執(zhí)行相同的程序,所以進程和程序不是一一對應(yīng)的。動態(tài)性:進程是程序在數(shù)據(jù)集合上的一次執(zhí)行過程,是動態(tài)概念,同時它有生命周期,由創(chuàng)建而產(chǎn)生、由調(diào)度而執(zhí)行、由事件而等待、由撤銷而消亡;而程序是一組有序指令序列,是靜態(tài)概念,所以程序作為系統(tǒng)中的一種資源是永遠存在的獨立性:每個進程是操作系統(tǒng)中的一個獨立實體,有自己的虛存空間,程序計數(shù)器和內(nèi)部狀態(tài);制約性:進程因共享進程資源或協(xié)同工作產(chǎn)生相互制約關(guān)系,造成進程執(zhí)行速度的不可預(yù)測,必須對進程的執(zhí)行次序或相對執(zhí)行速度加以協(xié)調(diào);并發(fā)性:多個進程的執(zhí)行在時間上可以重疊,在單處理器系統(tǒng)中可并發(fā)執(zhí)行;在多處理器環(huán)境中可并發(fā)執(zhí)行。因此,并發(fā)的執(zhí)行是可被打斷的,或者說,進程執(zhí)行完一條指令后在執(zhí)行下一條指令前可能被迫讓出處理器,由其它若干個進程執(zhí)行若干條指令后才能再次獲得處理器執(zhí)行。20.進程最基本的狀態(tài)有哪些?哪些事件可能引起不同狀態(tài)間的轉(zhuǎn)換?運行態(tài)、就緒態(tài)、等待態(tài)(1)運行態(tài)-等待態(tài):運行進程等待使用某種資源或者某事件發(fā)生(2)等待態(tài)-就緒態(tài):所需資源得到滿足或某事件已經(jīng)完成(3)運行態(tài)-就緒態(tài):運行時間片到時或出現(xiàn)更高優(yōu)先級的進程,當前進程被迫讓出處理器。(4)就緒態(tài)-運行態(tài):當CPU空閑時,調(diào)度程序選中一個就緒進行執(zhí)行21.五態(tài)模型的進程中,新建態(tài)和終止態(tài)的主要作用是什么?新建態(tài):對應(yīng)于進程被創(chuàng)建時的狀態(tài),進程尚未進入就緒隊列,對于進程管理非常有用。終止態(tài):進程完成任務(wù)到達正常結(jié)束點或者因錯誤而終止,或被操作系統(tǒng)及有終止權(quán)的進程時所處的狀態(tài)。進入終止態(tài)程序不再執(zhí)行,等待操作系統(tǒng)進行善后處理。24.什么是進程的掛起狀態(tài)?列出掛起進程的主要特征。(1)為了讓某些進程暫時不參與低級調(diào)度,釋放它占有的資源,將其置于磁盤對換區(qū)中,以平滑系統(tǒng)負荷的目的而需引入掛起態(tài);(2)特征:該進程不能立即被執(zhí)行。掛起進程可能會等待事件,但所等待事件是獨立于掛起條件的,事件結(jié)束并不能導致進程具備執(zhí)行條件。進程進入掛起狀態(tài)是由于操作系統(tǒng)、父進程或進程本身阻止它的運行。結(jié)束進程掛起狀態(tài)的命令只能通過操作系統(tǒng)或父進程發(fā)出25.試述組成進程的基本要素,并說明其作用。控制塊:存儲進程的標志信息,現(xiàn)場信息和控制信息;程序塊:規(guī)定進程的一次運行所應(yīng)完成的功能;核心塊:用來保護中斷/異常現(xiàn)場,保存函數(shù)調(diào)用的參數(shù)和返回地址;數(shù)據(jù)塊:存放各種私有數(shù)據(jù)26.何謂進程控制塊(PCB)?它包含哪些基本信息?(1)進程控制塊P C B ,是操作系統(tǒng)用于記錄和刻劃進程狀態(tài)及有關(guān)信息的數(shù)據(jù)結(jié)構(gòu)。也是操作系統(tǒng)掌握進程的唯一資料結(jié)構(gòu),它包括進程執(zhí)行時的情況,以及進程讓出處理器后所處的狀態(tài)、斷點等信息。 (2)進程控制塊包含三類信息 標識信息 現(xiàn)場信息 控制信息28.請列舉組織進程隊列的各種方法通用隊列組織方式: 線性方式 鏈接方式 索引方式30.什么是進程上下文?簡述其主要內(nèi)容操作系統(tǒng)中把進程物理實體和支持進程運行的環(huán)境合稱為進程上下文。當系統(tǒng)調(diào)度新進程占有處理器時,新老進程隨之發(fā)生上下文切換。進程的運行被認為是上下文中執(zhí)行。 進程上下文組成用戶級上下文系統(tǒng)級上下文寄存器上下文31.什么是進程切換?試述進程切換的主要步驟(1)進程切換是讓處于運行態(tài)的進程中斷運行,讓出處理器,這時要做一次進程上下文切換、即保存老進程狀態(tài)而裝入被保護了的新進程的狀態(tài),以便新進程運行(2)保存被中斷進程的處理器現(xiàn)場信息修改被中斷進程的進程控制塊有關(guān)信息,如進程狀態(tài)等把被中斷進程的PCB加入有關(guān)隊列選擇下一個占有處理器運行的進程修改被選中進程的PCB的有關(guān)信息根據(jù)被選中進程設(shè)置操作系統(tǒng)用到的地址轉(zhuǎn)換和存儲保護信息根據(jù)被選中進程恢復處理器現(xiàn)場32.什么是模式切換?它與進程切換之間有何區(qū)別?模式切換即CPU模式切換,是從用戶態(tài)到核心態(tài)或者核心態(tài)到用戶態(tài)的轉(zhuǎn)換是CPU模式切換,此時仍然在同一個進程中運行。模式切換不同于進程切換,它不一定會引起進程狀態(tài)的轉(zhuǎn)換,也不一定會引起進程切換,在完成系統(tǒng)調(diào)度服務(wù)或中斷處理之后,可通過逆向模式來恢復被中斷進程的運行。35.在操作系統(tǒng)引入進程概念后,為什么還有引入線程的概念?操作系統(tǒng)中再引入線程,則是為了減少程序并發(fā)執(zhí)行時所付出的時空開銷,使得并發(fā)粒度更細、并發(fā)性更好。38.試從調(diào)度、并發(fā)性、擁有資源和系統(tǒng)開銷等四個方面對傳統(tǒng)進程和多線程進程進行比較。40.試對下列系統(tǒng)任務(wù)進行比較:(1)創(chuàng)建一個線程和創(chuàng)建一個進程(2)兩個進程間通信與同一進程中的兩個線程間通信 (3)同一進程中的兩個線程的上下文切換和不同進程中兩個線程的上下文切換。43.列舉線程的組織方式和應(yīng)用場合。答:線程組織方式:(1)調(diào)度員/工作者方式(2)組模式(3)流水線模式應(yīng)用場合:(1)前臺和后臺工作(2)C/S應(yīng)用模式(3)異步處理(4)加快執(zhí)行速度(5)設(shè)計用戶接口45.試分析Linux系統(tǒng)的進程和線程。進程描述符task_struct中包含:進程標識、鏈接信息、調(diào)度信息、文件信息、虛存空間信息、信號處理信息等。Linux中認為線程就是共享地址空間及其他資源的進程,故并沒有單獨為線程定義數(shù)據(jù)結(jié)構(gòu),有一套在用戶模式下運行的線程庫-pthread,但每個線程都擁有惟一隸屬于自己的task_struct48.處理器調(diào)度分為哪幾種類型?簡述各種調(diào)度的主要任務(wù)。答:(1)高級調(diào)度:在多道處理操作系統(tǒng)中,從輸入系統(tǒng)的一批作業(yè)中按照預(yù)定的調(diào)度策略挑選若干個作業(yè)進入主存,為其分配所需資源,并創(chuàng)建作業(yè)的相應(yīng)用戶進程后便完成啟動階段的高級調(diào)度任務(wù);(2)中級調(diào)度:根據(jù)主存資源決定主存中所能容納的進程數(shù)目,并根據(jù)進程的當前狀態(tài)來決定輔助存儲器和主存中的進程的對換;(3)低級調(diào)度:根據(jù)某種原則決定就緒隊列中的哪個進程或內(nèi)核級線程獲得處理器,并將處理器讓出給它使用。49.試述衡量一個處理器調(diào)度算法優(yōu)劣的主要任務(wù)。根據(jù)調(diào)度機制 的三個邏輯功能程序模塊組成來評判:(1)隊列管理程序(2)上下文切換程序(3)分派程序52.解釋:(1)作業(yè)周轉(zhuǎn)時間;(2)作業(yè)帶權(quán)周轉(zhuǎn)時間;(3)相應(yīng)時間;(4)吞吐率。答:(1)作業(yè)周轉(zhuǎn)時間:批處理用戶從系統(tǒng)提交作業(yè)開始,到作業(yè)完成為止的時間間隔;(2)作業(yè)帶權(quán)周轉(zhuǎn)時間:在操作系統(tǒng)中,帶權(quán)周轉(zhuǎn)時間反映作業(yè)(或進程)長短問題,帶權(quán)周轉(zhuǎn)時間越大,作業(yè)(或進程)越短;帶權(quán)周轉(zhuǎn)時間越小,作業(yè)(或進程)越長。(3)響應(yīng)時間:從交互式進程提交一個請求至得到響應(yīng)之間的時間間隔稱為響應(yīng)時間。(4)吞吐率:單位時間CPU處理作業(yè)的個數(shù)。53.試述作業(yè)、進程、線程和程序之間的關(guān)系。進程是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ);是一個正在執(zhí)行的程序;計算機中正在運行的程序?qū)嵗?;可以分配給處理器并由處理器執(zhí)行的一個實體;由單一順序的執(zhí)行顯示,一個當前狀態(tài)和一組相關(guān)的系統(tǒng)資源所描述的活動單元。 線程(thread, 臺灣稱 執(zhí)行緒)是進程中某個單一順序的控制流。也被稱為輕量進程(lightweight processes)。計算機科學術(shù)語,指運行中的程序的調(diào)度單位。作業(yè):用戶在一次運算過程中,或一次事務(wù)處理中要求計算機所做的全部工作的總和。進程是在自身的虛擬地址空間正在運行的一個程序 程序運行產(chǎn)生進程 程序是一組靜態(tài)的指令集,不占用系統(tǒng)運行資源 進程是隨時都可能發(fā)生變化的,動態(tài)的。占用系統(tǒng)運行資源的程序 一個程序可以產(chǎn)生多個進程 作業(yè)嘛,是一個或多個正在執(zhí)行的相關(guān)進程。一般來講當進程與作業(yè)控制相關(guān)聯(lián)時才被稱為作業(yè)55.在時間片輪轉(zhuǎn)低度調(diào)級算法中,根據(jù)哪些因素確定時間片的長短?答:進程數(shù)目、切換開銷、系統(tǒng)效率及響應(yīng)時間等多方面因素。57.為什么多級反饋隊列算法能較好地滿足各種用戶的需求?答:高級調(diào)度的主要任務(wù)是根據(jù)某種算法,把外存上處于后備隊列中的那些作業(yè)調(diào)入內(nèi)存。低級調(diào)度是保存處理機的現(xiàn)場信息,按某種算法先取進程,再把處理器分配給進程。引入中級調(diào)度的主要目的是為了提高內(nèi)存利用率和系統(tǒng)吞吐量。使那些暫時不能運行的進程不再占用內(nèi)存資源,將它們調(diào)至外存等待,把進程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài)。58.分析靜態(tài)優(yōu)先數(shù)和動態(tài)優(yōu)先數(shù)低級調(diào)度算法各自的優(yōu)缺點。答:靜態(tài)優(yōu)先級在進程或線程創(chuàng)建時確定,且生命周期中不再改變,可按照外部指定和內(nèi)部指定方法計算靜態(tài)優(yōu)先級。靜態(tài)優(yōu)先級算法的實現(xiàn)簡單,但會產(chǎn)生饑餓現(xiàn)象,使某些低優(yōu)先級進程或線程無限期對的被推遲進行。動態(tài)優(yōu)先級使各進程或線程優(yōu)先級隨時間而改變,克服了靜態(tài)優(yōu)先級的饑餓問題,等待時間足夠長的進程或線程會因其優(yōu)先級不斷提高而被調(diào)度運行。62.在多級反饋隊列中,對不同的隊列分配大小不同的時間片值,其意義何在?應(yīng)用題1.下列指令中,哪些只能在內(nèi)核態(tài)運行?(1)讀時鐘日期 (2)訪管指令 (3)設(shè)時鐘日期 (4)加載PSW(5)置特殊寄存器 (6)改變存儲器映像圖 (7)啟動I/O指令4.在按照動態(tài)優(yōu)先數(shù)調(diào)度進程的系統(tǒng)中,每個進程的優(yōu)先數(shù)需定時重新計算。在處理器不斷在進程之間交替的情況下,重新計算進程優(yōu)先數(shù)的時間從何而來?許多操作系統(tǒng)重新計算進程的優(yōu)先數(shù)在時鐘中斷處理例程中進行,由于中斷是隨機碰到哪個進程,就插入哪個進程中運行處理程序,并把處理時間記在這個進程的賬上。7. 8.10. 按照最短作業(yè)優(yōu)先的算法可以使平均響應(yīng)時間最短。X取值不定,按照以下情況討論: 1) x3 次序為:x,3,5,6,9 2) 3x5 次序為:3,x,5,6,9 3) 5x6 次序為:3,5,x,6,9 4) 6x9 次序為:3,5,6,x,9 5) 90表示還有共享資源可供使用。S=0表示共享資源正被進程使用但沒有進程等待使用資源。Sn時,如果m/n不整除,每個進程最多可以請求”商+1”個這類資源,否則為”商”個資源,使系統(tǒng)一定不會發(fā)生死鎖。19:N個進程共享M個資源,每個進程一次只能申請/釋放一個資源,每個進程最多需要M個資源,所有進程總共的資源需求少于M+N個,證明該系統(tǒng)此時不會產(chǎn)生死鎖。答:設(shè)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個資源應(yīng)該全部分配出去,alloc(1)+alloc(n)=m,另一方面所有進程將陷入無限等待狀態(tài)??梢酝瞥鰊eed(1)+need(n)n上式表示死鎖發(fā)生后,n個進程還需要的資源量之和小于n,這意味著此刻至少存在一個進程i,need(i)=0,即它已獲得了所需要的全部資源。既然該進程已獲得了它所需要的全部資源,那么它就能執(zhí)行完成并釋放它占有的資源,這與前面的假設(shè)矛盾,從而證明在這個系統(tǒng)中不可能發(fā)生死鎖。21:Jurassic公園有一個恐龍博物館和一個花園,有m個旅客和n輛車,每輛車僅能乘一個旅客。旅客在博物館逛了一會,然后,排隊乘坐旅行車,當一輛車可用時,它載入一個旅客,再繞花園行駛?cè)我忾L的時間。若n輛車都已被旅客乘坐游玩,則想坐車的旅客需要等待。如果一輛車已經(jīng)空閑,但沒有游玩的旅客了,那么,車輛要等待。試用信號量和P、V操作同步m個旅客和n輛車子。答:23:設(shè)當前的系統(tǒng)狀態(tài)如下,系統(tǒng)此時Available=(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)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 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= 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,己占有25;P2最大需求60,己占有40;P3最大需求60,己占有45。使用銀行家算法,以確定下面的任何一個請求是否安全。(1)P4進程到達,P4最大需求60,最初請求25個。(2)P4進程到達,P4最大需求60,最初請求35。如果安全,找出安全序列;如果不安全,給出結(jié)果分配情況。答:29:進程A1、A2、An1通過m個緩沖區(qū)向進程B1、B2、Bn2不斷地發(fā)送消息。發(fā)送和接收工作符合以下規(guī)則:(1) 每個發(fā)送進程每次發(fā)送一個消息,寫進一個緩沖區(qū),緩沖區(qū)大小與消息長度相等;(2) 對每個消息,B1、B2、Bn2都需接收一次,并讀入各自的數(shù)據(jù)區(qū)內(nèi);(3) 當M個緩沖區(qū)都滿時,則發(fā)送進程等待,當沒有消息可讀時,接收進程等待。試用信號量和PV操作編制正確控制消息的發(fā)送和接收的程序。答:30:某系統(tǒng)有R1設(shè)備3臺,R2設(shè)備4臺,它們被P1、P2、P3和P4進程共享,且已知這4個進程均按以下順序使用設(shè)備:申請R1申請R2申請R1釋放R1釋放R2釋放R1(1) 系統(tǒng)運行中可能產(chǎn)生死鎖嗎?為什么?(2) 若可能的話,請舉出一種情況,并畫出表示該死鎖狀態(tài)的進程資源圖。答:39:一組生產(chǎn)者進程和一組消費者進程共享九個緩沖區(qū),每個緩沖區(qū)可以存放一個整數(shù)。生產(chǎn)者進程每次一次性向3個緩沖區(qū)寫入整數(shù),消費者進程每次從緩沖區(qū)取出一個整數(shù)。請用:(1)信號量和P、V操作;(2)管程,寫出能夠正確執(zhí)行的程序。答:41:下述流程是解決兩進程互斥訪問臨界區(qū)問題的一種方法。試從“互斥”(mutual exclusion)、“空閑讓進”(progress)、“有限等待”(bounded waiting)等三方面討論它的正確性。如果它是正確的,則證明之;如果它不正確,請說明理由。program attemp;var c1,c2:integer;procedure p1; (/* 對第一個進程p1 */)beginrepeatRemain Section 1;repeatc1:=1-c2until c20;Critical Section; (/* 臨界區(qū) */)c1:=1until falseend;procedure p2; (/* 對另一個進程p2 */)beginrepeatRemain Section 2;repeatc2:=1-c1until c10;Critical Section; (/* 臨界區(qū) */)c2:=1until falseend;begin (/* 主程序 */)c1:=1;c2:=1;cobeginp1;p2 (/* 兩進程p1, p2開始執(zhí)行 */)coendend.答:52:在一個分頁存儲管理系統(tǒng)中,用 freeindex數(shù)組記錄每個頁框狀態(tài),共有 n 個頁框(index=0,n-1)。當freeindex=true時,表示第index個頁框空閑,freeindex=false時,表示第index個頁框。試設(shè)計一個管程,它有兩個過程acquire和release分別負責分配和回收一個頁框。59:試利用一般信號量機制解決讀者-寫者問題。答:設(shè)置互斥信號量wmutex 表示寫者間、讀者和寫者間互斥 用readcount變量來記錄讀者數(shù):Var rmutex,wmut

溫馨提示

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

評論

0/150

提交評論