計(jì)算機(jī)操作系統(tǒng)教程第三版答案_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)教程第三版答案_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)教程第三版答案_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)教程第三版答案_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)教程第三版答案_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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、第一章 緒論1什么是操作系統(tǒng)的基本功能?答:操作系統(tǒng)的職能是管理和控制汁算機(jī)系統(tǒng)中的所有硬、軟件資源,合理地組織計(jì)算機(jī)工作流程,并為用戶提供一個(gè)良好的工作環(huán)境和友好的接口。操作系統(tǒng)的基本功能包括:處理機(jī)管理、存儲(chǔ)管理、設(shè)備管理、信息管理(文件系統(tǒng)管理)和用戶接口等。2什么是批處理、分時(shí)和實(shí)時(shí)系統(tǒng)?各有什么特征?答:批處理系統(tǒng)(batchprocessingsystem):操作員把用戶提交的作業(yè)分類,把一批作業(yè)編成一個(gè)作業(yè)執(zhí)行序列,由專門編制的監(jiān)督程序(monitor)自動(dòng)依次處理。其主要特征是:用戶脫機(jī)使用計(jì)算機(jī)、成批處理、多道程序運(yùn)行。分時(shí)系統(tǒng)(timesharingoperationsys

2、tem):把處理機(jī)的運(yùn)行時(shí)間分成很短的時(shí)間片,按時(shí)間片輪轉(zhuǎn)的方式,把處理機(jī)分配給各進(jìn)程使用。其主要特征是:交互性、多用戶同時(shí)性、獨(dú)立性。實(shí)時(shí)系統(tǒng)(realtimesystem):在被控對(duì)象允許時(shí)間范圍內(nèi)作出響應(yīng)。其主要特征是:對(duì)實(shí)時(shí)信息分析處理速度要比進(jìn)入系統(tǒng)快、要求安全可靠、資源利用率低。3多道程序(multiprogramming)和多重處理(multiprocessing)有何區(qū)別?答;多道程序(multiprogramming)是作業(yè)之間自動(dòng)調(diào)度執(zhí)行、共享系統(tǒng)資源,并不是真正地同時(shí)值行多個(gè)作業(yè);而多重處理(multiprocessing)系統(tǒng)配置多個(gè)CPU,能真正同時(shí)執(zhí)行多道程序。要有

3、效使用多重處理,必須采用多道程序設(shè)計(jì)技術(shù),而多道程序設(shè)計(jì)原則上不一定要求多重處理系統(tǒng)的支持。4討論操作系統(tǒng)可以從哪些角度出發(fā),如何把它們統(tǒng)一起來(lái)?答:討論操作系統(tǒng)可以從以下角度出發(fā):(1)操作系統(tǒng)是計(jì)算機(jī)資源的管理者;(2)操作系統(tǒng)為用戶提供使用計(jì)算機(jī)的界面;(3)用進(jìn)程管理觀點(diǎn)研究操作系統(tǒng),即圍繞進(jìn)程運(yùn)行過(guò)程來(lái)討論操作系統(tǒng)。上述這些觀點(diǎn)彼此并不矛盾,只不過(guò)代表了同一事物(操作系統(tǒng))站在不同的角度來(lái)看待。每一種觀點(diǎn)都有助于理解、分析和設(shè)計(jì)操作系統(tǒng)。第二章 作業(yè)管理和用戶接口1. 什么是作業(yè)?作業(yè)步?答:把在一次應(yīng)用業(yè)務(wù)處理過(guò)程中,從輸入開始到輸出結(jié)束,用戶要求計(jì)算機(jī)所做的有關(guān)該次業(yè)務(wù)處理的全部

4、工作稱為一個(gè)作業(yè)。作業(yè)由不同的順序相連的作業(yè)步組成。作業(yè)步是在一個(gè)作業(yè)的處理過(guò)程中,計(jì)算機(jī)所做的相對(duì)獨(dú)立的工作。如,編輯輸入是一個(gè)作業(yè)步,它產(chǎn)生源程序文件;編譯也是一個(gè)作業(yè)步,它產(chǎn)生目標(biāo)代碼文件。2. 作業(yè)由哪幾部分組成?各有什么功能?答:作業(yè)由三部分組成:程序、數(shù)據(jù)和作業(yè)說(shuō)明書。程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作,作業(yè)說(shuō)明書則體現(xiàn)用戶的控制意圖。3作業(yè)的輸入方式有哪幾種?各有何特點(diǎn)答:作業(yè)的輸入方式有5種:聯(lián)機(jī)輸入方式、脫機(jī)輸入方式、直接耦合方式、SPOOLING(Simultaneous Peripheral OperationsOnline)系統(tǒng)和網(wǎng)絡(luò)輸入方式,各有如下特點(diǎn):(1)聯(lián)

5、機(jī)輸入方式:用戶和系統(tǒng)通過(guò)交互式會(huì)話來(lái)輸入作業(yè)。(2)脫機(jī)輸入方式:又稱預(yù)輸入方式,利用低檔個(gè)人計(jì)算機(jī)作為外圍處理機(jī)進(jìn)行輸入處理,存儲(chǔ)在后備存儲(chǔ)器上,然后將此后援存儲(chǔ)器連接到高速外圍設(shè)備上和主機(jī)相連,從而在較短的時(shí)間內(nèi)完成作業(yè)的輸入工作。(3)直接耦合方式:把主機(jī)和外圍低檔機(jī)通過(guò)一個(gè)公用的大容量外存直接耦合起來(lái),從而省去了在脫機(jī)輸入中那種依靠人工干預(yù)宋傳遞后援存儲(chǔ)器的過(guò)程。(4)SPOOLING系統(tǒng):可譯為外圍設(shè)備同時(shí)聯(lián)機(jī)操作。在SPOOLING系統(tǒng)中,多臺(tái)外圍設(shè)備通過(guò)通道或DMA器件和主機(jī)與外存連接起來(lái),作業(yè)的輸入輸出過(guò)程由主機(jī)中的操作系統(tǒng)控制。(5)網(wǎng)絡(luò)輸入方式:網(wǎng)絡(luò)輸入方式以上述幾種輸入

6、方式為基礎(chǔ),當(dāng)用戶需要把在計(jì)算機(jī)網(wǎng)絡(luò)中某一臺(tái)主機(jī)上輸入的信息傳送到同一網(wǎng)中另一臺(tái)主機(jī)上進(jìn)行操作或執(zhí)行時(shí),就構(gòu)成了網(wǎng)絡(luò)輸入方式。4試述SPOOLING系統(tǒng)的工作原理。答:在SPOOLING系統(tǒng)中,多臺(tái)外圍設(shè)備通過(guò)通道或DMA器件和主機(jī)與外存連接起來(lái),作業(yè)的輸入輸出過(guò)程由主機(jī)中的操作系統(tǒng)控制。操作系統(tǒng)中的輸入程序包含兩個(gè)獨(dú)立的過(guò)程,一個(gè)過(guò)程負(fù)責(zé)從外部設(shè)備把信息讀入緩沖區(qū),另一個(gè)過(guò)程是寫過(guò)程,負(fù)責(zé)把緩沖區(qū)中的信息送入到外存輸入井中。在系統(tǒng)輸入模塊收到作業(yè)輸入請(qǐng)求后,輸入管理模塊中的讀過(guò)程負(fù)責(zé)將信息從輸入裝置讀入緩沖區(qū)。當(dāng)緩沖區(qū)滿時(shí),由寫過(guò)程將信息從緩沖區(qū)寫到外存輸入井中。讀過(guò)程和寫過(guò)程反復(fù)循環(huán),直到

7、一個(gè)作業(yè)輸入完畢。當(dāng)讀過(guò)程讀到一個(gè)硬件結(jié)束標(biāo)志后,系統(tǒng)再次驅(qū)動(dòng)寫過(guò)程把最后一批信息寫入外存并調(diào)用中斷處理程序結(jié)束該次輸入。然后,系統(tǒng)為該作業(yè)建立作業(yè)控制塊JCB,從而使輸入井中的作業(yè)進(jìn)入作業(yè)等待隊(duì)列,等待作業(yè)調(diào)度程序選中后進(jìn)入內(nèi)存。5作業(yè)說(shuō)明書和作業(yè)控制塊有何異同?答:作業(yè)說(shuō)明書主要包含三方面內(nèi)容:作業(yè)的基本描述、作業(yè)控制描述和資源要求描述。作業(yè)基本描述主要包括用戶名、作業(yè)名、使用的編程語(yǔ)言名、允許的最大處理時(shí)間等。而作業(yè)控制描述則大致包括作業(yè)在執(zhí)行過(guò)程中的控制方式,例如是脫機(jī)控制還是聯(lián)機(jī)控制、各作業(yè)步的操作順序以及作業(yè)不能正常執(zhí)行時(shí)的處理等。資源要求描述包括要求內(nèi)存大小、外設(shè)種類和臺(tái)數(shù)、處理

