版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(tǒng)學(xué)習(xí)指導(dǎo)和考試指導(dǎo)(上篇)目錄\h第1章操作系統(tǒng)簡(jiǎn)介\h1.1概述\h1.2計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)\h1.3操作系統(tǒng)結(jié)構(gòu)\h1.4習(xí)題與解答\h第2章進(jìn)程管理\h2.1概述\h2.2進(jìn)程概念\h2.3線程\h2.4CPU調(diào)度\h2.5進(jìn)程同步\h2.6死鎖\h2.7習(xí)題與解答\h2.8OSC\h*1\h習(xí)題與解答*OSC即《OperatingSystemConceptes(6thEdition)》,SilberschatzA等著。第1章操作系統(tǒng)簡(jiǎn)介1.1概述操作系統(tǒng)已經(jīng)發(fā)展了45年,它始終圍繞著兩個(gè)主要目的。第一,操作系統(tǒng)試圖調(diào)度計(jì)算活動(dòng)以確保計(jì)算機(jī)系統(tǒng)的高性能。第二,操作系統(tǒng)提供一個(gè)便于開發(fā)和運(yùn)行程序的環(huán)境。最初,計(jì)算機(jī)只能通過控制臺(tái)來使用。匯編程序、裝載程序、連接程序和編譯程序改善了系統(tǒng)編程的方便性,但也增加了大量的設(shè)置時(shí)間。為了減少設(shè)置時(shí)間,采用了操作員和批處理的方式。批處理系統(tǒng)通過使用駐留操作系統(tǒng)以允許自動(dòng)切換作業(yè),進(jìn)而大大地提高了計(jì)算機(jī)的整體使用率。計(jì)算機(jī)不再需要等待人工操作。但是,CPU使用率仍然很低,這是因?yàn)镮/O設(shè)備的速度要比CPU慢。當(dāng)然,可以對(duì)慢設(shè)備采取離線操作的方法,即在一個(gè)CPU上使用多個(gè)磁帶讀入和磁帶打印系統(tǒng)。為了改善計(jì)算機(jī)系統(tǒng)的整體性能,開發(fā)人員引入了多道程序設(shè)計(jì)的概念,這樣多個(gè)作業(yè)可以同時(shí)位于內(nèi)存中。CPU在這些作業(yè)之間來回切換而提高了使用率,也降低了執(zhí)行作業(yè)所需要的總時(shí)間。多道程序設(shè)計(jì)也允許分時(shí)。分時(shí)操作系統(tǒng)允許多個(gè)(甚至數(shù)百個(gè))用戶同時(shí)交互地使用一個(gè)計(jì)算機(jī)系統(tǒng)。PC是微機(jī)。它們與大型機(jī)相比,相對(duì)比較小并且便宜。這些計(jì)算機(jī)的操作系統(tǒng)在許多方面都得益于大型機(jī)操作系統(tǒng)的發(fā)展成果。不過,由于單個(gè)用戶可以獨(dú)用計(jì)算機(jī),因而CPU利用率不再是主要問題。因此,有的大型操作系統(tǒng)的設(shè)計(jì)決策不再適用于這些小系統(tǒng)。其他設(shè)計(jì)決策,如安全性等,因?yàn)镻C可以通過網(wǎng)絡(luò)或WWW與其他計(jì)算機(jī)和用戶相連,對(duì)于微型機(jī)和大型機(jī)都同樣適用。并行系統(tǒng)有多個(gè)緊密通信的CPU。這些CPU共享總線,有時(shí)也共享內(nèi)存和外設(shè)。這些系統(tǒng)提供了高計(jì)算量和高可靠性。分布式系統(tǒng)允許對(duì)分布在各地的主機(jī)資源進(jìn)行共享。集群系統(tǒng)允許多個(gè)系統(tǒng)對(duì)位于共享存儲(chǔ)中的數(shù)據(jù)進(jìn)行操作,即使一部分集群成員失敗也能正常工作。硬實(shí)時(shí)系統(tǒng)常常用于控制專用應(yīng)用設(shè)備。硬實(shí)時(shí)操作系統(tǒng)具有明確的、固定的時(shí)間約束。處理必須在規(guī)定的約束內(nèi)完成,否則系統(tǒng)失敗。軟實(shí)時(shí)系統(tǒng)沒有嚴(yán)格的時(shí)間約束,不支持最終時(shí)限調(diào)度。近來,由于Internet和WWW(WorldWideWeb,萬(wàn)維網(wǎng))的影響,現(xiàn)代操作系統(tǒng)也集成了WWW瀏覽器、網(wǎng)絡(luò)和通信軟件。1.2計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)通過將一臺(tái)計(jì)算機(jī)上的CPU操作和I/O操作交替執(zhí)行,多道程序設(shè)計(jì)和分時(shí)系統(tǒng)改善了性能。這種交替的工作方式要求CPU與I/O設(shè)備之間的數(shù)據(jù)傳輸或者采用輪詢方式,或者采用對(duì)I/O端口的中斷驅(qū)動(dòng)訪問方式,或者是DMA方式來處理。為了讓計(jì)算機(jī)執(zhí)行程序,程序必須位于內(nèi)存中。內(nèi)存是處理器能直接訪問的惟一大容量存儲(chǔ)區(qū)域。內(nèi)存是字節(jié)或字的數(shù)組,容量為數(shù)百KB到數(shù)十GB。每個(gè)字都有其地址。內(nèi)存是易失性存儲(chǔ)器,當(dāng)沒有電源時(shí)會(huì)失去其內(nèi)容。絕大多數(shù)計(jì)算機(jī)系統(tǒng)都提供了外存以擴(kuò)充內(nèi)存。對(duì)外存的主要要求是,它要能長(zhǎng)久地存儲(chǔ)大量數(shù)據(jù)。最常用的外存是磁盤,它提供對(duì)數(shù)據(jù)和程序的存儲(chǔ)。磁盤是非易失性的,且能隨機(jī)訪問。磁帶主要用于備份,用于存儲(chǔ)不常使用的信息,也作為系統(tǒng)之間的信息傳遞媒介。根據(jù)速度和價(jià)格,可以將計(jì)算機(jī)系統(tǒng)的不同存儲(chǔ)系統(tǒng)按層次來組織。最高層最為昂貴但也最快。隨著向?qū)哟谓Y(jié)構(gòu)下面移動(dòng),單位的價(jià)格通常降低,而訪問時(shí)間通常增加。操作系統(tǒng)必須確保計(jì)算機(jī)系統(tǒng)的正確操作。為了防止用戶干預(yù)系統(tǒng)的正常操作,硬件有兩種模式:用戶模式和監(jiān)督程序模式。許多指令(如I/O指令和停機(jī)指令)都有特權(quán),但只能在監(jiān)督程序模式下執(zhí)行。操作系統(tǒng)所駐留的內(nèi)存也必須加以保護(hù)以防止用戶程序修改。定時(shí)器防止無(wú)窮循環(huán)。這些工具(如雙模式、特權(quán)指令、內(nèi)存保護(hù)、定時(shí)器中斷)都是操作系統(tǒng)用以實(shí)現(xiàn)正確操作的基本單元。1.3操作系統(tǒng)結(jié)構(gòu)操作系統(tǒng)提供若干服務(wù)。在最底層,系統(tǒng)調(diào)用允許運(yùn)行程序直接向操作系統(tǒng)發(fā)出請(qǐng)求。在高層,命令解釋程序或操作系統(tǒng)外殼使得用戶不必編寫程序就能發(fā)出請(qǐng)求。命令可以來自文件(批處理模式),或者直接來自鍵盤輸入(交互模式或分時(shí)模式)。系統(tǒng)程序用來滿足一些常用的用戶操作。請(qǐng)求類型隨請(qǐng)求級(jí)別的變化而變化。系統(tǒng)調(diào)用級(jí)別提供基本功能,如進(jìn)程控制,文件和設(shè)備管理。由命令解釋程序或系統(tǒng)程序來完成的高級(jí)別請(qǐng)求需要轉(zhuǎn)換成一系列的系統(tǒng)請(qǐng)求。系統(tǒng)服務(wù)可分成許多類型:程序控制、狀態(tài)請(qǐng)求和I/O請(qǐng)求。程序出錯(cuò)可作為對(duì)服務(wù)的一種隱式請(qǐng)求。在定義了系統(tǒng)服務(wù)之后,就可開發(fā)操作系統(tǒng)的結(jié)構(gòu)。需要用各種表記錄一些信息,這些信息定義了計(jì)算機(jī)的系統(tǒng)狀態(tài)和系統(tǒng)的作業(yè)狀態(tài)。設(shè)計(jì)一個(gè)新操作系統(tǒng)是個(gè)重大任務(wù)。在設(shè)計(jì)開始之前,要定義好系統(tǒng)目標(biāo)。它們是選擇各種必要算法和策略的基礎(chǔ)。由于操作系統(tǒng)非常龐大,所以模塊化設(shè)計(jì)很重要。按一系列層或采用微內(nèi)核來設(shè)計(jì)系統(tǒng)是比較好的技術(shù)。虛擬機(jī)概念采用了分層方法,并將操作系統(tǒng)內(nèi)核和硬件都作為硬件來考慮。其他操作系統(tǒng)可以建立在這一虛擬機(jī)之上。例如,實(shí)現(xiàn)JVM(JavaVirtualMachine,Java虛擬機(jī))的操作系統(tǒng)能運(yùn)行所有Java程序,因?yàn)镴VM為Java程序抽象化了底層系統(tǒng),提供了與平臺(tái)無(wú)關(guān)接口。?在整個(gè)操作系統(tǒng)設(shè)計(jì)周期中,我們必須仔細(xì)區(qū)分策略和實(shí)現(xiàn)細(xì)節(jié)(機(jī)制)。在后面需要修改策略時(shí),這種區(qū)分允許最大限度的靈活性。現(xiàn)在的操作系統(tǒng)幾乎都是用系統(tǒng)實(shí)現(xiàn)語(yǔ)言或高級(jí)語(yǔ)言來編寫的。這一特征改善了操作系統(tǒng)的實(shí)現(xiàn)、維護(hù)和可移植性。為特定機(jī)器配置創(chuàng)建操作系統(tǒng),我們必須執(zhí)行系統(tǒng)生成工作。1.4習(xí)題與解答一、單項(xiàng)選擇題1.操作系統(tǒng)是對(duì)____進(jìn)行管理的軟件。A.軟件B.硬件C.計(jì)算機(jī)資源D.應(yīng)用程序答:C2.從用戶的觀點(diǎn)看,操作系統(tǒng)是____。A.用戶與計(jì)算機(jī)之間的接口B.控制和管理計(jì)算機(jī)資源的軟件C.合理地組織計(jì)算機(jī)工作流程的軟件D.由若干層次的程序按一定的結(jié)構(gòu)組成的有機(jī)體答:A3.操作系統(tǒng)的功能是進(jìn)行處理機(jī)管理、____管理、設(shè)備管理及信息管理。A.進(jìn)程B.存儲(chǔ)器C.硬件D.軟件答:B4.操作系統(tǒng)中采用多道程序設(shè)計(jì)技術(shù)提高CPU和外部設(shè)備的____。A.利用率B.可靠性C.穩(wěn)定性D.兼容性答:A5.操作系統(tǒng)是現(xiàn)代計(jì)算機(jī)系統(tǒng)不可缺少的組成部分,是為了提高計(jì)算機(jī)的____和方便用戶使用計(jì)算機(jī)而配備的一種系統(tǒng)軟件。A.速度B.利用率C.靈活性D.兼容性答:B6.操作系統(tǒng)的基本類型主要有____。A.批處理系統(tǒng)、分時(shí)系統(tǒng)及多任務(wù)系統(tǒng)B.實(shí)時(shí)操作系統(tǒng)、批處理操作系統(tǒng)及分時(shí)操作系統(tǒng)C.單用戶系統(tǒng)、多用戶系統(tǒng)及批處理系統(tǒng)D.實(shí)時(shí)系統(tǒng)、分時(shí)系統(tǒng)和多用戶系統(tǒng)答:B7.操作系統(tǒng)是一種____。A.通用軟件B.系統(tǒng)軟件C.應(yīng)用軟件D.軟件包答:B8.操作系統(tǒng)的____管理部分負(fù)責(zé)對(duì)進(jìn)程進(jìn)行調(diào)度。A.主存儲(chǔ)器B.控制器C.運(yùn)算器D.處理機(jī)答:D9.下列選擇中,____不是操作系統(tǒng)關(guān)心的主要問題。(浙江大學(xué)2003年研究生試題)A.管理計(jì)算機(jī)裸機(jī)B.設(shè)計(jì)、提供用戶程序與計(jì)算機(jī)硬件系統(tǒng)的界面?C.管理計(jì)算機(jī)系統(tǒng)資源D.高級(jí)程序設(shè)計(jì)語(yǔ)言的編譯器答:D10.按照計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)的一般原則,從用戶的角度將依次(①、②、③)看到____。(浙江大學(xué)2003年研究生試題)A.①C語(yǔ)言編譯程序,②用C語(yǔ)言寫的某單位人事管理程序,③操作系統(tǒng)B.①用C語(yǔ)言寫的某單位人事管理程序,②C語(yǔ)言編譯程序,③操作系統(tǒng)C.①操作系統(tǒng),②用C語(yǔ)言寫的某單位人事管理程序,③C語(yǔ)言編譯程序D.①用C語(yǔ)言寫的某單位人事管理程序,②操作系統(tǒng),③C語(yǔ)言編譯程序答:B11.系統(tǒng)功能調(diào)用是____。(浙江大學(xué)2003年研究生試題)A.用戶編寫的一個(gè)子程序B.高級(jí)語(yǔ)言中的庫(kù)程序C.操作系統(tǒng)中的一條命令D.操作系統(tǒng)向用戶程序提供的接口答:D12.____是幫助管理計(jì)算機(jī)資源的一整套程序。(浙江大學(xué)2002年研究生試題)A.應(yīng)用程序B.備份程序C.診斷程序D.操作系統(tǒng)程序答:D13.____不是一個(gè)操作系統(tǒng)環(huán)境。(浙江大學(xué)2002年研究生試題)A.賽揚(yáng)(Celeron)B.WindowsCEC.LINUXD.Solaris答:A14.____系統(tǒng)具有同時(shí)管理和運(yùn)行多個(gè)應(yīng)用程序的能力。(浙江大學(xué)2002年研究生試題)A.GUIB.WindowsApplicationsC.MultitaskingD.Networking答:C15.____是一個(gè)Microsoft公司竭力反對(duì)的操作系統(tǒng)。(浙江大學(xué)2002年研究生試題)A.OS/2B.WindowsNTC.LINUXD.Macintosh答:C16.所謂____是指將一個(gè)以上的作業(yè)放入主存,并且同時(shí)處于運(yùn)行狀態(tài),這些作業(yè)共享處理機(jī)的時(shí)間和外圍設(shè)備等其他資源。A.多重處理B.多道程序設(shè)計(jì)C.實(shí)時(shí)處理D.共行執(zhí)行答:B17.多道批處理系統(tǒng)的硬件支持是20世紀(jì)60年代初發(fā)展起來的____。A.ASIC技術(shù)B.通道和中斷機(jī)構(gòu)C.集成電路D.高速內(nèi)存答:B18.下面關(guān)于操作系統(tǒng)的敘述中正確的是____。A.批處理作業(yè)必須具有作業(yè)控制信息。B.分時(shí)系統(tǒng)不一定都具有人機(jī)交互功能。C.從響應(yīng)時(shí)間的角度看,實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)差不多。D.由于采用了分時(shí)技術(shù),用戶可以獨(dú)占計(jì)算機(jī)的資源。答:A19.____操作系統(tǒng)允許在一臺(tái)主機(jī)上同時(shí)連接多臺(tái)終端,多個(gè)用戶可以通過各自的終端同時(shí)交互地使用計(jì)算機(jī)。A.網(wǎng)絡(luò)B.分布式C.分時(shí)D.實(shí)時(shí)答:C20.如果分時(shí)操作系統(tǒng)的時(shí)間片一定,那么____,則響應(yīng)時(shí)間越長(zhǎng)。A.用戶數(shù)越少B.用戶數(shù)越多C.內(nèi)存越少D.內(nèi)存越多答:B21.分時(shí)操作系統(tǒng)通常采用____策略為用戶服務(wù)。A.可靠性和靈活性B.時(shí)間片輪轉(zhuǎn)C.時(shí)間片加權(quán)分配D.短作業(yè)優(yōu)先答:B22.____操作系統(tǒng)允許用戶把若干個(gè)作業(yè)提交給計(jì)算機(jī)系統(tǒng)。A.單用戶B.分布式C.批處理D.監(jiān)督答:C23.在____操作系統(tǒng)控制下,計(jì)算機(jī)系統(tǒng)能及時(shí)處理由過程控制反饋的數(shù)據(jù)并作出響應(yīng)。A.實(shí)時(shí)B.分時(shí)C.分布式D.單用戶答:A24.下面6個(gè)系統(tǒng)中,必須是實(shí)時(shí)操作系統(tǒng)的有____個(gè)。計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)航空訂票系統(tǒng)過程控制系統(tǒng)機(jī)器翻譯系統(tǒng)辦公自動(dòng)化系統(tǒng)計(jì)算機(jī)激光照排系統(tǒng)A.1B.2C.3D.4答:C25.設(shè)計(jì)實(shí)時(shí)操作系統(tǒng)時(shí),首先應(yīng)考慮系統(tǒng)的____。A.可靠性和靈活性B.實(shí)時(shí)性和可靠性C.靈活性和可靠性D.優(yōu)良性和分配性答:B26.若把操作系統(tǒng)看作計(jì)算機(jī)系統(tǒng)資源的管理者,下列不屬于操作系統(tǒng)所管理的資源是____。A.程序B.內(nèi)存C.CPUD.中斷答:D27.在下列操作系統(tǒng)的各個(gè)功能組成部分中,____不需要硬件的支持。A.進(jìn)程調(diào)度B.時(shí)鐘管理C.地址映射D.中斷系統(tǒng)答:A28.實(shí)時(shí)操作系統(tǒng)必須在____內(nèi)響應(yīng)來自外部的事件。(西安電子科技大學(xué)2000年研究生試題)A.響應(yīng)時(shí)間B.周圍時(shí)間C.規(guī)定時(shí)間D.調(diào)度時(shí)間答:C29.多道程序設(shè)計(jì)是指____。(西安電子科技大學(xué)2002年研究生試題)A.在實(shí)時(shí)系統(tǒng)中并發(fā)運(yùn)行多個(gè)程序B.在分布系統(tǒng)中同一時(shí)刻運(yùn)行多個(gè)程序C.在一臺(tái)處理機(jī)上同一時(shí)刻運(yùn)行多個(gè)程序D.在一臺(tái)處理機(jī)上并發(fā)運(yùn)行多個(gè)程序答:D?30.操作系統(tǒng)提供給程序員的接口是____。A.進(jìn)程B.系統(tǒng)調(diào)用C.庫(kù)函數(shù)D.B和C答:B31.配置了操作系統(tǒng)的計(jì)算機(jī)是一臺(tái)比原來的物理計(jì)算機(jī)功能更強(qiáng)的計(jì)算機(jī),這樣的計(jì)算機(jī)只是一臺(tái)邏輯上的計(jì)算機(jī),稱為____計(jì)算機(jī)。A.并行B.真實(shí)C.虛擬D.共享答:C32.批處理系統(tǒng)的主要缺點(diǎn)是____。(清華大學(xué)1996年研究生試題)A.CPU利用率低B.不能并發(fā)執(zhí)行C.缺少交互性D.以上都不是答:C33.操作系統(tǒng)____采用了以空間換時(shí)間的技術(shù)。A.SPOOLing技術(shù)B.覆蓋技術(shù)C.通道技術(shù)D.虛擬存儲(chǔ)技術(shù)答:A34.分時(shí)系統(tǒng)中為了使多個(gè)用戶能夠同時(shí)與系統(tǒng)交互,最關(guān)鍵的問題是____。A.計(jì)算機(jī)具有足夠快的運(yùn)算速度B.能快速進(jìn)行內(nèi)外存之間的信息交換C.系統(tǒng)能夠及時(shí)接收多個(gè)用戶的輸入D.短時(shí)間內(nèi)所有用戶程序都能運(yùn)行答:C35.實(shí)時(shí)操作系統(tǒng)對(duì)可靠性和安全性的要求極高,它____。A.十分注意系統(tǒng)資源的利用率B.不強(qiáng)調(diào)響應(yīng)速度C.不強(qiáng)求系統(tǒng)資源的利用率D.不必向用戶反饋信息答:C36.操作系統(tǒng)是一種A,在操作系統(tǒng)中采用多道程序設(shè)計(jì)方式能提高CPU和外部設(shè)備的B。一般來說,為了實(shí)現(xiàn)多道程序設(shè)計(jì),計(jì)算機(jī)需要有C。操作系統(tǒng)D已經(jīng)成為工作站上的主流操作系統(tǒng),對(duì)于使用D操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)來說E語(yǔ)言是主要的高級(jí)語(yǔ)言。A:(1)通用軟件;(2)系統(tǒng)軟件;(3)應(yīng)用軟件;(4)軟件包。B:(1)利用效率;(2)可靠性;(3)穩(wěn)定性;(4)兼容性。C:(1)更大的內(nèi)存;(2)更快的外部設(shè)備;(3)更快的CPU;(4)更先進(jìn)的終端;D:(1)VMS;(2)DOS;(3)MVS;(4)UNIX。E:(1)Pascal;(2)Ada;(3)C;(4)Fortran。答:A—(2)B—(1)C—(1)D—(4)E—(3)37.操作系統(tǒng)是一種系統(tǒng)軟件,它有許多種類,DOS屬于A操作系統(tǒng)。而B已成為工作站上主流操作系統(tǒng)。中斷一般可分成C和D。D又可分成為兩類,一類是程序中固定地址越界,數(shù)據(jù)溢出等錯(cuò)誤所引起的中斷,另一類可稱為E。供選擇的答案:A.①分時(shí)②分布式③單用戶④網(wǎng)絡(luò)B.①VMS②MVS③DOS④UNIXC,D,E.①硬件中斷②缺頁(yè)中斷③軟件中斷④自愿中斷⑤強(qiáng)迫中斷⑥停電中斷⑦I/O中斷⑧時(shí)鐘中斷?答:A—③B—④C—③D—①E—⑦38.在計(jì)算機(jī)系統(tǒng)中配置操作系統(tǒng)的主要目的是A,操作系統(tǒng)的主要功能是管理計(jì)算機(jī)系統(tǒng)中的B,其中包括C管理和D管理,以及設(shè)備管理和文件管理。這里的C管理主要是對(duì)進(jìn)程進(jìn)行管理。A:(1)增強(qiáng)計(jì)算機(jī)系統(tǒng)的功能;(2)提高系統(tǒng)資源的利用率;(3)提高系統(tǒng)的運(yùn)行速度;(4)合理地組織系統(tǒng)的工作流程,以提高系統(tǒng)吞吐量。B:(1)程序和數(shù)據(jù);(2)進(jìn)程;(3)資源;(4)作業(yè);(5)任務(wù)。C,D:(1)存儲(chǔ)器;(2)虛擬存儲(chǔ)器;(3)運(yùn)算器;(4)處理機(jī);(5)控制器。答:A—(2)B—(3)C—(4)D—(1)39.操作系統(tǒng)有多種類型:(1)允許多個(gè)用戶以交互方式使用計(jì)算機(jī)的操作系統(tǒng),稱為A;(2)允許多用戶將若干個(gè)作業(yè)提交給計(jì)算機(jī)系統(tǒng)集中處理的操作系統(tǒng)稱為B;(3)在C的控制下,計(jì)算機(jī)系統(tǒng)能及時(shí)處理由過程控制反饋的數(shù)據(jù),并做出響應(yīng);(4)在IBMPC中,操作系統(tǒng)稱為D。A,B,C,D:(1)批處理操作系統(tǒng);(2)分時(shí)操作系統(tǒng);(3)實(shí)時(shí)操作系統(tǒng);(4)微機(jī)操作系統(tǒng);(5)多處理操作系統(tǒng)。答:A—(2)B—(1)C—(3)D—(4)40.分時(shí)系統(tǒng)的響應(yīng)時(shí)間(及時(shí)性)主要是根據(jù)A確定的,而實(shí)時(shí)系統(tǒng)的響應(yīng)時(shí)間則是由B確定的。A,B:(1)時(shí)間片大??;(2)用戶數(shù)目;(3)計(jì)算機(jī)運(yùn)行速度;(4)用戶所能接受的等待時(shí)間;(5)控制對(duì)象所能接受的時(shí)延;(6)實(shí)時(shí)調(diào)度。答:A—(4)B—(5)41.分時(shí)系統(tǒng)中,為使多個(gè)用戶能夠同時(shí)與系統(tǒng)交互,最關(guān)鍵的問題是A,當(dāng)用戶數(shù)目為100時(shí),為保證響應(yīng)不超過2秒;此時(shí)的時(shí)間片最大應(yīng)為B。A:(1)計(jì)算機(jī)具有足夠的運(yùn)行速度;(2)內(nèi)存容量應(yīng)足夠大;(3)系統(tǒng)能及時(shí)地接收多個(gè)用戶輸入;(4)能在短時(shí)間內(nèi),讓所有用戶程序都能運(yùn)行;(5)能快速進(jìn)行內(nèi)外存對(duì)換。B:(1)10ms;(2)20ms;(3)50ms;(4)100ms;(5)200ms。答:A—(4)B—(2)42.在設(shè)計(jì)分時(shí)操作系統(tǒng)時(shí),首先要考慮的是A;在設(shè)計(jì)實(shí)時(shí)操作系統(tǒng)時(shí),首先要考慮的是B;在設(shè)計(jì)批處理系統(tǒng)時(shí),首先要考慮的是C。A,B,C:(1)靈活性和可適應(yīng)性;(2)交互性和響應(yīng)時(shí)間;(3)周轉(zhuǎn)時(shí)間和系統(tǒng)吞吐量;(4)實(shí)時(shí)性和可靠性。答:A—(2)B—(4)C—(3)43.從總體上說,多道程序設(shè)計(jì)技術(shù)可A單位時(shí)間的算題量,對(duì)每一個(gè)算題開始到全部完成所需要的時(shí)間可能B。A.B:(1)增加(2)減少(3)延長(zhǎng)(4)縮短答:A—(1)B—(3)44.批處理系統(tǒng)的主要缺點(diǎn)是A。A:(1)CPU的利用率不高(2)失去了交互性(3)不具備并行性(4)以上都不是答:A—(2)45.在只有一個(gè)CPU的情況下,多道程序環(huán)境下的各道程序在宏觀上是____運(yùn)行,在微觀上則是____執(zhí)行。A.并行B.串行C.資源D.作業(yè)答:A,B46.能對(duì)外部輸入的信息在規(guī)定時(shí)限內(nèi)處理完畢并作出反應(yīng)的操作系統(tǒng)稱為____。A.分時(shí)操作系統(tǒng)B.批處理操作系統(tǒng)C.實(shí)時(shí)操作系統(tǒng)D.多處理機(jī)操作系統(tǒng)答:C47.A以操作系統(tǒng)為支撐環(huán)境,也就是說,操作系統(tǒng)為A提供服務(wù)。操作系統(tǒng)緊貼B并把B改造成功能更強(qiáng)大,使用更方便的C,操作系統(tǒng)本身的活動(dòng)部分并發(fā),部分順序地執(zhí)行,并發(fā)部分稱為D,順序部分稱為E。供選擇的答案:A:(1)系統(tǒng)軟件(2)應(yīng)用軟件(3)非中斷驅(qū)動(dòng)軟件(4)中斷驅(qū)動(dòng)軟件B,C,D,E:(1)CPU(2)裸機(jī)(3)微核(4)外核(5)個(gè)人計(jì)算機(jī)(6)內(nèi)核(7)虛擬計(jì)算機(jī)(8)網(wǎng)絡(luò)計(jì)算機(jī)答:A—(2)B—(2)C—(7)D—(6)E—(4)二、填空題1.計(jì)算機(jī)系統(tǒng)是由____系統(tǒng)和____系統(tǒng)兩部分組成。答:硬件,軟件2.采用多道程序設(shè)計(jì)技術(shù)能充分發(fā)揮____與____并行工作的能力。答:CPU,外設(shè)3.操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的一種系統(tǒng)軟件,它以盡量合理、有效的方式組織和管理計(jì)算機(jī)的____,并控制程序的運(yùn)行,使整個(gè)計(jì)算機(jī)系統(tǒng)能高效地運(yùn)行。答:資源4.多道程序設(shè)計(jì)的特點(diǎn)是多道、____和____。(西安電子科技大學(xué)2001年研究生試題)答:宏觀上并行、微觀上串行5.操作系統(tǒng)向用戶提供了兩類接口,一類是____,另一類是____。(西安電子科技大學(xué)2001年研究生試題)答:命令級(jí)接口,程序級(jí)接口6.多道程序的設(shè)計(jì)是利用了____和____的并行工作能力來提高系統(tǒng)效率的。(陜西省1995年自考題)答:CPU,外設(shè)7.為了實(shí)現(xiàn)CPU與外部設(shè)備的并行工作,系統(tǒng)引入了____硬件機(jī)制。(北京大學(xué)1997年研究生試題)答:中斷8.操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的一個(gè)____,它管理和控制計(jì)算機(jī)系統(tǒng)中的____。(清華大學(xué)1999年研究生試題)答:系統(tǒng)軟件,軟件和硬件資源9.允許多個(gè)用戶以交互式使用計(jì)算機(jī)的操作系統(tǒng)稱為____。答:分時(shí)操作系統(tǒng)?10.允許多個(gè)用戶將多個(gè)作業(yè)提交給計(jì)算機(jī)集中處理的操作系統(tǒng)稱為___。答:批處理操作系統(tǒng)11.計(jì)算機(jī)系統(tǒng)能及時(shí)處理過程控制數(shù)據(jù)并做出響應(yīng)的操作系統(tǒng)稱為___。答:實(shí)時(shí)操作系統(tǒng)12.對(duì)操作系統(tǒng)的總體設(shè)計(jì)目標(biāo)來說,批處理操作系統(tǒng)應(yīng)注重提高計(jì)算機(jī)的效率,盡量增加系統(tǒng)的____,分時(shí)操作系統(tǒng)應(yīng)保證用戶____;而實(shí)時(shí)操作系統(tǒng)則應(yīng)在保證及時(shí)響應(yīng)和處理有關(guān)事件的前提下,再考慮____。答:平均吞吐量,所能忍受的響應(yīng)時(shí)間,系統(tǒng)資源的利用率13.在一個(gè)具有分時(shí)兼批處理的計(jì)算機(jī)操作系統(tǒng)中,如果有終端作業(yè)和批處理作業(yè)混合同時(shí)執(zhí)行,則____作業(yè)應(yīng)優(yōu)先占用處理機(jī)。答:終端型14.為了實(shí)現(xiàn)多道程序設(shè)計(jì),計(jì)算機(jī)系統(tǒng)在硬件方面必須提供兩種支持,它們是____和____。答:中斷,通道15.批處理系統(tǒng)的基本特征是“批量”,它把提高作業(yè)的____作為主要設(shè)計(jì)目標(biāo),同時(shí)也兼顧作業(yè)的____。答:吞吐量,周轉(zhuǎn)時(shí)間16.單道批處理系統(tǒng)是在解決____和____的矛盾中發(fā)展起來的。答:人機(jī)矛盾,CPU和I/O設(shè)備之間速度不匹配17.操作系統(tǒng)的基本功能包括①管理、②管理、③管理、④管理。除此之外還為用戶使用操作系統(tǒng)提供了用戶接口。答:①處理機(jī)②存儲(chǔ)器③設(shè)備④文件18.如果一個(gè)操作系統(tǒng)兼有批處理、分時(shí)處理和實(shí)時(shí)處理操作系統(tǒng)三者或其中兩者的功能,這樣的操作系統(tǒng)稱為___。答:通用操作系統(tǒng)19.在分時(shí)和批處理系統(tǒng)結(jié)合的操作系統(tǒng)中引入了“前臺(tái)”和“后臺(tái)”作業(yè)的概念,其目的是____。答:為了提高CPU的利用率20.分時(shí)操作系統(tǒng)的主要特征有三個(gè),即①、②和③。答:①多路性②交互性③獨(dú)占性21.實(shí)時(shí)操作系統(tǒng)與分時(shí)操作系統(tǒng)的主要區(qū)別是___。答:及時(shí)性和高可靠性22.如果操作系統(tǒng)具有很強(qiáng)的交互性,可同時(shí)供多個(gè)用戶使用,但時(shí)間響應(yīng)不太及時(shí)。則屬于①類型;如果操作系統(tǒng)可靠,時(shí)間響應(yīng)及時(shí)但僅有簡(jiǎn)單的交互能力,則屬于②類型;如果操作系統(tǒng)在用戶提交作業(yè)后,不提供交互能力,它所追求的是計(jì)算機(jī)資源的高利用率,大吞吐量和作業(yè)流程的自動(dòng)化,則屬于③類型。答:①分時(shí)操作系統(tǒng)②實(shí)時(shí)操作系統(tǒng)③批處理操作系統(tǒng)23.在主機(jī)控制下進(jìn)行的輸入/輸出操作稱為____操作。答:聯(lián)機(jī)輸入/輸出24.按內(nèi)存中同時(shí)運(yùn)行程序的數(shù)目可以將批處理系統(tǒng)分為兩類:①和②。?答:①單道批處理系統(tǒng)②多道批處理系統(tǒng)25.并發(fā)和____是操作系統(tǒng)的兩個(gè)最基本的特征,兩者之間互為存在條件。答:共享26.____系統(tǒng)不允許用戶隨時(shí)干預(yù)自己程序的運(yùn)行。答:批處理27.操作系統(tǒng)的主要性能參數(shù)有①和②等。①指的是單位時(shí)間內(nèi)系統(tǒng)處理的作業(yè)量。②指的是在一個(gè)給定時(shí)間內(nèi),系統(tǒng)的一個(gè)指定成分被使用的時(shí)間比例。答:①吞吐率②利用率三、判斷題1.采用多道程序設(shè)計(jì)的系統(tǒng)中,系統(tǒng)的程序道數(shù)越多,系統(tǒng)的效率越高。(西安電子科技大學(xué)2001年研究生試題)()答:錯(cuò)誤2.操作系統(tǒng)的設(shè)計(jì)必須要保證進(jìn)程具有可再現(xiàn)性。(電子科技大學(xué)1996年研究生試題)()答:正確3.應(yīng)用軟件是加在裸機(jī)上的第一層軟件。()答:錯(cuò)誤4.多道程序設(shè)計(jì)是利用了CPU和通道并行工作來提高系統(tǒng)利用率的。(陜西省1998年自考題)()答:正確5.操作系統(tǒng)特征之一的“不確定性”是指程序運(yùn)行的結(jié)果是不確定的。()答:錯(cuò)誤6.多道程序設(shè)計(jì)可以縮短系統(tǒng)中作業(yè)的執(zhí)行時(shí)間。(陜西省1998年自考題)()答:錯(cuò)誤7.分時(shí)系統(tǒng)和多道程序設(shè)計(jì)技術(shù)的出現(xiàn),標(biāo)志著現(xiàn)代操作系統(tǒng)的正式形成。(陜西省1998年自考題)()答:正確8.從響應(yīng)的角度看,分時(shí)系統(tǒng)與實(shí)時(shí)系統(tǒng)的要求相似。()答:錯(cuò)誤9.使計(jì)算機(jī)系統(tǒng)能夠被方便地使用和高效地工作是操作系統(tǒng)的兩個(gè)主要設(shè)計(jì)目標(biāo)。()答:正確10.分時(shí)操作系統(tǒng)首先要考慮的問題是交互性和響應(yīng)時(shí)間。()答:正確11.時(shí)間片輪轉(zhuǎn)法一般用于分時(shí)系統(tǒng)(西安理工大學(xué)2001年研究生考試試題)()答:正確12.實(shí)時(shí)系統(tǒng)的交互性允許用戶訪問專用的服務(wù)程序()答:錯(cuò)誤13.把進(jìn)行資源管理和控制程序執(zhí)行的功能集中組成一種軟件稱之為操作系統(tǒng)()答:正確14.分時(shí)操作系統(tǒng)中,時(shí)間片越小越好()?答:錯(cuò)誤15.程序中斷是不可屏蔽中斷。()答:錯(cuò)誤16.聯(lián)機(jī)用戶接口是指用戶與操作系統(tǒng)之間的接口,它不是命令接口。()答:錯(cuò)誤17.批處理系統(tǒng)不允許用戶隨時(shí)干預(yù)自己程序的運(yùn)行。()答:正確18.實(shí)時(shí)系統(tǒng)中的實(shí)時(shí)控制系統(tǒng)只能用于生產(chǎn)過程的自動(dòng)控制,不能用于監(jiān)測(cè)制導(dǎo)性控制。()答:錯(cuò)誤19.操作系統(tǒng)的功能要點(diǎn)是系統(tǒng)資源管理和提供用戶界面。()答:正確20.在實(shí)時(shí)系統(tǒng)中,用戶進(jìn)程的優(yōu)先級(jí)可以高于系統(tǒng)進(jìn)程的優(yōu)先級(jí)。()答:正確21.對(duì)批處理作業(yè),運(yùn)行時(shí)不須提供相應(yīng)的作業(yè)控制信息。()答:錯(cuò)誤22.用零作除數(shù)將產(chǎn)生異常。()答:正確23.?dāng)帱c(diǎn)與恢復(fù)點(diǎn)是一致的。()答:錯(cuò)誤24.管態(tài)下能執(zhí)行所有指令。()答:正確25.資源共享是現(xiàn)代操作系統(tǒng)的一個(gè)基本特征()答:正確26.用戶在程序中可以直接使用系統(tǒng)調(diào)用。()答:正確四、簡(jiǎn)答題1.什么是操作系統(tǒng)?它有什么基本特征?答:操作系統(tǒng)是指控制和管理計(jì)算機(jī)的軟、硬件資源,合理組織計(jì)算機(jī)的工作流程,方便用戶使用的程序集合。操作系統(tǒng)具有4個(gè)基本特征。(1)并發(fā)性。指宏觀上在一段時(shí)間內(nèi)有多道程序在同時(shí)運(yùn)行,而微觀上這些程序是在交替執(zhí)行。(2)共享性。因程序的并發(fā)無(wú)規(guī)律,使系統(tǒng)中的軟、硬件資源不再為某個(gè)程序獨(dú)占,而是由多個(gè)程序共同使用。(3)虛擬性。多道程序設(shè)計(jì)技術(shù)把一臺(tái)物理計(jì)算機(jī)虛擬為多臺(tái)邏輯上的計(jì)算機(jī),使得每個(gè)用戶都感覺是“獨(dú)占”計(jì)算機(jī)。(4)不確定性。多道程序系統(tǒng)中,各程序之間存在著直接或間接的聯(lián)系,程序的推進(jìn)速度受到其他程序的影響。這樣,程序運(yùn)行的順序,程序完成的時(shí)間以及程序運(yùn)行的結(jié)果都是不確定的。?2.什么是多道程序設(shè)計(jì)技術(shù)?多道程序設(shè)計(jì)的優(yōu)點(diǎn)是什么?為什么說直到出現(xiàn)中斷和通道技術(shù)后,多道程序概念才變?yōu)橛杏玫模看穑憾嗟莱绦蛟O(shè)計(jì)技術(shù)是指同時(shí)把多個(gè)作業(yè)(程序)放入內(nèi)存并允許它們交替執(zhí)行和共享系統(tǒng)中的各類資源;當(dāng)一道程序因某種原因(如I/O請(qǐng)求)而暫停執(zhí)行時(shí),CPU立即轉(zhuǎn)去執(zhí)行另一道程序。操作系統(tǒng)在引入多道程序設(shè)計(jì)技術(shù)后,使得系統(tǒng)具有了多道,宏觀上并行,微觀上串行的特點(diǎn)。采用多道程序設(shè)計(jì)減少了CPU時(shí)間的浪費(fèi),增加了系統(tǒng)吞吐量,提高了系統(tǒng)的效率。多道程序并發(fā)執(zhí)行是指有的程序正在CPU上執(zhí)行,而另一些程序正在I/O設(shè)備上進(jìn)行傳輸,即通過CPU操作與外設(shè)傳輸在時(shí)間上的重疊減少CPU時(shí)間的浪費(fèi),并提高了系統(tǒng)的效率。實(shí)現(xiàn)CPU操作與外設(shè)傳輸在時(shí)間上的重疊必須有中斷和通道技術(shù)支持,其原因如下:(1)通道是一種控制一臺(tái)或多臺(tái)外部設(shè)備的硬件機(jī)構(gòu),它一旦被啟動(dòng)就獨(dú)立于CPU運(yùn)行,因而做到了輸入輸出操作與CPU并行工作。但早期CPU與通道的聯(lián)絡(luò)方法是由CPU向通道發(fā)出詢問指令來了解通道工作是否完成。若未完成,則主機(jī)就循環(huán)詢問直到通道工作結(jié)束為止。因此,這種詢問方式是無(wú)法真正做到CPU與I/O設(shè)備并行工作的。(2)在硬件上引入了中斷技術(shù)。所謂中斷,就是在輸入輸出結(jié)束時(shí),或硬件發(fā)生某種故障時(shí),由相應(yīng)硬件(即中斷機(jī)構(gòu))向CPU發(fā)出信號(hào)。這時(shí)CPU立即停下手頭的工作而轉(zhuǎn)向處理中斷請(qǐng)求,待處理完中斷后再繼續(xù)原來手頭的工作。因此,通道技術(shù)和中斷技術(shù)結(jié)合起來就可實(shí)現(xiàn)CPU與I/O設(shè)備并行工作,即CPU啟動(dòng)通道傳輸數(shù)據(jù)后便去執(zhí)行其他程序的計(jì)算工作,而通道則進(jìn)行輸入輸出操作;當(dāng)通道工作結(jié)束時(shí),再通過中斷機(jī)構(gòu)向CPU發(fā)出中斷請(qǐng)求,CPU則暫停正在執(zhí)行的操作,對(duì)出現(xiàn)的中斷進(jìn)行處理,處理完后則繼續(xù)原來的工作。這樣,就真正做到了CPU與I/O設(shè)備并行工作。此時(shí),多道程序的概念才變?yōu)楝F(xiàn)實(shí)。3.操作系統(tǒng)是隨著多道程序設(shè)計(jì)技術(shù)的出現(xiàn)逐步發(fā)展起來的,要保證多道程序的正常運(yùn)行,在技術(shù)上需要解決哪些基本問題?(北方交通大學(xué)1999年研究生試題)答:要保證正常運(yùn)行,在技術(shù)上需要解決的問題如下:(1)在多道程序之間應(yīng)如何分配被它們共享的處理機(jī),使得CPU既能滿足各程序運(yùn)行的需要,又有較高的利用率。此外,一旦將CPU分配給某程序后,應(yīng)何時(shí)收回。(2)如何為每道程序分配必要的內(nèi)存空間,使它們各得其所,但又不會(huì)因相互重疊而丟失信息。此外,應(yīng)如何防止因某道程序出現(xiàn)異常情況而破壞其他程序。(3)系統(tǒng)中可能有多種類型的I/O設(shè)備供多道程序共享,應(yīng)如何分配這些I/O設(shè)備,如何做到既方便用戶對(duì)設(shè)備的使用,又能提高設(shè)備的利用率。(4)在現(xiàn)代計(jì)算機(jī)系統(tǒng)中通常都存放著大量的程序和數(shù)據(jù),應(yīng)如何組織它們才便于用戶使用。此外,還有信息保存的安全性和一致性問題。(5)對(duì)于系統(tǒng)中的各種應(yīng)用程序,它們有的屬于計(jì)算型,有的屬于I/O型,有些既重要又緊迫,有些又要求系統(tǒng)能及時(shí)響應(yīng),這時(shí)系統(tǒng)應(yīng)如何組織和安排這些作業(yè)(程序)的工作流程。4.批處理、分時(shí)和實(shí)時(shí)操作系統(tǒng)各有什么特點(diǎn)?(武漢大學(xué)1997年研究生試題)答:批處理、分時(shí)和實(shí)時(shí)操作系統(tǒng)的各自特點(diǎn)如下。(1)批處理系統(tǒng)。操作人員將作業(yè)成批裝入計(jì)算機(jī)并由計(jì)算機(jī)管理運(yùn)行,在程序的運(yùn)行期間用戶不能干預(yù),因此批處理系統(tǒng)的特點(diǎn)是:用戶脫機(jī)使用計(jì)算機(jī),作業(yè)成批處理,系統(tǒng)內(nèi)多道程序并發(fā)執(zhí)行以及交互能力差。(2)分時(shí)系統(tǒng)。不同用戶通過各自的終端以交互方式共用一臺(tái)計(jì)算機(jī),計(jì)算機(jī)以“分時(shí)”的方法輪流為每個(gè)用戶服務(wù)。分時(shí)系統(tǒng)的主要特點(diǎn)是:多個(gè)用戶同時(shí)使用計(jì)算機(jī)的同時(shí)性,人機(jī)問答的交互性,每個(gè)用戶獨(dú)立使用計(jì)算機(jī)的獨(dú)占性,以及系統(tǒng)響應(yīng)的及時(shí)性。(3)實(shí)時(shí)系統(tǒng)。實(shí)時(shí)監(jiān)控控制對(duì)象并能做出及時(shí)反應(yīng)。實(shí)時(shí)系統(tǒng)的特點(diǎn)為:可靠性高、響應(yīng)及時(shí)但資源利用率低。5.分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)有什么區(qū)別?設(shè)計(jì)適用實(shí)時(shí)環(huán)境的操作系統(tǒng)的主要困難是什么?(西北工業(yè)大學(xué)2000年研究生試題)答:分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)的主要區(qū)別如下:(1)系統(tǒng)的設(shè)計(jì)目標(biāo)不同。分時(shí)系統(tǒng)的設(shè)計(jì)目標(biāo)是提供一種隨時(shí)可供多個(gè)用戶使用的通用性很強(qiáng)的系統(tǒng),而實(shí)時(shí)系統(tǒng)則大多數(shù)都具有某種特殊用途,是一種專用系統(tǒng)。(2)交互性強(qiáng)弱不同。分時(shí)系統(tǒng)的交互性強(qiáng)而實(shí)時(shí)系統(tǒng)的交互性弱。(3)響應(yīng)時(shí)間長(zhǎng)短不同。分時(shí)系統(tǒng)的響應(yīng)時(shí)間以人能夠接受的時(shí)間為準(zhǔn),通常為秒級(jí);而實(shí)時(shí)系統(tǒng)的響應(yīng)時(shí)間則因受控對(duì)象而異,變化范圍較大。設(shè)計(jì)適用于實(shí)時(shí)環(huán)境的操作系統(tǒng)的主要困難是:在實(shí)時(shí)環(huán)境規(guī)定的時(shí)間限額內(nèi)對(duì)用戶作出相應(yīng)的反應(yīng)。如果系統(tǒng)不能在規(guī)定的時(shí)間限額內(nèi)完成指定的任務(wù),那么就可能導(dǎo)致整個(gè)實(shí)時(shí)系統(tǒng)的崩潰。因此,在設(shè)計(jì)這類操作系統(tǒng)時(shí),設(shè)計(jì)者必須保證所采用的調(diào)度策略及相關(guān)技術(shù)不會(huì)使響應(yīng)時(shí)間超過實(shí)時(shí)環(huán)境所規(guī)定的時(shí)間限額。6.分時(shí)操作系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁??答:如果說批處理系統(tǒng)形成和發(fā)展的主要推動(dòng)力是不斷提高系統(tǒng)資源利用率和提高系統(tǒng)吞吐量,那么,分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿t是為了更好地滿足用戶需要,表現(xiàn)為如下幾個(gè)方面。(1)縮短了作業(yè)周轉(zhuǎn)時(shí)間。在批處理系統(tǒng)中,用戶將作業(yè)提交給系統(tǒng),需要等一批作業(yè)都運(yùn)行完成后才能得到結(jié)果,這對(duì)那些執(zhí)行時(shí)間很短的小作業(yè)用戶來說是不愿接受的。分時(shí)系統(tǒng)則是分時(shí)為每個(gè)終端用戶服務(wù),當(dāng)一個(gè)程序運(yùn)行結(jié)束時(shí),用戶立即可獲得結(jié)果而無(wú)須等到所有用戶程序都運(yùn)行結(jié)束。(2)提供了人機(jī)交互能力。在批處理系統(tǒng)中,用戶一旦把作業(yè)提交給系統(tǒng)就放棄了對(duì)作業(yè)的控制能力。并且為了使系統(tǒng)能夠運(yùn)行作業(yè),用戶還需編寫作業(yè)說明書,并在作業(yè)說明書中給出作業(yè)運(yùn)行中可能出現(xiàn)的各種情況的處理方法,這無(wú)疑增加了用戶的難度。因此,用戶迫切需要能夠做到邊運(yùn)行、邊調(diào)試,以便可以隨時(shí)針對(duì)所出現(xiàn)的問題采取適當(dāng)?shù)慕鉀Q辦法,亦即用戶希望系統(tǒng)提供良好的人機(jī)交互界面。(3)獨(dú)立地使用計(jì)算機(jī)。各用戶都希望自己能夠獨(dú)立地使用計(jì)算機(jī)而不受其他用戶的干擾。7.如何理解操作系統(tǒng)的不確定性?答:在單道程序環(huán)境下,由于程序獨(dú)占全機(jī)軟、硬件資源,且完全在一個(gè)封閉環(huán)境下運(yùn)行,所以,如果使用相同的輸入,則多次運(yùn)行的結(jié)果必然相同。引入多道程序技術(shù)后,由多道程序共享全機(jī)軟、硬件資源,即各程序之間存在著直接或間接的聯(lián)系。此時(shí)程序的運(yùn)行就不是在一個(gè)封閉的環(huán)境下,要受到其他程序和系統(tǒng)資源的影響。這會(huì)引起程序運(yùn)行的結(jié)果、程序運(yùn)行的順序和完成的時(shí)間不確定。此外,在多道程序環(huán)境下,外部設(shè)備的中斷、輸入輸出的請(qǐng)求等出現(xiàn)的時(shí)間都不確定。這些不確定因素給操作系統(tǒng)設(shè)計(jì)帶來了很大的復(fù)雜性。對(duì)于程序執(zhí)行結(jié)果的不確定是絕不允許的,這是操作系統(tǒng)必須解決的主要問題;而程序運(yùn)行順序及完成時(shí)間的不確定是多道程序環(huán)境所決定的。因此,操作系統(tǒng)應(yīng)能對(duì)運(yùn)行順序進(jìn)行協(xié)調(diào)和管理。至于外部設(shè)備的中斷、輸入輸出請(qǐng)求甚至程序運(yùn)行故障等不確定性,操作系統(tǒng)應(yīng)在出現(xiàn)的時(shí)刻及時(shí)響應(yīng)并予以解決。如果操作系統(tǒng)的設(shè)計(jì)考慮不周,也可能造成系統(tǒng)的混亂和崩潰。8.在用戶與操作系統(tǒng)之間存在哪幾種類型的接口?它們的主要功能是什么?(哈爾濱工業(yè)大學(xué)2000年研究生試題)答:用戶與操作系統(tǒng)之間的接口主要有系統(tǒng)調(diào)用、鍵盤命令和作業(yè)控制命令。系統(tǒng)調(diào)用可直接寫在用戶程序中,它是為了方便地使用系統(tǒng)資源而提供的系統(tǒng)調(diào)用命令。鍵盤命令用于聯(lián)機(jī)交互環(huán)境,用戶從鍵盤上調(diào)入命令后操作系統(tǒng)解釋并執(zhí)行這個(gè)命令。作業(yè)控制命令則用于脫機(jī)批處理環(huán)境下的作業(yè)說明書中,用戶用這些命令編寫作業(yè)說明書,以告訴系統(tǒng)對(duì)作業(yè)的控制意圖和處理方式。9.下列哪些指令必須是特權(quán)指令(也即只能在核心模式下運(yùn)行)?A.改變存儲(chǔ)器管理的寄存器B.寫程序指針C.讀取日期時(shí)鐘D.設(shè)置日期時(shí)鐘E.改變處理器的優(yōu)先級(jí)答:A.是的B.是C.不是D.是的E.是的10.下列哪些指令必須是特權(quán)指令(也即只能在核心模式下運(yùn)行)?A.設(shè)置核心模式B.系統(tǒng)重啟動(dòng)C.讀取程序狀態(tài)字D.關(guān)閉中斷E.寫指令寄存器答:A.是的B.是的C.是D.是的E.是11.操作系統(tǒng)的三個(gè)主要用途是什么?答:(1)以方便和有效的方式,為計(jì)算機(jī)用戶在計(jì)算機(jī)硬件上執(zhí)行程序提供環(huán)境。(2)為解決特定的任務(wù),分配不同的計(jì)算機(jī)資源。分配進(jìn)程應(yīng)該盡可能公正和有效。(3)作為控制程序,提供兩個(gè)主要功能:①為防止出錯(cuò)和誤操作,監(jiān)控用戶程序的執(zhí)行;②管理和控制各種I/O設(shè)備。12.系統(tǒng)調(diào)用的作用是什么?答:通過系統(tǒng)調(diào)用,使用戶進(jìn)程可以訪問操作系統(tǒng)提供的服務(wù)。13.一個(gè)分層結(jié)構(gòu)操作系統(tǒng)由裸機(jī),用戶,CPU調(diào)度和進(jìn)程同步操作,文件管理,作業(yè)管理,內(nèi)存管理,設(shè)備管理,命令管理等部分組成。試按層次結(jié)構(gòu)的原則從內(nèi)到外將各部分重新排列。(中科院計(jì)算所1997年研究生試題)答:按層次結(jié)構(gòu)的原則從內(nèi)到外依次為:裸機(jī),CPU調(diào)度,進(jìn)程同步操作,內(nèi)存管理,作業(yè)管理,設(shè)備管理,文件管理,命令管理和用戶。14.對(duì)于一個(gè)正確運(yùn)轉(zhuǎn)的計(jì)算機(jī)系統(tǒng),保護(hù)操作系統(tǒng)是很重要的。但為了向用戶提供更大的靈活性,應(yīng)盡可能少地對(duì)用戶加以限制。下面列出的各操作通常是加以保護(hù)的。試問至少有哪幾條指令需加以保護(hù)?(北京理工大學(xué)1996年研究生試題)(1)改變成用戶方式;(2)改變成系統(tǒng)方式;(3)從存放操作系統(tǒng)的存儲(chǔ)區(qū)上讀取數(shù)據(jù);(4)將數(shù)據(jù)寫到存放操作系統(tǒng)的存儲(chǔ)區(qū)上;?(5)從存儲(chǔ)操作系統(tǒng)的存儲(chǔ)區(qū)取指令;(6)打開計(jì)時(shí)器(7)關(guān)閉計(jì)時(shí)器。答:至少第(2)(4)操作應(yīng)加以保護(hù)。因?yàn)檫@兩條操作是對(duì)操作系統(tǒng)本身的內(nèi)容進(jìn)行修改,如果交由用戶任意操作就會(huì)對(duì)操作系統(tǒng)造成破壞并最終導(dǎo)致系統(tǒng)運(yùn)行出錯(cuò)或系統(tǒng)崩潰,所以應(yīng)在任何情況下都加以保護(hù)。其他幾種操作在一般情況下也應(yīng)加以保護(hù),但不會(huì)出現(xiàn)像上述兩種操作那樣的破壞性,而本題是針對(duì)最少保護(hù)而言的,故不做選擇。15.試從獨(dú)立性、同時(shí)性、交互性和及時(shí)性等4個(gè)方面來比較批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)的性能。答:分析比較見表1.1所示。表1.1批處理、分時(shí)與實(shí)時(shí)三種系統(tǒng)的比較16.從宏觀結(jié)構(gòu)上看,操作系統(tǒng)有哪幾種結(jié)構(gòu)設(shè)計(jì)方法?你認(rèn)為哪幾種方法較好?為什么?(武漢大學(xué)1999年研究生試題)答:從操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì)觀點(diǎn)來看,早期的操作系統(tǒng)主要是單(處理)機(jī)操作系統(tǒng),在結(jié)構(gòu)設(shè)計(jì)方法上主要采用了以下兩種模式。(1)整體結(jié)構(gòu)設(shè)計(jì)模式。把操作系統(tǒng)組織成一個(gè)過程模塊集合,其中的任何一個(gè)過程都可以調(diào)用其他過程。這種整體式結(jié)構(gòu)的特點(diǎn)不強(qiáng)調(diào)信息的隱蔽,即每個(gè)過程對(duì)其他過程都是可見的,過程之間調(diào)用不受任何拘束。但整體結(jié)構(gòu)的系統(tǒng)擴(kuò)充起來較為困難,因?yàn)樾薷囊粋€(gè)過程可能導(dǎo)致系統(tǒng)中其他若干過程的修改,而且一個(gè)過程中的錯(cuò)誤可能會(huì)株連到其他過程的正確運(yùn)行,即操作系統(tǒng)的正確性難以保證。(2)層次式結(jié)構(gòu)設(shè)計(jì)模式。層次式方法把操作系統(tǒng)劃分為若干層,每一層有若干模塊,每個(gè)模塊提供一組可被其他模塊調(diào)用的功能;并且,在任一特定層次上的代碼只能調(diào)用較低層次上的代碼。按此種模式構(gòu)造的第一個(gè)操作系統(tǒng)是Dijkstra開發(fā)的THE系統(tǒng)(1968年)。層次式結(jié)構(gòu)設(shè)計(jì)的優(yōu)點(diǎn)是把模塊間的復(fù)雜依賴關(guān)系轉(zhuǎn)化為單向依賴關(guān)系,即高層軟件依賴低層軟件,而低層軟件不依賴高層軟件。這樣,在設(shè)計(jì)低層軟件時(shí),可不考慮高層軟件的實(shí)現(xiàn)方法,且高層軟件的錯(cuò)誤也不會(huì)影響到低層軟件。這種單向方法給維護(hù)和調(diào)試操作系統(tǒng)的工作帶來了方便。傳統(tǒng)的整體式、層次式結(jié)構(gòu)設(shè)計(jì)法對(duì)單處理機(jī)的操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì)是卓有成效的,但對(duì)多計(jì)算機(jī)系統(tǒng)(如網(wǎng)絡(luò)系統(tǒng)、分布式系統(tǒng)及多處理機(jī)系統(tǒng))而言則有較大缺陷,不能滿足需要。多計(jì)算機(jī)系統(tǒng)中操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的主要模式有以下幾種。(3)客戶/服務(wù)器模式。把操作系統(tǒng)劃分為若干個(gè)進(jìn)程,且每個(gè)進(jìn)程實(shí)現(xiàn)單獨(dú)的一套服務(wù)功能。采用客戶/服務(wù)器模式構(gòu)造的操作系統(tǒng),其組成部件小而自成一個(gè)獨(dú)立的子系統(tǒng)。由于每個(gè)服務(wù)器是以獨(dú)立的用戶態(tài)進(jìn)程方式進(jìn)行的,因而單個(gè)服務(wù)器的故障不會(huì)引起操作系統(tǒng)其他部分的崩潰。這種模式的優(yōu)點(diǎn)是簡(jiǎn)化了基本操作系統(tǒng),提高了可靠性并適合于分布式計(jì)算環(huán)境。(4)對(duì)象模式。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法就是把系統(tǒng)中所有的資源,如進(jìn)程、文件、內(nèi)存,將此封裝看成是一個(gè)實(shí)體。從程序設(shè)計(jì)者來看,對(duì)象是一個(gè)程序模塊;從用戶來看,對(duì)象為他們提供了所希望的操作。采用面向?qū)ο蟮姆椒?,程序員可以依照自己的意圖去構(gòu)造自己的對(duì)象并將問題映射到對(duì)象上。這種方法直觀而又自然,程序員可以把主要精力放在系統(tǒng)級(jí)上,而對(duì)實(shí)現(xiàn)的細(xì)節(jié)不必過多關(guān)心。如WindowsNT操作系統(tǒng)廣泛使用了對(duì)象來表示共享的系統(tǒng),但WindowsNT只能算是一個(gè)基于對(duì)象的系統(tǒng)。(5)對(duì)稱多處理模式。如果一個(gè)操作系統(tǒng)在系統(tǒng)中的所有處理機(jī)上運(yùn)行且共享同一內(nèi)存,這樣的系統(tǒng)就是一個(gè)對(duì)稱多處理系統(tǒng)。采用對(duì)稱多處理模式構(gòu)造的操作系統(tǒng)最適合于共享存儲(chǔ)器結(jié)構(gòu)的多處理機(jī)系統(tǒng),即緊耦合的多處理機(jī)系統(tǒng)。綜上所述,各種模式都是針對(duì)不同操作系統(tǒng)的,因此,只有在確定了操作系統(tǒng)的類型后才能決定不同方法的好壞。17.什么是分布式操作系統(tǒng)?它與網(wǎng)絡(luò)操作系統(tǒng)有何不同?試說明分布式操作系統(tǒng)或網(wǎng)絡(luò)操作系統(tǒng)在傳統(tǒng)的操作系統(tǒng)管理模式上需要哪些改進(jìn)。(西北大學(xué)2000年研究生試題)答:分布式操作系統(tǒng)是以實(shí)現(xiàn)并行任務(wù)分配,并行進(jìn)程通信,分布控制機(jī)構(gòu),以及實(shí)現(xiàn)分散資源管理等功能為目的的系統(tǒng)程序。網(wǎng)絡(luò)操作系統(tǒng)是以資源共享和信息交換為目的的操作系統(tǒng)。分布式系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)都是多機(jī)系統(tǒng)的支撐軟件,都基于I/O或網(wǎng)絡(luò)互聯(lián),但在很多情況下,網(wǎng)絡(luò)操作系統(tǒng)是在本機(jī)局部操作系統(tǒng)之上建立的,形成了兩個(gè)層次;而分布式操作系統(tǒng)則是以計(jì)算機(jī)網(wǎng)絡(luò)為基礎(chǔ)所構(gòu)成的一個(gè)獨(dú)立的整體,它對(duì)用戶來說是透明的。分布式操作系統(tǒng)或網(wǎng)絡(luò)操作系統(tǒng)除了具有傳統(tǒng)操作系統(tǒng)所應(yīng)有的處理機(jī)管理、存儲(chǔ)管理、設(shè)備管理和文件管理功能外,還應(yīng)提供以下功能:(1)實(shí)現(xiàn)網(wǎng)絡(luò)中各節(jié)點(diǎn)機(jī)之間的通信;(2)實(shí)現(xiàn)網(wǎng)絡(luò)中硬、軟件資源的共享;(3)提供多種網(wǎng)絡(luò)服務(wù)軟件;(4)提供網(wǎng)絡(luò)用戶的應(yīng)用程序接口。對(duì)分布式系統(tǒng)來說,除了具有網(wǎng)絡(luò)操作系統(tǒng)的功能外,還因各節(jié)點(diǎn)機(jī)不存在主從或?qū)哟侮P(guān)系,因而增加了控制機(jī)構(gòu)的復(fù)雜性。首先,由于各節(jié)點(diǎn)的自治性,它們之間發(fā)生沖突的概率要高得多,使同步問題變得復(fù)雜,死鎖的問題也難以處理。其次,由于系統(tǒng)透明性的要求,使得系統(tǒng)故障的檢測(cè)和用戶操作的檢查都變得更加困難。18.試對(duì)分時(shí)操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)進(jìn)行比較。答:我們可以從以下幾個(gè)方面對(duì)這兩種操作系統(tǒng)進(jìn)行比較:A.實(shí)時(shí)操作系統(tǒng)與分時(shí)操作系統(tǒng)一樣都能為多個(gè)用戶服務(wù)。系統(tǒng)按分時(shí)原則為多個(gè)終端用戶服務(wù);而對(duì)實(shí)時(shí)控制系統(tǒng)(屬于實(shí)時(shí)操作系統(tǒng)范疇),則表現(xiàn)為經(jīng)常對(duì)多路現(xiàn)場(chǎng)信息進(jìn)行采集以及對(duì)多個(gè)對(duì)象或多個(gè)執(zhí)行機(jī)構(gòu)進(jìn)行控制。B.實(shí)時(shí)操作系統(tǒng)與分時(shí)操作系統(tǒng)一樣,每個(gè)用戶各占一個(gè)終端,彼此獨(dú)立操作,互不干擾。因此用戶感覺就像他一人獨(dú)占計(jì)算機(jī);而在實(shí)時(shí)控制系統(tǒng)中信息的采集和對(duì)象的控制也都是彼此互不干擾的。?C.實(shí)時(shí)操作系統(tǒng)對(duì)響應(yīng)時(shí)間的要求與分時(shí)操作系統(tǒng)類似,都是以人所能接受的等待時(shí)間來確定的;而實(shí)時(shí)控制系統(tǒng)的響應(yīng)時(shí)間則是以控制對(duì)象所能接受的延時(shí)來確定的。D.分時(shí)操作系統(tǒng)是一種通用系統(tǒng),主要用于運(yùn)行終端用戶程序,因此它具有較強(qiáng)的交互能力。而實(shí)時(shí)操作系統(tǒng)雖然也有交互能力,但其交互能力不及前者。E.分時(shí)操作系統(tǒng)要求系統(tǒng)可靠,相比之下,實(shí)時(shí)操作系統(tǒng)則要求系統(tǒng)高度可靠。第2章進(jìn)程管理2.1概述進(jìn)程可以被簡(jiǎn)單地理解為一個(gè)正在執(zhí)行中的程序。為了完成任務(wù),進(jìn)程需要一些資源,比如使用CPU時(shí)間、存儲(chǔ)器、文件以及I/O設(shè)備。這些資源可以在進(jìn)程創(chuàng)建時(shí)或者運(yùn)行的時(shí)候分配給它。在大部分系統(tǒng)中,進(jìn)程是工作的單元。這種系統(tǒng)由一組進(jìn)程組成:執(zhí)行系統(tǒng)代碼的操作系統(tǒng)進(jìn)程,執(zhí)行用戶代碼的用戶進(jìn)程。所有這些進(jìn)程都會(huì)同時(shí)執(zhí)行。盡管傳統(tǒng)上一個(gè)進(jìn)程在運(yùn)行時(shí)只有一個(gè)控制線程,但大部分的現(xiàn)代操作系統(tǒng)都支持多線程的進(jìn)程。操作系統(tǒng)在管理進(jìn)程與線程的過程中需要負(fù)責(zé)以下工作:用戶和系統(tǒng)進(jìn)程的創(chuàng)建和刪除;進(jìn)程的調(diào)度;為進(jìn)程的同步、通信、死鎖處理提供機(jī)制。2.2進(jìn)程概念進(jìn)程是執(zhí)行中的程序。隨著進(jìn)程的執(zhí)行,它改變狀態(tài)。進(jìn)程狀態(tài)由進(jìn)程當(dāng)前活動(dòng)所定義。每個(gè)進(jìn)程可處于如下狀態(tài):創(chuàng)建、就緒、運(yùn)行、等待或終止。每個(gè)進(jìn)程在操作系統(tǒng)內(nèi)通過自己的PCB(ProcessControlBlock,進(jìn)程控制塊)來表示。當(dāng)前不在執(zhí)行的進(jìn)程會(huì)放在某個(gè)等待隊(duì)列中。操作系統(tǒng)的兩個(gè)主要隊(duì)列是I/O請(qǐng)求隊(duì)列和就緒隊(duì)列。就緒隊(duì)列包括所有可執(zhí)行的并等待CPU的進(jìn)程。每個(gè)進(jìn)程都有PCB,PCB鏈接起來就形成了就緒隊(duì)列。長(zhǎng)期調(diào)度策略選擇進(jìn)程來競(jìng)爭(zhēng)CPU。通常,長(zhǎng)期調(diào)度會(huì)受資源分配考慮尤其是內(nèi)存管理的影響。短期調(diào)度從就緒隊(duì)列中選擇進(jìn)程。系統(tǒng)內(nèi)的進(jìn)程能并發(fā)執(zhí)行。有許多理由允許并發(fā)執(zhí)行:信息共享,加快計(jì)算,模塊化和方便性。并發(fā)執(zhí)行需要有創(chuàng)建和刪除進(jìn)程的機(jī)制。操作系統(tǒng)的執(zhí)行進(jìn)程可以是獨(dú)立進(jìn)程或協(xié)作進(jìn)程。協(xié)作進(jìn)程要有互相通信的機(jī)制。主要有兩種形式的通信:共享內(nèi)存和消息系統(tǒng)。共享內(nèi)存方法要求通信進(jìn)程共享一些變量。進(jìn)程通過使用這些共享變量來交換信息。對(duì)于共享內(nèi)存系統(tǒng),提供通信的責(zé)任主要在于應(yīng)用程序;操作系統(tǒng)只需要提供共享內(nèi)存。消息系統(tǒng)方法允許進(jìn)程交換信息。提供通信的主要責(zé)任在于操作系統(tǒng)本身。這兩種方法并不互相排斥,能在同一操作系統(tǒng)同時(shí)實(shí)現(xiàn)。?套接字(Socket)定義為通信的端點(diǎn)。兩個(gè)應(yīng)用程序間的連接由一對(duì)套接字組成,通信頻道每端各有一個(gè)。RPC(RemoteProcessCall,遠(yuǎn)程過程調(diào)用)是另一種形式的分布式通信。當(dāng)一個(gè)進(jìn)程(或線程)調(diào)用一個(gè)遠(yuǎn)程應(yīng)用的方法時(shí),就出現(xiàn)了RPC。RMI(RemoteMethodInvocation,遠(yuǎn)程方法調(diào)用)是RPC的Java版。RMI允許線程如同調(diào)用本地對(duì)象的方法一樣來調(diào)用遠(yuǎn)程對(duì)象的方法。RPC和RMI的主要區(qū)別是RPC傳遞給遠(yuǎn)程過程的數(shù)據(jù)是按普通數(shù)據(jù)結(jié)構(gòu)形式的,而RMI允許把對(duì)象傳遞給遠(yuǎn)程方法。2.3線程線程是進(jìn)程內(nèi)的控制流。多線程進(jìn)程在同一地址空間內(nèi)包括多個(gè)不同的控制流。多線程的優(yōu)點(diǎn)包括對(duì)用戶響應(yīng)的改進(jìn)、進(jìn)程內(nèi)的資源共享和利用多處理器體系結(jié)構(gòu)的能力。用戶線程對(duì)程序員來說是可見的,而對(duì)內(nèi)核來說是未知的。用戶空間的線程庫(kù)通常用以管理用戶線程。操作系統(tǒng)支持和管理內(nèi)核級(jí)的線程。通常,用戶線程跟內(nèi)核線程相比,創(chuàng)建和管理要更快。有三種不同模型將用戶和內(nèi)核線程關(guān)聯(lián)起來:多對(duì)一模型將許多用戶線程映射到一個(gè)內(nèi)核線程;一對(duì)一模型將每個(gè)用戶線程映射到一個(gè)相應(yīng)的內(nèi)核線程;多對(duì)多模型將多個(gè)用戶線程在同樣(或更少)數(shù)量的內(nèi)核線程之間切換。多線程程序?yàn)槌绦騿T帶來了許多挑戰(zhàn),包括系統(tǒng)調(diào)用fork和exec的語(yǔ)義。其他事項(xiàng)包括線程撤銷、信號(hào)處理和特定線程數(shù)據(jù)。許多現(xiàn)代操作系統(tǒng)提供了對(duì)線程的內(nèi)核支持,如WindowsNT,Windows2000,Solaris2。PthreadAPI提供了一組函數(shù)用于在用戶級(jí)創(chuàng)建和管理線程。Java提供了相似的API以支持線程。不過,由于Java線程是由JVM,而不是由用戶級(jí)線程庫(kù)或內(nèi)核來管理的,因此它并不屬于用戶級(jí)線程或內(nèi)核級(jí)線程。2.4CPU調(diào)度CPU調(diào)度的任務(wù)是從就緒隊(duì)列中選擇一個(gè)等待進(jìn)程,并為其分配CPU。CPU由調(diào)度程序分配給所選中的進(jìn)程。FCFS(First-Come-First-Served,先來先服務(wù))調(diào)度是最簡(jiǎn)單的調(diào)度算法,但是它會(huì)讓短進(jìn)程等待非常長(zhǎng)的進(jìn)程。SJF(ShortestJobFirst,最短作業(yè)優(yōu)先)調(diào)度可被證明是最佳的方法,它提供了最短平均等待時(shí)間。但實(shí)現(xiàn)SJF調(diào)度比較困難,因?yàn)轭A(yù)測(cè)下一個(gè)CPU使用時(shí)間的長(zhǎng)度有難度。SJF算法是通用優(yōu)先權(quán)調(diào)度算法(將CPU簡(jiǎn)單地分配給具有最高優(yōu)先權(quán)的進(jìn)程)的特例。優(yōu)先權(quán)調(diào)度和SJF調(diào)度會(huì)產(chǎn)生饑餓。老化(Aging)技術(shù)可阻止饑餓。RR(Round-Robin,時(shí)間片輪轉(zhuǎn))調(diào)度對(duì)于分時(shí)(交互)系統(tǒng)更為合適。RR調(diào)度讓就緒隊(duì)列的第一個(gè)進(jìn)程使用CPU的q個(gè)時(shí)間單元,這里q是時(shí)間片。在q時(shí)間單元之后,如果該進(jìn)程還沒有釋放CPU,那么它被搶占并放到就緒隊(duì)列的尾部。該算法的主要問題是選擇時(shí)間片。如果時(shí)間片太大,那么RR調(diào)度就成了FCFS調(diào)度;如果時(shí)間片太小,那么因上下文切換而引起的調(diào)度開銷就過大。FCFS算法是非搶占的;RR算法是搶占的。SJF和優(yōu)先級(jí)算法既可以是搶占的也可以是非搶占的。多級(jí)隊(duì)列算法允許多個(gè)不同算法用于各種類型的進(jìn)程。最為常用的是前臺(tái)交互隊(duì)列(使用RR調(diào)度),和后臺(tái)批處理隊(duì)列(使用FCFS調(diào)度)。多級(jí)反饋隊(duì)列允許進(jìn)程在隊(duì)列之間遷移。因?yàn)橛卸喾N不同的調(diào)度算法可用,所以我們需要某種方法來選擇它們。分析方法使用數(shù)學(xué)分析的方法以確定算法性能。模擬方法通過對(duì)具有代表性的進(jìn)程采用調(diào)度算法模擬并計(jì)算其性能來確定優(yōu)劣。如果操作系統(tǒng)在內(nèi)核級(jí)支持線程,那么必須調(diào)度線程而不是進(jìn)程來執(zhí)行。Solaris2和Windows2000就是這樣的系統(tǒng),它們采用搶占的、基于優(yōu)先級(jí)的調(diào)度算法,并支持實(shí)時(shí)線程。Linux進(jìn)程調(diào)度也使用基于優(yōu)先級(jí)算法,并提供實(shí)時(shí)支持。這三種操作系統(tǒng)通常都偏愛交互進(jìn)程而不是批處理進(jìn)程或CPU約束進(jìn)程。2.5進(jìn)程同步必須為共享數(shù)據(jù)的一組相互協(xié)作的順序進(jìn)程提供互斥。一種解決方法是確保在某個(gè)時(shí)候只能有一個(gè)進(jìn)程或線程才能使用代碼的臨界區(qū)域。當(dāng)然有許多不同方法來解決臨界區(qū)問題。這些用戶級(jí)解決方案的主要缺點(diǎn)是它們都需要忙等待。信號(hào)量可克服這個(gè)困難。信號(hào)量可用于解決各種同步問題,且可高效地加以實(shí)現(xiàn)(尤其是在硬件支持原子操作時(shí))。各種不同的同步問題(如有限緩存區(qū)問題、讀寫問題、哲學(xué)家進(jìn)餐問題)均很重要,這是因?yàn)檫@些問題是大量并發(fā)控制實(shí)際問題的抽象。這些問題常用于測(cè)試幾乎所有新提出的同步方案。操作系統(tǒng)必須提供機(jī)制以防止定時(shí)出錯(cuò)問題。人們提出了多個(gè)不同結(jié)構(gòu)以處理這些問題。臨界區(qū)域(CriticalRegion)可安全高效地解決互斥和任意同步問題。管程(Monitor)為共享抽象數(shù)據(jù)類型提供了同步機(jī)制。條件變量(ConditionalVariable)提供了一個(gè)方法供管程程序以阻塞其執(zhí)行,直到其被通知可繼續(xù)為止。事務(wù)(Transaction)是個(gè)程序單元,必須原子執(zhí)行;即,要么與其相關(guān)的所有操作執(zhí)行完畢,要么什么操作都不做。為了確保原子性(即使在系統(tǒng)出錯(cuò)時(shí)),我們可以使用寫前記錄日志的方法。所有的更新都記錄在日志上,而日志保存在穩(wěn)定存儲(chǔ)上。如果系統(tǒng)出現(xiàn)死機(jī),日志信息可用于恢復(fù)更新數(shù)據(jù)項(xiàng)的狀態(tài),這由操作undo和redo所組成。為了降低在系統(tǒng)出錯(cuò)時(shí)搜索日志的額外開銷,我們可使用檢測(cè)點(diǎn)(CheckPoint)方案。當(dāng)多個(gè)事務(wù)重疊執(zhí)行時(shí),這樣的執(zhí)行可能不同于這些操作的原子執(zhí)行。為了確保正確執(zhí)行,我們必須使用并發(fā)控制方案以保證串行化。有各種不同并發(fā)控制方案以確保串行化:延遲操作或撤銷發(fā)布這個(gè)操作的事務(wù)。最為常用方法為加鎖協(xié)議和基于時(shí)間戳的協(xié)議。2.6死鎖如果兩個(gè)或更多的進(jìn)程永久等待某個(gè)事件而該事件只能由這些等待進(jìn)程的某一個(gè)引起,那么會(huì)出現(xiàn)死鎖狀態(tài)。從原理上來說,有三種方法可以處理死鎖:●使用一些協(xié)議來預(yù)防或避免死鎖,確保系統(tǒng)永遠(yuǎn)都不會(huì)進(jìn)到死鎖狀態(tài)?!裨试S系統(tǒng)進(jìn)入死鎖狀態(tài),檢測(cè)死鎖,并恢復(fù)?!窈雎运械膯栴},并假設(shè)系統(tǒng)中永遠(yuǎn)都不會(huì)出現(xiàn)死鎖。這種方法被絕大多數(shù)的系統(tǒng)所采用,包括UNIX。當(dāng)且僅當(dāng)系統(tǒng)內(nèi)的四個(gè)必要條件同時(shí)成立時(shí)(互斥、占有并等待、非搶占、循環(huán)等待),才會(huì)發(fā)生死鎖。為了預(yù)防死鎖,我們要確保這四個(gè)必要條件中的一個(gè)不成立。死鎖避免算法要比預(yù)防算法要求低些,只要事先了解進(jìn)程使用資源的情況即可。例如,銀行家算法需要知道每個(gè)進(jìn)程所請(qǐng)求的每種資源的最大數(shù)量。采用這種信息,我們可采用死鎖避免算法。如果是不采用協(xié)議以確保死鎖不會(huì)發(fā)生,那么就必須使用檢測(cè)并恢復(fù)方案。必須調(diào)用檢測(cè)算法以確定是否出現(xiàn)了死鎖。如果檢測(cè)到死鎖,那么系統(tǒng)必須通過終止某些死鎖進(jìn)程,或通過搶占某些死鎖進(jìn)程的資源從死鎖中恢復(fù)。如果系統(tǒng)主要根據(jù)代價(jià)以選擇犧牲進(jìn)程進(jìn)行回滾,那么可能會(huì)出現(xiàn)饑餓,導(dǎo)致所選擇進(jìn)程永遠(yuǎn)不能完成其指定任務(wù)。2.7習(xí)題與解答2.7.1進(jìn)程的概念1.已知一個(gè)求值公式(A2+3B)/(B+5A),若A、B已賦值,試畫出該公式求值過程的前趨圖。圖2.1求值過程的前趨圖答:上述公式的求值過程可分解為以下分量計(jì)算:S1:X1=A*A;S2:X2=3*B;S3:X1=5*A;S4:X4=X1+X2;S5:X5=B+X3;S6:X6=X4/X5;其中的Xi是中間變量。上述分量計(jì)算語(yǔ)句中,部分語(yǔ)句是可以并發(fā)執(zhí)行的,而部分語(yǔ)句之間則存在著一定的順序關(guān)系。求值過程的前趨圖如圖2.1所示。2.操作系統(tǒng)中為什么要引入進(jìn)程的概念?為了實(shí)現(xiàn)并發(fā)進(jìn)程間的合作和協(xié)調(diào)工作,以及保證系統(tǒng)的安全,操作系統(tǒng)在進(jìn)程管理方面應(yīng)做哪些工作?(南京大學(xué)1997年研究生試題)答:為了提高資源的利用率和系統(tǒng)的吞吐量,操作系統(tǒng)中廣泛采用多道程序設(shè)計(jì)技術(shù),它允許多個(gè)程序同時(shí)進(jìn)入內(nèi)存、并發(fā)地運(yùn)行。程序在并發(fā)執(zhí)行時(shí),失去了封閉性,出現(xiàn)了間斷性和不可再現(xiàn)性的特征,這說明了通常的程序是不能參與并發(fā)執(zhí)行的。為了使程序能夠正確地并發(fā)執(zhí)行,并能夠?qū)Σl(fā)執(zhí)行的程序加以描述和控制,操作系統(tǒng)中引入了進(jìn)程的概念。操作系統(tǒng)在進(jìn)程管理方面應(yīng)做如下幾方面的工作:(1)進(jìn)程控制。其主要工作是創(chuàng)建和撤消進(jìn)程,以及控制運(yùn)行中進(jìn)程的狀態(tài)轉(zhuǎn)換。(2)進(jìn)程調(diào)度。其主要工作是按一定的算法,選擇一新的就緒進(jìn)程,把處理機(jī)分配給它,并為它設(shè)置運(yùn)行的現(xiàn)場(chǎng),使其投入執(zhí)行。(3)進(jìn)程同步。其主要工作是通過同步機(jī)制對(duì)并發(fā)執(zhí)行的進(jìn)程的執(zhí)行次序進(jìn)行協(xié)調(diào)(具體的協(xié)調(diào)方式有互斥和同步兩種),以保證各個(gè)進(jìn)程均能有條不紊地運(yùn)行。(4)進(jìn)程通信。其主要工作是實(shí)現(xiàn)進(jìn)程之間的信息交換,以使進(jìn)程之間能更好地相互合作。(5)死鎖的預(yù)防、避免、檢測(cè),以及從死鎖狀態(tài)中恢復(fù)。3.什么是進(jìn)程控制塊?試從進(jìn)程管理、進(jìn)程通信、中斷處理、文件管理、存儲(chǔ)管理、設(shè)備管理的角度設(shè)計(jì)進(jìn)程控制塊應(yīng)包含的項(xiàng)目。(北京大學(xué)1999年研究生試題)?答:進(jìn)程控制塊(PCB)是為了使在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序成為能獨(dú)立運(yùn)行的進(jìn)程,而為每個(gè)程序所配置的一個(gè)數(shù)據(jù)結(jié)構(gòu),其中存放了用于描述該進(jìn)程情況和控制進(jìn)程運(yùn)行所需的全部信息。系統(tǒng)根據(jù)PCB而感知相應(yīng)進(jìn)程的存在,即PCB是進(jìn)程存在的惟一標(biāo)志。PCB中應(yīng)該包含以下信息:(1)從進(jìn)程管理的角度考慮,PCB中應(yīng)該包含進(jìn)程標(biāo)識(shí)符、進(jìn)程狀態(tài)、CPU狀態(tài)信息(包括程序計(jì)數(shù)器、程序狀態(tài)字、棧指針、通用寄存器等)、進(jìn)程調(diào)度信息(如進(jìn)程的優(yōu)先數(shù)等)、鏈接指針(用于將PCB鏈入各種隊(duì)列)等項(xiàng)信息。(2)從進(jìn)程通信的角度考慮,PCB中應(yīng)該包含消息隊(duì)列指針、實(shí)現(xiàn)消息隊(duì)列互斥訪問的互斥信號(hào)量、描述消息隊(duì)列中消息個(gè)數(shù)的資源信號(hào)量。(3)從中斷處理的角度考慮,PCB中應(yīng)包含CPU狀態(tài)信息(參見(1))。(4)從文件管理的角度考慮,PCB中應(yīng)包含用戶文件描述符表,用來登記用戶打開的各個(gè)文件,并可以通過它找到在內(nèi)存的相應(yīng)文件的FCB(如UNIX中的內(nèi)存索引結(jié)點(diǎn))。(5)從存儲(chǔ)管理的角度考慮,應(yīng)保存該進(jìn)程的程序、數(shù)據(jù)、堆棧在內(nèi)存和外存的地址和各部分的長(zhǎng)度等信息。(6)從設(shè)備管理角度考慮,應(yīng)有該進(jìn)程所需資源和已分配到的資源清單。4.?dāng)⑹鲞M(jìn)程與程序的主要區(qū)別。(哈爾濱工業(yè)大學(xué)2000年研究生試題)答:進(jìn)程是可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合上的一次執(zhí)行過程,而程序是指令的有序集合,它們是緊密相關(guān)而又完全不同的兩個(gè)概念。(1)每個(gè)進(jìn)程實(shí)體中均包含了程序段,因此說進(jìn)程與程序是緊密相關(guān)的。但從結(jié)構(gòu)上看,進(jìn)程實(shí)體中除了程序段和數(shù)據(jù)段外,還必須包含一個(gè)數(shù)據(jù)結(jié)構(gòu),即進(jìn)程控制塊PCB。(2)進(jìn)程是程序的一次執(zhí)行過程,因此是動(dòng)態(tài)的;動(dòng)態(tài)性還表現(xiàn)在進(jìn)程由創(chuàng)建而產(chǎn)生、由調(diào)度而執(zhí)行、由撤消而消亡,即它具有一定的生命周期。而程序則只是一組指令的有序集合,并可永久地存放在某種介質(zhì)上,其本身不具有運(yùn)動(dòng)的含義,因此是靜態(tài)的。(3)多個(gè)進(jìn)程實(shí)體可同時(shí)存放在內(nèi)存中并發(fā)地執(zhí)行,其實(shí)這正是引入進(jìn)程的目的。而程序(在沒為它創(chuàng)建進(jìn)程時(shí))的并發(fā)執(zhí)行具有不可再現(xiàn)性,因此程序不能正確地并發(fā)執(zhí)行。(4)進(jìn)程是一個(gè)能夠獨(dú)立運(yùn)行、獨(dú)立分配資源和獨(dú)立接受調(diào)度的基本單位。而程序(在沒為它創(chuàng)建進(jìn)程時(shí)),因其不具有PCB,是不可能在多道程序環(huán)境下獨(dú)立運(yùn)行的。(5)進(jìn)程與程序不一一對(duì)應(yīng)。同一個(gè)程序的多次運(yùn)行,將形成多個(gè)不同的進(jìn)程;同一個(gè)程序的一次執(zhí)行也可以產(chǎn)生多個(gè)進(jìn)程(如UNIX中通過fork調(diào)用);而一個(gè)進(jìn)程也可以執(zhí)行多個(gè)程序(如UNIX中通過exec調(diào)用)。5.試述線程與進(jìn)程的主要異同點(diǎn)。答:進(jìn)程的引入是為了使程序能夠并發(fā)執(zhí)行,而線程的引入則是為了減少并發(fā)執(zhí)行的開銷,使OS具有更好的并發(fā)性。因此,進(jìn)程和線程一樣都可以并發(fā)執(zhí)行,都可以在執(zhí)行、就緒、阻塞這三種基本狀態(tài)之間轉(zhuǎn)化;它們都有自己的生命周期,并因創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資源而阻塞,因撤消而消亡;它們之間都存在著相互制約關(guān)系,因此都需要同步。進(jìn)程和線程的主要區(qū)別如下:(1)調(diào)度性。在傳統(tǒng)的操作系統(tǒng)中,擁有資源的基本單位和獨(dú)立調(diào)度、分派的基本單位都是進(jìn)程。而在引入線程的OS中,則把線程作為調(diào)度和分派的基本單位,而把進(jìn)程作為擁有資源的基本單位。?(2)并發(fā)性。在引入線程的OS中,不僅進(jìn)程間可以并發(fā)執(zhí)行,而且在一個(gè)進(jìn)程的多個(gè)線程間,也可以并發(fā)執(zhí)行,因而比傳統(tǒng)的OS具有更好的并發(fā)性。(3)擁有資源。在這兩種OS中,擁有資源的基本單位都是進(jìn)程。線程除了一點(diǎn)在運(yùn)行中必不可少的資源(如線程控制塊、程序計(jì)數(shù)器、一組寄存器值和堆棧)外,本身基本不擁有系統(tǒng)資源,但它可訪問其隸屬進(jìn)程的資源。(4)開銷。由于創(chuàng)建或撤消進(jìn)程時(shí),系統(tǒng)都要為之分配和回收資源,如內(nèi)存空間和I/O設(shè)備等;進(jìn)程切換時(shí)所要保存和設(shè)置的現(xiàn)場(chǎng)信息也要明顯地多于線程,因此,OS在創(chuàng)建、撤消和切換進(jìn)程時(shí)所付出的開銷將顯著地大于線程。另外,由于隸屬于同一進(jìn)程的多個(gè)線程共享同一地址空間和已打開文件,從而使它們之間的同步和通信的實(shí)現(xiàn)也變得更為容易。圖2.2進(jìn)程狀態(tài)轉(zhuǎn)換圖6.某系統(tǒng)的進(jìn)程狀態(tài)轉(zhuǎn)換圖如圖2.2所示:(1)說明引起各種狀態(tài)轉(zhuǎn)換的典型事件。(2)分析下述狀態(tài)轉(zhuǎn)換是否可立即引起其他的狀態(tài)轉(zhuǎn)換:1,2,3,4。答:(1)引起各種狀態(tài)轉(zhuǎn)換的典型事件如表2-1所示。表2-1引起進(jìn)程狀態(tài)轉(zhuǎn)換的典型事件(2)狀態(tài)轉(zhuǎn)換1不會(huì)立即引起其他狀態(tài)轉(zhuǎn)換。狀態(tài)轉(zhuǎn)換2必然立即引發(fā)狀態(tài)轉(zhuǎn)換1:狀態(tài)轉(zhuǎn)換2發(fā)生后,進(jìn)程調(diào)度程序必然要選出一個(gè)新的就緒進(jìn)程投入運(yùn)行,該新進(jìn)程可能是其他進(jìn)程,也可能是剛從執(zhí)行狀態(tài)轉(zhuǎn)換成就緒狀態(tài)的那個(gè)進(jìn)程。狀態(tài)轉(zhuǎn)換3可能立即引發(fā)狀態(tài)轉(zhuǎn)換1:狀態(tài)轉(zhuǎn)換3發(fā)生后,若就緒隊(duì)列空,則不會(huì)引起其他任何狀態(tài)轉(zhuǎn)換;否則,進(jìn)程調(diào)度程序必然要選出一個(gè)就緒進(jìn)程投入運(yùn)行。狀態(tài)轉(zhuǎn)換4可能引發(fā)狀態(tài)轉(zhuǎn)換1:狀態(tài)轉(zhuǎn)換4發(fā)生后,若當(dāng)時(shí)無(wú)其他進(jìn)程處于就緒狀態(tài)和執(zhí)行狀態(tài),則該進(jìn)程將被立即被調(diào)度。另外,狀態(tài)轉(zhuǎn)換4還可能同時(shí)引發(fā)狀態(tài)轉(zhuǎn)換1和2:若系統(tǒng)采用搶占調(diào)度方式,而新就緒的進(jìn)程具備搶占CPU的條件(如其優(yōu)先權(quán)很高),則它可立即得到CPU轉(zhuǎn)換成執(zhí)行狀態(tài),而原來正在執(zhí)行的進(jìn)程則轉(zhuǎn)換成就緒狀態(tài)。7.某系統(tǒng)的進(jìn)程狀態(tài)圖如圖2.3所示。(武漢大學(xué)1997年研究生試題)(1)說明一個(gè)進(jìn)程發(fā)生變遷3,4,6的原因。(2)下述因果變遷是否會(huì)發(fā)生?若會(huì),在什么情況下發(fā)生?A.3→5B.6→4C.6→7(3)根據(jù)此進(jìn)程狀態(tài)圖,說明該系統(tǒng)的CPU調(diào)度策略和調(diào)度效果。答:(1)發(fā)生變遷3的原因是運(yùn)行進(jìn)程提出I/O請(qǐng)求。發(fā)生變遷4的原因是運(yùn)行進(jìn)程的時(shí)間片到。發(fā)生變遷6的原因是阻塞進(jìn)程因所等待的I/O操作完成而被I/O中斷服務(wù)程序喚醒。圖2.3進(jìn)程狀態(tài)圖(2)A.因果變遷3→5會(huì)發(fā)生。當(dāng)某個(gè)運(yùn)行進(jìn)程由于I/O請(qǐng)求而阻塞時(shí),如果此時(shí)系統(tǒng)中不存在高優(yōu)先級(jí)就緒進(jìn)程而只存在低優(yōu)先級(jí)就緒進(jìn)程,則系統(tǒng)將選擇一低優(yōu)先級(jí)就緒進(jìn)程投入運(yùn)行。B.因果變遷6→4不會(huì)發(fā)生。發(fā)生4的原因只可能是時(shí)間片用完。C.因果變遷6→7不會(huì)發(fā)生。發(fā)生7的原因是進(jìn)程在時(shí)間片用完前運(yùn)行結(jié)束。(3)該系統(tǒng)的進(jìn)程調(diào)度策略是多級(jí)隊(duì)列調(diào)度策略,它將系統(tǒng)中的所有進(jìn)程按照優(yōu)先級(jí)的高低組織成高優(yōu)先級(jí)和低優(yōu)先級(jí)兩個(gè)隊(duì)列,兩個(gè)隊(duì)列均采用時(shí)間片輪轉(zhuǎn)調(diào)度算法,但高優(yōu)先級(jí)隊(duì)列的時(shí)間片較短(為100ms),低優(yōu)先級(jí)隊(duì)列的時(shí)間片較長(zhǎng)(為500ms),系統(tǒng)總是先調(diào)度高優(yōu)先級(jí)隊(duì)列上的進(jìn)程,僅當(dāng)該隊(duì)列為空時(shí),才調(diào)度低優(yōu)先級(jí)隊(duì)列上的進(jìn)程。這種調(diào)度策略不僅體現(xiàn)了短作業(yè)優(yōu)先的思想,同時(shí)也不會(huì)使長(zhǎng)作業(yè)長(zhǎng)期得不到處理,而且它還能較好地滿足I/O型作業(yè)的需要。對(duì)每個(gè)作業(yè)來說,它總是先進(jìn)入高優(yōu)先級(jí)就緒隊(duì)列,如果作業(yè)較短,則它便能以較小的周轉(zhuǎn)時(shí)間完成;如果作業(yè)較長(zhǎng),則在運(yùn)行100ms后它將進(jìn)入低優(yōu)先級(jí)就緒隊(duì)列,而且當(dāng)再次調(diào)度到該作業(yè)時(shí),它的時(shí)間片將增大到500ms;如果是I/O型的作業(yè),由于每次完成輸入/輸出工作后,它將進(jìn)入高優(yōu)先級(jí)的就緒隊(duì)列,因此將被優(yōu)先調(diào)度到,這將有效地提高系統(tǒng)中I/O設(shè)備的利用率和系統(tǒng)的吞吐量。8.有兩個(gè)程序,A程序按順序使用CPU10s,使用設(shè)備甲5s,使用CPU5s,使用設(shè)備乙10s,最后使用CPU10s。B程序按順序使用設(shè)備甲10s,使用CPU10s,使用設(shè)備乙5s,使用CPU5s,使用設(shè)備乙10s。在順序環(huán)境下先執(zhí)行A程序再執(zhí)行B程序,CPU的利用率是多少?答:由題目所給條件可知,在順序環(huán)境下,先執(zhí)行A程序,再執(zhí)行B程序時(shí):A程序的運(yùn)行總時(shí)間為:10s+5s+5s+10s+10s=40s其中使用CPU時(shí)間為:10s+5s+10s=25sB程序的運(yùn)行總時(shí)間為:10s+10s+5s+5s+10s=40s其中使用CPU時(shí)間為:10s+5s=15s因此CPU的利用率為:(25s+15s)/(40s+40s)=50%9.設(shè)某計(jì)算機(jī)系統(tǒng)有一臺(tái)輸入機(jī)、一臺(tái)打印機(jī)?,F(xiàn)有兩道程序同時(shí)投入運(yùn)行,且程序A先開始運(yùn)行,程序B后運(yùn)行。程序A的運(yùn)行軌跡為:計(jì)算50ms,打印信息100ms,再計(jì)算50ms,打印信息100ms,結(jié)束。程序B的運(yùn)行軌跡為:計(jì)算50ms,輸入數(shù)據(jù)80ms,再計(jì)算100ms,結(jié)束。試說明:(1)兩道程序運(yùn)行時(shí),CPU有無(wú)空閑等待?若有,在哪段時(shí)間內(nèi)等待?為什么會(huì)空閑等待??(2)程序A,B運(yùn)行時(shí)有無(wú)等待現(xiàn)象?若有,在什么時(shí)候發(fā)生等待現(xiàn)象?答:兩道程序并發(fā)運(yùn)行時(shí)的工作情況如圖2.4所示。圖2.4程序A、B并發(fā)執(zhí)行時(shí)的情況(1)從圖2.4可以看出,兩道程序運(yùn)行時(shí),CPU存在空閑等待的情況。等待現(xiàn)象發(fā)生在程序A開始運(yùn)行后100ms至150ms的時(shí)間段內(nèi),此時(shí),由于程序A正在打印信息,而程序B正在輸入數(shù)據(jù),兩者都進(jìn)入阻塞狀態(tài),故CPU空閑。(2)程序A運(yùn)行時(shí)不存在等待現(xiàn)象,而程序B運(yùn)行時(shí)則存在等待現(xiàn)象。程序B的首次等待現(xiàn)象發(fā)生在程序A開始運(yùn)行后0ms至50ms的時(shí)間段內(nèi),第二次等待現(xiàn)象發(fā)生在程序A開始運(yùn)行后180ms至200ms的時(shí)間段內(nèi)。10.在一個(gè)單處理機(jī)的系統(tǒng)中有A、B兩個(gè)程序,若兩個(gè)程序單獨(dú)執(zhí)行,則需要占用CPU、設(shè)備IO1、設(shè)備IO2的時(shí)間及順序如下:程序A:CPU(25ms);IO1(30ms);CPU(20ms);IO2(20ms);CPU(20ms);IO1(30ms);CPU(20ms)。程序B:CPU(20ms);IO1(30ms);CPU(20ms);IO2(20ms);CPU(10ms);IO2(20ms);CPU(45ms)。若該系統(tǒng)中:(a)IO1和IO2為不同步的輸入/輸出裝置,它們能夠同時(shí)工作。(b)設(shè)程序的優(yōu)先級(jí)B高于A。但是,當(dāng)程序A正在占用CPU時(shí),即使程序B需要占用CPU,也不能打斷程序A的執(zhí)行而必須等待。(c)當(dāng)使用CPU之后控制轉(zhuǎn)向IO1、IO2時(shí),或者使用IO1、IO2之后控制轉(zhuǎn)向CPU時(shí),由控制程序執(zhí)行中斷處理,但這段處理時(shí)間忽略不計(jì)。(d)程序A、B同時(shí)進(jìn)入計(jì)算機(jī)中。試問:(1)哪個(gè)程序先結(jié)束?(2)程序全部執(zhí)行結(jié)束需要多少時(shí)間?(3)到程序全部執(zhí)行完畢時(shí)的CPU利用率為多少?(4)程序A等待CPU的累計(jì)時(shí)間為多少?(5)程序B等待CPU的累計(jì)時(shí)間為多少?答:程序A與程序B的運(yùn)行過程如圖2.4a所示。因此:圖2.4a程序A、B并發(fā)執(zhí)行的情況(1)程序B先結(jié)束。(2)程序全部結(jié)束需要205ms。(3)CPU的利用率為(205-25)/205,即87.8%。(4)程序A等待CPU的時(shí)間累計(jì)為35ms。(5)程序B等待CPU的時(shí)間累計(jì)為10ms。11.程序運(yùn)行時(shí)CPU的空閑時(shí)間,即等待I/O的時(shí)間占運(yùn)行時(shí)間的百分比稱CPU空轉(zhuǎn)百分比,且CPU空轉(zhuǎn)百分比因并發(fā)執(zhí)行的作業(yè)道數(shù)不同而變化。在每道作業(yè)的I/O時(shí)間占運(yùn)行時(shí)間25%情況下的CPU空轉(zhuǎn)百分比如表2-2所示。表2-2CPU空轉(zhuǎn)百分比(I/O占運(yùn)行的25%)為了確定一個(gè)作業(yè)在多道程序系統(tǒng)中何時(shí)完成而引入了“CPU進(jìn)度”概念。所謂“CPU進(jìn)度”是指在給定的時(shí)間間隔內(nèi)CPU為一道作業(yè)服務(wù)的累計(jì)時(shí)間。例如,兩道作業(yè)同時(shí)投入運(yùn)行,每道作業(yè)的I/O時(shí)間占運(yùn)行時(shí)間的25%且都需1.5小時(shí)的CPU時(shí)間,則完成兩道作業(yè)所需時(shí)間為(查表2-2)得到CPU空轉(zhuǎn)百分比為4%,也就是說在1小時(shí)內(nèi)兩作業(yè)的CPU進(jìn)度為0.96小時(shí),平分給每個(gè)作業(yè)其CPU進(jìn)度為0.48小時(shí)。由于每個(gè)作業(yè)占用CPU時(shí)間是1.5小時(shí),所以完成兩道作業(yè)所需的全部時(shí)間為1.5/0.48=3.13(小時(shí))?,F(xiàn)有一組作業(yè),它們的提交時(shí)間和運(yùn)行時(shí)間如表2-3所示。假定所有作業(yè)的運(yùn)行時(shí)間包含25%的I/O等待時(shí)間,且內(nèi)存的作業(yè)平分CPU時(shí)間,那么在多道程序系統(tǒng)中,計(jì)算其作業(yè)平均周轉(zhuǎn)時(shí)間和作業(yè)平均帶權(quán)周轉(zhuǎn)時(shí)間。表2-3作業(yè)提交時(shí)間和運(yùn)行時(shí)間答:首先根據(jù)作業(yè)的運(yùn)行時(shí)間計(jì)算出如表2-4所示的作業(yè)需要CPU的時(shí)間:需CPU時(shí)間=運(yùn)行時(shí)間×(1-I/O占運(yùn)行的百分比)上述5個(gè)作業(yè)的運(yùn)行情況如表2-5所示。因此,作業(yè)1、2、3、4、5的周轉(zhuǎn)時(shí)間分別為0.356、0.851、0.181、0.659、0.226,作業(yè)的平均周轉(zhuǎn)時(shí)間為0.455。它們的帶權(quán)周轉(zhuǎn)時(shí)間分別為1.19、1.70、1.81、1.65、2.26,平均帶權(quán)周轉(zhuǎn)時(shí)間為1.72。表2-4作業(yè)需CPU的時(shí)間表2-5作業(yè)的運(yùn)行情況2.7.2進(jìn)程的同步和通信1.設(shè)有兩個(gè)優(yōu)先級(jí)相同的進(jìn)程P1和P2如下。信號(hào)量S1和S2的初值均為0,試問P1、P2并發(fā)執(zhí)行結(jié)束后,x、y、z的值各為多少?答:可以將上述進(jìn)程分解成以下6個(gè)程序段:并將它們的并發(fā)執(zhí)行關(guān)系用前趨圖描述出來(如圖2.5所示)。根據(jù)Bernstein條件,程序段PS1和PS4的確是能并發(fā)執(zhí)行的,程序段PS2與PS5也能并發(fā)執(zhí)行,而程序段PS3和PS6則不能并發(fā)執(zhí)行,或者說它們的并發(fā)執(zhí)行具有不可再現(xiàn)性。若先執(zhí)行PS3,再執(zhí)行PS6,則最后x,y,z的值分別為5,7,9;若先執(zhí)行PS6,再執(zhí)行PS3,則最后x,y,z的值分別為5,12,9。圖2.5前趨圖2.舉例說明P、V操作為什么要求設(shè)計(jì)成原語(yǔ)(即對(duì)同一信號(hào)量上的操作必須互斥)。(北京大學(xué)1993年研究生試題)答:P、V操作是用來實(shí)現(xiàn)進(jìn)程同步的原語(yǔ),它們可以被描述為:
例如,用P,V操作來實(shí)現(xiàn)進(jìn)程對(duì)臨界資源的互斥使用。此時(shí),只需定義一個(gè)信號(hào)量S,其初值為{1,NULL},并在臨界區(qū)前執(zhí)行P(S)操作,而在臨界區(qū)后執(zhí)行V(S)操作。如果P、V操作不設(shè)計(jì)成原語(yǔ),那么在執(zhí)行P、V操作時(shí)進(jìn)程可以被中斷。由于在初始狀態(tài)下,臨界資源空閑,故應(yīng)允許第一個(gè)申請(qǐng)臨界資源的進(jìn)程進(jìn)入臨界區(qū)使用臨界資源,但如果該進(jìn)程在執(zhí)行到P操作的語(yǔ)句S.value--后(此時(shí)S.value的值為0)便被另一個(gè)進(jìn)程中斷,而那個(gè)進(jìn)程也企圖通過執(zhí)行P(S)操作進(jìn)入臨界區(qū),則第二個(gè)進(jìn)程也必須執(zhí)行語(yǔ)句S.value--,從而將S.value的值變?yōu)椋?,并由于S.value<0而被阻塞,而第一個(gè)進(jìn)程再次獲得CPU后,也同樣由于S.value<0而被阻塞,這就造成了臨界資源雖然空閑但進(jìn)程卻申請(qǐng)不到臨界資源的情況,也就是說,此時(shí)的P、V操作已無(wú)法滿足同步機(jī)制的要求。同樣,一個(gè)執(zhí)行P(S)操作的進(jìn)程被中斷后,另一進(jìn)程去執(zhí)行V(S)操作;或者,一個(gè)執(zhí)行V(S)操作的進(jìn)程被中斷后,而另一進(jìn)程去執(zhí)行P(S)或V(S)操作,都將發(fā)生混亂,而難以實(shí)現(xiàn)進(jìn)程同步。因此,P、V操作必須設(shè)計(jì)成原語(yǔ)的方式。3.試從物理觀念上來說明記錄型信號(hào)量wait與signal操作?(南京航空航天大學(xué)2000年研究生試題)答:從物理觀念上來看,一個(gè)記錄型信號(hào)量S可以用來表示一類臨界資源的使用情況,S.value的初值表示系統(tǒng)中該類資源的總數(shù)。在使用過程中,若S.value>0,則表示系統(tǒng)中還有S.value個(gè)該類資源處于空閑狀態(tài)。對(duì)它的每次wait操
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)業(yè)科技園區(qū)設(shè)施租賃協(xié)議4篇
- 啟迪未來點(diǎn)亮夢(mèng)想
- 2025版收入證明模板制作與市場(chǎng)推廣合作合同3篇
- 2025年全球及中國(guó)氣體激光清洗設(shè)備行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)住宅用灌溉噴水閥行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球?qū)櫸锔闻K功能補(bǔ)充劑行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球印章套件行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球光伏發(fā)電箱變行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 施工承包合同標(biāo)準(zhǔn)模板
- 2025版?zhèn)€人購(gòu)房貸款還款順序合同模板3篇
- 小學(xué)六年級(jí)數(shù)學(xué)上冊(cè)《簡(jiǎn)便計(jì)算》練習(xí)題(310題-附答案)
- 2023-2024學(xué)年度人教版一年級(jí)語(yǔ)文上冊(cè)寒假作業(yè)
- 培訓(xùn)如何上好一堂課
- 高教版2023年中職教科書《語(yǔ)文》(基礎(chǔ)模塊)下冊(cè)教案全冊(cè)
- 2024醫(yī)療銷售年度計(jì)劃
- 稅務(wù)局個(gè)人所得稅綜合所得匯算清繳
- 人教版語(yǔ)文1-6年級(jí)古詩(shī)詞
- 上學(xué)期高二期末語(yǔ)文試卷(含答案)
- 軟件運(yùn)維考核指標(biāo)
- 空氣動(dòng)力學(xué)仿真技術(shù):格子玻爾茲曼方法(LBM)簡(jiǎn)介
- 比較思想政治教育學(xué)
評(píng)論
0/150
提交評(píng)論