




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第1章 引論1什么是硬件系統(tǒng)?什么是軟件環(huán)境?它們之間有什么聯(lián)系?答:計算機(jī)硬件是指計算機(jī)系統(tǒng)中由電子、機(jī)械和光電元件等組成的各種計算機(jī)部件和計算機(jī)設(shè)備。這些部件和設(shè)備依據(jù)計算機(jī)系統(tǒng)結(jié)構(gòu)的要求構(gòu)成的有機(jī)整體,稱為計算機(jī)硬件系統(tǒng)。軟件是計算機(jī)系統(tǒng)中的程序和有關(guān)的文件。程序是計算任務(wù)的處理對象和處理規(guī)則的描述;文件是為了便于了解程序所需的資料說明。硬件為軟件提供具體實現(xiàn)的基礎(chǔ),軟件是用戶與硬件之間的接口界面。2什么是操作系統(tǒng)?操作系統(tǒng)追求的主要目標(biāo)是什么? 答:操作系統(tǒng)是計算機(jī)系統(tǒng)中的一個系統(tǒng)軟件,是能有效地組織和管理計算機(jī)系統(tǒng)中的硬件和軟件資源,合理地組織計算機(jī)工作流程,控制程序的執(zhí)行,并向用戶
2、提供各種服務(wù)功能,使得用戶能夠靈活、方便、有效地使用計算機(jī),并使整個計算機(jī)系統(tǒng)能高效地運(yùn)行的一組程序 模塊的集合。操作系統(tǒng)追求的主要目標(biāo)包括四個方面,分別是:方便性、有效性、可擴(kuò)充性、開放性。3在用戶程序與硬件裸機(jī)之間,操作系統(tǒng)可以分為那幾個模塊?答:在用戶程序與硬件裸機(jī)之間,操作系統(tǒng)可以分為:系統(tǒng)軟件、支撐軟件和應(yīng)用軟件三個模塊。 4.操作系統(tǒng)如何實現(xiàn)計算機(jī)操作的自動化?如何看待操作系統(tǒng)在計算機(jī)系統(tǒng)中的地位?答:(1)計算機(jī)操作系統(tǒng)是實現(xiàn)自動化控制的一部分,大致可以把操作系統(tǒng)分為以下幾類:批處理操作系統(tǒng)、分時操作系統(tǒng)、實時操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)。其中批處理操作系統(tǒng)、分時操作系
3、統(tǒng)、實時操作系統(tǒng)是基本的操作系統(tǒng)。批處理操作系統(tǒng)按照用戶預(yù)先規(guī)定好的步驟控制作業(yè)的執(zhí)行,實現(xiàn)計算機(jī)操作的自動化。又可分為批處理單道系統(tǒng)和批處理多道系統(tǒng)。單道系統(tǒng)每次只有一個作業(yè)裝入計算機(jī)系統(tǒng)的主存儲器運(yùn)行,多個作業(yè)可自動、順序地被裝入運(yùn)行。批處理多道系統(tǒng)則允許多個作業(yè)同時裝入主存儲器,中央處理器輪流地執(zhí)行各個作業(yè),各個作業(yè)可以同時使用各自所需的外圍設(shè)備,這樣可以充分利用計算機(jī)系統(tǒng)的資源,縮短作業(yè)時間,提高系統(tǒng)的吞吐率。分時操作系統(tǒng),這種系統(tǒng)中,一個計算機(jī)系統(tǒng)與許多終端設(shè)備連接,分時系統(tǒng)支持多個終端用戶,同時以交互方式使用計算機(jī)系統(tǒng),為用戶在測試、修改和控制程序執(zhí)行方面提供了靈活性。實時操作系統(tǒng)
4、能使計算機(jī)系統(tǒng)接收到外部信號后及時進(jìn)行處理,并在嚴(yán)格的規(guī)定時間內(nèi)完成處理,且給出反饋信號。它是較少有人為干預(yù)的監(jiān)督和控制系統(tǒng)。實時系統(tǒng)對可靠性和安全性要求極高,不強(qiáng)求系統(tǒng)資源的利用率。網(wǎng)絡(luò)操作系統(tǒng)可以把若干計算機(jī)聯(lián)合起來,實現(xiàn)各臺計算機(jī)之間的通信及網(wǎng)絡(luò)中各種資源的共享,像我們現(xiàn)在使用的Windows ,UNIX和Linux等操作系統(tǒng)都是網(wǎng)絡(luò)操作系統(tǒng)。分布式操作系統(tǒng)的網(wǎng)絡(luò)中各臺計算機(jī)沒有主次之分,在任意兩臺計算機(jī)間的可進(jìn)行信息交換和資源共享。這一點上分布式操作系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)差別不大,他們的本質(zhì)區(qū)別在于:分布式操作系統(tǒng)能使系統(tǒng)中若干計算機(jī)相互協(xié)作完成一個共同的任務(wù)。這使得各臺計算機(jī)組成一個完整
5、的,功能強(qiáng)大的計算機(jī)系統(tǒng)。(2)操作系統(tǒng)實際上是一個計算機(jī)系統(tǒng)中硬、軟件資源的總指揮部。操作系統(tǒng)的性能高低,決定了整體計算機(jī)的潛在硬件性能能否發(fā)揮出來。操作系統(tǒng)本身的安全性和可靠程度,在一定程度上決定了整個計算機(jī)系統(tǒng)的安全性和可靠度。它是軟件技術(shù)的核心,是軟件的基礎(chǔ)運(yùn)行平臺。操作系統(tǒng)是配置在計算機(jī)硬件上的第一層軟件,是對硬件系統(tǒng)的第一次擴(kuò)充,支持其他所有軟件運(yùn)行。5.操作系統(tǒng)分成哪幾類? 答:單道批處理系統(tǒng)、多道批處理系統(tǒng)、分時系統(tǒng)、實時系統(tǒng)、微機(jī)操作系統(tǒng)、多處理機(jī)操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)。6.從資源管理的角度來看,操作系統(tǒng)具有哪些功能?答:從資源管理的角度來看,操作系統(tǒng)的基本功
6、能可分為五大部分 (1)處理器管理:為用戶地分處理器時間,盡可能地使處理器處于忙狀態(tài),提高處理器的工作效率。(2)存儲管理:實現(xiàn)對主存儲器的管理,為用戶分配主存空間,保護(hù)主存中的程序和數(shù)據(jù)不被破壞,提高主存空間的利用率。 (3)文件管理:面向用戶實現(xiàn)按文件名存取文件,管理用戶信息的存儲、檢索、共享和保護(hù),合理地分配和使用文件的存儲空間。 (4)設(shè)備管理:負(fù)責(zé)管理各種外圍設(shè)備,包括設(shè)備的分配、啟動以及SPOOL的實現(xiàn)技術(shù)。 (5)作業(yè)管理:實現(xiàn)作業(yè)調(diào)度和控制作業(yè)的執(zhí)行。作業(yè)調(diào)度從等待處理的作業(yè)中選擇可以裝入主存儲器的作業(yè),對已經(jīng)裝入主存儲器的作業(yè)按用戶的意圖控制其執(zhí)行。討論操作系統(tǒng)可以從哪些角度
7、出發(fā),如何統(tǒng)一看待它們?答:可以從軟件的觀點、計算機(jī)系統(tǒng)資源管理的觀點、進(jìn)程的觀點、用戶與計算機(jī)硬件系統(tǒng)之間的觀點、虛機(jī)器觀點、服務(wù)提供者觀點。簡述操作系統(tǒng)發(fā)展的幾個階段。答:(1)1946年50年代末,第一代電子管時代,無操作系統(tǒng)(2)1950年代末60年代中期,第二代晶體管時代,批處理系統(tǒng);(3)1960年代中期70年代中期,第三代,集成電路時代,多道程序設(shè)計;(4)1970年代中期至今,第四代,大規(guī)和超大規(guī)模集成電路時代,分時系統(tǒng);也可以把操作系統(tǒng)的發(fā)展階段總結(jié)為:第一代是以dos為代表的磁盤操作系統(tǒng)時代,以磁盤管理的方式來管理內(nèi)容;第二代是以Windows為代表的文件操作系統(tǒng)時代,以文
8、件管理的方式來管理內(nèi)容;第三代是以安卓和ios為代表的應(yīng)用操作系統(tǒng)時代,應(yīng)用成為主要的管理內(nèi)容的工具;第四代,則是即將來臨的時代,超級app凌駕于操作系統(tǒng)之上的時代。什么叫批處理系統(tǒng)?它可分為哪兩種?答:通常是把一批作業(yè)以脫機(jī)輸入方式輸入到磁帶上,并在系統(tǒng)中配上監(jiān)督程序,在監(jiān)督程序的控制下使這批作業(yè)能一個接一個地連續(xù)處理,這樣的系統(tǒng)成為批處理系統(tǒng)。可分為單道批處理系統(tǒng)和多道批處理系統(tǒng)。10什么是多道程序系統(tǒng)?其主要特性是什么?答:多道程序系統(tǒng)是指在內(nèi)存中同時放入若干道作業(yè),并且可以相互交替執(zhí)行程序。 多道程序設(shè)計的基本特征:多道性、無序性、調(diào)度性。11.什么是分時系統(tǒng)?其主要特點是什么?答:分
9、時系統(tǒng)是指一臺主機(jī)上連接了多個帶有顯示器和鍵盤的終端,同時允許多個用戶共享主機(jī)中的資源,每個用戶都可以通過自己的終端以交方式使用計算機(jī)的系統(tǒng)。特點:多路性、獨立性、及時性、交互性。12.什么是實時系統(tǒng)?主要有哪幾大類?答:實時系統(tǒng)是指系統(tǒng)能及時響應(yīng)外部事件請求,在規(guī)定的時間內(nèi)完成該事件的處理,并控制所有實時任務(wù)協(xié)調(diào)一致的運(yùn)行。主要包括:(1)按任務(wù)執(zhí)行時是否呈現(xiàn)周期性來劃分,包括:周期性實時任務(wù)、非周期性實時任務(wù)。(2)根據(jù)對截止時間的要求來分,包括:強(qiáng)實時任務(wù)、弱實時任務(wù)。13實時系統(tǒng)與分時系統(tǒng)命令的主要區(qū)別有哪些?答:分時操作系統(tǒng)特點:多路性、交互性、獨立性、及時性實時操作系統(tǒng)特點:多路性
10、、交互性、獨立性、及時性、可靠性(1)多路性。實時信息處理系統(tǒng)也按分時原則為多個終端用戶服務(wù)。實時控制系統(tǒng)的多路性則主要表現(xiàn)在系統(tǒng)周期性地對多路現(xiàn)場信息進(jìn)行采集,以及對多個對象或多個執(zhí)行機(jī)構(gòu)進(jìn)行控制。而分時系統(tǒng)中的多路性則與用戶情況有關(guān),時多時少。(2)獨立性。實時信息處理系統(tǒng)與分時系統(tǒng)一樣具有獨立性,每個終端用戶在向?qū)崟r系統(tǒng)提出服務(wù)請求時,是彼此獨立地操作,互不干擾;而實時控制系統(tǒng)中,對信息的采集和對對象的控制也都是彼此互不干擾。(3)及時性。實時信息處理系統(tǒng)對實時性的要求與分時系統(tǒng)類似,都是以人所能接受的等待時間來確定的;而實時控制系統(tǒng)的及時性,則是以控制對象所要求的開始截止時間或完成截止
11、時間來確定的,一般為秒級到毫秒級,甚至有的要低于100微秒。(4)交互性。實時信息處理系統(tǒng)雖然也具有交互性,但這里人與系統(tǒng)的交互僅限于訪問系統(tǒng)中某些特定的專用服務(wù)程序。它不像分時系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)處理和資源共享等服(5)分時系統(tǒng)雖然也要求系統(tǒng)可靠,但相比之下,實時系統(tǒng)則要求系統(tǒng)高度可靠。14簡述操作系統(tǒng)的特征?答:并發(fā)、共享、虛擬、異步性。15簡述處理機(jī)的組成和工作原理。你認(rèn)為哪些部分和操作系統(tǒng)密切相關(guān)?為什么?一般處理器由運(yùn)算器、控制器、一系列的寄存器以及高速緩存構(gòu)成。運(yùn)算器實現(xiàn)任何指令中的算術(shù)和邏輯運(yùn)算,是計算機(jī)計算的核心;控制器負(fù)責(zé)控制程序運(yùn)行的流程,包括取指令,維護(hù)CPU狀態(tài)
12、,CPU與內(nèi)存之間的交互等等。寄存器是指令在CPU內(nèi)部做處理的過程中暫存數(shù)據(jù),地址一級指令信息的存儲設(shè)備,在計算機(jī)的存儲系統(tǒng)中它具有最快的訪問速度。加上高速緩存以及內(nèi)存管理單元()。16.為了支持操作系統(tǒng),現(xiàn)代處理機(jī)一般都提供哪兩種工作狀態(tài)以隔離操作系統(tǒng)和普通程序?兩種狀態(tài)各有什么特點?答:管態(tài)(特權(quán)態(tài))和目態(tài)(用戶態(tài))管態(tài)一般指操作系統(tǒng)管理程序運(yùn)行時的狀態(tài),具有較高的特權(quán)級別,可以執(zhí)行所有指令;而目態(tài)一般指用戶程序運(yùn)行時的狀態(tài),具有較低的特權(quán)級別,只可以執(zhí)行非特權(quán)指令。17.什么是分級的存儲體系結(jié)構(gòu)?它主要解決了什么問題?答:為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,目前通常
13、采用多級存儲器體系結(jié)構(gòu),即使用高速緩沖存儲器、主存儲器和外存儲器。名稱簡稱用途特點高速緩沖存儲器Cache高速存取指令和數(shù)據(jù)存取速度快,但存儲容量小主存儲器主存存放計算機(jī)運(yùn)行期間的大量程序和數(shù)據(jù)存取速度較快,存儲容量不大外存儲器外存存放系統(tǒng)程序和大型數(shù)據(jù)文件及數(shù)據(jù)庫存儲容量大,位成本低18.內(nèi)存通常有哪兩種類型?它們各自的特點是什么?用在那里?答:讀/寫型存儲器(RAM)和只讀存儲器(ROM)讀/寫型存儲器(RAM)是指可以把數(shù)據(jù)存入其中任一地址單元,并且可在以后的任何時候把數(shù)據(jù)讀出來,或者重新存入別的數(shù)據(jù)的一種存儲器,這種存儲器通常稱為隨機(jī)訪問存儲器,斷電后信息會消失。主要用于存放隨機(jī)存取的
14、程序和數(shù)據(jù)。只讀存儲器(ROM)是指只能從其中讀取數(shù)據(jù),但不能隨意地用普通的方法向其中寫入數(shù)據(jù)(向其中寫入數(shù)據(jù)只能用特殊的方法),這種存儲器通常稱為只讀存儲器,斷電后信息不會消失。通常把一些常駐內(nèi)存的模塊以微程序形式固化在ROM中。19.簡述程序的局部性原理。這個原理在分級的存儲體系結(jié)構(gòu)中是怎樣起作用?答:原理:程序執(zhí)行時,處理器為了取得指令和數(shù)據(jù)而訪問存儲器。現(xiàn)代的程序設(shè)計技術(shù)很注重程序代碼的復(fù)用,這樣,程序中會有很多的循環(huán)和子程序調(diào)用,一旦進(jìn)入這樣的程序段,就會重復(fù)存取相同的指令集合。類似地,對數(shù)據(jù)存取也有這樣的局部性。在經(jīng)過一段時間以后,使用到的代碼和數(shù)據(jù)的集合會改變,但在較短的時間內(nèi)它
15、們能比較穩(wěn)定地保持在一個存儲器的局部區(qū)域中,處理器也主要和存儲器的這個局部打交道。作用:基于這一原理,就有充分的理由設(shè)計出多級存儲的體系結(jié)構(gòu),并使得存取級別較低的存儲器的比率小于存取級別較高的存儲器的比率。20.緩沖技術(shù)在計算機(jī)系統(tǒng)中起著什么樣的作用?它是如何工作的?答:作用:解決了部件之間速度不匹配的問題。工作:每當(dāng)用戶要求輸入數(shù)據(jù)時,先在緩沖區(qū)中尋找,如果已經(jīng)在緩沖區(qū),即可直接從中讀取,如果不在,就再訪問內(nèi)存,由內(nèi)存輸入到緩沖區(qū)再由用戶使用21.簡述中斷和操作系統(tǒng)的關(guān)系。操作系統(tǒng)是如何利用中斷機(jī)制的?答:中斷是處理機(jī)對系統(tǒng)中或系統(tǒng)外發(fā)生的異步事件的響應(yīng)。中斷裝置就是在CPU每執(zhí)行完一條指令
16、后,判別是否有事件發(fā)生,如果沒有事件發(fā)生,CPU繼續(xù)執(zhí)行;若有事件發(fā)生,中斷裝置中斷原先占用CPU的程序的執(zhí)行,把被中斷程序的斷點保存起來,讓操作系統(tǒng)的處理服務(wù)程序占用CPU對事件進(jìn)行處理,處理完后,再讓被中斷的程序繼續(xù)占用CPU執(zhí)行下去。中央處理器在任何時刻最多只能被一個程序占用。通過中斷裝置系統(tǒng)中若干程序可以交替地占用處理器,形成多個程序同時執(zhí)行的狀態(tài)。利用CPU與外圍設(shè)備的并行工作能力,以及各外圍設(shè)備之間的并行工作能力,操作系統(tǒng)能讓多個程序同時執(zhí)行。22.時鐘對操作系統(tǒng)有什么作用?答:在計算機(jī)系統(tǒng)中,設(shè)置時鐘是十分必要的。這是由于時鐘以為計算機(jī)完成以下必不可少的工作:1. 在多道程序運(yùn)行
17、環(huán)境中,它可以為系統(tǒng)發(fā)現(xiàn)一個陷入死循環(huán)(編程錯誤)的作業(yè),從而防止機(jī)時的浪費(fèi)。2. 在分時系統(tǒng)中,用間隔時鐘來實現(xiàn)作業(yè)間按時間片輪轉(zhuǎn)。3. 在實時系統(tǒng)中,按要求的進(jìn)間間隔輸出正確的時間信息號給一個實時控制的控制設(shè)備(如A/D 、D/A轉(zhuǎn)換設(shè)備。4. 定時喚醒那些要求延遲執(zhí)行的各個外部事件(如定時為各進(jìn)程計算優(yōu)先數(shù),銀行系統(tǒng)中定時運(yùn)行某類結(jié)賬程序等)。5. 記錄用戶使用各種設(shè)備的時間和記錄某外部事件發(fā)生的時間間隔。6. 記錄用戶和系統(tǒng)所需要的絕對時間,即年、月、日。23.操作系統(tǒng)結(jié)構(gòu)設(shè)計有哪幾種方法?各有何優(yōu)缺點?答:操作系統(tǒng)結(jié)構(gòu)設(shè)計有:(1)模塊化結(jié)構(gòu)操作系統(tǒng) 優(yōu)點:提高了操作系統(tǒng)設(shè)計的正確性
18、,可理解性和維護(hù)性;增強(qiáng)了操作系統(tǒng)的可適應(yīng)性;加速了操作系統(tǒng)的開發(fā)過程;(2)層次結(jié)構(gòu)操作系統(tǒng) 優(yōu)點:易保證系統(tǒng)的正確性;易擴(kuò)充性和易維護(hù)性;(3)微內(nèi)核 優(yōu)點:足夠小的內(nèi)核;基于客戶/服務(wù)器模式;應(yīng)用機(jī)制和策略分離的技術(shù);采用面向?qū)ο蟮募夹g(shù);(4)客戶/服務(wù)器模式 優(yōu)點:允許數(shù)據(jù)的分布處理要和存儲,有便于集中管理,靈活性和可擴(kuò)充性強(qiáng),易修改。第2章 用戶接口與作業(yè)管理1.解釋作業(yè)和作業(yè)步?答:作業(yè):把一次計算機(jī)過程或者事務(wù)處理過程中,肏輸入輸出結(jié)束,用戶要求計算機(jī)所做的全部工作;作業(yè)步:完成作業(yè)的每一個步驟。2闡述程序、作業(yè)、作業(yè)步的聯(lián)系與區(qū)別答:聯(lián)系:用戶要求計算機(jī)處理的問題,要用某種程序
19、設(shè)計語言對要處理的問題編制程序后交給計算機(jī)系統(tǒng),作業(yè)的每一個加工步驟稱為一個作業(yè)步,針對每個作業(yè)步,計算機(jī)系統(tǒng)要創(chuàng)建一個或多個進(jìn)程才能執(zhí)行。區(qū)別:程序是指令的集合;進(jìn)程是程序在一個數(shù)據(jù)集上的一次執(zhí)行;用戶要求計算機(jī)系統(tǒng)處理的個別計算問題成為一個“作業(yè)”。任何一個作業(yè)都要經(jīng)過若干加工步驟才能得到結(jié)果,作業(yè)的每一個加工步驟稱為一個作業(yè)步。3.什么是作業(yè)調(diào)度?作業(yè)調(diào)度選擇作業(yè)的必要條件是什么?答:操作系統(tǒng)根據(jù)允許并行工作的道數(shù)和一定的算法從等待的作業(yè)(后備作業(yè))中選取若干作業(yè)裝入主存儲器,使它們可以去獲得處理器運(yùn)行,這項工作稱為作業(yè)調(diào)度。作業(yè)調(diào)度的必要條件是,即只有在系統(tǒng)當(dāng)前尚未分配的資源可以滿足在
20、系統(tǒng)中等待執(zhí)行的作業(yè)的資源要求。4.操作系統(tǒng)提供了哪些便于用戶控制交互式作業(yè)的使用接口答:操作系統(tǒng)提供了命令接口、程序接口、圖形接口三種類型的用戶接口,其中程序接口是操作系統(tǒng)專門為用戶程序設(shè)置的,也是用戶程序取得操作系統(tǒng)服務(wù)的唯一途徑。程序接口通常由各種各樣的系統(tǒng)調(diào)用所組成。一個具有分時兼批處理功能的操作系統(tǒng)應(yīng)怎樣調(diào)度和管理作業(yè)?為什么?答:在一個具有分時兼批處理的計算機(jī)系統(tǒng)中總是優(yōu)先接納終端用戶作業(yè),僅當(dāng)終端作業(yè)數(shù)小于系統(tǒng)可以允許同時工作的作業(yè)數(shù)時,可以調(diào)度批處理作業(yè),允許終端作業(yè)和批處理作業(yè)混合同時執(zhí)行。為了使終端用戶有滿意的時間,可采用分級調(diào)度的方法分配處理器??砂延嘘P(guān)終端作業(yè)的就緒進(jìn)程
21、排成一個就緒隊列,而把有關(guān)批處理作業(yè)的就緒進(jìn)程排入另外的就緒隊列中。當(dāng)有終端作業(yè)的就緒進(jìn)程時,總是讓終端作業(yè)的就緒進(jìn)程按“時間片輪轉(zhuǎn)”的方法現(xiàn)占用處理器。當(dāng)無終端作業(yè)的就緒進(jìn)程時,才去查看批處理作業(yè)的就緒隊列,按確定的算法從中選擇一個就緒進(jìn)程讓它占用處理器??墒菇K端用戶滿意,又能提高系統(tǒng)效率。系統(tǒng)采用不能移動已在主存儲器中作業(yè)的可變分區(qū)方式管理主存儲器,現(xiàn)有供用戶使用的主存空間100K,系統(tǒng)配有4臺磁帶機(jī),有一批作業(yè)見表2.6。表2.6作業(yè)序號 進(jìn)輸入井時間 要求計算時間 需要主存量 申請磁帶機(jī)數(shù)1l0:0025分鐘15K2臺210:2030分鐘80K1臺310:3010分鐘50K3臺410:
22、3520分鐘10K2臺510:4015分鐘30K2臺該系統(tǒng)采用多道程序設(shè)計技術(shù),對磁帶機(jī)采用靜態(tài)分配,忽略設(shè)備工作時間和系統(tǒng)進(jìn)行調(diào)度所花的時間,請分別寫出采用“先來先服務(wù)調(diào)度算法”、“計算時間短的作業(yè)優(yōu)先算法”和選中作業(yè)執(zhí)行的次序以及各個作業(yè)的裝入主存時間、開始執(zhí)行時間、完成時間、周轉(zhuǎn)時間以及它們的平均周轉(zhuǎn)時間。注意:作業(yè)從提交到完成需要經(jīng)過兩級調(diào)度,分別是作業(yè)調(diào)度和進(jìn)程調(diào)度,這兩級調(diào)度采用相同的調(diào)度策略。答:1. 作業(yè)調(diào)度和進(jìn)程調(diào)度均采用FCFS調(diào)度算法。作業(yè)序號進(jìn)入輸入井時間執(zhí)行次序裝入內(nèi)存時間開始執(zhí)行時間完成時間周轉(zhuǎn)時間110:00110:0010:0010:2525210:20210:
23、2010:2510:5535310:30411:3011:3011:4070410:35310:3510:5511:1540510:40510:5511:1511:3050平均周轉(zhuǎn)時間=(25+35+70+40+50)/5=44(2)作業(yè)調(diào)度和進(jìn)程調(diào)度均采用最短作業(yè)優(yōu)先調(diào)度算法。最短作業(yè)優(yōu)先作業(yè)序號進(jìn)入輸入井時間執(zhí)行次序裝入內(nèi)存時間開始執(zhí)行時間完成時間周轉(zhuǎn)時間備注110:00110:0010:0010:2525210:20210:2010:2510:5535310:30511:3011:3011:4070410:35410:3511:1011:3055510:40310:5510:5511:1
24、030平均周轉(zhuǎn)時間=(25+35+70+55+30)/5=43(3)作業(yè)調(diào)度和進(jìn)程調(diào)度均采用響應(yīng)比最高者優(yōu)先調(diào)度算法。作業(yè)序號進(jìn)入輸入井時間執(zhí)行次序裝入內(nèi)存時間開始執(zhí)行時間完成時間周轉(zhuǎn)時間備注110:00110:0010:0010:2525210:20210:2010:2510:5535310:30511:3011:3011:4070410:35410:3510:5511:154010:55時,作業(yè)2結(jié)束,內(nèi)在中有作業(yè)4和5,作業(yè)4的響應(yīng)比=2,作業(yè)5的響應(yīng)比=1,應(yīng)調(diào)度4510:40310:5511:1511:3050平均周轉(zhuǎn)時間=(25+35+70+40+50)/5=447在一個批處理單道
25、系統(tǒng)中,采用響應(yīng)比高者優(yōu)先的作業(yè)調(diào)度算法。當(dāng)一個作業(yè)進(jìn)入系統(tǒng)后就開始調(diào)度。假定作業(yè)都僅是計算,忽略調(diào)度花費(fèi)的時間。現(xiàn)有3個作業(yè),進(jìn)入系統(tǒng)的時間和需要計算的時間如表2-2表22 進(jìn)入系統(tǒng)的時間和需要計算的時間表作業(yè)進(jìn)入系統(tǒng)時間需要計算時間開始時間完成時間周轉(zhuǎn)時間19:0060分鐘9:0010:0060分鐘29:1045分鐘10:2511:10120分鐘39:1525分鐘10:0010:2570分鐘(1)求出每個作業(yè)的開始時間、完成時間及周轉(zhuǎn)時間。答:(1)由于作業(yè)1先被調(diào)度,所以作業(yè)1的開始時間為:9:00,完成時間為:10:00,周轉(zhuǎn)時間:60分鐘(完成時間-進(jìn)入系統(tǒng)時間):作業(yè)2的響應(yīng)比=1
26、+50/45作業(yè)3的響應(yīng)比=1+45/25因為作業(yè)3的響應(yīng)比 >作業(yè)2的響應(yīng)比高,則作業(yè)3被調(diào)度。所以作業(yè)3開始時間為:10:00,完成時間:10:25,周轉(zhuǎn)時間:70分鐘,繼續(xù)調(diào)度作業(yè)2,所以開始時間為:10:25,完成時間:11:10,周轉(zhuǎn)時間:120分鐘(2)計算三個作業(yè)的平均周轉(zhuǎn)時間應(yīng)為多少?平均周轉(zhuǎn)時間=8383.3分鐘8.批處理作業(yè)是如何控制執(zhí)行的?答:按用戶提交作業(yè)控制說明書控制作業(yè)的執(zhí)行。一個作業(yè)往往要分幾個作業(yè)步執(zhí)行,一般說,總是按照作業(yè)步順序控制作業(yè)執(zhí)行的,一個作業(yè)步的工作完成后,繼續(xù)下一個作業(yè)步的工作,直至作業(yè)執(zhí)行結(jié)束,一個作業(yè)步的工作往往由多個進(jìn)程合作來完成。9設(shè)
27、有I/O頻繁、I/O與計算機(jī)均衡和計算量大的3個作業(yè),它們同時進(jìn)入內(nèi)存并行工作,請給每個作業(yè)賦予運(yùn)行優(yōu)先數(shù),并說明理由。答:選擇作業(yè)調(diào)度算法要考慮多種因素,其中一個重要的因素就是系統(tǒng)資源的均衡使用。用戶作業(yè)所需資源差異很大,例如,進(jìn)行科學(xué)計算的作業(yè)(CUP繁忙)要求較多的CPU時間,而輸入/輸出要求較少;事務(wù)處理作業(yè)(I/O繁忙)要求較少的CPU時間,而要求較多的輸出打印各種表格。因此在考慮設(shè)計目標(biāo)的前提下,合理搭配各種類型的作業(yè),最大限度地發(fā)揮各種資源的效益,使它們得到充分利用,這對提高整個計算機(jī)系統(tǒng)效益會有好處。計算量大的作業(yè)的優(yōu)先級為1、I/O與計算機(jī)均衡作業(yè)的優(yōu)先級為2、I/O頻繁作業(yè)
28、的優(yōu)先級為3。10什么是系統(tǒng)調(diào)用?系統(tǒng)調(diào)用與一般過程調(diào)用的區(qū)別是什么?答:系統(tǒng)調(diào)用在本質(zhì)上是應(yīng)用程序請求操作系統(tǒng)核心完成某一特定功能的一種過程調(diào)用,是一種特殊的過程調(diào)用,它與一般的過程調(diào)用有以下幾方面的區(qū)別:(1)通過軟中斷進(jìn)入一般的過程調(diào)用可直接由調(diào)用過程轉(zhuǎn)向被調(diào)用過程;而執(zhí)行系統(tǒng)調(diào)用時,由于調(diào)用和被調(diào)用過程是處于不同的系統(tǒng)狀態(tài),因而不允許由調(diào)用過程直接轉(zhuǎn)向被調(diào)用過程,而通常都是通過軟中斷機(jī)制轉(zhuǎn)向相應(yīng)的命令處理程序。(2)運(yùn)行在不同的處理機(jī)狀態(tài)一般的過程調(diào)用,其調(diào)用程序和被調(diào)用程序都運(yùn)行在相同的處理機(jī)狀態(tài)。而系統(tǒng)調(diào)用與一般調(diào)用的最大區(qū)別就在于:調(diào)用程序運(yùn)行在目態(tài),而被調(diào)用程序運(yùn)行在管態(tài)。(3
29、)處理機(jī)狀態(tài)的轉(zhuǎn)換一般的過程調(diào)用不涉及系統(tǒng)狀態(tài)的轉(zhuǎn)換,直接由調(diào)用過程轉(zhuǎn)向被調(diào)用過程。但在運(yùn)行系統(tǒng)調(diào)用時,由于調(diào)用和被調(diào)用過程工作在不同的系統(tǒng)狀態(tài),因而不允許由調(diào)用過程直接轉(zhuǎn)向被調(diào)用過程,通常都是通過軟中斷機(jī)制先由目態(tài)轉(zhuǎn)換為管態(tài),在操作系統(tǒng)核心分析之后,再轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理程序。(4)返回問題一般的過程調(diào)用在被調(diào)用過程執(zhí)行完后,將返回到調(diào)用過程繼續(xù)執(zhí)行。但是,在采用搶占式調(diào)度方式的系統(tǒng)中,系統(tǒng)調(diào)用在被調(diào)用過程執(zhí)行完后,系統(tǒng)將對所有要求運(yùn)行的進(jìn)程進(jìn)行優(yōu)先級分析。如果調(diào)用進(jìn)程仍然具有最高優(yōu)先級,則返回到調(diào)用進(jìn)程繼續(xù)執(zhí)行,否則,將重新調(diào)度,以便讓優(yōu)先級最高的進(jìn)程優(yōu)先執(zhí)行。此時,系統(tǒng)將把調(diào)用進(jìn)程放入
30、就緒隊列中。(5)嵌套調(diào)用像一般過程一樣,系統(tǒng)調(diào)用也允許嵌套調(diào)用,即在一個被調(diào)用過程的執(zhí)行期間,還可以再利用系統(tǒng)調(diào)用命令去調(diào)用另一個系統(tǒng)調(diào)用。一般情況下,每個系統(tǒng)對嵌套調(diào)用的深度都有一定的限制,例如最大深度為6。11分時系統(tǒng)中終端處理程序的作用是什么?答:配置在終端上的終端處理程序主要用于實現(xiàn)人機(jī)交互,接收用戶從終端上輸入的字符、字符緩沖管理、回送顯示、屏幕編輯和特殊字符處理。第3章 進(jìn)程與進(jìn)程管理什么是進(jìn)程?它與程序有哪些異同點?答:進(jìn)程是具有獨立功能的可并發(fā)執(zhí)行的程序在一個數(shù)據(jù)集合上的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨立單位?;蛘哒f,進(jìn)程是進(jìn)程實體的運(yùn)行過程。異同點:進(jìn)程是程序的一次執(zhí)
31、行,它是一個動態(tài)的概念,程序是完成某個特定功能的指令的有序序列,它是個靜態(tài)的概念。但進(jìn)程是把程序作為它的運(yùn)行實體,沒有程序,也就沒有進(jìn)程。進(jìn)程和程序的區(qū)別還在于:一個進(jìn)程可以執(zhí)行一個或幾個程序。反之,同一程序也可能由多個進(jìn)程同時執(zhí)行。進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位;程序則不是。程序可以作為一種軟件資源長期保存,而進(jìn)程是程序的一次執(zhí)行過程,它是臨時的,有生命期的。表現(xiàn)在它由創(chuàng)建而產(chǎn)生,完成任務(wù)后被撤消。進(jìn)程是具有結(jié)構(gòu)的。為了描述進(jìn)程的運(yùn)行變化過程,應(yīng)為每個進(jìn)程建立一個結(jié)構(gòu)進(jìn)程控制塊。從結(jié)構(gòu)上看,進(jìn)程是由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成。進(jìn)程控制塊的作用是什么?它主要包括哪幾部分內(nèi)容?
32、答:進(jìn)程控制塊的作用是使一個在多道程序環(huán)境下不能獨立運(yùn)行的程序(含數(shù)據(jù))成為一個能獨立運(yùn)行的基本單位,一個能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程。也就是說,操作系統(tǒng)是根據(jù)進(jìn)程控制塊PCB來對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。PCB是進(jìn)程存在的惟一標(biāo)志。在進(jìn)程控制塊中,主要包括下述四個方面用于描述和控制進(jìn)程運(yùn)行的信息:進(jìn)程表示符信息處理機(jī)狀態(tài)信息進(jìn)程調(diào)度信息進(jìn)程控制信息3進(jìn)程有哪幾種基本狀態(tài)?試舉出使進(jìn)程狀態(tài)發(fā)生變化的事件并描繪它的狀態(tài)轉(zhuǎn)換圖。 進(jìn)程有以下三種基本狀態(tài):就緒狀態(tài)。當(dāng)進(jìn)程已分配到除CPU以外所有必要的資源后,只要能再獲得處理機(jī)便可立即執(zhí)行,這時的狀態(tài)稱為就緒狀態(tài)。執(zhí)行狀態(tài)。進(jìn)程已獲得處理機(jī),程序
33、正在執(zhí)行。阻塞狀態(tài)。進(jìn)程因發(fā)生某種等待事件(如I/O請求、申請緩沖空間等)而暫停執(zhí)行時的狀態(tài),亦即進(jìn)程的執(zhí)行受到阻塞,故稱這種狀態(tài)為阻塞狀態(tài),有時也稱為“等待”狀態(tài)或“睡眠”狀態(tài)。(2)進(jìn)程狀態(tài)的轉(zhuǎn)換進(jìn)程在運(yùn)行期間不斷地從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài),進(jìn)程的各種調(diào)度狀態(tài)依據(jù)一定的條件而發(fā)生變化,它可以多次處于就緒狀態(tài)和執(zhí)行狀態(tài),也可多次處于阻塞狀態(tài),但可能排在不同的阻塞隊列中。進(jìn)程的三種基本狀態(tài)及其轉(zhuǎn)換如下圖所示。1. 什么是操作系統(tǒng)內(nèi)核答:現(xiàn)代操作系統(tǒng)廣泛采用層次式結(jié)構(gòu),而將操作系統(tǒng)的功能分別設(shè)置在不同的層次中,通常,將一些與硬件緊密相關(guān)的模塊諸如中斷處理程序、各種常用設(shè)備的驅(qū)動程序以及運(yùn)行頻率
34、較高的模塊(諸如時鐘管理、進(jìn)程調(diào)度以及許多模塊公用的一些基本操作)都安排在緊靠硬件的軟件層次中并使它們常駐內(nèi)存,以便提高操作系統(tǒng)的運(yùn)行效率,并對它們加以特殊的保護(hù)。通常把這一部分稱為操作系統(tǒng)的內(nèi)核。內(nèi)核是計算機(jī)硬件的第一層擴(kuò)充軟件,它們?yōu)橄到y(tǒng)對進(jìn)程進(jìn)行控制、對存儲器進(jìn)行管理提供了有效的機(jī)制。大多數(shù)時間片輪轉(zhuǎn)調(diào)度程序使用一個固定大小的時間片,請給出選擇小時間片的理由。然后,再給出選擇大時間片的理由。答:選擇小時間片目的是使輪轉(zhuǎn)的總時間減少,使用戶進(jìn)程盡快得到應(yīng)答選擇大時間片目的是減少進(jìn)程調(diào)度的次數(shù),提高系統(tǒng)效率。有5個批處理作業(yè)A到E幾乎同時到達(dá)一計算中心。它們的估計運(yùn)行時間分別為10、6、2、
35、4和8分鐘。其優(yōu)先數(shù)(由外部設(shè)定)分別為3、5、2、1和4,其中5設(shè)為最高優(yōu)先級。對于下列每種調(diào)度算法,計算其平均進(jìn)程周轉(zhuǎn)時間,可忽略進(jìn)程切換的開銷。時間片輪轉(zhuǎn)法(當(dāng)時間片長短=6分鐘時);優(yōu)先級調(diào)度;先來先服務(wù)(按照次序l0、6、2、4、8運(yùn)行);最短作業(yè)優(yōu)先。對,假設(shè)系統(tǒng)具有多道處理能力,每個作業(yè)均獲得公平的CPU時間,對到假設(shè)任時刻只有一個作業(yè)運(yùn)行,直到結(jié)束。所有的作業(yè)都是CPU密集型作業(yè)。答:時間片輪轉(zhuǎn)法的平均周轉(zhuǎn)時間是21A, B, C, D, E分別時間為10,6,2,4,8,時間片大小為六,所以經(jīng)過兩輪時間片輪轉(zhuǎn),A的周轉(zhuǎn)時間是34,B的是12,C的是14,D的是18,E的是24
36、;所以102/5=21;優(yōu)先級調(diào)度的平均周轉(zhuǎn)時間是20 A, B, C, D, E分別優(yōu)先級為3,5,2,1,4,時間片大小為六,所以次序為B,E,A,C,D,B的周轉(zhuǎn)時間是6,E的是14,A的是24,C的是16,D的是30;所以100/5=20;先來先服務(wù)的平均周轉(zhuǎn)時間是19.2 次序為 A, B, C, D, EA的周轉(zhuǎn)時間是10,B的是16,C的是18,D的是22,E的是30;所以96/5=19.2;最短作業(yè)優(yōu)先的平均周轉(zhuǎn)時間是14 次序為 C, D,B, E,AA的周轉(zhuǎn)時間是30,B的是12,C的是2,D的是6,E的是20;所以70/5=14;7.什么是線程?進(jìn)程和線程的主要區(qū)別是什么
37、?答:進(jìn)程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運(yùn)行活動,進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位. 線程是進(jìn)程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨立運(yùn)行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運(yùn)行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源. 一個線程可以創(chuàng)建和撤銷另一個線程;同一個進(jìn)程中的多個線程之間可以并發(fā)執(zhí)行。進(jìn)程和線程的區(qū)別在于:簡而言之,一個程序至少有一個進(jìn)程,一個進(jìn)程至少有一個線程.線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。另外,進(jìn)程在執(zhí)行過程中擁有獨立的內(nèi)
38、存單元,而多個線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。線程在執(zhí)行過程中與進(jìn)程還是有區(qū)別的。每個獨立的線程有一個程序運(yùn)行的入口、順序執(zhí)行序列和程序的出 口。但是線程不能夠獨立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制。從邏輯角度來看,多線程的意義在于一個應(yīng)用程序中,有多個執(zhí)行部分可以同時執(zhí)行。但操作系統(tǒng)并沒有將多個線程看做多個獨立的應(yīng)用,來實現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配。這就是進(jìn)程和線程的重要區(qū)別。8.簡述進(jìn)程創(chuàng)建的步驟。答:(1)申請空白PCB;(2)為新進(jìn)程分配資源,為新進(jìn)程的程序和數(shù)據(jù)以及用戶棧分配必要的內(nèi)存空間。(3)初始化進(jìn)程控制塊(4)將新進(jìn)程插入就緒隊列。9
39、.某系統(tǒng)采用最高響應(yīng)比優(yōu)先的調(diào)度算法,某個時刻根據(jù)用戶要求創(chuàng)建了一個進(jìn)程P,進(jìn)程P在其存在過程中依次經(jīng)歷了如下進(jìn)程:答:創(chuàng)建進(jìn)程P:進(jìn)程處于就緒狀態(tài);(1):就緒態(tài)>執(zhí)行態(tài);執(zhí)行態(tài)>阻塞態(tài);(2):阻塞態(tài)>就緒態(tài)(3):就緒態(tài)> 執(zhí)行態(tài)(4):執(zhí)行態(tài)>就緒態(tài)(5):就緒態(tài)> 執(zhí)行態(tài)(6):執(zhí)行態(tài)>完成態(tài)10.若程序Pa、Pb和Pc單獨執(zhí)行的時間分別為Ta=15min,Tb=1 .5h,Tc=2h,其中處理機(jī)工作時間分別為Ta=10min,Tb=15min,Tc=35min,如果采用多道程序設(shè)計的方法,讓Pa,Pb,Pc并行工作,假定處理機(jī)利用率達(dá)到60
40、%,另加20分鐘系統(tǒng)開銷,請問系統(tǒng)效率能提高百分之幾?答:單道花費(fèi)的時間:1+1.5+2=4.5多道程序共花費(fèi)的時間:(10+15+35)/60%=100min總花費(fèi)時間:100+20=120min=2h效率提高:(1+1.5+2)-2)/4.5=5/911、假定有一個進(jìn)程A,他的工作流程圖3-21所示,如果系統(tǒng)中進(jìn)程只有3中狀態(tài)(就緒,執(zhí)行,阻塞),且進(jìn)程被進(jìn)程調(diào)度選中后就可投入運(yùn)行,時間片q=200ms,請順序列出其從開始到結(jié)束所經(jīng)歷的狀態(tài)轉(zhuǎn)換過程,并注明原因。答:(1)開始時,進(jìn)程被調(diào)度程序選中立即投入運(yùn)行,運(yùn)行200ms后,時間片到時,進(jìn)程有運(yùn)行狀態(tài)轉(zhuǎn)變成就緒態(tài),發(fā)生進(jìn)程切換,其他進(jìn)程
41、被調(diào)度運(yùn)行。(2)某時刻,該進(jìn)程重新被調(diào)度程序調(diào)度投入運(yùn)行,進(jìn)程從就緒態(tài)變成運(yùn)行態(tài),運(yùn)行50ms后,進(jìn)程請求磁盤I/0,有運(yùn)行態(tài)變?yōu)樽枞麘B(tài)。(3)磁盤I/O完成后,進(jìn)程有阻塞態(tài)變?yōu)榫途w態(tài),并在某時刻被調(diào)度程序調(diào)度到CPU運(yùn)行,從就緒態(tài)變成運(yùn)行態(tài)。(4)運(yùn)行50ms后,進(jìn)程因請求磁帶I/O而阻塞(5)進(jìn)程磁帶I/O請求完成后,從阻塞態(tài)變成就緒態(tài),某一時刻被調(diào)度程序選中執(zhí)行,從就緒態(tài)變成運(yùn)行態(tài),運(yùn)行200ms后時間片用完,進(jìn)程從運(yùn)行態(tài)變?yōu)榫途w態(tài)。(6)某一時刻,調(diào)度程序選中進(jìn)程執(zhí)行,但進(jìn)程要執(zhí)行打印請求,此時進(jìn)程從就緒態(tài)變?yōu)樽枞麘B(tài)。(7)打印請求結(jié)束后,進(jìn)程有阻塞態(tài)變?yōu)榫途w態(tài),某一時刻進(jìn)程又被重新
42、調(diào)度執(zhí)行,進(jìn)程從就緒態(tài)變?yōu)檫\(yùn)行態(tài),運(yùn)行150ms后進(jìn)程結(jié)束。第4章 進(jìn)程同步與通信1并發(fā)執(zhí)行的進(jìn)程在系統(tǒng)中通常表現(xiàn)為幾種關(guān)系?各是在什么情況下發(fā)生的?答:對資源的共享引起的互斥關(guān)系:進(jìn)程之間本來是相互獨立的,但由于共享資源而產(chǎn)生了關(guān)系。間接制約關(guān)系,互斥關(guān)系。協(xié)作完成同一個任務(wù)引起的同步關(guān)系:一組協(xié)作進(jìn)程要在某些同步點上相互等待發(fā)信息后才能繼續(xù)運(yùn)行。直接制約關(guān)系。同步關(guān)系。進(jìn)程之間的前序關(guān)系:由于進(jìn)程之間的互斥同步關(guān)系,使得進(jìn)程之間具有了前序關(guān)系,這些關(guān)系決定了各個進(jìn)程創(chuàng)建和終止的時間。2 什么叫臨界資源?什么叫臨界區(qū)?對臨界區(qū)的使用應(yīng)符合的四個準(zhǔn)則(互斥使用、讓權(quán)等待、有空讓進(jìn)、有限等待)。
43、答: 臨界資源:就是一次僅允許一個進(jìn)程使用的資源。臨界區(qū):就是并發(fā)進(jìn)程訪問臨界資源的那段必須互斥執(zhí)行的程序。臨界區(qū)使用的準(zhǔn)則:互斥使用:不能同時有兩個進(jìn)程在臨界區(qū)內(nèi)執(zhí)行讓權(quán)等待:等待進(jìn)入臨界區(qū)的進(jìn)程,應(yīng)釋放處理機(jī)后阻塞等待有空讓進(jìn):在臨界區(qū)外運(yùn)行的進(jìn)程不可阻止其他進(jìn)程進(jìn)入臨界區(qū) 有限等待:不應(yīng)使要進(jìn)入臨界區(qū)的進(jìn)程無限期等待在臨界區(qū)之外3若信號量s表示某一類資源,則對s執(zhí)行wait、signal操作的直觀含義是什么?答:wait(s)操作將信號量值增1后,若該值為負(fù),則執(zhí)行wait操作的進(jìn)程等待。 signal(s)操作將信號量增1后,若該值為正,這執(zhí)行signal操作的進(jìn)程喚醒等待進(jìn)程。4答:
44、(1)利用信號量實現(xiàn)互斥。為臨界資源設(shè)置一個互斥信號量mutex,初值為1;每個進(jìn)程中將臨界區(qū)代碼置于wait和signal原語間。(2)用wait和signal實現(xiàn)進(jìn)程同步時,同步信號量的初值與相應(yīng)資源有關(guān),也與wait和signal操作在程序代碼中出現(xiàn)位置有關(guān)。5(1)當(dāng)s>0時,s表示可使用的資源數(shù)或新得可使用資源的進(jìn)程數(shù);(2)當(dāng)s=0時,s表示無資源可使用或不允許進(jìn)程再進(jìn)入臨界區(qū);(3)當(dāng)s<0時,s表示等待使用資源的進(jìn)程數(shù)或進(jìn)入臨界區(qū)的進(jìn)程個數(shù);6in=out 是空 (in+1)mod100=out 是滿 7 有一個閱覽室,讀者進(jìn)入時必須先 在一張登記表上進(jìn)行登記,該表
45、為每一座位列一表目,包括座號和讀者姓名,讀者離開時, 要刪掉登記的信息,閱覽室共有100個座位, 試問: 1、為描寫讀者動作,應(yīng)編寫幾個程序, 應(yīng)設(shè)置幾個進(jìn)程?進(jìn)程與程序間關(guān)系如何? 2、試問P、V操作寫出這些進(jìn)程間的同步 算法。解法1、將讀者入室查表登記和離室查表取消登記各編一個程序,這樣每個讀者需設(shè)兩個進(jìn) 程,分別執(zhí)行入室和離室程序。2、semaphore mutex =1;/ 用于互斥使用登記表 semaphore s =100; / 表示資源信號量 while(1) p (s); p (mutex); 在登記表上進(jìn)行登記 v(mutex); 在閱覽室閱讀; p (mutex); 在登記
46、表上消除其登記信息 v(mutex); v(s); 8 復(fù)印室里有一個操作員為顧客復(fù)印資料,有5把椅子供顧客休息等待復(fù)印。如果沒有顧客,則操作員休息。當(dāng)顧客來到復(fù)印室時,如果有空椅子則坐下來,并喚醒復(fù)印操作員;如果沒有空椅子則必須離開復(fù)印室。答: 信號量: customers表示正在等待復(fù)印的顧客數(shù)量(不包括正在復(fù)印的顧客) operator記錄正在等候顧客的操作員數(shù),只有1和0 mutex用于對waiting的訪問; 變量: waiting表示等待的顧客數(shù)量。它實際上是customers的一個副本。之所以使用waiting是因為無法讀取信號量的當(dāng)前值。 semaphore customers
47、=0,operator=0,mutex=1; waiting=0; process operator( )/操作員進(jìn)程 while(1) wait(customers); /等待顧客到來復(fù)印; signal(operator); /通知顧客已經(jīng)完成復(fù)印 process cusotmeri( )/顧客進(jìn)程i wait(mutex); if(waiting<5) waiting+;signal(customers); signal(mutex); wait(operator); wait(mutex); waiting-; signal(mutex);else signal(mutex);
48、離開復(fù)印室; main( ) cobegin operator( ); customeri( ); 91) 關(guān)系分析。供應(yīng)者與三個抽煙者分別是同步關(guān)系。由于供應(yīng)者無法同時滿足兩個或 以上的抽煙者,三個抽煙者對抽煙這個動作互斥(或由三個抽煙者輪流抽煙得知2) 整理思路。顯然這里有四個進(jìn)程。供應(yīng)者作為生產(chǎn)者向三個抽煙者提供材料。3) 信號量設(shè)置。信號量offer1、offer2、offer3分別表示煙草和紙組合的資源、煙草和 火柴組合的資源、紙和火柴組合的資源。信號量finish用于互斥進(jìn)行抽煙動作。代碼如下:int random; /存儲隨機(jī)數(shù)semaphore offer1=0; /定義信號量
49、對應(yīng)煙草和紙組合的資源semaphore offer2=0; /定義信號量對應(yīng)煙草和火柴組合的資源semaphore offer3=0; /定義信號量對應(yīng)紙和火柴組合的資源semaphore finish=0; /定義信號量表示抽煙是否完成/供應(yīng)者while(1)random = 任意一個整數(shù)隨機(jī)數(shù);random=random% 3;if(random=0)V(offerl) ; /提供煙草和紙else if(random=l) V(offer2); /提供煙草和火柴elseV(offer3) /提供紙和火柴/ 任意兩種材料放在桌子上;P(finish);/擁有煙草者while(1)P (of
50、fer3);/ 拿紙和火柴,卷成煙,抽掉;V(finish);/擁有紙者while(1)P(offer2);/ 煙草和火柴,卷成煙,抽掉;V(finish);/擁有火柴者while(1)P(offer1);/ 拿煙草和紙,卷成煙,抽掉;v(finish);10為了互斥地入庫和出庫,需為倉庫設(shè)置一初值為1的互斥信號量mutex;為了使生產(chǎn)的產(chǎn)品件數(shù)滿足-nA的件數(shù)B的件數(shù)m,須設(shè)置兩個同步的信號量,其中SAB表示當(dāng)前允許A生產(chǎn)的產(chǎn)品數(shù)量,其初值為m,SBA表示當(dāng)前允許B生產(chǎn)的產(chǎn)品數(shù)量,其初值為n;另外,還需設(shè)置一個整數(shù)difference表示所銷售的A、B產(chǎn)品數(shù)量之差,而為了同步生產(chǎn)者和銷售者并
51、使銷售的A、B產(chǎn)品的件數(shù)-nA的件數(shù)B的件數(shù)m,還需要設(shè)置三個資源信號量,其中S對應(yīng)于倉庫中的總的產(chǎn)品量,SA對應(yīng)于倉庫中的A產(chǎn)品量,SB對應(yīng)于倉庫中的B產(chǎn)品量,它們的初值都為0. Semaphore SAB=m,SBA=n,S=0,SA=0,SB=0,mutex=1; process A( ) while(1) wait(SAB); Produce a product A; signal(SBA); /入庫操作,滿足出入庫操作互斥即可 wait(mutex); add the product A to the storehouse; signal(mutex); signal(SA); /入
52、庫產(chǎn)品A一件,所以給SA增值signal(S); /入庫產(chǎn)品一件,所以給S增值,S是倉庫中全部產(chǎn)品的數(shù)量 process B( ) while(1) /生產(chǎn)產(chǎn)品,-nA的件數(shù)B的件數(shù)m,方法同第4題 wait(SBA); Produce a product B; signal(SAB); /入庫操作,滿足出入庫操作互斥即可 wait(mutex); add the product A to the storehouse; signal(mutex); signal(SB); /入庫產(chǎn)品A一件,所以給SA增值 signal(S); /入庫產(chǎn)品一件,所以給S增值,S是倉庫中全部產(chǎn)品的數(shù)量 proc
53、ess C( ) while(1) wait(S); /首先檢查有無產(chǎn)品,無產(chǎn)品阻塞,有產(chǎn)品,下面操作將會取走一件產(chǎn)品,所以S減1 if(difference<=-n) wait(SA); / difference<=-n時只能取A產(chǎn)品一件,無A產(chǎn)品則需阻塞 /出庫操作,滿足出入庫操作互斥 wait(mutex);take a product A from storehouse; signal(mutex); difference+; /取A產(chǎn)品一件,difference+ else if(difference>=m) wait(SB); / difference>=m
54、時只能取B產(chǎn)品一件,無B產(chǎn)品則需阻塞 /出庫操作,滿足出入庫操作互斥 wait(mutex);take a product B from storehouse; signal(mutex); difference-; /取B產(chǎn)品一件,difference- else /-n<difference<m,即可以取產(chǎn)品A也可以取產(chǎn)品B,隨意取一件產(chǎn)品出來,之后再根據(jù)取得產(chǎn)品是A還是B進(jìn)行處理 /出庫操作,滿足出入庫操作互斥 wait(mutex);take a product A 或B from storehouse; signal(mutex); if(product_type=A)
55、/取的是產(chǎn)品A,則信號量SA減1,這里不可能發(fā)生沒有A產(chǎn)品,進(jìn)程C需要阻塞的情況wait(SA);difference+;/取A產(chǎn)品一件,difference+ else /取的是產(chǎn)品B,則信號量SB減1,這里不可能發(fā)生沒有B產(chǎn)品,進(jìn)程C需要阻塞的情況wait(SB);difference-;/取B產(chǎn)品一件,difference- Sell the product; main() cobegin A(); B(); C(); 11.某寺廟有小和尚和老和尚各若干人,水缸一只,由小和尚提水入缸給老和尚飲用。水缸可容水10桶,水取自同一口水井中。水井徑窄,每次僅能容一只水桶取水,水桶總數(shù)為3個。若每次入、取水僅為1桶,而且不可同時進(jìn)行。試用記錄型信號量機(jī)制寫出小和尚和老和尚的活動過程。互斥資源有水缸和水井,分別用mutex1和mutex2來互斥。水桶總數(shù)僅3只,由信號量count控制,信號量empty和full控制入水和出水量。semaphore mutex1,mutex2,empty,full,count; mutex1
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025浙江嘉興海寧長河水務(wù)有限責(zé)任公司招聘1人筆試歷年參考題庫附帶答案詳解
- 婚禮策劃工作方案
- 2025江蘇淮安鹽化學(xué)工業(yè)園有限公司招聘3人筆試歷年參考題庫附帶答案詳解
- 行政執(zhí)法資格考試題庫及答案
- 江西省贛州市興國縣2024-2025學(xué)年八年級下學(xué)期期末語文試題(含答案)
- 福建省泉州臺商區(qū)2024-2025學(xué)年七年級下學(xué)期期末生物試題(含答案)
- 高中一年級地理《服務(wù)業(yè)區(qū)位因素(二)》
- 買夢教學(xué)課件
- 黃山云海教學(xué)課件
- 微生物肥料教學(xué)課件
- 緩和醫(yī)療與護(hù)理課件
- 企業(yè)消防安全責(zé)任制模板
- 學(xué)堂在線 軍事理論 章節(jié)測試答案
- 2025屆黑龍江省哈爾濱四十七中學(xué)七年級英語第二學(xué)期期末統(tǒng)考試題含答案
- 人工智能通識課程開課方案
- 新生兒外周靜脈建立與管理
- 《工程勘察設(shè)計收費(fèi)標(biāo)準(zhǔn)》(2002年修訂本)
- TCGMA0330012018壓縮空氣站能效分級指南
- DB14-T 2550-2022廚房食品切配用具顏色標(biāo)識指南
- 保潔人員地面清潔標(biāo)準(zhǔn)作業(yè)規(guī)程
- 99S203消防水泵接合器安裝圖集
評論
0/150
提交評論