8、機(jī)優(yōu)先級(jí)、所需處理時(shí)間、所需庫(kù)函數(shù)或?qū)嵱贸绦虻取6鳂I(yè)控制塊是作業(yè)說(shuō)明書在系統(tǒng)中生成的一張表格,該表格登記該作業(yè)所要求的資源情況、預(yù)計(jì)執(zhí)行時(shí)間和執(zhí)行優(yōu)先級(jí)等。從而,操作系統(tǒng)通過(guò)該表了解到作業(yè)要求,并分配資源和控制作業(yè)中程序和數(shù)據(jù)的編譯、鏈接、裝入和執(zhí)行等。6操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別是什么?答:操作系統(tǒng)為用戶提供兩個(gè)接口,一個(gè)是系統(tǒng)為用戶提供的各種命令接口,用戶利用這些操作命令來(lái)組織和控制作業(yè)的執(zhí)行或管理計(jì)算機(jī)系統(tǒng)。另一個(gè)接口是系統(tǒng)調(diào)用,編程人員使用系統(tǒng)調(diào)用來(lái)請(qǐng)求操作系統(tǒng)提供服務(wù),例如申請(qǐng)和釋放外設(shè)等類資源、控制程序的執(zhí)行速度等。7作業(yè)控制方式有哪幾種?調(diào)查你周圍的計(jì)算機(jī)的作業(yè)控制

9、方式。答:作業(yè)控制的主要方式有兩種:脫機(jī)方式和聯(lián)機(jī)方式。脫機(jī)控制方式利用作業(yè)控制語(yǔ)言來(lái)編寫表示用戶控制意圖的作業(yè)控制程序,也就是作業(yè)說(shuō)明書。作業(yè)控制語(yǔ)言的語(yǔ)句就是作業(yè)控制命令。不同的批處理系統(tǒng)提供不同的作業(yè)控制語(yǔ)言。聯(lián)機(jī)控制方式不同于脫機(jī)控制方式,它不要求用戶填寫作業(yè)說(shuō)明書,系統(tǒng)只為用戶提供一組鍵盤或其他操作方式的命令。用戶使用操作系統(tǒng)提供的操作命令和系統(tǒng)會(huì)話,交互地控制程序執(zhí)行和管理計(jì)算機(jī)系統(tǒng)。8什么是系統(tǒng)調(diào)用?系統(tǒng)調(diào)用與一般用戶程序有什么區(qū)別?與庫(kù)函數(shù)和實(shí)用程序又有什么區(qū)別?答:系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口。編程人員利用系統(tǒng)調(diào)用,在源程序一級(jí)動(dòng)態(tài)請(qǐng)求和釋放系統(tǒng)資源,調(diào)用系統(tǒng)中

10、已有的系統(tǒng)功能來(lái)完成那些與機(jī)器硬件部分相關(guān)的工作以及控制程序的執(zhí)行速度等。因此,系統(tǒng)調(diào)用像一個(gè)黑箱子那樣,對(duì)用戶屏蔽了操作系統(tǒng)的具體動(dòng)作而只提供有關(guān)的功能。它與一般用戶程序、庫(kù)函數(shù)和實(shí)用程序的區(qū)別是:系統(tǒng)調(diào)用程序是在核心態(tài)執(zhí)行,調(diào)用它們需要一個(gè)類似于硬件中斷處理的中斷處理機(jī)制來(lái)提供系統(tǒng)服務(wù)。9簡(jiǎn)述系統(tǒng)調(diào)用的實(shí)現(xiàn)過(guò)程。答;用戶在程序中使用系統(tǒng)調(diào)用,給出系統(tǒng)凋用名和函數(shù)后,即產(chǎn)生一條相應(yīng)的陷入指令,通過(guò)陷入處理機(jī)制調(diào)用服務(wù),引起處理機(jī)中斷,然后保護(hù)處理機(jī)現(xiàn)場(chǎng),取系統(tǒng)調(diào)用功能號(hào)并尋找子程序入口,通過(guò)入口地址表來(lái)調(diào)用系統(tǒng)子程序,然后返回用戶程序繼續(xù)執(zhí)行。10.為什么說(shuō)分時(shí)系統(tǒng)沒有作業(yè)的概念?答:因?yàn)樵?/p>

11、分時(shí)系統(tǒng)中,每個(gè)用戶得到的時(shí)間片有限,用戶的程序和數(shù)據(jù)信息直接輸入到內(nèi)存工作區(qū)中和其他程序一起搶占系統(tǒng)資源投入執(zhí)行,而不必進(jìn)入外存輸入井等待作業(yè)調(diào)度程序選擇。因此,分時(shí)系統(tǒng)沒有作業(yè)控制表,也沒有作業(yè)調(diào)度程序。11.試述UNIX的主要特點(diǎn)。答:UNIX的主要特點(diǎn)是:(1)UNIX系統(tǒng)是一個(gè)可供多用戶同時(shí)操作的交互式分時(shí)操作系統(tǒng),(2)為了向用戶提供交互式功能和使得用戶可以利用UNIX系統(tǒng)的功能,UNIX系統(tǒng)向用戶提供了兩種友好的界面或接口:系統(tǒng)調(diào)用和命令;(3)UNIX系統(tǒng)具有一個(gè)可裝卸的分層樹型結(jié)構(gòu)文件系統(tǒng),該文件系統(tǒng)使用方便、搜索簡(jiǎn)單,(4)UNIX系統(tǒng)把所有外部設(shè)備都當(dāng)成文件,并分別賦予它

12、們對(duì)應(yīng)的文件名。從而,用戶可以像使用文件那樣使用任一設(shè)備而不必了解該設(shè)備的內(nèi)部特性,這既簡(jiǎn)化了系統(tǒng)設(shè)計(jì),又方便了用戶;(5)UNIX系統(tǒng)核心程序的絕大部分源代碼和系統(tǒng)上的支持軟件都用C語(yǔ)言編寫。且UNIX系統(tǒng)是一個(gè)開放式系統(tǒng),即具有統(tǒng)一的用戶接口,使得UNIX用戶的應(yīng)用程序可在不同的執(zhí)行環(huán)境下運(yùn)行。 正是由于UNIX具有上述這些特點(diǎn),使得UNIX系統(tǒng)得到了廣泛的應(yīng)用和發(fā)展。12UNIX操作系統(tǒng)為用戶提供哪些接口?試舉例說(shuō)明。答;UNIX系統(tǒng)為用戶提供兩個(gè)接口,即面向操作命令的接口Shell和面向編程用戶的接口:系統(tǒng)調(diào)用。常見的Shell命令如:login,logout,vi,emacs,印,r

13、m,ls,cc,link,adduser,chown,dbx,date等;常見的系統(tǒng)調(diào)用如:ioctl,read,write,open,close,creat,execl,flock,stat,mount,fork,wait,exit,socket等。13在你周圍裝有UNIX系統(tǒng)的計(jì)算機(jī)上,練習(xí)使用后臺(tái)命令、管道命令等Shell的基本命令。答:例1:用Shell語(yǔ)言編制一Shell程序,該程序在用戶輸入年、月之后,自動(dòng)打印輸出該年該月的日歷:echo"Please input the month:”read monthecho''Please input the ye

