




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