14、ar:”read year第三章 用戶管理和配置管理1有A說(shuō),一個(gè)進(jìn)程是由偽處理機(jī)執(zhí)行的一個(gè)程序,這話對(duì)嗎?為什么?答:對(duì)。因?yàn)閭翁幚頇C(jī)的概念只有在執(zhí)行時(shí)才存在,它表示多個(gè)進(jìn)程在單處理機(jī)上并發(fā)執(zhí)行的二個(gè)調(diào)度單位。因此,盡管進(jìn)程是動(dòng)態(tài)概念,是程序的執(zhí)行過(guò)程,但是,在多個(gè)進(jìn)程并行執(zhí)行時(shí),仍然只有一個(gè)進(jìn)程占據(jù)處理機(jī)執(zhí)行,而其他并發(fā)進(jìn)程則處于就緒或等待狀態(tài)。這些并發(fā)進(jìn)程就相當(dāng)于由偽處理機(jī)執(zhí)行的程序。2試比較進(jìn)程和程序的區(qū)別。答:(1)進(jìn)程是一個(gè)動(dòng)態(tài)概念,而程序是一個(gè)靜態(tài)概念,程序是指令的有序集合,無(wú)執(zhí)行含義,進(jìn)程則強(qiáng)調(diào)執(zhí)行的過(guò)程。(2)進(jìn)程具有并行特征(獨(dú)立性,異步性),程序則沒有。(3)不同的進(jìn)程可

15、以包含同一個(gè)程序,同一程序在執(zhí)行中也可以產(chǎn)生多個(gè)進(jìn)程。3我們說(shuō)程序的并發(fā)執(zhí)行將導(dǎo)致最終結(jié)果失去封閉性廣這話對(duì)所有的程序都成立嗎?舉例說(shuō)明.答:并非所有程序均成立。如:Beginlocal“ ZK:10print(x)End上述程序中x是內(nèi)部變量,不可能被外部程序訪問,因此這段程序的運(yùn)行不會(huì)受外部環(huán)境影響。4試比較作業(yè)和進(jìn)程的區(qū)別。答:一個(gè)進(jìn)程是一個(gè)程序?qū)δ硞€(gè)數(shù)據(jù)集的執(zhí)行過(guò)程,是分配資源的基本單位。作業(yè)是用于需要計(jì)算機(jī)完成某項(xiàng)任務(wù),而要求計(jì)算機(jī)所做工作的集合。一個(gè)作業(yè)的完成要經(jīng)過(guò)作業(yè)提交,作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成4個(gè)階段。而進(jìn)程是已提交完畢的程序所執(zhí)行過(guò)程的描述,足資源分配的基本單位。其主要

16、區(qū)別關(guān)系如下:(1)作業(yè)是用戶向計(jì)算機(jī)提交任務(wù)的任務(wù)實(shí)體。在用戶向計(jì)算機(jī)提交作業(yè)之后,系統(tǒng)將存儲(chǔ)在外存中的作業(yè)等待隊(duì)列中等待執(zhí)行。而進(jìn)程則是完成用戶任務(wù)的執(zhí)行實(shí)體,是向系統(tǒng)申請(qǐng)分配資源的基本單位。任一進(jìn)程,只要它被創(chuàng)建,總有相應(yīng)的部分存在于內(nèi)存中。(2)一個(gè)作業(yè)可由多個(gè)進(jìn)程組成。且必須至少由一個(gè)進(jìn)程組成,但反過(guò)來(lái)不成立。(3)作業(yè)的概念主要用在批處理系統(tǒng)中。像Unix這樣的分時(shí)系統(tǒng)中,則沒有作業(yè)概念。而進(jìn)程的概念則用在幾乎所有的多道程序系統(tǒng)中。5UNIXSystem V中,系統(tǒng)程序所對(duì)應(yīng)的正文段未被考慮成進(jìn)程上下文的一部分,為什么?答:因?yàn)橄到y(tǒng)程序的代碼被用戶程序所共享,因此如果每個(gè)進(jìn)程在保存

17、進(jìn)程上下文時(shí),都將系統(tǒng)程序代碼放到其進(jìn)程上下文中,則大大浪費(fèi)了資源。因此系統(tǒng)程序的代碼不放在進(jìn)程上下文中,而是統(tǒng)一放在核心程序所處的內(nèi)存中。6什么是臨界區(qū)?試舉一臨界區(qū)的例子。答:臨界區(qū)是指不允許多個(gè)并發(fā)進(jìn)程交叉執(zhí)行的一段程序。它是由于不同并發(fā)進(jìn)程的程序段共享公用數(shù)據(jù)或公用數(shù)據(jù)變量而引起的。所以它又被稱為訪問公用數(shù)據(jù)的那段程序。例如:getspace:Begin local gtop=top-1Endrelease(ad):Begintoptop十1stacktopadEnd7并發(fā)進(jìn)程間的制約有哪兩種?引起制約的原因是什么?答:并發(fā)進(jìn)程所受的制約有兩種:直接制約和間接制約。直接制約是由并發(fā)進(jìn)程

18、互相共享對(duì)方的私有資源所引起的。間接制約是由競(jìng)爭(zhēng)共有資源而引起的。8什么是進(jìn)程間的互斥?什么是進(jìn)程間同步?答:進(jìn)程間的互斥是指:一組并發(fā)進(jìn)程中的一個(gè)或多個(gè)程序段,因共享某一公有資源而導(dǎo)致它們必須以一個(gè)不許交叉執(zhí)行的單位執(zhí)行,即不允許兩個(gè)以上的共享該資源的并發(fā)進(jìn)程同時(shí)進(jìn)入臨界區(qū)。進(jìn)程間的同步是指:異步環(huán)境下的一組并發(fā)進(jìn)程因直接制約互相發(fā)送消息而進(jìn)行互相合作、互相等待,各進(jìn)程按一定的速度執(zhí)行的過(guò)程。9試比較P,V原語(yǔ)法和加鎖法實(shí)現(xiàn)進(jìn)程間互斥的區(qū)別。答:互斥的加鎖實(shí)現(xiàn)是這樣的:當(dāng)某個(gè)進(jìn)程進(jìn)入臨界區(qū)之后,它將鎖上臨界區(qū),直到它退出臨界區(qū)時(shí)為止。并發(fā)進(jìn)程在申請(qǐng)進(jìn)入臨界區(qū)時(shí),首先測(cè)試該臨界區(qū)是否是上鎖的,

19、如果該臨界區(qū)已被鎖住,則該進(jìn)程要等到該臨界區(qū)開鎖之后才有可能獲得臨界區(qū)。但是加鎖法存在如下弊端:(1)循環(huán)測(cè)試鎖定位將損耗較多的CPU計(jì)算時(shí)間; (2)產(chǎn)生不公平現(xiàn)象。為此,P,V原語(yǔ)法采用信號(hào)量管理相應(yīng)臨界區(qū)的公有資源,信號(hào)量的數(shù)值僅能由P,V原語(yǔ)操作改變,而P,V原語(yǔ)執(zhí)行期間不允許中斷發(fā)生。其過(guò)程是這樣的:當(dāng)某個(gè)進(jìn)程正在臨界區(qū)內(nèi)執(zhí)行時(shí),其他進(jìn)程如果執(zhí)行了P原語(yǔ),則該進(jìn)程并不像lock時(shí)那樣因進(jìn)不了臨界區(qū)而返回到lock的起點(diǎn),等以后重新執(zhí)行測(cè)試,而是在等待隊(duì)列中等待由其他進(jìn)程做V原語(yǔ)操作釋放資源后,進(jìn)入臨界區(qū),這時(shí)P原語(yǔ)才算真正結(jié)束。若有多個(gè)進(jìn)程做P原語(yǔ)操作而進(jìn)入等待狀態(tài)之后,一旦有V原語(yǔ)

20、釋放資源,則等待進(jìn)程中的一個(gè)進(jìn)入臨界區(qū),其余的繼續(xù)等待。總之,加鎖法是采用反復(fù)測(cè)試lock而實(shí)現(xiàn)互斥的,存在CPU浪費(fèi)和不公平現(xiàn)像,P,V原語(yǔ)使用了信號(hào)量,克服了加鎖法的弊端。14.設(shè)有5個(gè)哲學(xué)家,共享一張放有五把椅子的桌子,每人分得一把椅子。但是,桌子上總共只有5支筷子,在每人兩邊分開各放一支。哲學(xué)家們?cè)诙亲羽囸I時(shí)才試圖分兩次從兩邊拾起筷子就餐。條件:(1) 只有拿到兩支筷子時(shí),哲學(xué)家才能吃飯。(2) 如果筷子已在他人手上,則該哲學(xué)家必須等待到他人吃完之后才能拿到筷子。(3) 任一哲學(xué)家在自己未拿到兩支筷子吃飯之前,決不放下自己手中的筷子。試:(1)描述一個(gè)保證不會(huì)出現(xiàn)兩個(gè)鄰座同時(shí)要求吃飯的

21、通信算法。(2)描述一個(gè)既沒有兩鄰座同時(shí)吃飯,又沒有人餓死(永遠(yuǎn)拿不到筷子)的算法。(3) 在什么情況下,5 個(gè)哲學(xué)家全部吃不上飯?解答:(1)、設(shè)信號(hào)量c0c4,初始值均為1,分別表示i號(hào)筷子被拿(i=0,1,2,3,4),send(i):第i個(gè)哲學(xué)家要吃飯beginP(ci);P(ci+1 mod 5);eat;V(ci+1 mod 5);V(ci);End;該過(guò)程能保證兩鄰座不同時(shí)吃飯,但會(huì)出現(xiàn)5個(gè)哲學(xué)家一人拿一只筷子,誰(shuí)也吃不上飯的死鎖情況.(2)、解決的思路如下:讓奇數(shù)號(hào)的哲學(xué)家先取右手邊的筷子,讓偶數(shù)號(hào)的哲學(xué)家先取左手邊的筷子.這樣,任何一個(gè)哲學(xué)家拿到一只筷子之后,就已經(jīng)阻止了他鄰

22、座的一個(gè)哲學(xué)家吃飯的企圖,除非某個(gè)哲學(xué)家一直吃下去,否則不會(huì)有人會(huì)餓死.send(i):第i個(gè)哲學(xué)家要吃飯BeginIf i mod 2=0 thenP(ci),P(ci+1 mod 5)eat;V(ci,ci+1 mod 5)Else P(ci+1 mod 5)P(ci)EatV(ci+1 mod 5)V(ci)End15什么是線程?試述線程與進(jìn)程的區(qū)別,答;線程是在進(jìn)程內(nèi)用于調(diào)度和占有處理機(jī)的基本單位,它由線程控制表、存儲(chǔ)線程上下文的用戶棧以及核心棧組成。線程可分為用戶級(jí)線程、核心級(jí)線程以及用戶核心混合型線程等類型。其中用戶級(jí)線程在用戶態(tài)下執(zhí)行,CPU調(diào)度算法和各線程優(yōu)先級(jí)都由用戶設(shè)置,與

23、操作系統(tǒng)內(nèi)核無(wú)關(guān)。核心級(jí)線程的調(diào)度算法及線程優(yōu)先級(jí)的控制權(quán)在操作系統(tǒng)內(nèi)核?;旌闲途€程的控制權(quán)則在用戶和操作系統(tǒng)內(nèi)核二者。線程與進(jìn)程的主要區(qū)別有:(1)進(jìn)程是資源管理的基本單位,它擁有自己的地址空間和各種資源,例如內(nèi)存空間、外部設(shè)備等;線程只是處理機(jī)調(diào)度的基本單位,它只和其他線程一起共享進(jìn)程資源,但自己沒有任何資源。(2)以進(jìn)程為單位進(jìn)行處理機(jī)切換和調(diào)度時(shí),由于涉及到資源轉(zhuǎn)移以及現(xiàn)場(chǎng)保護(hù)等問題,將導(dǎo)致處理機(jī)切換時(shí)間變長(zhǎng),資源利用率降低。以線程為單位進(jìn)行處理機(jī)切換和調(diào)度時(shí),由于不發(fā)生資源變化,特別是地址空間的變化,處理機(jī)切換的時(shí)間較短,從而處理機(jī)效率也較高。(3)對(duì)用戶來(lái)說(shuō),多線程可減少用戶的等待

24、時(shí)間。提高系統(tǒng)的響應(yīng)速度。例如,當(dāng)一個(gè)進(jìn)程需要對(duì)兩個(gè)不同的服務(wù)器進(jìn)行遠(yuǎn)程過(guò)程凋用時(shí),對(duì)于無(wú)線程系統(tǒng)的操作系統(tǒng)來(lái)說(shuō)需要順序等待兩個(gè)不同調(diào)用返回結(jié)果后才能繼續(xù)執(zhí)行,且在等待中容易發(fā)生進(jìn)程調(diào)度。對(duì)于多線程系統(tǒng)而言,則可以在同一進(jìn)程中使用不同的線程同時(shí)進(jìn)行遠(yuǎn)程過(guò)程調(diào)用,從而縮短進(jìn)程的等待時(shí)間。(4)線程和進(jìn)程一樣,都有自己的狀態(tài)也有相應(yīng)的同步機(jī)制,不過(guò),由于線程沒有單獨(dú)的數(shù)據(jù)和程序空間,因此,線程不能像進(jìn)程的數(shù)據(jù)與程序那樣,交換到外存存儲(chǔ)空間。從而線程沒有掛起狀態(tài)。(5)進(jìn)程的調(diào)度、同步等控制大多由操作系統(tǒng)內(nèi)核完成,而線程的控制既可以由操作系統(tǒng)內(nèi)核進(jìn)行,也可以由用戶控制進(jìn)行。第四章 進(jìn)程管理1什么是分

25、級(jí)調(diào)度?分時(shí)系統(tǒng)中有作業(yè)調(diào)度的概念嗎?如果沒有,為什么?答:處理機(jī)調(diào)度問題實(shí)際上也是處理機(jī)的分配問題。顯然只有那些參與競(jìng)爭(zhēng)處理及所必需的資源都已得到滿足的進(jìn)程才能享有競(jìng)爭(zhēng)處理機(jī)的資格。這時(shí)它們處于內(nèi)存就緒狀態(tài)。這些必需的資源包括內(nèi)存、外設(shè)及有關(guān)數(shù)據(jù)結(jié)構(gòu)等。從而,在進(jìn)程有資格競(jìng)爭(zhēng)處理機(jī)之前,作業(yè)調(diào)度程序必須先調(diào)用存儲(chǔ)管理、外設(shè)管理程序,并按一定的選擇順序和策略從輸入井中選擇出幾個(gè)處于后備狀態(tài)的作業(yè),為它們分配資源和創(chuàng)建進(jìn)程,使它們獲得競(jìng)爭(zhēng)處理機(jī)的資格。另外,由于處于執(zhí)行狀態(tài)下的作業(yè)一般包括多個(gè)進(jìn)程,而在單機(jī)系統(tǒng)中,每一時(shí)刻只能有一個(gè)進(jìn)程占有處理機(jī),這樣,在外存中,除了處于后備狀態(tài)的作業(yè)外,還存在

26、處于就緒狀態(tài)而等待得到內(nèi)存的作業(yè)。我們需要有一定的方法和策略為這部分作業(yè)分配空間。因此處理機(jī)調(diào)度需要分級(jí)。一般來(lái)說(shuō),處理機(jī)調(diào)度可分為4級(jí);(1)作業(yè)調(diào)度: 又稱宏觀調(diào)度,或高級(jí)調(diào)度。(2)交換調(diào)度:又稱中級(jí)調(diào)度。其主要任務(wù)是按照給定的原則和策略,將處于外存交換區(qū)中的就緒態(tài)或等待狀態(tài)或內(nèi)存等待狀態(tài)的進(jìn)程交換到外存交換區(qū)。交換調(diào)度主要涉及到內(nèi)存管理與擴(kuò)充。因此在有些書本中也把它歸入內(nèi)存管理部分。(3)進(jìn)程調(diào)度:又稱微觀調(diào)度或低級(jí)調(diào)度。其主要任務(wù)是按照某種策略和方法選取一個(gè)處于就緒狀態(tài)的進(jìn)程占用處理機(jī)。在確立了占用處理機(jī)的進(jìn)程之后,系統(tǒng)必須進(jìn)行進(jìn)程上下文切換以建立與占用處理機(jī)進(jìn)程相適應(yīng)的執(zhí)行環(huán)境。(

27、4)線程調(diào)度:進(jìn)程中相關(guān)堆棧和控制表等的調(diào)度。在分時(shí)系統(tǒng)中,一般不存在作業(yè)調(diào)度,而只有線程調(diào)度、進(jìn)程調(diào)度和交換調(diào)度。這是因?yàn)樵诜謺r(shí)系統(tǒng)中,為了縮短響應(yīng)時(shí)間,作業(yè)不是建立在外存,而是直接建立在內(nèi)存中。在分時(shí)系統(tǒng)中,一旦用戶和系統(tǒng)的交互開始,用戶馬上要進(jìn)行控制。因此,分時(shí)系統(tǒng)中沒有作業(yè)提交狀態(tài)和后備狀態(tài)。分時(shí)系統(tǒng)的輸入信息經(jīng)過(guò)終端緩沖區(qū)為系統(tǒng)直接接收,或立即處理,或經(jīng)交換調(diào)度暫存外存中。2試述作業(yè)調(diào)度的主要功能。答: 作業(yè)調(diào)度的主要功能是:按一定的原則對(duì)外存輸入井上的大量后備作業(yè)進(jìn)行選擇,給選出的作業(yè)分配內(nèi)存、輸入輸出設(shè)備等必要的資源,并建立相應(yīng)進(jìn)程,使該作業(yè)的相關(guān)進(jìn)程獲得競(jìng)爭(zhēng)處理機(jī)的權(quán)利。另外,

28、當(dāng)作業(yè)執(zhí)行完畢時(shí),還負(fù)責(zé)回收系統(tǒng)資源。3作業(yè)調(diào)度的性能評(píng)價(jià)標(biāo)準(zhǔn)有哪些?這些性能評(píng)價(jià)標(biāo)準(zhǔn)在任何情況下都能反映調(diào)度策略的優(yōu)劣嗎?答:對(duì)于批處理系統(tǒng),由于主要用于計(jì)算,因而對(duì)于作業(yè)的周轉(zhuǎn)時(shí)間要求較高。從而作業(yè)的平均周轉(zhuǎn)時(shí)間或平均帶權(quán)周轉(zhuǎn)時(shí)間被用來(lái)衡量調(diào)度程序的優(yōu)劣。但對(duì)于分時(shí)系統(tǒng)來(lái)說(shuō),平均響應(yīng)時(shí)間又被用來(lái)衡量調(diào)度策略的優(yōu)劣。對(duì)于分時(shí)系統(tǒng), 除了要保證系統(tǒng)吞吐量大、資源利用率高之外,還應(yīng)保證用戶能夠容忍的響應(yīng)時(shí)間。因此,在分時(shí)系統(tǒng)中,僅僅用周轉(zhuǎn)時(shí)間或帶權(quán)周轉(zhuǎn)時(shí)間來(lái)衡量調(diào)度性能是不夠的。對(duì)于實(shí)時(shí)系統(tǒng), 衡量調(diào)度算法優(yōu)劣的主要標(biāo)志則是滿足用戶要求的時(shí)限時(shí)間。4進(jìn)程調(diào)度的功能有哪些?答:進(jìn)程調(diào)度的功能有:(

29、1)記錄和保存系統(tǒng)中所有進(jìn)程的執(zhí)行情況; (2)選擇占有處理機(jī)的進(jìn)程;(3)進(jìn)行進(jìn)程上下文切換。5進(jìn)程調(diào)度的時(shí)機(jī)有哪幾種?答:進(jìn)程調(diào)度的時(shí)機(jī)有:(1)正在執(zhí)行的進(jìn)程執(zhí)行完畢。這時(shí)如果不選擇新的就緒進(jìn)程執(zhí)行,將浪費(fèi)處理機(jī)資源。(2)執(zhí)行中進(jìn)程自己調(diào)用阻塞原語(yǔ)將自己阻塞起來(lái)進(jìn)入睡眠等待狀態(tài)。(3)執(zhí)行中進(jìn)程調(diào)用了P原語(yǔ)操作,從而因資源不足而被阻塞:或調(diào)用了V原語(yǔ)操作激活了等待資源的進(jìn)程隊(duì)列。(4)執(zhí)行中進(jìn)程提出IO請(qǐng)求后被阻塞。(5)在分時(shí)系統(tǒng)中時(shí)間片已經(jīng)用完。(6)在執(zhí)行完系統(tǒng)調(diào)用等系統(tǒng)程序后返回用戶程序時(shí),可看做系統(tǒng)進(jìn)程執(zhí)行完畢,從而調(diào)度選擇一新的用戶進(jìn)程執(zhí)行。(7)在CPU執(zhí)行方式是可剝奪時(shí)

30、,還有:就緒隊(duì)列中的某進(jìn)程的優(yōu)先級(jí)變得高于當(dāng)前執(zhí)行進(jìn)程的優(yōu)先級(jí),從而也將引發(fā)進(jìn) 程調(diào)度。6進(jìn)程上下文切換由哪幾部分組成?描述進(jìn)程上下文切換過(guò)程。答:進(jìn)程上下文切換由以下4個(gè)步驟組成;(1)決定是否作上下文切換以及是否允許作上下文切換。包括對(duì)進(jìn)程調(diào)度原因的檢查分析,以及當(dāng)前執(zhí)行進(jìn)程的資格和CPU執(zhí)行方式的檢查等。在操作系統(tǒng)中,上下文切換程序并不是每時(shí)每刻都在檢查和分析是否可作上下文切換,它們?cè)O(shè)置有適當(dāng)?shù)臅r(shí)機(jī)。(2)保存當(dāng)前執(zhí)行進(jìn)程的上下文。這里所說(shuō)的當(dāng)前執(zhí)行進(jìn)程,實(shí)際上是指調(diào)用上下文切換程序之前的執(zhí)行進(jìn)程。如果上下文切換不是被那個(gè)當(dāng)前執(zhí)行進(jìn)程所調(diào)用,且不屬于該進(jìn)程,則所保存的上下文應(yīng)是先前執(zhí)行進(jìn)

31、程的上下文,或稱為“老”進(jìn)程上下文。顯然,上下文切換程序不能破壞“老”進(jìn)程的上下文結(jié)構(gòu)。(3)使用進(jìn)程調(diào)度算法,選擇一處于就緒狀態(tài)的進(jìn)程。(4)恢復(fù)或裝配所選進(jìn)程的上下文,將CPU控制權(quán)交到所選進(jìn)程手中。7為什么說(shuō)在進(jìn)程上下文切換過(guò)程中,上下文切換程序不能破壞“老”進(jìn)程的上下文結(jié)構(gòu)?答: 因?yàn)槿绻谶M(jìn)程上下文切換中破壞了老的進(jìn)程上下文,等到CPU調(diào)度到該老進(jìn)程執(zhí)行時(shí),就不能正確地恢復(fù)其停止執(zhí)行前的狀態(tài)了。第五章 處理器管理1. 存儲(chǔ)管理的主要功能是什么?答:存儲(chǔ)管理的主要功能包括以下幾點(diǎn):(1)在硬件的支持下完成統(tǒng)一管理內(nèi)存和外存之間數(shù)據(jù)和程序段自動(dòng)交換的虛擬存儲(chǔ)(2)將多個(gè)虛存的一維線性空間

32、或多維線性空間變換到內(nèi)存的唯一的一維物理線性地(3)控制內(nèi)外存之間的數(shù)據(jù)傳輸。(4)實(shí)現(xiàn)內(nèi)存的分配和回收。(5)實(shí)現(xiàn)內(nèi)存信息的共享與保護(hù)。2什么是虛擬存儲(chǔ)器?其特點(diǎn)是什么?答:由進(jìn)程中的目標(biāo)代碼、數(shù)據(jù)等的虛擬地址組成的虛擬空間稱為虛擬存儲(chǔ)器。虛擬存儲(chǔ)器不考慮物理存儲(chǔ)器的大小和信息存放的實(shí)際位置,只規(guī)定每個(gè)進(jìn)程中相互關(guān)聯(lián)信息的相對(duì)位置。每個(gè)進(jìn)程都擁有自己的虛擬存儲(chǔ)器,且虛擬存儲(chǔ)器的容量是由計(jì)算機(jī)的地址結(jié)構(gòu)和尋址方式來(lái)確定。實(shí)現(xiàn)虛擬存儲(chǔ)器要求有相應(yīng)的地址轉(zhuǎn)換機(jī)構(gòu),以便把指令的虛擬地址變換為實(shí)際物理地址;另外,由于內(nèi)存空間較小,進(jìn)程只有部分內(nèi)容存放于內(nèi)存中,待執(zhí)行時(shí)根據(jù)需要再調(diào)指令入內(nèi)存。3實(shí)現(xiàn)地址

33、重定位的方法有哪幾類?答:實(shí)現(xiàn)地址重定位的方法有兩種:靜態(tài)地址重定位和動(dòng)態(tài)地址重定位。(1)靜態(tài)地址重定位是在虛空間程序執(zhí)行之前由裝配程序完成地址映射工作。靜態(tài)重定位的優(yōu)點(diǎn)是不需要硬件支持,但是用靜態(tài)地址重定位方法進(jìn)行地址變換無(wú)法實(shí)現(xiàn)虛擬存儲(chǔ)器。靜態(tài)重定位的另一個(gè)缺點(diǎn)是必須占用連續(xù)的內(nèi)存空間和難以做到程序和數(shù)據(jù)的共享。(2)動(dòng)態(tài)地址重定位是在程序執(zhí)行過(guò)程中,在CPU訪問內(nèi)存之前由硬件地址變換機(jī)構(gòu)將要訪問的程序或數(shù)據(jù)地址轉(zhuǎn)換成內(nèi)存地址。動(dòng)態(tài)地址重定位的主要優(yōu)點(diǎn)有:可以對(duì)內(nèi)存進(jìn)行非連續(xù)分配。動(dòng)態(tài)重定位提供了實(shí)現(xiàn)虛擬存儲(chǔ)器的基礎(chǔ)。動(dòng)態(tài)重定位有利于程序段的共享。形式化描述:略。4常用的內(nèi)存信息保護(hù)方法

34、有哪幾種?它們各自的特點(diǎn)是什么?答:常用的內(nèi)存保護(hù)方法有硬件法、軟件法和軟硬件結(jié)合保護(hù)法三種。上下界保護(hù)法是一種常用的硬件保護(hù)法。上下界存儲(chǔ)保護(hù)技術(shù)要求為每個(gè)進(jìn)程設(shè)置對(duì)上下界寄存器。上下界寄存器中裝有被保護(hù)程序和數(shù)據(jù)段的起始地址和終止地址。在程序執(zhí)行過(guò)程中,在對(duì)內(nèi)存進(jìn)行訪問操作時(shí)首先進(jìn)行訪問地址合法性檢查,即檢查經(jīng)過(guò)重定位之后的內(nèi)存地址是否在上、下界寄存器所規(guī)定的范圍之內(nèi)。若在規(guī)定的范圍之內(nèi),則訪問是合法的;否則是非法的,并產(chǎn)生訪問越界中斷。保護(hù)鍵法也是一種常用的軟件存儲(chǔ)保護(hù)法。保護(hù)鍵法為每個(gè)被保護(hù)存儲(chǔ)塊分配一個(gè)單獨(dú)的保護(hù)鍵。在程序狀態(tài)字中則設(shè)置相應(yīng)的保護(hù)鍵開關(guān)字段,對(duì)不同的進(jìn)程賦予不同的開關(guān)

35、代碼以和被保護(hù)的存儲(chǔ)塊中的保護(hù)鍵匹配。保護(hù)鍵可以沒臂成對(duì)讀寫同時(shí)保護(hù)的或只對(duì)讀寫進(jìn)行單項(xiàng)保護(hù)的。如果開關(guān)字段與保護(hù)鍵匹配或存儲(chǔ)塊未受到保護(hù),則訪問該存儲(chǔ)塊是允許的,否則將產(chǎn)生訪問出錯(cuò)中斷。另外一種常用的硬軟件內(nèi)存保護(hù)方式是:界限存儲(chǔ)器與CPU的用戶態(tài),核心態(tài)相結(jié)合的保護(hù)方式。在這種保護(hù)方式下,用戶態(tài)進(jìn)程只能訪問那些在界限寄存器所規(guī)定范圍內(nèi)的內(nèi)存部分,而核心態(tài)進(jìn)程則可以訪問整個(gè)內(nèi)存地址空間。5如果把DOS的執(zhí)行模式改為保護(hù)模式,起碼應(yīng)做怎樣的修改?答:如果要把DOS的執(zhí)行模式改成保護(hù)模式,起碼要為每一個(gè)進(jìn)程設(shè)置一對(duì)上下界寄存器。上下界寄存器中裝有被保護(hù)程序和數(shù)據(jù)段的起始地址和終止地址。在程序執(zhí)行

36、過(guò)程中,在對(duì)內(nèi)存進(jìn)行訪問操作時(shí)首先進(jìn)行訪問地址合法性檢查,即檢查經(jīng)過(guò)重定位之后的內(nèi)存地址是否在上、下界寄存器所規(guī)定的范圍之內(nèi)。若在規(guī)定的范圍之內(nèi),則訪問是合法的;否則是非法的,并產(chǎn)生訪問越界中斷。另外,還應(yīng)該把指令的訪問內(nèi)存模式由訪問實(shí)際物理地址改為由邏輯地址變換為物理地址的方式。6動(dòng)態(tài)分區(qū)式管理的常用內(nèi)存分配算法有哪幾種?比較它們各自的優(yōu)缺點(diǎn)。答:動(dòng)態(tài)分區(qū)式管理的常用內(nèi)存分配算法有最先適應(yīng)法(FF)、最佳適應(yīng)法(BF)和最壞適應(yīng)法(WF)。優(yōu)缺點(diǎn)比較:從搜索速度上看最先適應(yīng)法最佳,最佳適應(yīng)法和最壞適應(yīng)法都要求把不同大小的空閑區(qū)按大小進(jìn)行排隊(duì)。從回收過(guò)程來(lái)看,最先適應(yīng)法也是最佳,因?yàn)樽罴堰m應(yīng)法

37、和最壞適應(yīng)法都必須重新調(diào)整空閑區(qū)的位置。最佳適應(yīng)法找到的空閑區(qū)是最佳的,但是會(huì)造成內(nèi)存碎片較多,影響了內(nèi)存利用率,而最壞適應(yīng)法的內(nèi)存碎片最少,但是對(duì)內(nèi)存的請(qǐng)求較多的進(jìn)程有可能分配失敗??傊?,三種算法各有所長(zhǎng),針對(duì)不同的請(qǐng)求隊(duì)列,它們的效率和功能是不一樣的。75.3節(jié)討論的分區(qū)式管理可以實(shí)現(xiàn)虛存嗎?如果不能,需要怎樣修改?試設(shè)計(jì)一個(gè)分區(qū)式管理實(shí)現(xiàn)虛存的程序流程圖。如果能,試說(shuō)明理由。答:5.3節(jié)討論的分區(qū)式管理不能實(shí)現(xiàn)虛存。如果要實(shí)現(xiàn)虛存,可以在分區(qū)的基礎(chǔ)之上對(duì)每個(gè)分區(qū)內(nèi)部進(jìn)行請(qǐng)求調(diào)頁(yè)式管理。程序流程圖:略。8簡(jiǎn)述什么是覆蓋?什么是交換?覆蓋和交換的區(qū)別是什么?答:將程序劃分為若干個(gè)功能上相對(duì)獨(dú)

38、立的程序段,按照程序的邏輯結(jié)構(gòu)讓那些不會(huì)同時(shí)執(zhí)行的程序段共享同一塊內(nèi)存區(qū)的內(nèi)存擴(kuò)充技術(shù)就是覆蓋。交換是指先將內(nèi)存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再?gòu)耐獯娼粨Q區(qū)中調(diào)入指定的程序或數(shù)據(jù)到內(nèi)存中來(lái),并讓其執(zhí)行的一種內(nèi)存擴(kuò)充技術(shù)。與覆蓋技術(shù)相比,交換不要求程序員給出程序段之間的覆蓋結(jié)構(gòu),而且,交換主要是在進(jìn)程或作業(yè)之間進(jìn)行,而覆蓋則主要在同一個(gè)作業(yè)或同一個(gè)進(jìn)程內(nèi)進(jìn)行。另外,覆蓋只能覆蓋那些與覆蓋程序段無(wú)關(guān)的程序段。9什么是頁(yè)式管理?靜態(tài)頁(yè)式管理可以實(shí)現(xiàn)虛存嗎? 答:頁(yè)式管理就是把各進(jìn)程的虛擬空間劃分為若干長(zhǎng)度相等的頁(yè)面,把指令按頁(yè)面大小劃分后存放在內(nèi)存中執(zhí)行或只在內(nèi)存中存放那些經(jīng)常被執(zhí)行或即將被執(zhí)行

39、的頁(yè)面,而那些不被經(jīng)常執(zhí)行以及在近期內(nèi)不可能被執(zhí)行的頁(yè)面則存放于外存中,按一定規(guī)則調(diào)入的一種內(nèi)存管理方式。靜態(tài)頁(yè)式管理不能實(shí)現(xiàn)虛存,這是因?yàn)殪o態(tài)頁(yè)式管理要求進(jìn)程或作業(yè)在執(zhí)行前全部被裝入內(nèi)存,作業(yè)或進(jìn)程的大小仍受內(nèi)存可用頁(yè)面數(shù)的限制。10.什么是請(qǐng)求頁(yè)式管理?試設(shè)計(jì)和描述一個(gè)請(qǐng)求頁(yè)式管理時(shí)的內(nèi)存頁(yè)面分配和回收算法(包括缺頁(yè)處理部分)。答:請(qǐng)求頁(yè)式管理是動(dòng)態(tài)頁(yè)式內(nèi)存管理的一種,它在作業(yè)或進(jìn)程開始執(zhí)行之前,不把作業(yè)或進(jìn)程的程序段和數(shù)據(jù)段一次性的全部裝入內(nèi)存,而只裝入被認(rèn)為是經(jīng)常反復(fù)執(zhí)行和調(diào)用的工作區(qū)部分。其他部分則在執(zhí)行過(guò)程中動(dòng)態(tài)裝入。請(qǐng)求頁(yè)式管理的調(diào)入方式是,當(dāng)需要執(zhí)行某條指令而又發(fā)現(xiàn)它不在內(nèi)存時(shí)

40、,或當(dāng)執(zhí)行某條指令需要訪問其他數(shù)據(jù)或指令時(shí),而這些指令和數(shù)據(jù)又不在內(nèi)存中,從而發(fā)生缺頁(yè)中斷,系統(tǒng)將外存中相應(yīng)的頁(yè)面調(diào)入內(nèi)存。請(qǐng)求頁(yè)式管理的內(nèi)存頁(yè)面分配和回收算法:略。11.請(qǐng)求頁(yè)式管理中有哪幾種常用的頁(yè)面置換算法?試比較它們的優(yōu)缺點(diǎn)。答:比較常用的頁(yè)面置換算法有:(1)隨機(jī)淘汰算法(randomglongram)。即隨機(jī)地選擇某個(gè)用戶頁(yè)面并將其換出。(2)輪轉(zhuǎn)法RR(roundrobin)。輪轉(zhuǎn)法循回?fù)Q出內(nèi)存可用區(qū)內(nèi)一個(gè)可以被換出的頁(yè),無(wú)論該頁(yè)是剛被換進(jìn)或已經(jīng)換進(jìn)內(nèi)存很長(zhǎng)時(shí)間。(3)先進(jìn)先出法FIFO(firstinfirstout)。FIFO算法選擇在內(nèi)存駐留時(shí)間最長(zhǎng)的一頁(yè)將其淘汰。(4)最

41、近最久未使用頁(yè)面置換算法IRU(1east recently unused)。該算法的基本思想是:當(dāng)需要淘汰某一頁(yè)時(shí),選擇離當(dāng)前時(shí)間最近的一段時(shí)間內(nèi)最久沒有使用過(guò)的頁(yè)面先淘汰。(5)理想型淘汰算法OPT(optimalreplacementalgorithm)。該算法淘汰在訪問串中將來(lái)再也不出現(xiàn)的或是在離當(dāng)前最遠(yuǎn)的位置上出現(xiàn)的頁(yè)面。14.什么是段式管理?它與頁(yè)式管理有何區(qū)別?答:段式管理就是將程序按照內(nèi)容或過(guò)程(函數(shù))關(guān)系分成段,每段擁有自己的名字。一個(gè)用戶作業(yè)或進(jìn)程所包含的段對(duì)應(yīng)于一個(gè)二維線性虛擬空間,也就是一個(gè)二維虛擬存儲(chǔ)器。段式管理程序以段為單位分配內(nèi)存,然后通過(guò)地址映射機(jī)構(gòu)把段式虛擬地

42、址轉(zhuǎn)換成實(shí)際的內(nèi)存物理地址。司頁(yè)式管理時(shí)樣,段式管理也采用只把那些經(jīng)常訪問的段駐留內(nèi)存,而把那些在將來(lái),段時(shí)間內(nèi)不被訪問的段放入外存,待需要時(shí)自動(dòng)調(diào)入相關(guān)段的方法實(shí)現(xiàn)二維虛擬存儲(chǔ)器。段式管理和頁(yè)式管理的主要區(qū)別有:(1)頁(yè)式管理中源程序進(jìn)行編譯鏈接時(shí)是將主程序、子程序、數(shù)據(jù)區(qū)等按照線性空間的維地址順序排列起來(lái)。段式管理則是將程序按照內(nèi)容或過(guò)程(函數(shù))關(guān)系分成段,每段擁有自己的名字。一個(gè)用戶作業(yè)或進(jìn)程所包含的段對(duì)應(yīng)于一個(gè)二:維線性虛擬空間,也就是一個(gè)二維虛擬存儲(chǔ)器。(2)同動(dòng)態(tài)頁(yè)式管理一樣,段式管理也提供了內(nèi)外存統(tǒng)管理的虛存實(shí)現(xiàn)。與頁(yè)式管理不同的是:段式虛存每次交換的是一段有意義的信息,而不是像

43、頁(yè)式虛存管理那樣只交換固定大小的頁(yè),從而需要多次的缺頁(yè)中斷才能把所需信息完整地調(diào)入內(nèi)存。(3)在段式管理中,段長(zhǎng)可根據(jù)需要?jiǎng)討B(tài)增長(zhǎng)。這對(duì)那些需要不斷增加或改變新數(shù)據(jù)或子程序的段來(lái)說(shuō),將是非常有好處的。(4)段式管理便于對(duì)具有完整邏輯功能的信息段進(jìn)行共享。(5)段式管理便于進(jìn)行動(dòng)態(tài)鏈接,而頁(yè)式管理進(jìn)行動(dòng)態(tài)鏈接的過(guò)程非常復(fù)雜。15.段式管理可以實(shí)現(xiàn)虛存嗎?如果可以,簡(jiǎn)述實(shí)現(xiàn)方法。答:段式管理可以實(shí)現(xiàn)虛存。段式管理把程序按照內(nèi)容或過(guò)程(函數(shù))關(guān)系分成段,每段擁有自己的名字。一個(gè)用戶作業(yè)或進(jìn)程所包含的段對(duì)應(yīng)于個(gè)二維線性虛擬空間(段號(hào)s與段內(nèi)相對(duì)地址w),也就是一個(gè)二維虛擬存儲(chǔ)器。段式管理以段為單位分配

44、內(nèi)存,然后通過(guò)地址映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換成實(shí)際的內(nèi)存物理地址。只把那些經(jīng)常訪問的段駐留內(nèi)存,而把那些在將來(lái)一段時(shí)間內(nèi)不被訪問的段放入外存,待需要時(shí)產(chǎn)生缺段中斷,自動(dòng)調(diào)入。16.為什么要提出段頁(yè)式管理?它與段式管理及頁(yè)式管理有何區(qū)別?答:因?yàn)槎问焦芾砗晚?yè)式管理各有所長(zhǎng)。段式管理為用戶提供了一個(gè)二維的虛擬地址空間,反映了程序的邏輯結(jié)構(gòu),有利于段的動(dòng)態(tài)增長(zhǎng)以及共享和內(nèi)存保護(hù)等,這極大地方便了用戶。而分頁(yè)系統(tǒng)則有效地克服了碎片,提高了存儲(chǔ)器的利用效率。從存儲(chǔ)管理的目的來(lái)講,主要是方便用戶的程序設(shè)計(jì)和提高內(nèi)存的利用率。所以人們提出了將段式管理和頁(yè)式管理結(jié)合起來(lái)讓其互相取長(zhǎng)補(bǔ)短的段頁(yè)式管理。段頁(yè)式管理

45、與段式和頁(yè)式管理相比,其訪問時(shí)間較長(zhǎng)。因此,執(zhí)行效率低。17.為什么說(shuō)段頁(yè)式管理時(shí)的虛擬地址仍是二維的?答:因?yàn)樵诙雾?yè)式內(nèi)存管理中,對(duì)每一段內(nèi)的地址空間進(jìn)行分頁(yè)式管理只是為了克服在內(nèi)存分配過(guò)程中產(chǎn):生的大量碎片,從而提高存儲(chǔ)器的利用效率,它并沒有改變段內(nèi)地址空間的一維結(jié)構(gòu),所以段頁(yè)式內(nèi)存管理中的虛擬地址仍然和段式內(nèi)存管理中的虛擬地址一樣,是二維結(jié)構(gòu)的。18.段頁(yè)式管理的主要缺點(diǎn)是什么?有什么改進(jìn)辦法?答:段頁(yè)式管理的主要缺點(diǎn)是對(duì)內(nèi)存中指令或數(shù)據(jù)進(jìn)行存取時(shí),至少需要對(duì)內(nèi)存進(jìn)行三次以上的訪問。第一次是由段表地址寄存器取段表始址后訪問段表,由此取出對(duì)應(yīng)段的頁(yè)表在內(nèi)存中的地址。第二次則是訪問頁(yè)表得到所

46、要訪問的指令或數(shù)據(jù)的物理地址。只有在訪問了段表和頁(yè)表之后,第三次才能訪問真正需要訪問的物理單元。顯然。這將大大降低CPU執(zhí)行指令的速度。改進(jìn)辦法是設(shè)置快速聯(lián)想寄存器。在快速聯(lián)想寄存器中存放當(dāng)前最常用的段號(hào)s,頁(yè)號(hào)p和對(duì)應(yīng)的內(nèi)存頁(yè)面地址與其他控制項(xiàng)。當(dāng)需要訪問內(nèi)存空間某一單元時(shí),可在通過(guò)段表、頁(yè)表進(jìn)行內(nèi)存地址查找的同時(shí),根據(jù)快速聯(lián)想寄存器查找其段號(hào)和頁(yè)號(hào)。如果所要訪問的段或頁(yè)的地址在快速聯(lián)想寄存器中,則系統(tǒng)不再訪問內(nèi)存中的段表、頁(yè)表而直接把快速聯(lián)想寄存器中的值與頁(yè)內(nèi)相對(duì)地址d拼接起來(lái)得到內(nèi)存地址。19.什么是局部性原理?什么是抖動(dòng)?你有什么辦法減少系統(tǒng)的抖動(dòng)現(xiàn)象?答:局部性原理是指在幾乎所有程序

47、的執(zhí)行過(guò)程中,在一段時(shí)間內(nèi),CPU總是集中地訪問程序中的某個(gè)部分而不是對(duì)程序的所有部分具有平均的訪問概率。抖動(dòng)是指當(dāng)給進(jìn)程分配的內(nèi)存小于所要求的工作區(qū)時(shí),由于內(nèi)存外存之間交換頻繁,訪問外存的時(shí)間和輸入輸出處理時(shí)間大大增加,反而造成CPU因等待數(shù)據(jù)而空轉(zhuǎn),使得整個(gè)系統(tǒng)性能大大下降。在物理系統(tǒng)中,為防止抖動(dòng)的產(chǎn)生,在進(jìn)行淘汰或替換時(shí),般總是把缺頁(yè)進(jìn)程鎖住,不讓其換出,從而防止抖動(dòng)發(fā)生。防止抖動(dòng)發(fā)生的另一個(gè)辦法是設(shè)置較大的內(nèi)存工作區(qū)。第九章 外部設(shè)備管理1. 設(shè)備管理的目標(biāo)和功能是什么?答:設(shè)備管理的目標(biāo)是:選擇和分配輸入輸出設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作;控制輸入輸出設(shè)備和CPU(或內(nèi)存)之間交換數(shù)據(jù),

48、為用戶提供一個(gè)友好的透明接口,提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間,以及進(jìn)程和進(jìn)程之間的并行操作,以使操作系統(tǒng)獲得最佳效率。設(shè)備管理的功能是:提供和進(jìn)程管理系統(tǒng)的接口;進(jìn)行設(shè)備分配;實(shí)現(xiàn)設(shè)備和設(shè)備、設(shè)備和CPU等之間的并行操作;進(jìn)行緩沖區(qū)管理。 2數(shù)據(jù)傳送控制方式有哪幾種?試比較它們各自的優(yōu)缺點(diǎn)。答:數(shù)據(jù)傳送控制方式有程序直接控制方式、中斷控制方式、DMA方式和通道方式4種。程序直接控制方式就是由用戶進(jìn)程來(lái)直接控制內(nèi)存或CPU和外圍設(shè)備之間的數(shù)據(jù)傳送。它的優(yōu)點(diǎn)是控制簡(jiǎn)單,也不需要多少硬件支持。它的缺點(diǎn)是CPU和外圍設(shè)備只能串行工作;設(shè)備之間只能串行工作,無(wú)法發(fā)現(xiàn)和處理由于設(shè)備或其他硬件所產(chǎn)生的

49、錯(cuò)誤。中斷控制方式是利用向CPU發(fā)送中斷的方式控制外圍設(shè)備和CPU之間的數(shù)據(jù)傳送。它的優(yōu)點(diǎn)是大大提高了CPU的利用率且能支持多道程序和設(shè)備的并行操作。它的缺點(diǎn)是由于數(shù)據(jù)緩沖寄存器比較小,如果中斷次數(shù)較多,仍然占用了大量CPU時(shí)間;在外圍設(shè)備較多時(shí),由于中斷次數(shù)的急劇增加,可能造成CPU無(wú)法響應(yīng)中斷而出現(xiàn)中斷丟失的現(xiàn)象;如果外圍設(shè)備速度比較快,可能會(huì)出現(xiàn)CPU來(lái)不及從數(shù)據(jù)緩沖寄存器中取走數(shù)據(jù)而丟失數(shù)據(jù)的情況。DMA方式是在外圍設(shè)備和內(nèi)存之間開辟直接的數(shù)據(jù)交換通路進(jìn)行數(shù)據(jù)傳送。它的優(yōu)點(diǎn)是除了在數(shù)據(jù)塊傳送開始時(shí)需要CPU的啟動(dòng)指令,在整個(gè)數(shù)據(jù)塊傳送結(jié)束時(shí)需要發(fā)中 斷通知CPU進(jìn)行中斷處理之外,不需要

50、CPU的頻繁干涉。它的缺點(diǎn)是在外圍設(shè)備越來(lái)越 多的情況下,多個(gè)DMA控制器的同時(shí)使用,會(huì)引起內(nèi)存地址的沖突并使得控制過(guò)程進(jìn)一步復(fù)雜化。通道方式是使用通道來(lái)控制內(nèi)存或CPU和外圍設(shè)備之間的數(shù)據(jù)傳送。通道是一個(gè)獨(dú)立與CPU的專管輸入輸出控制的機(jī)構(gòu),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。它有自己的通道指令,這些指令受CPU啟動(dòng),并在操作結(jié)束時(shí)向CPU發(fā)中斷信號(hào)。該方式的優(yōu)點(diǎn)是進(jìn)一步減輕了CPU的工作負(fù)擔(dān),增加了計(jì)算機(jī)系統(tǒng)的并行工作程度。缺點(diǎn)是增加了額外的硬件,造價(jià)昂貴。 3什么是通道?試畫出通道控制方式時(shí)的CPU、通道和設(shè)備的工作流程圖。答:通道是一個(gè)獨(dú)立與CPU的專管輸入輸出控制的機(jī)構(gòu),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。它有自己的通道指令,這些指令受CPU啟動(dòng),并在操作結(jié)束時(shí)向CPU發(fā)中斷信號(hào)。4. 什么是中斷?什么叫中斷處理?什么叫中斷響應(yīng)?答: 中斷是指計(jì)算機(jī)在執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后又返回原來(lái)被中斷處繼續(xù)執(zhí)行的過(guò)程。CPU轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序的過(guò)程稱為中斷處理。CPU收到中斷請(qǐng)求后轉(zhuǎn)到相應(yīng)的事件處理程序稱為中斷響應(yīng)。5什么叫關(guān)中斷?什么叫開中斷?什么叫中斷屏蔽?答:把CP

溫馨提示

  • 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論