欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      張堯?qū)W-操作系統(tǒng)課后題答案(5篇材料)

      時間:2019-05-15 08:04:15下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《張堯?qū)W-操作系統(tǒng)課后題答案》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《張堯?qū)W-操作系統(tǒng)課后題答案》。

      第一篇:張堯?qū)W-操作系統(tǒng)課后題答案

      第一章 緒論

      1.什么是操作系統(tǒng)的基本功能?

      答:操作系統(tǒng)的職能是管理和控制汁算機(jī)系統(tǒng)中的所有硬、軟件資源,合理地組織計算

      機(jī)工作流程,并為用戶提供一個良好的工作環(huán)境和友好的接口。操作系統(tǒng)的基本功能包括:

      處理機(jī)管理、存儲管理、設(shè)備管理、信息管理(文件系統(tǒng)管理)和用戶接口等。

      2.什么是批處理、分時和實時系統(tǒng)?各有什么特征?

      答:批處理系統(tǒng)(batchprocessingsystem):操作員把用戶提交的作業(yè)分類,把一批作業(yè)編成一個作業(yè)執(zhí)行序列,由專門編制的監(jiān)督程序(monitor)自動依次處理。其主要特征是:用戶脫機(jī)使用計算機(jī)、成批處理、多道程序運(yùn)行。

      分時系統(tǒng)(timesharingoperationsystem):把處理機(jī)的運(yùn)行時間分成很短的時間片,按時間片輪轉(zhuǎn)的方式,把處理機(jī)分配給各進(jìn)程使用。其主要特征是:交互性、多用戶同時性、獨立性。

      實時系統(tǒng)(realtimesystem):在被控對象允許時間范圍內(nèi)作出響應(yīng)。其主要特征是:對實時信息分析處理速度要比進(jìn)入系統(tǒng)快、要求安全可靠、資源利用率低。

      3.多道程序(multiprogramming)和多重處理(multiprocessing)有何區(qū)別?

      答;多道程序(multiprogramming)是作業(yè)之間自動調(diào)度執(zhí)行、共享系統(tǒng)資源,并不是真正地同時值行多個作業(yè);而多重處理(multiprocessing)系統(tǒng)配置多個CPU,能真正同時執(zhí)行多道程序。要有效使用多重處理,必須采用多道程序設(shè)計技術(shù),而多道程序設(shè)計原則上 不一定要求多重處理系統(tǒng)的支持。

      6。設(shè)計計算機(jī)操作系統(tǒng)時與那些硬件器件有關(guān)

      運(yùn)算器、控制器、存儲器、輸入設(shè)備、輸出設(shè)備

      第二章 作業(yè)管理和用戶接口

      2. 作業(yè)由哪幾部分組成?各有什么功能?

      答:作業(yè)由三部分組成:程序、數(shù)據(jù)和作業(yè)說明書。程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作,作業(yè)說明書則體現(xiàn)用戶的控制意圖。

      3.作業(yè)的輸入方式有哪幾種?各有何特點

      答:作業(yè)的輸入方式有5種:聯(lián)機(jī)輸入方式、脫機(jī)輸入方式、直接耦合方式、SPOOLING

      (Simultaneous Peripheral OperationsOnline)系統(tǒng)和網(wǎng)絡(luò)輸入方式,各有如下特點:

      (1)聯(lián)機(jī)輸入方式:用戶和系統(tǒng)通過交互式會話來輸入作業(yè)。

      (2)脫機(jī)輸入方式:又稱預(yù)輸入方式,利用低檔個人計算機(jī)作為外圍處理機(jī)進(jìn)行輸入處理,存儲在后備存儲器上,然后將此后援存儲器連接到高速外圍設(shè)備上和主機(jī)相連,從而在較短的時間內(nèi)完成作業(yè)的輸入工作。

      (3)直接耦合方式:把主機(jī)和外圍低檔機(jī)通過一個公用的大容量外存直接耦合起來,從而省去了在脫機(jī)輸入中那種依靠人工干預(yù)宋傳遞后援存儲器的過程。

      (4)SPOOLING系統(tǒng):可譯為外圍設(shè)備同時聯(lián)機(jī)操作。在SPOOLING系統(tǒng)中,多臺外圍設(shè)備通過通道或DMA器件和主機(jī)與外存連接起來,作業(yè)的輸入輸出過程由主機(jī)中的操作系統(tǒng)控制。

      (5)網(wǎng)絡(luò)輸入方式:網(wǎng)絡(luò)輸入方式以上述幾種輸入方式為基礎(chǔ),當(dāng)用戶需要把在計算機(jī)網(wǎng)絡(luò)中某一臺主機(jī)上輸入的信息傳送到同一網(wǎng)中另一臺主機(jī)上進(jìn)行操作或執(zhí)行時,就構(gòu)成了網(wǎng)絡(luò)輸入方式。

      6.操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別是什么?

      答:操作系統(tǒng)為用戶提供兩個接口,一個是系統(tǒng)為用戶提供的各種命令接口,用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行或管理計算機(jī)系統(tǒng)。另一個接口是系統(tǒng)調(diào)用,編程人員使用系統(tǒng)調(diào)用來請求操作系統(tǒng)提供服務(wù),例如申請和釋放外設(shè)等類資源、控制程序的執(zhí)行速度等。

      8.什么是系統(tǒng)調(diào)用?系統(tǒng)調(diào)用與一般用戶程序有什么區(qū)別?與庫函數(shù)和實用程序又有什么區(qū)別?

      答:系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口。編程人員利用系統(tǒng)調(diào)用,在源程序一級動態(tài)請求和釋放系統(tǒng)資源,調(diào)用系統(tǒng)中已有的系統(tǒng)功能 來完成那些與機(jī)器硬件部分相關(guān)的工作以及控制程序的執(zhí)行速度等。因此,系統(tǒng)調(diào)用像一個黑箱子那樣,對用戶屏蔽了操作系統(tǒng)的具體動作而只提供有關(guān)的功能。它 與一般用戶程序、庫函數(shù)和實用程序的區(qū)別是:系統(tǒng)調(diào)用程序是在核心態(tài)執(zhí)行,調(diào)用它們需要一個類似于硬件中斷處理的中斷處理機(jī)制來提供系統(tǒng)服務(wù)。

      9.簡述系統(tǒng)調(diào)用的實現(xiàn)過程。

      答;用戶在程序中使用系統(tǒng)調(diào)用,給出系統(tǒng)凋用名和函數(shù)后,即產(chǎn)生一條相應(yīng)的陷入指令,通過陷入處理機(jī)制調(diào)用服務(wù),引起處理機(jī)中斷,然后保護(hù)處理機(jī)現(xiàn)場,取系統(tǒng)調(diào)用功能號并尋找子程序入口,通過入口地址表來調(diào)用系統(tǒng)子程序,然后返回用戶程序繼續(xù)執(zhí)行。

      第三章 用戶管理和配置管理

      2.試比較進(jìn)程和程序的區(qū)別。

      答:(1)進(jìn)程是一個動態(tài)概念,而程序是一個靜態(tài)概念,程序是指令的有序集合,無執(zhí)行含義,進(jìn)程則強(qiáng)調(diào)執(zhí)行的過程。

      (2)進(jìn)程具有并行特征(獨立性,異步性),程序則沒有。

      (3)不同的進(jìn)程可以包含同一個程序,同一程序在執(zhí)行中也可以產(chǎn)生多個進(jìn)程。

      4.試比較作業(yè)和進(jìn)程的區(qū)別。

      答:一個進(jìn)程是一個程序?qū)δ硞€數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位。作業(yè)是用于需要計算機(jī)完成某項任務(wù),而要求計算機(jī)所做工作的集合。一個作業(yè)的完成要經(jīng)過作業(yè)提交,作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成4個階段。而進(jìn)程是已提交完畢的程序所執(zhí)行過程的描述,足資源分配的基本單位。其主要區(qū)別關(guān) 系如下:

      (1)作業(yè)是用戶向計算機(jī)提交任務(wù)的任務(wù)實體。在用戶向計算機(jī)提交作業(yè)之后,系統(tǒng)將存儲在外存中的作業(yè)等待隊列中等待執(zhí)行。而進(jìn)程則是完成用戶任務(wù)的執(zhí)行實體,是向系統(tǒng)申請分配資源的基本單位。任一進(jìn)程,只要它被創(chuàng)建,總有相應(yīng)的部分存在于內(nèi)存中。

      (2)一個作業(yè)可由多個進(jìn)程組成。且必須至少由一個進(jìn)程組成,但反過來不成立。

      (3)作業(yè)的概念主要用在批處理系統(tǒng)中。像Unix這樣的分時系統(tǒng)中,則沒有作業(yè)概念。而進(jìn)程的概念則用在幾乎所有的多道程序系統(tǒng)中。

      6.什么是臨界區(qū)?試舉一臨界區(qū)的例子。

      答:臨界區(qū)是指不允許多個并發(fā)進(jìn)程交叉執(zhí)行的一段程序。它是由于不同并發(fā)進(jìn)程的程序段共享公用數(shù)據(jù)或公用數(shù)據(jù)變量而引起的。所以它又被稱為訪問公用數(shù)據(jù)的那段程序。

      例如:

      getspace:

      Begin local g

      top=top-1

      End

      release(ad):

      Begin

      top’top十1

      stack[top]=ad

      End

      8.什么是進(jìn)程間的互斥?什么是進(jìn)程間同步?

      答:進(jìn)程間的互斥是指:一組并發(fā)進(jìn)程中的一個或多個程序段,因共享某一公有資源而導(dǎo)致它們必須以一個不許交叉執(zhí)行的單位執(zhí)行,即不允許兩個以上的共享該資源的并發(fā)進(jìn)程同時進(jìn)入臨界區(qū)。

      進(jìn)程間的同步是指:異步環(huán)境下的一組并發(fā)進(jìn)程因直接制約互相發(fā)送消息而進(jìn)行互相合作、互相等待,各進(jìn)程按一定的速度執(zhí)行的過程。

      第四章 進(jìn)程管理

      4.進(jìn)程調(diào)度的功能有哪些?

      答:進(jìn)程調(diào)度的功能有:

      (1)記錄和保存系統(tǒng)中所有進(jìn)程的執(zhí)行情況;

      (2)選擇占有處理機(jī)的進(jìn)程;

      (3)進(jìn)行進(jìn)程上下文切換。

      5.進(jìn)程調(diào)度的時機(jī)有哪幾種?

      答:進(jìn)程調(diào)度的時機(jī)有:

      (1)正在執(zhí)行的進(jìn)程執(zhí)行完畢。這時如果不選擇新的就緒進(jìn)程執(zhí)行,將浪費處理機(jī)資源。

      (2)執(zhí)行中進(jìn)程自己調(diào)用阻塞原語將自己阻塞起來進(jìn)入睡眠等待狀態(tài)。

      (3)執(zhí)行中進(jìn)程調(diào)用了P原語操作,從而因資源不足而被阻塞:或調(diào)用了V原語操作激活了等待資源的進(jìn)程隊列。

      (4)執(zhí)行中進(jìn)程提出I/O請求后被阻塞。

      (5)在分時系統(tǒng)中時間片已經(jīng)用完。

      (6)在執(zhí)行完系統(tǒng)調(diào)用等系統(tǒng)程序后返回用戶程序時,可看做系統(tǒng)進(jìn)程執(zhí)行完畢,從而調(diào)度選擇一新的用戶進(jìn)程執(zhí)行。

      (7)在CPU執(zhí)行方式是可剝奪時,還有:就緒隊列中的某進(jìn)程的優(yōu)先級變得高于當(dāng)前執(zhí)行進(jìn)程的優(yōu)先級,從而也將引發(fā)進(jìn) 程調(diào)度。

      第五章 處理器管理

      3.實現(xiàn)地址重定位的方法有哪幾類?

      答:實現(xiàn)地址重定位的方法有兩種:靜態(tài)地址重定位和動態(tài)地址重定位。

      (1)靜態(tài)地址重定位是在虛空間程序執(zhí)行之前由裝配程序完成地址映射工作。靜態(tài)重定位的優(yōu)點是不需要硬件支持,但是用靜態(tài)地址重定位方法進(jìn)行地址變換無法實現(xiàn)虛擬存儲器。靜態(tài)重定位的另一個缺點是必須占用連續(xù)的內(nèi)存空間和難以做到程序和數(shù)據(jù)的共享。

      (2)動態(tài)地址重定位是在程序執(zhí)行過程中,在CPU訪問內(nèi)存之前由硬件地址變換機(jī)構(gòu)將要訪問的程序或數(shù)據(jù)地址轉(zhuǎn)換成內(nèi)存地址。動態(tài)地址重定位的主要優(yōu)點有:

      ①可以對內(nèi)存進(jìn)行非連續(xù)分配。

      ②動態(tài)重定位提供了實現(xiàn)虛擬存儲器的基礎(chǔ)。

      ③動態(tài)重定位有利于程序段的共享。

      形式化描述:略。

      6.動態(tài)分區(qū)式管理的常用內(nèi)存分配算法有哪幾種?比較它們各自的優(yōu)缺點。

      答:動態(tài)分區(qū)式管理的常用內(nèi)存分配算法有最先適應(yīng)法(FF)、最佳適應(yīng)法(BF)和最壞適應(yīng)法(WF)。

      優(yōu)缺點比較:

      ①從搜索速度上看最先適應(yīng)法最佳,最佳適應(yīng)法和最壞適應(yīng)法都要求把不同大小的空閑區(qū)按大小進(jìn)行排隊。

      ②從回收過程來看,最先適應(yīng)法也是最佳,因為最佳適應(yīng)法和最壞適應(yīng)法都必須重新調(diào)整空閑區(qū)的位置。

      ③最佳適應(yīng)法找到的空閑區(qū)是最佳的,但是會造成內(nèi)存碎片較多,影響了內(nèi)存利用率,而最壞適應(yīng)法的內(nèi)存碎片最少,但是對內(nèi)存的請求較多的進(jìn)程有可能分配失敗。

      總之,三種算法各有所長,針對不同的請求隊列,它們的效率和功能是不一樣的。

      8.簡述什么是覆蓋?什么是交換?覆蓋和交換的區(qū)別是什么?

      答:將程序劃分為若干個功能上相對獨立的程序段,按照程序的邏輯結(jié)構(gòu)讓那些不會同時執(zhí)行的程序段共享同一塊內(nèi)存區(qū)的內(nèi)存擴(kuò)充技術(shù)就是覆蓋。交換是指先將內(nèi)存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再從外存交換區(qū)中調(diào)入指定的程序或數(shù)據(jù)到內(nèi)存中來,并讓其執(zhí)行的一種內(nèi)存擴(kuò)充技術(shù)。與覆蓋技術(shù)相比,交換不要求程序員給出程序段之間的覆蓋結(jié)構(gòu),而且,交換主要是在進(jìn)程或作業(yè)之間進(jìn)行,而覆蓋則主要在同一個作業(yè)或同一個進(jìn)程內(nèi)進(jìn)行。另外,覆蓋只能覆蓋那 些與覆蓋程序段無關(guān)的程序段。

      11.請求頁式管理中有哪幾種常用的頁面置換算法?試比較它們的優(yōu)缺點。

      答:比較常用的頁面置換算法有:

      (1)隨機(jī)淘汰算法(randomglongram)。即隨機(jī)地選擇某個用戶頁面并將其換出。

      (2)輪轉(zhuǎn)法RR(roundrobin)。輪轉(zhuǎn)法循回?fù)Q出內(nèi)存可用區(qū)內(nèi)一個可以被換出的頁,無論該頁是剛被換進(jìn)或已經(jīng)換進(jìn)內(nèi)存很長時間。

      (3)先進(jìn)先出法FIFO(firstinfirstout)。FIFO算法選擇在內(nèi)存駐留時間最長的一頁將其淘汰。

      (4)最近最久未使用頁面置換算法I.RU(1east recently unused)。該算法的基本思想是:當(dāng)需要淘汰某一頁時,選擇離當(dāng)前時間最近的一段時間內(nèi)最久沒有使用過的頁面先淘汰。

      (5)理想型淘汰算法OPT(optimalreplacementalgorithm)。該算法淘汰在訪問串中將來再也不出現(xiàn)的或是在離當(dāng)前最遠(yuǎn)的位置上出現(xiàn)的頁面。

      第九章 外部設(shè)備管理

      4. 什么是中斷?什么叫中斷處理?什么叫中斷響應(yīng)?

      答: 中斷是指計算機(jī)在執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理 完畢后又返回原來被中斷處繼續(xù)執(zhí)行的過程。CPU轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序的過程稱為中斷處理。CPU收到中斷請求后轉(zhuǎn)到相應(yīng)的事件處理程序稱為中斷響 應(yīng)。

      5.什么叫關(guān)中斷?什么叫開中斷?什么叫中斷屏蔽?

      答:把CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位清除從而不允許CPU響應(yīng)中斷叫做關(guān)中斷。設(shè)置CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位從而允許CPU響應(yīng)中斷叫做開中斷。

      中斷屏蔽是指在中斷請求產(chǎn)生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷而允許其余部分的中斷仍能得到響應(yīng)。

      7.描述中斷控制方式時的CPU動作過程。

      答:(1)首先,CPU檢查響應(yīng)中斷的條件是否滿足。如果中斷響應(yīng)條件不滿足,則中斷處理無法進(jìn)行。

      (2)如果CPU響應(yīng)中斷,則CPU關(guān)中斷。

      (3)保存被中斷進(jìn)程現(xiàn)場。

      (4)分析中斷原因,調(diào)用中斷處理子程序。

      (5)執(zhí)行中斷處理子程序。

      (6)退出中斷,恢復(fù)被中斷進(jìn)程的現(xiàn)場或調(diào)度新進(jìn)程占據(jù)處理機(jī)。

      (7)開中斷,CPU繼續(xù)執(zhí)行。

      第二篇:計算機(jī)操作系統(tǒng) 課后習(xí)題答案 張堯?qū)W

      第一章 緒論

      1.什么是操作系統(tǒng)的基本功能?

      答:操作系統(tǒng)的職能是管理和控制汁算機(jī)系統(tǒng)中的所有硬、軟件資源,合理地組織計算

      機(jī)工作流程,并為用戶提供一個良好的工作環(huán)境和友好的接口。操作系統(tǒng)的基本功能包括:

      處理機(jī)管理、存儲管理、設(shè)備管理、信息管理(文件系統(tǒng)管理)和用戶接口等。

      2.什么是批處理、分時和實時系統(tǒng)?各有什么特征?

      答:批處理系統(tǒng)(batchprocessingsystem):操作員把用戶提交的作業(yè)分類,把一批作業(yè)編成一個作業(yè)執(zhí)行序列,由專門編制的監(jiān)督程序(monitor)自動依次處理。其主要特征是:用戶脫機(jī)使用計算機(jī)、成批處理、多道程序運(yùn)行。

      分時系統(tǒng)(timesharingoperationsystem):把處理機(jī)的運(yùn)行時間分成很短的時間片,按時間片輪轉(zhuǎn)的方式,把處理機(jī)分配給各進(jìn)程使用。其主要特征是:交互性、多用戶同時性、獨立性。

      實時系統(tǒng)(realtimesystem):在被控對象允許時間范圍內(nèi)作出響應(yīng)。其主要特征是:對實時信息分析處理速度要比進(jìn)入系統(tǒng)快、要求安全可靠、資源利用率低。

      3.多道程序(multiprogramming)和多重處理(multiprocessing)有何區(qū)別?

      答;多道程序(multiprogramming)是作業(yè)之間自動調(diào)度執(zhí)行、共享系統(tǒng)資源,并不是真正地同時值行多個作業(yè);而多重處理(multiprocessing)系統(tǒng)配置多個CPU,能真正同時執(zhí)行多道程序。要有效使用多重處理,必須采用多道程序設(shè)計技術(shù),而多道程序設(shè)計原則上 不一定要求多重處理系統(tǒng)的支持。

      6.設(shè)計計算機(jī)操作系統(tǒng)時與那些硬件器件有關(guān)

      運(yùn)算器、控制器、存儲器、輸入設(shè)備、輸出設(shè)備

      第二章 作業(yè)管理和用戶接口

      2. 作業(yè)由哪幾部分組成?各有什么功能?

      答:作業(yè)由三部分組成:程序、數(shù)據(jù)和作業(yè)說明書。程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作,作業(yè)說明書則體現(xiàn)用戶的控制意圖。

      3.作業(yè)的輸入方式有哪幾種?各有何特點

      答:作業(yè)的輸入方式有5種:聯(lián)機(jī)輸入方式、脫機(jī)輸入方式、直接耦合方式、SPOOLING

      (Simultaneous Peripheral OperationsOnline)系統(tǒng)和網(wǎng)絡(luò)輸入方式,各有如下特點:

      (1)聯(lián)機(jī)輸入方式:用戶和系統(tǒng)通過交互式會話來輸入作業(yè)。

      (2)脫機(jī)輸入方式:又稱預(yù)輸入方式,利用低檔個人計算機(jī)作為外圍處理機(jī)進(jìn)行輸入處理,存儲在后備存儲器上,然后將此后援存儲器連接到高速外圍設(shè)備上和主機(jī)相連,從而在較短的時間內(nèi)完成作業(yè)的輸入工作。

      (3)直接耦合方式:把主機(jī)和外圍低檔機(jī)通過一個公用的大容量外存直接耦合起來,從而省去了在脫機(jī)輸入中那種依靠人工干預(yù)宋傳遞后援存儲器的過程。

      (4)SPOOLING系統(tǒng):可譯為外圍設(shè)備同時聯(lián)機(jī)操作。在SPOOLING系統(tǒng)中,多臺外圍設(shè)備通過通道或DMA器件和主機(jī)與外存連接起來,作業(yè)的輸入輸出過程由主機(jī)中的操作系統(tǒng)控制。

      (5)網(wǎng)絡(luò)輸入方式:網(wǎng)絡(luò)輸入方式以上述幾種輸入方式為基礎(chǔ),當(dāng)用戶需要把在計算機(jī)網(wǎng)絡(luò)中某一臺主機(jī)上輸入的信息傳送到同一網(wǎng)中另一臺主機(jī)上進(jìn)行操作或執(zhí)行時,就構(gòu)成了網(wǎng)絡(luò)輸入方式。4.試述spooling系統(tǒng)的工作原理

      6.操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別是什么?

      答:操作系統(tǒng)為用戶提供兩個接口,一個是系統(tǒng)為用戶提供的各種命令接口,用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行或管理計算機(jī)系統(tǒng)。另一個接口是系統(tǒng)調(diào)用,編程人員使用系統(tǒng)調(diào)用來請求操作系統(tǒng)提供服務(wù),例如申請和釋放外設(shè)等類資源、控制程序的執(zhí)行速度等。

      8.什么是系統(tǒng)調(diào)用?系統(tǒng)調(diào)用與一般用戶程序有什么區(qū)別?與庫函數(shù)和實用程序又有什么區(qū)別?

      答:系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口。編程人員利用系統(tǒng)調(diào)用,在源程序一級動態(tài)請求和釋放系統(tǒng)資源,調(diào)用系統(tǒng)中已有的系統(tǒng)功能 來完成那些與機(jī)器硬件部分相關(guān)的工作以及控制程序的執(zhí)行速度等。因此,系統(tǒng)調(diào)用像一個黑箱子那樣,對用戶屏蔽了操作系統(tǒng)的具體動作而只提供有關(guān)的功能。它 與一般用戶程序、庫函數(shù)和實用程序的區(qū)別是:系統(tǒng)調(diào)用程序是在核心態(tài)執(zhí)行,調(diào)用它們需要一個類似于硬件中斷處理的中斷處理機(jī)制來提供系統(tǒng)服務(wù)。

      9.簡述系統(tǒng)調(diào)用的實現(xiàn)過程。

      答;用戶在程序中使用系統(tǒng)調(diào)用,給出系統(tǒng)凋用名和函數(shù)后,即產(chǎn)生一條相應(yīng)的陷入指令,通過陷入處理機(jī)制調(diào)用服務(wù),引起處理機(jī)中斷,然后保護(hù)處理機(jī)現(xiàn)場,取系統(tǒng)調(diào)用功能號并尋找子程序入口,通過入口地址表來調(diào)用系統(tǒng)子程序,然后返回用戶程序繼續(xù)執(zhí)行。

      第三章 用戶管理和配置管理

      2.試比較進(jìn)程和程序的區(qū)別。

      答:(1)進(jìn)程是一個動態(tài)概念,而程序是一個靜態(tài)概念,程序是指令的有序集合,無執(zhí)行含義,進(jìn)程則強(qiáng)調(diào)執(zhí)行的過程。

      (2)進(jìn)程具有并行特征(獨立性,異步性),程序則沒有。

      (3)不同的進(jìn)程可以包含同一個程序,同一程序在執(zhí)行中也可以產(chǎn)生多個進(jìn)程。

      4.試比較作業(yè)和進(jìn)程的區(qū)別。

      答:一個進(jìn)程是一個程序?qū)δ硞€數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位。作業(yè)是用于需要計算機(jī)完成某項任務(wù),而要求計算機(jī)所做工作的集合。一個作業(yè)的完成要經(jīng)過作業(yè)提交,作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成4個階段。而進(jìn)程是已提交完畢的程序所執(zhí)行過程的描述,足資源分配的基本單位。其主要區(qū)別關(guān) 系如下:

      (1)作業(yè)是用戶向計算機(jī)提交任務(wù)的任務(wù)實體。在用戶向計算機(jī)提交作業(yè)之后,系統(tǒng)將存儲在外存中的作業(yè)等待隊列中等待執(zhí)行。而進(jìn)程則是完成用戶任務(wù)的執(zhí)行實體,是向系統(tǒng)申請分配資源的基本單位。任一進(jìn)程,只要它被創(chuàng)建,總有相應(yīng)的部分存在于內(nèi)存中。

      (2)一個作業(yè)可由多個進(jìn)程組成。且必須至少由一個進(jìn)程組成,但反過來不成立。

      (3)作業(yè)的概念主要用在批處理系統(tǒng)中。像Unix這樣的分時系統(tǒng)中,則沒有作業(yè)概念。而進(jìn)程的概念則用在幾乎所有的多道程序系統(tǒng)中。

      6.什么是臨界區(qū)?試舉一臨界區(qū)的例子。

      答:臨界區(qū)是指不允許多個并發(fā)進(jìn)程交叉執(zhí)行的一段程序。它是由于不同并發(fā)進(jìn)程的程序段共享公用數(shù)據(jù)或公用數(shù)據(jù)變量而引起的。所以它又被稱為訪問公用數(shù)據(jù)的那段程序。

      例如:

      getspace:

      Begin local g

      top=top-1

      End

      release(ad):

      Begin

      top’top十1

      stack[top]=ad

      End

      8.什么是進(jìn)程間的互斥?什么是進(jìn)程間同步? 3

      答:進(jìn)程間的互斥是指:一組并發(fā)進(jìn)程中的一個或多個程序段,因共享某一公有資源而導(dǎo)致它們必須以一個不許交叉執(zhí)行的單位執(zhí)行,即不允許兩個以上的共享該資源的并發(fā)進(jìn)程同時進(jìn)入臨界區(qū)。

      進(jìn)程間的同步是指:異步環(huán)境下的一組并發(fā)進(jìn)程因直接制約互相發(fā)送消息而進(jìn)行互相合作、互相等待,各進(jìn)程按一定的速度執(zhí)行的過程。

      15.什么是線程?試述線程與進(jìn)程的區(qū)別,答;線程是在進(jìn)程內(nèi)用于調(diào)度和占有處理機(jī)的基本單位,它由線程控制表、存儲線程上下文的用戶棧以及核心棧組成。線程可分為用戶級線程、核心級線程以及用戶/核心混合型線程等類型。其中用戶級線程在用戶態(tài)下執(zhí)行,CPU調(diào)度算法和各線程優(yōu)先級都由用戶設(shè)置,與操作系統(tǒng)內(nèi)核無關(guān)。核心級線程的調(diào)度算法及線程優(yōu)先級的控制權(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)度時,由于涉及到資源轉(zhuǎn)移以及現(xiàn)場保護(hù)等問題,將導(dǎo)致處理機(jī)切換時間變長,資源利用率降低。以線程為單位進(jìn)行處理機(jī)切換和調(diào)度時,由于不發(fā)生資源變化,特別是地址空間的變化,處理機(jī)切換的時間較短,從而處理機(jī)效率也較高。

      (3)對用戶來說,多線程可減少用戶的等待時間。提高系統(tǒng)的響應(yīng)速度。例如,當(dāng)一個進(jìn)程需要對兩個不同的服務(wù)器進(jìn)行遠(yuǎn)程過程凋用時,對于無線程系統(tǒng)的操作系統(tǒng)來說需要順序等待兩個不同調(diào)用返回結(jié)果后才能繼續(xù)執(zhí)行,且在等待中容易發(fā)生進(jìn)程調(diào)度。對于多線程系統(tǒng)而言,則可以在同一進(jìn)程中使用不同的線程同時進(jìn)行遠(yuǎn)程過程調(diào)用,從而縮短進(jìn)程的等待時間。

      (4)線程和進(jìn)程一樣,都有自己的狀態(tài).也有相應(yīng)的同步機(jī)制,不過,由于線程沒有單獨的數(shù)據(jù)和程序空間,因此,線程不能像進(jìn)程的數(shù)據(jù)與程序那樣,交換到外存存儲空間。從而線程沒有掛起狀態(tài)。

      (5)進(jìn)程的調(diào)度、同步等控制大多由操作系統(tǒng)內(nèi)核完成,而線程的控制既可以由操作系統(tǒng)內(nèi)核進(jìn)行,也可以由用戶控制進(jìn)行。第四章 進(jìn)程管理

      2.試述作業(yè)調(diào)度的主要功能。

      答: 作業(yè)調(diào)度的主要功能是:按一定的原則對外存輸入井上的大量后備作業(yè)進(jìn)行選擇,給選出的作業(yè)分配內(nèi)存、輸入輸出設(shè)備等必要的資源,并建立相應(yīng)進(jìn)程,使該作業(yè)的相關(guān)進(jìn)程獲得競爭處理機(jī)的權(quán)利。另外,當(dāng)作業(yè)執(zhí)行完

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

      4.進(jìn)程調(diào)度的功能有哪些?

      答:進(jìn)程調(diào)度的功能有:

      (1)記錄和保存系統(tǒng)中所有進(jìn)程的執(zhí)行情況;

      (2)選擇占有處理機(jī)的進(jìn)程;

      (3)進(jìn)行進(jìn)程上下文切換。5.進(jìn)程調(diào)度的時機(jī)有哪幾種?

      答:進(jìn)程調(diào)度的時機(jī)有:

      (1)正在執(zhí)行的進(jìn)程執(zhí)行完畢。這時如果不選擇新的就緒進(jìn)程執(zhí)行,將浪費處理機(jī)資源。

      (2)執(zhí)行中進(jìn)程自己調(diào)用阻塞原語將自己阻塞起來進(jìn)入睡眠等待狀態(tài)。

      (3)執(zhí)行中進(jìn)程調(diào)用了P原語操作,從而因資源不足而被阻塞:或調(diào)用了V原語操作激活了等待資源的進(jìn)程隊列。

      (4)執(zhí)行中進(jìn)程提出I/O請求后被阻塞。

      (5)在分時系統(tǒng)中時間片已經(jīng)用完。

      (6)在執(zhí)行完系統(tǒng)調(diào)用等系統(tǒng)程序后返回用戶程序時,可看做系統(tǒng)進(jìn)程執(zhí)行完畢,從而調(diào)度選擇一新的用戶進(jìn)程執(zhí)行。

      (7)在CPU執(zhí)行方式是可剝奪時,還有:就緒隊列中的某進(jìn)程的優(yōu)先級變得高于當(dāng)前執(zhí)行進(jìn)程的優(yōu)先級,從而也將引發(fā)進(jìn) 程調(diào)度。

      6.進(jìn)程上下文切換由哪幾部分組成?描述進(jìn)程上下文切換過程。

      答:進(jìn)程上下文切換由以下4個步驟組成;

      (1)決定是否作上下文切換以及是否允許作上下文切換。包括對進(jìn)程調(diào)度原因的檢查分析,以及當(dāng)前執(zhí)行進(jìn)程的資格和CPU執(zhí)行方式的檢查等。在操作系統(tǒng)中,上下文切換程序并不是每時每刻都在檢查和分析是否可作上下文切換,它們設(shè)置有適當(dāng)?shù)臅r機(jī)。

      (2)保存當(dāng)前執(zhí)行進(jìn)程的上下文。這里所說的當(dāng)前執(zhí)行進(jìn)程,實際上是指調(diào)用上下文切換程序之前的執(zhí)行進(jìn)程。如果上下文切換不是被那個當(dāng)前執(zhí)行進(jìn)程所調(diào)用,且不屬于該進(jìn)程,則所保存的上下文應(yīng)是先前執(zhí)行進(jìn)程的上下文,或稱為“老”進(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)程手中。

      第五章 處理器管理

      2.什么是虛擬存儲器?其特點是什么? 答:由進(jìn)程中的目標(biāo)代碼、數(shù)據(jù)等的虛擬地址組成的虛擬空間稱為虛擬存儲器。虛擬存儲器不考慮物理存儲器的大小和信息存放的實際位置,只規(guī)定每個進(jìn)程中相互關(guān)聯(lián)信息的相對位置。每個進(jìn)程都擁有自己的虛擬存儲器,且虛擬存儲

      器的容量是由計算機(jī)的地址結(jié)構(gòu)和尋址方式來確定。實現(xiàn)虛擬存儲器要求有相應(yīng)的地址轉(zhuǎn)換機(jī)構(gòu),以便把指令的虛擬地址變換為實際物理地址;另外,由于內(nèi)存空間較小,進(jìn)程只有部分內(nèi)容存放于內(nèi)存中,待執(zhí)行時根據(jù)需要再調(diào)指令入內(nèi)存。3.實現(xiàn)地址重定位的方法有哪幾類?

      答:實現(xiàn)地址重定位的方法有兩種:靜態(tài)地址重定位和動態(tài)地址重定位。

      (1)靜態(tài)地址重定位是在虛空間程序執(zhí)行之前由裝配程序完成地址映射工作。靜態(tài)重定位的優(yōu)點是不需要硬件支持,但是用靜態(tài)地址重定位方法進(jìn)行地址變換無法實現(xiàn)虛擬存儲器。靜態(tài)重定位的另一個缺點是必須占用連續(xù)的內(nèi)存空間和難以做到程序和數(shù)據(jù)的共享。

      (2)動態(tài)地址重定位是在程序執(zhí)行過程中,在CPU訪問內(nèi)存之前由硬件地址變換機(jī)構(gòu)將要訪問的程序或數(shù)據(jù)地址轉(zhuǎn)換成內(nèi)存地址。動態(tài)地址重定位的主要優(yōu)點有:

      ①可以對內(nèi)存進(jìn)行非連續(xù)分配。

      ②動態(tài)重定位提供了實現(xiàn)虛擬存儲器的基礎(chǔ)。

      ③動態(tài)重定位有利于程序段的共享。

      形式化描述:略。

      6.動態(tài)分區(qū)式管理的常用內(nèi)存分配算法有哪幾種?比較它們各自的優(yōu)缺點。

      答:動態(tài)分區(qū)式管理的常用內(nèi)存分配算法有最先適應(yīng)法(FF)、最佳適應(yīng)法(BF)和最壞適應(yīng)法(WF)。

      優(yōu)缺點比較:

      ①從搜索速度上看最先適應(yīng)法最佳,最佳適應(yīng)法和最壞適應(yīng)法都要求把不同大小的空閑區(qū)按大小進(jìn)行排隊。

      ②從回收過程來看,最先適應(yīng)法也是最佳,因為最佳適應(yīng)法和最壞適應(yīng)法都必須重新調(diào)整空閑區(qū)的位置。

      ③最佳適應(yīng)法找到的空閑區(qū)是最佳的,但是會造成內(nèi)存碎片較多,影響了內(nèi)存利用率,而最壞適應(yīng)法的內(nèi)存碎片最少,但是對內(nèi)存的請求較多的進(jìn)程有可能分配失敗。

      總之,三種算法各有所長,針對不同的請求隊列,它們的效率和功能是不一樣的7.5.3節(jié)討論的分區(qū)式管理可以實現(xiàn)虛存嗎?如果不能,需要怎樣修改?試設(shè)計一個分區(qū)式管理實現(xiàn)虛存的程序流程圖。如果能,試說明理由。

      答:5.3節(jié)討論的分區(qū)式管理不能實現(xiàn)虛存。如果要實現(xiàn)虛存,可以在分區(qū)的基礎(chǔ)之上對每個分區(qū)內(nèi)部進(jìn)行請求調(diào)頁式管理。

      8.簡述什么是覆蓋?什么是交換?覆蓋和交換的區(qū)別是什么? 答:將程序劃分為若干個功能上相對獨立的程序段,按照程序的邏輯結(jié)構(gòu)讓那些不會同時執(zhí)行的程序段共享同一塊內(nèi)存區(qū)的內(nèi)存擴(kuò)充技術(shù)就是覆蓋。交換是指先將內(nèi)存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再從外存交換區(qū)中調(diào)入指定的程序或數(shù)據(jù)到內(nèi)存中來,并讓其執(zhí)行的一種內(nèi)存擴(kuò)充技術(shù)。與覆蓋技術(shù)相比,交換不要求程序員給出程序段之間的覆蓋結(jié)構(gòu),而且,交換主要是在進(jìn)程或作業(yè)之間進(jìn)行,而覆蓋則主要在同一個作業(yè)或同一個進(jìn)程內(nèi)進(jìn)行。另外,覆蓋只能覆蓋那 些與覆蓋程序段無關(guān)的程序段。

      9.什么是頁式管理?靜態(tài)頁式管理可以實現(xiàn)虛存嗎? 答:頁式管理就是把各進(jìn)程的虛擬空間劃分為若干長度相等的頁面,把指令按頁面大小劃分后存放在內(nèi)存中執(zhí)行或只在內(nèi)存中存放那些經(jīng)常被執(zhí)行或即將被執(zhí)行的頁面,而那些不被經(jīng)常執(zhí)行以及在近期內(nèi)不可能被執(zhí)行的頁面則存放于外存中,按一定規(guī)則調(diào)入的一種內(nèi)存管理方式。

      靜態(tài)頁式管理不能實現(xiàn)虛存,這是因為靜態(tài)頁式管理要求進(jìn)程或作業(yè)在執(zhí)行前全部被裝入內(nèi)存,作業(yè)或進(jìn)程的大小仍受內(nèi)存可用頁面數(shù)的限制。

      11.請求頁式管理中有哪幾種常用的頁面置換算法?試比較它們的優(yōu)缺點。

      答:比較常用的頁面置換算法有:

      (1)隨機(jī)淘汰算法(randomglongram)。即隨機(jī)地選擇某個用戶頁面并將其換出。

      (2)輪轉(zhuǎn)法RR(roundrobin)。輪轉(zhuǎn)法循回?fù)Q出內(nèi)存可用區(qū)內(nèi)一個可以被換出的頁,無論該頁是剛被換進(jìn)或已經(jīng)換進(jìn)內(nèi)存很長時間。

      (3)先進(jìn)先出法FIFO(firstinfirstout)。FIFO算法選擇在內(nèi)存駐留時間最長的一頁將其淘汰。

      (4)最近最久未使用頁面置換算法I.RU(1east recently unused)。該算法的基本思想是:當(dāng)需要淘汰某一頁時,選擇離當(dāng)前時間最近的一段時間內(nèi)最久沒有使用過的頁面先淘汰。

      (5)理想型淘汰算法OPT(optimalreplacementalgorithm)。該算法淘汰在訪問串中將來再也不出現(xiàn)的或是在離當(dāng)前最遠(yuǎn)的位置上出現(xiàn)的頁面。15.段式管理可以實現(xiàn)虛存嗎?如果可以,簡述實現(xiàn)方法。

      答:段式管理可以實現(xiàn)虛存。

      段式管理把程序按照內(nèi)容或過程(函數(shù))關(guān)系分成段,每段擁有自己的名字。一個用戶作業(yè)或進(jìn)程所包含的段對應(yīng)于—個二維線性虛擬空間(段號s與段內(nèi)相對地址w),也就是一個二維虛擬存儲器。段式管理以段為單位分配內(nèi)存,然后通過地址映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換成實際的內(nèi)存物理地址。只把那些經(jīng)常訪問的段駐留內(nèi)存,而把那些在將來一段時間內(nèi)不被訪問的段放入外存,待需要時產(chǎn)生缺段中斷,自動調(diào)入。

      18.段頁式管理的主要缺點是什么?有什么改進(jìn)辦法? 答:段頁式管理的主要缺點是對內(nèi)存中指令或數(shù)據(jù)進(jìn)行存取時,至少需要對內(nèi)存進(jìn)行三次以上的訪問。第一次是由段表地址寄存器取段表始址后訪問段表,由此取出對應(yīng)段的頁表在內(nèi)存中的地址。第二次則是訪問頁表得到所要訪問的指令或數(shù)據(jù)的物理地址。只有在訪問了段表和頁表之后,第三次才能訪問真正需要訪問的物理單元。顯然。這將大大降低CPU執(zhí)行指令的速度。改進(jìn)辦法是設(shè)置快速聯(lián)想寄存器。在快速聯(lián)想寄存器中.存放當(dāng)前最常用的段號s,頁號p和對應(yīng)的內(nèi)存頁面地址與其他控制項。當(dāng)需要訪問內(nèi)存空間某一單元時,可在通過段表、頁表進(jìn)行內(nèi)存地址查找的同時,根據(jù)快速聯(lián)想寄存器查找其段號和頁號。如果所要訪問的段或頁的地址在快速聯(lián)想寄存器中,則系統(tǒng)不再訪問內(nèi)存中的段表、頁表而直接把快速聯(lián)想寄存器中的值與頁內(nèi)相對地址d拼接起來得到內(nèi)存地址。

      19.什么是局部性原理?什么是抖動?你有什么辦法減少系統(tǒng)的抖動現(xiàn)象? 答:局部性原理是指在幾乎所有程序的執(zhí)行過程中,在一段時間內(nèi),CPU總是集中地訪問程序中的某—個部分而不是對程序的所有部分具有平均的訪問概率。抖動是指當(dāng)給進(jìn)程分配的內(nèi)存小于所要求的工作區(qū)時,由于內(nèi)存外存之間交換頻繁,訪問外存的時間和輸入輸出處理時間大大增加,反而造成CPU因等待數(shù)據(jù)而空轉(zhuǎn),使得整個系統(tǒng)性能大大下降。在物理系統(tǒng)中,為防止抖動的產(chǎn)生,在進(jìn)行淘汰或替換時,—般總是把缺頁進(jìn)程鎖住,不讓其換出,從而防止抖動發(fā)生。防止抖動發(fā)生的另一個辦法是設(shè)置較大的內(nèi)存工作區(qū)。

      第八章 文件系統(tǒng)

      1.什么是文件、文件系統(tǒng)?文件系統(tǒng)有哪些功能?

      答:在計算機(jī)系統(tǒng)中,文件被解釋為一組賦名的相關(guān)字符流的集合,或者是相關(guān)記錄的集合。

      文件系統(tǒng)是操作系統(tǒng)中與管理文件有關(guān)的軟件和數(shù)據(jù)。

      文件系統(tǒng)的功能是用戶建立文件,撤銷、讀寫修改和復(fù)制文件,以及完成對文件的按名存取和進(jìn)行存取控制。

      2.文件系統(tǒng)一般按什么分類?可以分為哪幾類?

      答:文件系統(tǒng)一般按性質(zhì)、用途、組織形式、文件中的信息流向或文件的保護(hù)級別等分類。

      按文件的性質(zhì)與用途可以分為系統(tǒng)文件、庫文件和用戶文件。按文件的組織形式可以分為普通文件、目錄文件和特殊文件。按文件中的信息流向可以分為輸入文件、輸出文件和輸入/輸出文件。按文件的保護(hù)級別可以分為只讀文件、讀寫文件、可執(zhí)行文件和不保護(hù)文件。3.什么是文件的邏輯結(jié)構(gòu)?什么是記錄?

      答:文件的邏輯結(jié)構(gòu)就是用戶可見的結(jié)構(gòu),可分為字符流式的無結(jié)構(gòu)文件和記錄式的有結(jié)構(gòu)文件兩大類。

      記錄是一個具有特定意義的信息單位,它由該記錄在文件中的邏輯地址(相對地址)與記錄名所對應(yīng)的一組關(guān)鍵字、屬性及其屬性值所組成。

      7.文件的物理結(jié)構(gòu)有哪幾種?為什么說串聯(lián)文件結(jié)構(gòu)不適于隨機(jī)存取?

      答:文件的物理結(jié)構(gòu)是指文件在存儲設(shè)備上的存放方法。常用的文件物理結(jié)構(gòu)有連續(xù)文件、串聯(lián)文件和索引文件3種。串聯(lián)文件結(jié)構(gòu)用非連續(xù)的物理塊來存放文件信息,這些非連續(xù)的物理塊之間沒有順序關(guān)系,鏈接成一個串聯(lián)隊列,搜索時只能按隊列中的串聯(lián)指針順序搜索,存取方法應(yīng)該是順序存取的。否則,為了讀取某個信息塊而造成的磁頭大幅度移動將花去較多的時間。因此,串聯(lián)文件結(jié)構(gòu)不適于隨機(jī)存取 11.什么是文件目錄?文件目錄中包含哪些信息?

      答:一個文件的文件名和對該文件實施控制管理的說明信息稱為該文件的說明信息,又稱為該文件的目錄。

      文件目錄中包含文件名、與文件名相對應(yīng)的文件內(nèi)部標(biāo)識以及文件信息在文件存儲設(shè)備上第一個物理塊的地址等信息。另外還可能包含關(guān)于文件邏輯結(jié)構(gòu)、物理結(jié)構(gòu)、存取控制和管理等信息。第九章 外部設(shè)備管理

      1.設(shè)備管理的目標(biāo)和功能是什么? 答:設(shè)備管理的目標(biāo)是:選擇和分配輸入/輸出設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作;控制輸入/輸出設(shè)備和CPU(或內(nèi)存)之間交換數(shù)據(jù),為用戶提供一個友好的透明接口,提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間,以及進(jìn)程和進(jìn)程之間的并行操作,以使操作系統(tǒng)獲得最佳效率。設(shè)備管理的功能是:提供和進(jìn)程管理系統(tǒng)的接口;進(jìn)行設(shè)備分配;實現(xiàn)設(shè)備和設(shè)備、設(shè)備和CPU等之間的并行操作;進(jìn)行緩沖區(qū)管理。

      4. 什么是中斷?什么叫中斷處理?什么叫中斷響應(yīng)?

      答: 中斷是指計算機(jī)在執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理 完畢后又返回原來被中斷處繼續(xù)執(zhí)行的過程。CPU轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序的過程稱為中斷處理。CPU收到中斷請求后轉(zhuǎn)到相應(yīng)的事件處理程序稱為中斷響 應(yīng)。

      5.什么叫關(guān)中斷?什么叫開中斷?什么叫中斷屏蔽?

      答:把CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位清除從而不允許CPU響應(yīng)中斷叫做關(guān)中斷。設(shè)置CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位從而允許CPU響應(yīng)中斷叫做開中斷。

      中斷屏蔽是指在中斷請求產(chǎn)生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷而允許其余部分的中斷仍能得到響應(yīng)。

      6.什么是陷阱?什么是軟中斷?試述中斷、陷阱和軟中斷之間異同。

      答:陷阱指處理機(jī)和內(nèi)存內(nèi)部產(chǎn)生的中斷,它包括程序運(yùn)算引起的各種錯誤,如地址非法、校驗錯、頁面失效。存取訪問控制錯、從用戶態(tài)到核心態(tài)的切換等都是陷阱的例子。軟中斷是通信進(jìn)程之間用來模擬硬中斷的一種信號通信方式。

      7.描述中斷控制方式時的CPU動作過程。答:(1)首先,CPU檢查響應(yīng)中斷的條件是否滿足。如果中斷響應(yīng)條件不滿足,則中斷處理無法進(jìn)行。

      (2)如果CPU響應(yīng)中斷,則CPU關(guān)中斷。(3)保存被中斷進(jìn)程現(xiàn)場。(4)分析中斷原因,調(diào)用中斷處理子程序。(5)執(zhí)行中斷處理子程序。(6)退出中斷,恢復(fù)被中斷進(jìn)程的現(xiàn)場或調(diào)度新進(jìn)程占據(jù)處理機(jī)。(7)開中斷,CPU繼續(xù)執(zhí)行。8.什么是緩沖?為什么要引入緩沖? 答:緩沖即是使用專用硬件緩沖器或在內(nèi)存中劃出一個區(qū)域用來暫時存放輸入輸出數(shù)據(jù)的器件。引入緩沖是為了匹配外設(shè)和CPU之間的處理速度,減少中斷次數(shù)和CPU的中斷處理時間,同時解決DMA或通道方式時的數(shù)據(jù)傳輸瓶頸問題。

      第三篇:操作系統(tǒng)習(xí)題解答 (張堯?qū)W)

      第一章

      1.什么是操作系統(tǒng)的基本功能? 答:操作系統(tǒng)的職能是管理和控制計算機(jī)系統(tǒng)中的所有硬、軟件資源,合理地組織計算機(jī)工作流程,并為用戶提供一個良好的工作環(huán)境和友好的接口。操作系統(tǒng)的基本功能包括:處理機(jī)管理、存儲管理、設(shè)備管理、信息管理(文件系統(tǒng)管理)和用戶接口等。

      2.什么是批處理、分時和實時系統(tǒng)?各有什么特征? 答:批處理系統(tǒng)(batch processingsystem):操作員把用戶提交的作業(yè)分類,把一批作業(yè)編成一個作業(yè)執(zhí)行序列,由專門編制的監(jiān)督程序(monitor)自動依次處理。其主要特征是:用戶脫機(jī)使用計算機(jī)、成批處理、多道程序運(yùn)行。

      分時系統(tǒng)(time sharing operation system):把處理機(jī)的運(yùn)行時間分成很短的時間片,按時間片輪轉(zhuǎn)的方式,把處理機(jī)分配給各進(jìn)程使用。其主要特征是:交互性、多用戶同時性、獨立性。

      實時系統(tǒng)(real time system):在被控對象允許時間范圍內(nèi)作出響應(yīng)。其主要特征是:對實時信息分析處理速度要比進(jìn)入系統(tǒng)快、要求安全可靠、資源利用率低。

      3. 多道程序設(shè)計和多重處理有何區(qū)別? 答;多道程序(multiprogramming)是作業(yè)之間自動調(diào)度執(zhí)行、共享系統(tǒng)資源,并不是真正地同時執(zhí)行多個作業(yè);而多重處理(multiprocessing)系統(tǒng)配置多個CPU,能真正同時執(zhí)行多道程序。要有效使用多重處理,必須采用多道程序設(shè)計技術(shù),而多道程序設(shè)計原則上不一定要求多重處理系統(tǒng)的支持。

      4. 討論操作系統(tǒng)可以從哪些角度出發(fā),如何把它們統(tǒng)一起來?

      答;討論操作系統(tǒng)可以從以下角度出發(fā):(1)操作系統(tǒng)是計算機(jī)資源的管理者;(2)操作系統(tǒng)為用戶提供使用計算機(jī)及界面;(3)用進(jìn)程管理觀點研究操作系統(tǒng),即圍繞進(jìn)程運(yùn)行過程來討論操作系統(tǒng)。

      上述這些觀點彼此并不矛盾,分別代表了從不同角度對同一事物(操作系統(tǒng))的觀點。每種觀點都有助于理解、分析和設(shè)計操作系統(tǒng)。

      6. 設(shè)計計算機(jī)操作系統(tǒng)與哪些硬件器件有關(guān)? 答;計算機(jī)操作系統(tǒng)的重要功能之一是對硬件資源的管理。因此設(shè)計計算機(jī)操作系統(tǒng)時應(yīng)考慮下述計算機(jī)硬件資源:(1)CPU與指令的長度與執(zhí)行方式;(2)內(nèi)存、緩存和高速緩存等存儲裝置;(3)各類寄存器,包括各種通用寄存器、控制寄存器和狀態(tài)寄存器;(4)中斷機(jī)構(gòu);(5)外部設(shè)備與I/O控制裝置;(6)內(nèi)部總線與外部總線;(7)對硬件進(jìn)行操作的指令集。第二章

      1.什么是作業(yè)?作業(yè)步? 答:把在一次應(yīng)用業(yè)務(wù)處理過程中,從輸入開始到輸出結(jié)束,用戶要求計算機(jī)所做的有關(guān)該次業(yè)務(wù)處理的全部工作稱為一個作業(yè)。作業(yè)由不同的順序相連的作業(yè)步組成。作業(yè)步是在一個作業(yè)的處理過程中,計算機(jī)所做的相對獨立的工作。如,編輯輸入是一個作業(yè)步,它產(chǎn)生源程序文件;編譯也是一個作業(yè)步,它產(chǎn)生目標(biāo)代碼文件。

      2.作業(yè)由哪幾部分組成? 各有什么功能? 答:作業(yè)由三部分組成:程序、數(shù)據(jù)和作業(yè)說明書。程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作,作業(yè)說明書則體現(xiàn)用戶的控制意圖。

      3.作業(yè)的輸入方式有哪幾種?各有何特點

      答:作業(yè)的輸入方式有5種:聯(lián)機(jī)輸入方式、脫機(jī)輸入方式、直接耦合方式、SPOOLING(Simultaneous Peripheral Operations Online)系統(tǒng)和網(wǎng)絡(luò)輸入方式,各有如下特點:

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

      4.試述SPOOLING系統(tǒng)的工作原理。

      答:在SPOOLING系統(tǒng)中,多臺外圍設(shè)備通過通道或DMA器件和主機(jī)與外存連接起來,作業(yè)的輸入輸出過程由主機(jī)中的操作系統(tǒng)控制。操作系統(tǒng)中的輸入程序包含兩個獨立的過程,一個過程負(fù)責(zé)從外部設(shè)備把信息讀入緩沖區(qū),另一個過程是寫過程,負(fù)責(zé)把緩沖區(qū)中的信息送入到外存輸入井中。

      在系統(tǒng)輸入模塊收到作業(yè)輸入請求后,輸入管理模塊中的讀過程負(fù)責(zé)將信息從輸入裝置讀入緩沖區(qū)。當(dāng)緩沖區(qū)滿時,由寫過程將信息從緩沖區(qū)寫到外存輸入井中。讀過程和寫過程反復(fù)循環(huán),直到一個作業(yè)輸入完畢。當(dāng)讀過程讀到一個硬件結(jié)束標(biāo)志后,系統(tǒng)再次驅(qū)動寫過程把最后一批信息寫入外存并調(diào)用中斷處理程序結(jié)束該次輸入。然后,系統(tǒng)為該作業(yè)建立作業(yè)控制塊JCB,從而使輸入井中的作業(yè)進(jìn)入作業(yè)等待隊列,等待作業(yè)調(diào)度程序選中后進(jìn)入內(nèi)存。5.操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別是什么? 答:操作系統(tǒng)為用戶提供兩個接口,一個是系統(tǒng)為用戶提供的各種命令接口,用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行或管理計算機(jī)系統(tǒng)。另一個接口是系統(tǒng)調(diào)用,編程人員使用系統(tǒng)調(diào)用來請求操作系統(tǒng)提供服務(wù),例如申請和釋放外設(shè)等類資源、控制程序的執(zhí)行速度等。

      6.作業(yè)控制方式有哪幾種?調(diào)查你周圍的計算機(jī)的作業(yè)控制方式。

      答:作業(yè)控制的主要方式有兩種:脫機(jī)方式和聯(lián)機(jī)方式。脫機(jī)控制方式利用作業(yè)控制語言來編寫表示用戶控制意圖的作業(yè)控制程序,也就是作業(yè)說明書。作業(yè)控制語言的語句就是作業(yè)控制命令。不同的批處理系統(tǒng)提供不同的作業(yè)控制語言。

      聯(lián)機(jī)控制方式不同于脫機(jī)控制方式,它不要求用戶填寫作業(yè)說明書,系統(tǒng)只為用戶提供一組鍵盤或其他操作方式的命令。用戶使用操作系統(tǒng)提供的操作命令和系統(tǒng)會話,交互地控制程序執(zhí)行和管理計算機(jī)系統(tǒng)。

      7.什么是系統(tǒng)調(diào)用?系統(tǒng)調(diào)用與一般用戶程序有什么區(qū)別?與庫函數(shù)和實用程序又有什么區(qū)別? 答:系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口。編程人員利用系統(tǒng)調(diào)用,在源程序一級動態(tài)請求和釋放系統(tǒng)資源,調(diào)用系統(tǒng)中已有的系統(tǒng)功能來完成那些與機(jī)器硬件部分相關(guān)的工作以及控制程序的執(zhí)行速度等。因此,系統(tǒng)調(diào)用像一個黑箱子那樣,對用戶屏蔽了操作系統(tǒng)的具體動作而只提供有關(guān)的功能。

      系統(tǒng)調(diào)用與一般用戶程序、庫函數(shù)和實用程序的區(qū)別是:系統(tǒng)調(diào)用程序是在核心態(tài)執(zhí)行,調(diào)用它們需要一個類似于硬件中斷處理的中斷處理機(jī)制來提供系統(tǒng)服務(wù)。

      8.簡述系統(tǒng)調(diào)用的實現(xiàn)過程。

      答:用戶在程序中使用系統(tǒng)調(diào)用,給出系統(tǒng)調(diào)用名和函數(shù)后,即產(chǎn)生一條相應(yīng)的陷入指令,通過陷入處理機(jī)制調(diào)用服務(wù),引起處理機(jī)中斷,然后保護(hù)處理機(jī)現(xiàn)場,取系統(tǒng)調(diào)用功能號并尋找子程序入口,通過入口地址表來調(diào)用系統(tǒng)子程序,然后返回用戶程序繼續(xù)執(zhí)行。

      9.為什么說分時系統(tǒng)沒有作業(yè)的概念?

      答:因為咋分時系統(tǒng)中,每個用戶得到的時間片有限,用戶的程序和數(shù)據(jù)信息直接輸入到內(nèi)存工作區(qū)中和其它程序一起搶占系統(tǒng)資源投入執(zhí)行,而不必進(jìn)入外存輸入井等待作業(yè)調(diào)度程序選擇。因此,分時系統(tǒng)沒有作業(yè)控制表,也沒有作業(yè)調(diào)度程序。第三章

      1.有人說,一個進(jìn)程是由偽處理機(jī)執(zhí)行的一個程序,這話對嗎?為什么?

      答:對。因為偽處理機(jī)的概念只有在執(zhí)行時才存在,它表示多個進(jìn)程在單處理機(jī)上并發(fā)執(zhí)行的一個調(diào)度單位。因此,盡管進(jìn)程是動態(tài)概念,是程序的執(zhí)行過程,但是,在多個進(jìn)程并發(fā)執(zhí)行時,仍然只有一個進(jìn)程占據(jù)處理機(jī)執(zhí)行,而其它并發(fā)進(jìn)程則處于就緒或等待狀態(tài)。這些并發(fā)進(jìn)程就相當(dāng)于由偽處理機(jī)執(zhí)行的程序。

      2.試比較進(jìn)程和程序的區(qū)別。

      答:(1)進(jìn)程是一個動態(tài)概念,而程序是一個靜態(tài)概念,程序是指令的有序集合,無執(zhí)行含義,進(jìn)程則強(qiáng)調(diào)執(zhí)行的過程。

      (2)進(jìn)程具有并行特征(獨立性,異步性),程序則沒有。(3)不同的進(jìn)程可以包含同一個程序,同一程序在執(zhí)行中也可以產(chǎn)生多個進(jìn)程。

      4.試比較作業(yè)和進(jìn)程的區(qū)別。答:并非對所有的程序均成立。例如: begin local x x:=10 print(x)end 上述程序中x是內(nèi)部變量,不可能被外部程序訪問,因此這段程序的運(yùn)行不會受外界環(huán)境影響。

      4.試比較作業(yè)和進(jìn)程的區(qū)別。

      答:一個進(jìn)程是一個程序?qū)δ硞€數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位。作業(yè)是用于需要計算機(jī)完成某項任務(wù),而要求計算機(jī)所做工作的集合。一個作業(yè)的完成要經(jīng)過作業(yè)提交,作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成4個階段。而進(jìn)程是已提交完畢的程序所執(zhí)行過程的描述,是資源分配的基本單位。其主要區(qū)別關(guān)系如下:

      (1)作業(yè)是用戶向計算機(jī)提交任務(wù)的任務(wù)實體。在用戶向計算機(jī)提交作業(yè)之后,系統(tǒng)將存儲在外存中的作業(yè)等待隊列中等待執(zhí)行。而進(jìn)程則是完成用戶任務(wù)的執(zhí)行實體,是向系統(tǒng)申請分配資源的基本單位。任一進(jìn)程,只要它被創(chuàng)建,總有相應(yīng)的部分存在于內(nèi)存中。

      (2)一個作業(yè)可由多個進(jìn)程組成。且必須至少由一個進(jìn)程組成,但反過來不成立。

      (3)作業(yè)的概念主要用在批處理系統(tǒng)中。像Unix這樣的分時系統(tǒng)中,則沒有作業(yè)概念。而進(jìn)程的概念則用在幾乎所有的多道程序系統(tǒng)中。

      6.什么是臨界區(qū)?試舉一臨界區(qū)的例子。

      答:臨界區(qū)是指不允許多個并發(fā)進(jìn)程交叉執(zhí)行的一段程序。它是由于不同并發(fā)進(jìn)程的程序段共享公用數(shù)據(jù)或公用數(shù)據(jù)變量而引起的。所以它又被稱為訪問公用數(shù)據(jù)的那段程序。

      例如:

      getspace: begin local g g=stact[top]

      top=top-1 End release(ad): Begin top=top+1 stack[top]=ad End

      7.并發(fā)進(jìn)程間的制約有哪兩種?引起制約的原因是什么? 答:并發(fā)進(jìn)程所受的制約有兩種:直接制約和間接制約。直接制約是由并發(fā)進(jìn)程互相共享對方的私有資源所引起的。間接制約是由競爭共有資源而引起的。

      8.什么是進(jìn)程間的互斥?什么是進(jìn)程間同步? 答:進(jìn)程間的互斥是指:一組并發(fā)進(jìn)程中的一個或多個程序段,因共享某一公有資源而導(dǎo)致它們必須以一個不許交叉執(zhí)行的單位執(zhí)行,即不允許兩個以上的共享該資源的并發(fā)進(jìn)程同時進(jìn)入臨界區(qū)。

      進(jìn)程間的同步是指:異步環(huán)境下的一組并發(fā)進(jìn)程因直接制約互相發(fā)送消息而進(jìn)行互相合作、互相等待,使得各進(jìn)程按一定的速度執(zhí)行的過程。

      9.試比較P,V原語法和加鎖法實現(xiàn)進(jìn)程間互斥的區(qū)別。

      答:互斥的加鎖實現(xiàn)是這樣的:當(dāng)某個進(jìn)程進(jìn)入臨界區(qū)之后,它將鎖上臨界區(qū),直到它退出臨界區(qū)時為止。并發(fā)進(jìn)程在申請進(jìn)入臨界區(qū)時,首先測試該臨界區(qū)是否是上鎖的,如果該臨界區(qū)已被鎖住,則該進(jìn)程要等到該臨界區(qū)開鎖之后才有可能獲得臨界區(qū)。

      加鎖法存在如下弊端:(1)循環(huán)測試鎖定位將損耗較多的CPU計算時間;(2)產(chǎn)生不公平現(xiàn)象。

      P,V原語法采用信號量管理相應(yīng)臨界區(qū)的公有資源,信號量的數(shù)值僅能由P,V原語操作改變,而P,V原語執(zhí)行期間不允許中斷發(fā)生。其過程是這樣的:當(dāng)某個進(jìn)程正在臨界區(qū)內(nèi)執(zhí)行時,其他進(jìn)程如果執(zhí)行了P原語,則該進(jìn)程并不像lock時那樣因進(jìn)不了臨界區(qū)而返回到lock的起點,等以后重新執(zhí)行測試,而是在等待隊列中等待由其他進(jìn)程做V原語操作釋放資源后,進(jìn)入臨界區(qū),這時P原語才算真正結(jié)束。若有多個進(jìn)程做P原語操作而進(jìn)入等待狀態(tài)之后,一旦有V原語釋放資源,則等待進(jìn)程中的一個進(jìn)入臨界區(qū),其余的繼續(xù)等待。

      總之,加鎖法是采用反復(fù)測試lock而實現(xiàn)互斥的,存在CPU浪費和不公平現(xiàn)像,P,V原語使用了信號量,克服了加鎖法的弊端。

      10.答:設(shè)第I塊緩沖區(qū)的公有信號量為metex[I],保證生產(chǎn)者進(jìn)程和消費者進(jìn)程對同一塊緩沖區(qū)操作的互斥,初值為1;

      設(shè)信號量avail為生產(chǎn)者進(jìn)程的私有信號量,初值為m; 設(shè)信號量full為消費者進(jìn)程的私有信號量,初值為0。用信號量和P、V操作描述發(fā)送過程deposit(data)和接收過程remove(data)如下:

      deposit(data):

      begin

      P(avail)

      選擇一個空緩沖區(qū)i

      P(mutex[i])

      送數(shù)據(jù)入緩沖區(qū)i

      V(mutex[i])

      V(full)

      End

      P(full)

      選擇一個滿緩沖區(qū)i P(mutex[i])

      取緩沖區(qū)i中的數(shù)據(jù)

      V(mutex[i])V(avail)12.

      答:定義數(shù)組buf[0],buf[1]。

      設(shè)bufempty[0],buffull[1]是Pa的公有信號量;設(shè)bufempty[1],buffull[0]是Pb的公有信號量;初值為: bufempty[0]= bufempty[1]=n buffull[0]= buffull[1]=0 用信號量和P、V操作描述發(fā)送過程send(i,m)和接收過程receive(i,m)如下:

      send(i,m):

      begin

      local x

      P(bufempty[i])

      按FIFO選擇一個空緩沖區(qū)buf[i](x)buf[i](x)=m buf[i](x)置滿標(biāo)記

      V(buffull[i])

      End receive(i,m):

      begin

      local x

      P(buffull[i])

      按FIFO選擇一個滿緩沖區(qū)buf[i](x)m=buf[i](x)buf[i](x)置空標(biāo)記

      V(bufempty[i])

      End Pa調(diào)用send(0,m)和receive(1,m)Pb調(diào)用send(1,m)和receive(0,m)14.

      答:設(shè)信號量c[i],初值為1;i=0,1,2,3,4。i表示第i號筷子。(1)第i個哲學(xué)家要吃飯: eat(i):

      begin

      P(c[i])remove(data):

      begin

      End

      P(c[i+1 mod 5])

      吃飯

      V(c[i+1 mod 5])

      V(c[i])

      End 該過程能保證兩個鄰座不同時吃飯,但有可能出現(xiàn)每人只拿到一支筷子,誰也吃不上飯的情況。

      (1)為解決上述情況,讓奇數(shù)號的哲學(xué)家先取右手邊的筷子,偶數(shù)號的哲學(xué)家先取左手邊的筷子。這樣只要有一個哲學(xué)家拿到了一支筷子,就阻止了鄰座的哲學(xué)家吃法的企圖,從而不會死鎖,除非某哲學(xué)家永遠(yuǎn)吃下去。

      算法描述如下: eat(i):

      begin if i mod 2 == 0 then

      { P(c[i])

      P(c[i+1 mod 5])

      吃飯

      V(c[i+1 mod 5])

      V(c[i])

      }

      else

      {

      P(c[i+1 mod 5])P(c[i])

      吃飯

      V(c[i])

      V(c[i+1 mod 5])

      } End 另解:最多只允許4個哲學(xué)家同時要求進(jìn)餐,這樣至少有一位哲學(xué)家能取到兩只筷子并可以進(jìn)餐,進(jìn)餐后釋放兩只筷子,其他哲學(xué)家可以陸續(xù)進(jìn)餐。

      設(shè)哲學(xué)家進(jìn)餐信號量sm=4;筷子信號量c[i]=1(i=0,1,2,3,4)eat(i):

      begin P(sm)

      P(c[i])

      P(c[i+1 mod 5])

      吃飯

      V(c[i+1 mod 5])

      V(c[i])V(sm)

      End 15.什么是線程? 試述線程與進(jìn)程的區(qū)別。答;線程是在進(jìn)程內(nèi)用于調(diào)度和占有處理機(jī)的基本單位,它由線程控制表、存儲線程上下文的用戶棧以及核心棧組成。線程可分為用戶級線程、核心級線程以及用戶/核心混合型線程等類型。其中用戶級線程在用戶態(tài)下執(zhí)行,CPU調(diào)度算法和各線程優(yōu)先級都由用戶設(shè)置,與操作系統(tǒng)內(nèi)核無關(guān)。核心級線程的調(diào)度算法及線程優(yōu)先級的控制權(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)度時,由于涉及到資源轉(zhuǎn)移以及現(xiàn)場保護(hù)等問題,將導(dǎo)致處理機(jī)切換時間變長,資源利用率降低。以線程為單位進(jìn)行處理機(jī)切換和調(diào)度時,由于不發(fā)生資源變化,特別是地址空間的變化,處理機(jī)切換的時間較短,從而處理機(jī)效率也較高。

      (3)對用戶來說,多線程可減少用戶的等待時間。提高系統(tǒng)的響應(yīng)速度。例如,當(dāng)一個進(jìn)程需要對兩個不同的服務(wù)器進(jìn)行遠(yuǎn)程過程凋用時,對于無線程系統(tǒng)的操作系統(tǒng)來說需要順序等待兩個不同調(diào)用返回結(jié)果后才能繼續(xù)執(zhí)行,且在等待中容易發(fā)生進(jìn)程調(diào)度。對于多線程系統(tǒng)而言,則可以在同一進(jìn)程中使用不同的線程同時進(jìn)行遠(yuǎn)程過程調(diào)用,從而縮短進(jìn)程的等待時間。

      (4)線程和進(jìn)程一樣,都有自己的狀態(tài).也有相應(yīng)的同步機(jī)制,不過,由于線程沒有單獨的數(shù)據(jù)和程序空間,因此,線程不能像進(jìn)程的數(shù)據(jù)與程序那樣,交換到外存存儲空間。從而線程沒有掛起狀態(tài)。

      (5)進(jìn)程的調(diào)度、同步等控制大多由操作系統(tǒng)內(nèi)核完成,而線程的控制既可以由操作系統(tǒng)內(nèi)核進(jìn)行,也可以由用戶控制進(jìn)行。思考題:讀者與寫者關(guān)系問題(讀者優(yōu)先)。

      答:設(shè)寫者互斥信號量wm=1;讀者計數(shù)器readcount=0;互斥操作readcount的信號量rm=1;reader()begin P(rm)Readcount:=readcount+1 If readcount==1 then P(wm)V(rm)讀數(shù)據(jù) P(rm)Readcount:=readcount-1 If readcount==0 then V(wm)V(rm)end writer()begin P(wm)寫數(shù)據(jù) V(wm)end 第四章

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

      另外,由于處于執(zhí)行狀態(tài)下的作業(yè)一般包括多個進(jìn)程,而在單機(jī)系統(tǒng)中,每一時刻只能有一個進(jìn)程占有處理機(jī),這樣,在外存中,除了處于后備狀態(tài)的作業(yè)外,還存在處于就緒狀態(tài)而等待得到內(nèi)存的作業(yè)。我們需要有一定的方法和策略為這部分作業(yè)分配空間。因此處理機(jī)調(diào)度需要分級。

      一般來說,處理機(jī)調(diào)度可分為4級:

      (1)作業(yè)調(diào)度: 又稱宏觀調(diào)度,或高級調(diào)度。

      (2)交換調(diào)度:又稱中級調(diào)度。其主要任務(wù)是按照給定的原則和策略,將處于外存交換區(qū)中的就緒狀態(tài)或等待狀態(tài)的進(jìn)程調(diào)入內(nèi)存,或處于內(nèi)存就緒狀態(tài)或等待狀態(tài)的進(jìn)程交換到外存交換區(qū)。交換調(diào)度主要涉及到內(nèi)存管理與擴(kuò)充。

      (3)進(jìn)程調(diào)度:又稱微觀調(diào)度或低級調(diào)度。其主要任務(wù)是按照某種策略和方法選取一個處于就緒狀態(tài)的進(jìn)程占用處理機(jī)。在確立了占用處理機(jī)的進(jìn)程之后,系統(tǒng)必須進(jìn)行進(jìn)程上下文切換以建立與占用處理機(jī)進(jìn)程相適應(yīng)的執(zhí)行環(huán)境。

      (4)線程調(diào)度:進(jìn)程中相關(guān)堆棧和控制表等的調(diào)度。

      2.試述作業(yè)調(diào)度的主要功能。P88 答: 作業(yè)調(diào)度的主要功能是:(1)記錄系統(tǒng)中各作業(yè)的狀況。

      (2)按一定的原則對外存輸入井上的大量后備作業(yè)進(jìn)行選擇。

      (3)給選出的作業(yè)分配內(nèi)存、輸入輸出設(shè)備等必要的資源,并建立相應(yīng)進(jìn)程,使該作業(yè)的相關(guān)進(jìn)程獲得競爭處理機(jī)的權(quán)利。

      (4)當(dāng)作業(yè)執(zhí)行完畢時,還負(fù)責(zé)回收系統(tǒng)資源。

      3.作業(yè)調(diào)度的性能評價標(biāo)準(zhǔn)有哪些?這些性能評價標(biāo)準(zhǔn)在任何情況下都能反映調(diào)度策略的優(yōu)劣嗎? 答:調(diào)度的性能評價標(biāo)準(zhǔn):

      (1)對所有作業(yè)應(yīng)該是公平合理的;(2)應(yīng)使設(shè)備有高的利用率;(3)每天執(zhí)行盡可能多的作業(yè);(4)有快的響應(yīng)時間。

      不能。對于批處理系統(tǒng),由于主要用于計算,因而對于作業(yè)的周轉(zhuǎn)時間要求較高。從而作業(yè)的平均周轉(zhuǎn)時間或平均帶權(quán)周轉(zhuǎn)時間被用來衡量調(diào)度程序的優(yōu)劣。但對于分時系統(tǒng)來說,平均響應(yīng)時間又被用來衡量調(diào)度策略的優(yōu)劣。對于分時系統(tǒng),除了要保證系統(tǒng)吞吐量大、資源利用率高之外,還應(yīng)保證用戶能夠容忍的響應(yīng)時間。因此,在分時系統(tǒng)中,僅僅用周轉(zhuǎn)時間或帶權(quán)周轉(zhuǎn)時間來衡量調(diào)度性能是不夠的。

      對于實時系統(tǒng),衡量調(diào)度算法優(yōu)劣的主要標(biāo)志則是滿足用戶要求的時限時間。

      4.進(jìn)程調(diào)度的功能有哪些? P91 答:進(jìn)程調(diào)度的功能有:

      (1)記錄和保存系統(tǒng)中所有進(jìn)程的執(zhí)行情況;(2)選擇占有處理機(jī)的進(jìn)程;(3)進(jìn)行進(jìn)程上下文切換。

      5.進(jìn)程調(diào)度的時機(jī)有哪幾種? P92 答:進(jìn)程調(diào)度的時機(jī)有:

      (1)正在執(zhí)行的進(jìn)程執(zhí)行完畢。這時如果不選擇新的就緒進(jìn)程執(zhí)行,將浪費處理機(jī)資源。

      (2)執(zhí)行中進(jìn)程自己調(diào)用阻塞原語將自己阻塞起來進(jìn)入睡眠等待狀態(tài)。(3)執(zhí)行中進(jìn)程調(diào)用了P原語操作,從而因資源不足而被阻塞:或調(diào)用了V原語操作激活了等待資源的進(jìn)程隊列。

      (4)執(zhí)行中進(jìn)程提出I/O請求后被阻塞。(5)在分時系統(tǒng)中時間片已經(jīng)用完。

      (6)在執(zhí)行完系統(tǒng)調(diào)用等系統(tǒng)程序后返回用戶程序時,可看做系統(tǒng)進(jìn)程執(zhí)行完畢,從而調(diào)度選擇一新的用戶進(jìn)程執(zhí)行。

      (7)在CPU執(zhí)行方式是可剝奪時,還有:就緒隊列中的某進(jìn)程的優(yōu)先級變得高于當(dāng)前執(zhí)行進(jìn)程的優(yōu)先級,從而也將引發(fā)進(jìn) 程調(diào)度。

      6.假設(shè)有4道作業(yè),它們的提交時間及執(zhí)行時間由下表給出:

      作業(yè)號

      提交時刻(時)執(zhí)行時間(小時)1 10:00 2 2 10:20 1 3 10:40 0.5 4 10:50 0.3 計算在單道程序環(huán)境下,采用先來先服務(wù)調(diào)度算法和最短作業(yè)優(yōu)先調(diào)度算法時的平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間,并指出它們的調(diào)度順序。

      答:(1)先來先服務(wù)調(diào)度: 調(diào)度順序: 1、2、3、4 1 Ts1:10:00 Te1:12:00 Tr1:2 Tw1: 0 2 Ts2:10:20 Te2:13:00 Tr2:1 Tw2: 1.7 3 Ts3:10:40 Te3:13:30 Tr3: 0.5 Tw3:2.3 4 Ts4:10:50 Te4:13:50 Tr4: 0.3 Tw4:2.7

      T=0.25*(2+2.7+2.8+3)=2.625(h)W=0.25*(4+0+1.7/1+2.3/0.5+2.7/0.3)=4.825

      (2)最短作業(yè)優(yōu)先調(diào)度: 調(diào)度順序: 4、3、2、1 1 Ts4: 10:50 Te4:11:10 Tr4:0.3 Tw4:0 2 Ts3:10:40 Te3:11:40 Tr3: 0.5 Tw3:0.5 3 Ts2;10:20 Te2:12:40 Tr2: 1 Tw2: 1.3 4 Ts1:10:00 Te1: 14:40 Tr1:2 Tw1:2.7 T:0.25*(0.3+1+2.3+4.7)= 2.075(h)W: 0.25*(4+0+1+1.3+2.7/2)=1.9125 以上是4個作業(yè)提交完后的調(diào)度情況(提交過程中運(yùn)行其它作業(yè))。如果邊提交邊調(diào)度,又如何? 第五章

      1.存儲管理的主要功能是什么? P109 5.1節(jié)

      答:存儲管理的主要功能包括以下幾點:

      (1)在硬件的支持下完成統(tǒng)一管理內(nèi)存和外存之間數(shù)據(jù)和程序段自動交換的虛擬存儲。

      (2)將多個虛存的一維線性空間或多維線性空間變換到內(nèi)存的唯一的一維物理線性地址。

      (3)控制內(nèi)外存之間的數(shù)據(jù)傳輸。(4)實現(xiàn)內(nèi)存的分配和回收。

      (5)實現(xiàn)內(nèi)存信息的共享與保護(hù)。

      2. 什么是虛擬存儲器?其特點是什么? P110 答:由進(jìn)程中的目標(biāo)代碼、數(shù)據(jù)等的虛擬地址組成的虛擬空間稱為虛擬存儲器。虛擬存儲器不考慮物理存儲器的大小和信息存放的實際位置,只規(guī)定每個進(jìn)程中相互關(guān)聯(lián)信息的相對位置。每個進(jìn)程都擁有自己的虛擬存儲器,且虛擬存儲器的容量是由計算機(jī)的地址結(jié)構(gòu)和尋址方式來確定。

      實現(xiàn)虛擬存儲器要求有相應(yīng)的地址變換機(jī)構(gòu),以便把指令的虛擬地址變換為實際物理地址;另外,由于內(nèi)存空間較小,進(jìn)程只有部分內(nèi)容存放于內(nèi)存中,待執(zhí)行時根據(jù)需要再調(diào)入內(nèi)存。

      3.實現(xiàn)地址重定位的方法有哪幾類? P111 答:實現(xiàn)地址重定位的方法有兩種:靜態(tài)地址重定位和動態(tài)地址重定位。

      (1)靜態(tài)地址重定位是在虛空間程序執(zhí)行之前由裝配程序完成地址映射工作。靜態(tài)重定位的優(yōu)點是不需要硬件支持,但是用靜態(tài)地址重定位方法進(jìn)行地址變換無法實現(xiàn)虛擬存儲器。靜 態(tài)重定位的另一個缺點是必須占用連續(xù)的內(nèi)存空間和難以做到程序和數(shù)據(jù)的共享。

      (2)動態(tài)地址重定位是在程序執(zhí)行過程中,在CPU訪問內(nèi)存之前由硬件地址變換機(jī)構(gòu)將要訪問的程序或數(shù)據(jù)地址轉(zhuǎn)換成內(nèi)存地址。動態(tài)地址重定位的主要優(yōu)點有:

      ① 可以對內(nèi)存進(jìn)行非連續(xù)分配。

      ② 動態(tài)重定位提供了實現(xiàn)虛擬存儲器的基礎(chǔ)。③ 動態(tài)重定位有利于程序段的共享。

      4.常用的內(nèi)存信息保護(hù)方法有哪幾種?它們各自的特點是什么? P113 答:常用的內(nèi)存保護(hù)方法有硬件法、軟件法和軟硬件結(jié)合保護(hù)法三種。上下界保護(hù)法是一種常用的硬件保護(hù)法。上下界存儲保護(hù)技術(shù)要求為每個進(jìn)程設(shè)置對上下界寄存器。上下界寄存器中裝有被保護(hù)程序和數(shù)據(jù)段的起始地址和終止地址。在程序執(zhí)行過程 中,在對內(nèi)存進(jìn)行訪問操作時首先進(jìn)行訪問地址合法性檢查,即檢查經(jīng)過重定位之后的內(nèi)存地址是否在上、下界寄存器所規(guī)定的范圍之內(nèi)。若在規(guī)定的范圍之內(nèi),則訪問是合法的;否則是非法的,并產(chǎn)生訪問越界中斷。

      保護(hù)鍵法也是一種常用的軟件存儲保護(hù)法。保護(hù)鍵法為每—個被保護(hù)存儲塊分配一個單獨的保護(hù)鍵。在程序狀態(tài)字中則設(shè)置相應(yīng)的保護(hù)鍵開關(guān)字段,對不同的進(jìn)程賦予不同的開關(guān)代碼 以和被保護(hù)的存儲塊中的保護(hù)鍵匹配。保護(hù)鍵可以設(shè)置成對讀寫同時保護(hù)的或只對讀寫進(jìn)行單項保護(hù)的。如果開關(guān)字段與保護(hù)鍵匹配或存儲塊未受到保護(hù),則訪問該存儲塊是允許的,否則將產(chǎn)生訪問出錯中斷。

      另外一種常用的硬軟件內(nèi)存保護(hù)方式是:界限存儲器與CPU的用戶態(tài),核心態(tài)相結(jié)合的保護(hù)方式。在這種保護(hù)方式下,用戶態(tài)進(jìn)程只能訪問那些在界限寄存器所規(guī)定范圍內(nèi)的內(nèi)存部分,而核心態(tài)進(jìn)程則可以訪問整個內(nèi)存地址空間。

      6.動態(tài)分區(qū)式管理的常用內(nèi)存分配算法有哪幾種?比較它們各自的優(yōu)缺點。P118 答:動態(tài)分區(qū)式管理的常用內(nèi)存分配算法有最先適應(yīng)法(FF)、最佳適應(yīng)法(BF)和最壞適應(yīng)法(WF)。

      優(yōu)缺點比較:

      ① 從搜索速度上看最先適應(yīng)法最佳,最佳適應(yīng)法和最壞適應(yīng)法都要求把不同大小的空閑區(qū)按大小進(jìn)行排隊。

      ② 從回收過程來看,最先適應(yīng)法也是最佳,因為最佳適應(yīng)法和最壞適應(yīng)法都必須重新調(diào)整空閑區(qū)的位置。

      ③ 最佳適應(yīng)法找到的空閑區(qū)是最佳的,但是會造成內(nèi)存碎片較多,影響了內(nèi)存利用率,而最壞適應(yīng)法的內(nèi)存碎片最少,但是對內(nèi)存的請求較多的進(jìn)程有可能分配失敗。

      總之,三種算法各有所長,針對不同的請求隊列,它們的效率和功能是不一樣的。

      8.簡述什么是覆蓋?什么是交換?覆蓋和交換的區(qū)別是什么? P121 答:將程序劃分為若干個功能上相對獨立的程序段,按照程序的邏輯結(jié)構(gòu)讓那些不會同時執(zhí)行的程序段共享同一塊內(nèi)存區(qū)的內(nèi)存擴(kuò)充技術(shù)就是覆蓋。交換是指先將內(nèi)存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再從外存交換區(qū)中調(diào)入指定的程序或數(shù)據(jù)到內(nèi)存中來,并讓其執(zhí)行的一種內(nèi)存擴(kuò)充技術(shù)。與覆蓋技術(shù)相比,交換不要求程序員給出程序段之間的覆蓋結(jié)構(gòu),而且,交換主要是在進(jìn)程或作業(yè)之間進(jìn)行,而覆蓋則主要在同一個作業(yè)或同一個進(jìn)程內(nèi)進(jìn)行。另外,覆蓋只能覆蓋那些與覆蓋程序段無關(guān)的程序段。

      9.什么是頁式管理?靜態(tài)頁式管理可以實現(xiàn)虛存嗎? P123 答:頁式管理就是把各進(jìn)程的虛擬空間劃分為若干長度相等的頁,把指令按頁面大小劃分后存放在內(nèi)存中執(zhí)行或只在內(nèi)存中存放那些經(jīng)常被執(zhí)行或即將被執(zhí)行的頁,而那些不被經(jīng)常執(zhí)行以及在近期內(nèi)不可能被執(zhí)行的頁則存放于外存中,按一定規(guī)則調(diào)入的一種內(nèi)存管理方式。靜態(tài)頁式管理不能實現(xiàn)虛存,這是因為靜態(tài)頁式管理要求進(jìn)程或作業(yè)在執(zhí)行前全部被裝入內(nèi)存,作業(yè)或進(jìn)程的大小仍受內(nèi)存可用頁面數(shù)的限制。

      10.什么是請求頁式管理? P127 答:請求頁式管理是動態(tài)頁式內(nèi)存管理的一種,它在作業(yè)或進(jìn)程開始執(zhí)行之前,不把作業(yè)或進(jìn)程的程序段和數(shù)據(jù)段一次性的全部裝入內(nèi)存,而只裝入被認(rèn)為是經(jīng)常反復(fù)執(zhí)行和調(diào)用的工作區(qū)部分。其他部分則在執(zhí)行過程中動態(tài)裝入。

      請求頁式管理的調(diào)入方式是,當(dāng)需要執(zhí)行某條指令而又發(fā)現(xiàn)它不在內(nèi)存時,或當(dāng)執(zhí)行某條指令需要訪問其他數(shù)據(jù)或指令時,而這些指令和數(shù)據(jù)又不在內(nèi)存中,從而發(fā)生缺頁中斷,系統(tǒng)將外存中相應(yīng)的頁調(diào)入內(nèi)存。

      11.請求頁式管理中有哪幾種常用的頁面置換算法?試比較它們的優(yōu)缺點。P129 答:比較常用的頁面置換算法有:

      (1)隨機(jī)淘汰算法(randomglongram)。即隨機(jī)地選擇某個用戶頁面并將其換出。

      (2)輪轉(zhuǎn)法RR(roundrobin)。輪轉(zhuǎn)法循回?fù)Q出內(nèi)存可用區(qū)內(nèi)一個可以被換出的頁,無論該頁是剛被換進(jìn)或已經(jīng)換進(jìn)內(nèi)存很長時間。

      (3)先進(jìn)先出法FIFO(firstinfirstout)。FIFO算法選擇在內(nèi)存駐留時間最長的一頁將其淘汰。

      (4)最近最久未使用頁面置換算法LRU(1east recently unused)。該算法的基本思想是:當(dāng)需要淘汰某一頁時,選擇離當(dāng)前時間最近的一段時間內(nèi)最久沒有使用過的頁面先淘汰。

      該算法很難實現(xiàn),比較常用的近似算法:最不經(jīng)常使用頁面淘汰算法LFU、最近沒有使用頁面淘汰算法NUR。

      (5)理想型淘汰算法OPT(optimalreplacementalgorithm)。該算法淘汰在訪問串中將來再也不出現(xiàn)的或是在離當(dāng)前最遠(yuǎn)的位置上出現(xiàn)的頁面。

      12.什么是Belady現(xiàn)象?找出一個Belady現(xiàn)象的例子。P131 答:使用FIFO算法時,在未給進(jìn)程或作業(yè)分配足它所要求的頁面數(shù)時,有時會出現(xiàn)分配的頁面數(shù)增多,缺頁次數(shù)反而增加的奇怪現(xiàn)象。這種現(xiàn)象稱為Belady現(xiàn)象。

      假設(shè)進(jìn)程P共有5個頁,訪問順序是:1,2,3,4,1,2,5,1,2,3,4,5的缺頁情況。

      分配3個頁面,缺頁9次:缺頁率9/12=75%

      分配4個頁面,缺頁10次:缺頁率10/12=83.3%

      此例就出現(xiàn)分配的頁面數(shù)增多,缺頁次數(shù)反而增加的奇怪現(xiàn)象,即Belady現(xiàn)象。

      14.什么是段式管理?它與頁式管理有何區(qū)別? P133 答:段式管理就是將程序按照內(nèi)容或過程(函數(shù))關(guān)系分成段,每段擁有自己的名字。一個用戶作業(yè)或進(jìn)程所包含的段對應(yīng)于一個二維線性虛擬空間,也就是一個二維虛擬存儲器。段式管理程序以段為單位分配內(nèi)存,然后通過地址映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換成實際的內(nèi)存物理地址。同頁式管理時一樣,段式管理也采用只把那些經(jīng)常訪問的段駐留內(nèi)存,而把那些在將來一段時間內(nèi)不被訪問的段放入外存,待需要時自動調(diào)入相關(guān)段的方法實現(xiàn)二維虛擬存儲器。

      段式管理和頁式管理的主要區(qū)別有:

      (1)頁式管理中源程序進(jìn)行編譯鏈接時是將主程序、子程序、數(shù)據(jù)區(qū)等按照線性空間的一維地址順序排列起來。段式管理則是將程序按照內(nèi)容或過程(函數(shù))關(guān)系分成段,每段擁有自己的名字。一個用戶作業(yè)或進(jìn)程所包含的段對應(yīng)于一個二維線性虛擬空間,也就是一個二維虛擬存儲器。

      (2)同動態(tài)頁式管理一樣,段式管理也提供了內(nèi)外存統(tǒng)一管理的虛存實現(xiàn)。與頁式管理不同的是:段式虛存每次交換的是一段有意義的信息,而不是像頁式虛存管理那樣只交換固定大小的頁,從而需要多次的缺頁中斷才能把所需信息完整地調(diào)入內(nèi)存。

      (3)在段式管理中,段長可根據(jù)需要動態(tài)增長。這對那些需要不斷增加或改變新數(shù)據(jù)或子程序的段來說,將是非常有好處的。

      (4)段式管理便于對具有完整邏輯功能的信息段進(jìn)行共享。

      (5)段式管理便于進(jìn)行動態(tài)鏈接,而頁式管理進(jìn)行動態(tài)鏈接的過程非常復(fù)雜。

      15.段式管理可以實現(xiàn)虛存嗎?如果可以,簡述實現(xiàn)方法。P133 答:段式管理可以實現(xiàn)虛存。

      段式管理把程序按照內(nèi)容或過程(函數(shù))關(guān)系分成段,每段擁有自己的名字。一個用戶作業(yè)或進(jìn)程所包含的段對應(yīng)于一個二維線性虛擬空間(段號s與段內(nèi)相對地址w),也就是一個二維虛擬存儲器。段式管理以段為單位分配內(nèi)存,然后通過地址映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換成實際的內(nèi)存物理地址。只把那些經(jīng)常訪問的段駐留內(nèi)存,而把那些在將來一段時間內(nèi)不被訪問的段放入外存,待需要時產(chǎn)生缺段中斷,自動調(diào)入。

      16.為什么要提出段頁式管理?它與段式管理及頁式管理有何區(qū)別? P138 答:因為段式管理和頁式管理各有所長。段式管理為用戶提供了一個二維的虛擬地址空間,反映了程序的邏輯結(jié)構(gòu),有利于段的動態(tài)增長以及共享和內(nèi)存保護(hù)等,這極大地方便了用戶。而分頁系統(tǒng)則有效地克服了碎片,提高了存儲器的利用效率。從存儲管理的目的來講,主要是方便用戶的程序設(shè)計和提高內(nèi)存的利用率。所以人們提出了將段式管理和頁式管理結(jié)合起來讓其互相取長補(bǔ)短的段頁式管理。段頁式管理與段式和頁式管理相比,其訪問時間較長。因此,執(zhí)行效率低。

      17.為什么說段頁式管理時的虛擬地址仍是二維的? 答:因為在段頁式內(nèi)存管理中,對每一段內(nèi)的地址空間進(jìn)行分頁式管理只是為了克服在內(nèi)存分配過程中產(chǎn)生的大量碎片,從而提高存儲器的利用效率,它并沒有改變段內(nèi)地址空間的一維結(jié)構(gòu),所以段頁式內(nèi)存管理中的虛擬地址仍然和段式內(nèi)存管理中的虛擬地址一樣,是二維結(jié)構(gòu)的。

      18.段頁式管理的主要缺點是什么?有什么改進(jìn)辦法? 答:段頁式管理的主要缺點是對內(nèi)存中指令或數(shù)據(jù)進(jìn)行存取時,至少需要對內(nèi)存進(jìn)行三次以上的訪問。第一次是由段表地址寄存器取段表始址后訪問段表,由此取出對應(yīng)段的頁表在內(nèi)存中的地址。第二次則是訪問頁表得到所要訪問的指令或數(shù)據(jù)的物理地址。只有在訪問了段表和頁表之后,第三次才能訪問真正需要訪問的物理單元。顯然。這將大大降低CPU執(zhí)行指令的速度。

      改進(jìn)辦法是設(shè)置快速聯(lián)想寄存器。在快速聯(lián)想寄存器中.存放當(dāng)前最常用的段號s,頁號p和對應(yīng)的內(nèi)存頁面地址與其他控制項。當(dāng)需要訪問內(nèi)存空間某一單元時,可在通過段表、頁表進(jìn)行內(nèi)存地址查找的同時,根據(jù)快速聯(lián)想寄存器查找其段號和頁號。如果所要訪問的段或頁的地址在快速聯(lián)想寄存器中,則系統(tǒng)不再訪問內(nèi)存中的段表、頁表而直接把快速聯(lián)想寄存器中的值與頁內(nèi)相對地址d拼接起來得到內(nèi)存地址。

      19.什么是局部性原理?什么是抖動?你有什么辦法減少系統(tǒng)的抖動現(xiàn)象? P140 答:局部性原理是指在幾乎所有程序的執(zhí)行過程中,在一段時間內(nèi),CPU總是集中地訪問程序中的某一個部分而不是對程序的所有部分具有平均的訪問概率。

      抖動是指當(dāng)給進(jìn)程分配的內(nèi)存小于所要求的工作區(qū)時,由于內(nèi)存外存之間交換頻繁,訪問外存的時間和輸入輸出處理時間大大增加,反而造成CPU因等待數(shù)據(jù)而空轉(zhuǎn),使得整個系統(tǒng)性能大大下降。

      在物理系統(tǒng)中,為防止抖動的產(chǎn)生,在進(jìn)行淘汰或替換時,一般總是把缺頁進(jìn)程鎖住,不讓其換出,從而防止抖動發(fā)生。防止抖動發(fā)生的另一個辦法是設(shè)置較大的內(nèi)存工作區(qū)。

      第六章

      1.簡述Linux系統(tǒng)進(jìn)程的概念? 答:P148 2.Linux進(jìn)程上下文由哪幾部分組成?為什么說核心程序不是進(jìn)程上下文上午一部分?進(jìn)程頁表也在核心區(qū),它們也不是進(jìn)程上下文上午一部分嗎?

      答:進(jìn)程上下文由task_struct結(jié)構(gòu)、用戶棧和核心棧的內(nèi)容、用戶地址空間的征文段、數(shù)據(jù)段、硬件寄存器的內(nèi)容以及頁表等組成。

      核心頁表被所有進(jìn)程共享,所以不是進(jìn)程上下文的一部分。而進(jìn)程頁表是進(jìn)程上下文的一部分。

      4.Linux的調(diào)度策略是什么? 調(diào)度時應(yīng)該封鎖中斷嗎?如果不封鎖,會發(fā)生什么問題?

      答:Linux使用三種調(diào)度策略,動態(tài)優(yōu)先數(shù)調(diào)度SCHED_OTHER,先來先服務(wù)調(diào)度SCHED_FIFO和輪轉(zhuǎn)法調(diào)度SCHED_RR。其中動態(tài)優(yōu)先級調(diào)度策略用于普通進(jìn)程,后兩種調(diào)度策略用于實時進(jìn)程。

      在調(diào)度時應(yīng)封鎖中斷,否則在調(diào)度過程中由于中斷會使進(jìn)程上下文的切換出現(xiàn)錯誤。

      6. Linux在哪幾種情況下發(fā)生調(diào)度? 答:兩種情況:一是進(jìn)程自動放棄處理機(jī)時主動裝入調(diào)度過程,二是在由核心態(tài)轉(zhuǎn)入用戶態(tài)時,系統(tǒng)設(shè)置了高優(yōu)先級就緒進(jìn)程的強(qiáng)迫調(diào)度標(biāo)識need_resched時發(fā)生調(diào)度。

      8.什么是軟中斷? 答:P162 13.Linux存儲管理策略中交換和請求調(diào)頁方式有何區(qū)別? 答:P171

      第八章

      1.什么是文件、文件系統(tǒng)?文件系統(tǒng)有哪些功能? P198 答:在計算機(jī)系統(tǒng)中,文件被解釋為一組賦名的相關(guān)字符流的集合,或者是相關(guān)紀(jì)錄的集合。

      文件系統(tǒng)是操作系統(tǒng)中與管理文件有關(guān)的軟件和數(shù)據(jù)。

      文件系統(tǒng)的功能是為用戶建立文件、撤銷、讀寫、修改和復(fù)制文件,以及完成對文件的按名存取和進(jìn)行存取控制。

      2、文件一般按什么分類?可以分為哪幾類? P199 答:文件一般按性質(zhì)、用途、組織形式、文件中的信息流向或文件的保護(hù)級別等分類。

      按性質(zhì)和用途可分為系統(tǒng)文件、庫文件和用戶文件。按文件的組織形式可分為普通文件、目錄文件和特殊文件。

      按文件中的信息流向可分為輸入文件、輸出文件和輸入/輸出文件。按文件的保護(hù)級別可分為只讀文件、讀寫文件、可執(zhí)行文件和不保護(hù)文件。

      3、什么是文件的邏輯結(jié)構(gòu)?什么是紀(jì)錄?P200 答:文件的邏輯結(jié)構(gòu)就是用戶可見的結(jié)構(gòu),可分為字符流式的 無結(jié)構(gòu)文件和記錄式的有結(jié)構(gòu)文件兩大類。

      記錄是一個具有特定意義的信息單位,他由該紀(jì)錄在文件中的邏輯地址(相對位置)與記錄名所對應(yīng)的一組關(guān)鍵字、屬性及其屬性值所組成。

      7、文件的物理結(jié)構(gòu)有哪幾種?為什么說串聯(lián)文件結(jié)構(gòu)不適于隨機(jī)存???P205 答:文件的物理結(jié)構(gòu)是指文件在存儲設(shè)備上的存取方法。常用的文件的物理結(jié)構(gòu)有連續(xù)文件、串聯(lián)文件和索引文件三種。

      串聯(lián)文件結(jié)構(gòu)用非連續(xù)的物理塊來存取文件信息。這些非連續(xù)的物理塊之間沒有順序關(guān)系,鏈接成一個串聯(lián)隊列。搜索時只能按隊列中的串聯(lián)指針順序搜索,存取方法應(yīng)該是順序存取的。否則,為了讀取某個信息塊而造成的磁頭大幅度移動將花去較多的時間。因此,串聯(lián)文件結(jié)構(gòu)不適于隨機(jī)存取。

      9、常用的文件存儲設(shè)備的管理方法有哪些?試述主要優(yōu)缺點。P209 答:文件存儲設(shè)備的管理實質(zhì)上是一個空閑塊的組織和管理問題。有3種不同的空閑塊管理方法,即空閑文件目錄、空閑塊鏈和位示圖。

      空閑文件目錄管理方法就是把文件存儲設(shè)備中的空閑塊的塊號統(tǒng)一放在一個稱為空閑文件目錄的物理塊中,其中空閑文件目錄的每個表項對應(yīng)一個由多個空閑塊構(gòu)成的空閑區(qū)。該方法實現(xiàn)簡單,適于連續(xù)文件結(jié)構(gòu)的文件存儲區(qū)的分配與回收。但是由于回收時不進(jìn)行合并,所以使用該方法容易產(chǎn)生大量的小塊空閑區(qū)。

      空閑塊鏈法把文件存儲設(shè)備上的所有空閑塊鏈接在一起,從鏈頭分配空閑塊,把回收的空閑塊插入到鏈尾。該方法不占用額外的空間,但實現(xiàn)復(fù)雜。

      位示圖法是從內(nèi)存中劃出若干字節(jié),每個比特位對應(yīng)一個物理塊的使用情況。如果該位為0表示對應(yīng)的塊是空閑的,為1表示對應(yīng)的物理塊已分配出去。位示圖法在查找空閑塊時無需啟動外設(shè),但要占用內(nèi)存空間。

      11、什么是文件目錄?文件目錄中包含哪些信息?P211 答:一個文件的文件名和對該文件實施控制管理的說明信息成為該文件的說明信息,又稱為該文件的文件控制塊(FCB)。把所有的FCB組織在一起,就構(gòu)成了文件目錄,即文件控制塊的有序集合。

      文件目錄中包含文件名、與文件名相對應(yīng)的文件內(nèi)部標(biāo)識以及文件信息在文件存儲設(shè)備上的第一個物理塊的地址等信息。另外還可能包含關(guān)于文件的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)、存取控制信息和管理等信息。

      13、文件存取控制方式有哪幾種?試比較它們各自的優(yōu)缺點。P216 答:文件存取控制方式一般有存取控制矩陣、存取控制表、口令和密碼術(shù)4種方式。存取控制矩陣方式以一個二維矩陣來進(jìn)行存取控制。而且矩陣的一維是所有的用戶。另一維是所有的文件。對應(yīng)的矩陣元素則是用戶對文件的存取控制權(quán)。存取控制矩陣的方法在概念上比較簡單,但是當(dāng)用戶和文件較多時,存取控制矩陣將變得非常龐大,從而時間和空間的開銷都很大。

      存取控制表以文件為單位,把用戶按某種關(guān)系劃分為若干組,同時規(guī)定每組的存取限制。這樣所有用戶組對文件權(quán)限的集合就形成了該文件的存取控制表。存取控制表方法占用空間較小,搜索效率也較高,但要對用戶分組,引入了額外的開銷。

      口令方式有兩種。一種是當(dāng)用戶進(jìn)入系統(tǒng)時,為建立終端進(jìn)程時獲得系統(tǒng)使用權(quán)的口令。另一種方式是,每個用戶在創(chuàng)建文件時,為每個創(chuàng)建的文件設(shè)置一個口令,且將其置于文件說明中。當(dāng)任一用戶想使用該文件時,都必須首先提供口令??诹罘绞奖容^簡單,占用的內(nèi)存單元以及驗證口令所費時間都非常少。不過,相對來說,口令方式保密性能比較差。

      密碼術(shù)方式在用戶創(chuàng)建源文件并寫入存儲設(shè)備時對文件進(jìn)行編碼加密,在讀出文件時對文件進(jìn)行譯碼解密。加密方式具有保密性強(qiáng)的優(yōu)點。但是,由于加密解密工作要耗費大量的處理時間,因此,加密技術(shù)是以犧牲系統(tǒng)開銷為代價的。

      第九章

      1.設(shè)備管理的目標(biāo)和功能是什么? 答:設(shè)備管理的目標(biāo)是:

      (1)選擇和分配輸入/輸出設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作;(2)控制輸入/輸出設(shè)備和CPU(或內(nèi)存)之間交換數(shù)據(jù);(3)為用戶提供一個友好的透明接口;(4)提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間,以及進(jìn)程和進(jìn)程之間的并行操作,以使操作系統(tǒng)獲得最佳效率。

      設(shè)備管理的功能是:

      (1)提供和進(jìn)程管理系統(tǒng)的接口;(2)進(jìn)行設(shè)備分配;

      (3)實現(xiàn)設(shè)備和設(shè)備、設(shè)備和CPU等之間的并行操作;(4)進(jìn)行緩沖區(qū)管理。

      2.?dāng)?shù)據(jù)傳送控制方式有哪幾種?試比較它們各自的優(yōu)缺點。

      答:數(shù)據(jù)傳送控制方式有程序直接控制方式、中斷控制方式、DMA方式和通道方式4種。

      程序直接控制方式就是由用戶進(jìn)程來直接控制內(nèi)存或CPU和外圍設(shè)備之間的數(shù)據(jù)傳送。它的優(yōu)點是控制簡單,也不需要多少硬件支持。它的缺點是CPU和外圍設(shè)備只能串行工作;設(shè)備之間只能串行工作,無法發(fā)現(xiàn)和處理由于設(shè)備或其他硬件所產(chǎn)生的錯誤。

      中斷控制方式是利用向CPU發(fā)送中斷的方式控制外圍設(shè)備和CPU之間的數(shù)據(jù)傳送。它的優(yōu)點是大大提高了CPU的利用率且能支持多道程序和設(shè)備的并行操作。它的缺點是由于數(shù)據(jù)緩沖寄存器比較小,如果中斷次數(shù)較多,仍然占用了大量CPU時間;在外圍設(shè)備較多時,由于中斷次數(shù)的急劇增加,可能造成CPU無法響應(yīng)中斷而出現(xiàn)中斷丟失的現(xiàn)象;如果外圍設(shè)備速度比較快,可能會出現(xiàn)CPU來不及從數(shù)據(jù)緩沖寄存器中取走數(shù)據(jù)而丟失數(shù)據(jù)的情況。DMA方式是在外圍設(shè)備和內(nèi)存之間開辟直接的數(shù)據(jù)交換通路進(jìn)行數(shù)據(jù)傳送。它的優(yōu)點是除了在數(shù)據(jù)塊傳送開始時需要CPU的啟動指令,在整個數(shù)據(jù)塊傳送結(jié)束時需要發(fā)中斷通知CPU進(jìn)行中斷處理之外,不需要CPU的頻繁干涉。它的缺點是在外圍設(shè)備越來越 多的情況下,多個DMA控制器的同時使用,會引起內(nèi)存地址的沖突并使得控制過程進(jìn)一步復(fù)雜化。

      通道方式是使用通道來控制內(nèi)存或CPU和外圍設(shè)備之間的數(shù)據(jù)傳送。通道是一個獨立與CPU的專管輸入/輸出控制的機(jī)構(gòu),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。它有自己的通道指令,這些指令受CPU啟動,并在操作結(jié)束時向CPU發(fā)中斷信號。該方式的優(yōu)點是進(jìn)一步減輕了CPU的工作負(fù)擔(dān),增加了計算機(jī)系統(tǒng)的并行工作程度。缺點是增加了額外的硬件,造價昂貴。

      3.什么是通道?試畫出通道控制方式時的CPU、通道和設(shè)備的工作流程圖。

      答:通道是一個獨立與CPU的專管輸入/輸出控制的機(jī)構(gòu),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。它有自己的通道指令,這些指令受CPU啟動,并在操作結(jié)束時向CPU發(fā)中斷信號。

      4.什么是中斷?什么叫中斷處理?什么叫中斷響應(yīng)? 答: 中斷是指計算機(jī)在執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后又返回原來被中斷處繼續(xù)執(zhí)行的過程。

      CPU轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序的過程稱為中斷處理。CPU收到中斷請求后轉(zhuǎn)到相應(yīng)的事件處理程序稱為中斷響應(yīng)。

      5.什么叫關(guān)中斷?什么叫開中斷?什么叫中斷屏蔽? 答:把CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位清除從而不允許CPU響應(yīng)中斷叫做關(guān)中斷。設(shè)置CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位從而允許CPU響應(yīng)中斷叫做開中斷。

      中斷屏蔽是指在中斷請求產(chǎn)生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷而允許其余部分的中斷仍能得到響應(yīng)。

      6.什么是陷阱?什么是軟中斷?試述中斷、陷阱和軟中斷之間異同。

      答:陷阱指處理機(jī)和內(nèi)存內(nèi)部產(chǎn)生的中斷,它包括程序運(yùn)算引起的各種錯誤,如地址非法、校驗錯、頁面失效。存取訪問控制錯、從用戶態(tài)到核心態(tài)的切換等都是陷阱的例子。軟中斷是通信進(jìn)程之間用來模擬硬中斷的一種信號通信方式。

      8.什么是緩沖?為什么要引入緩沖?

      答:緩沖即是使用專用硬件緩沖器或在內(nèi)存中劃出一個區(qū)域用來暫時存放輸入輸出數(shù)據(jù)的器件。

      引入緩沖是為了匹配外設(shè)和CPU之間的處理速度,減少中斷次數(shù)和CPU的中斷處理時間,同時解決DMA或通道方式時的數(shù)據(jù)傳輸瓶頸問題。

      13.什么是I/O控制?它的主要任務(wù)是什么? 答:I/O控制是指從用戶進(jìn)程的輸入輸出請求開始,給用戶進(jìn)程分配設(shè)備和啟動有關(guān)設(shè)備進(jìn)行I/O操作,并在I/O操作完成之后響應(yīng)中斷,直至善后處理為止的整個系統(tǒng)控制過程。

      15.設(shè)備驅(qū)動程序是什么?為什么要有設(shè)備驅(qū)動程序?用戶進(jìn)程怎樣使用驅(qū)動程序? 答:設(shè)備驅(qū)動程序是驅(qū)動外部物理設(shè)備和相應(yīng)DMA控制器或I/O控制器等器件,使之可以直接和內(nèi)存進(jìn)行I/O操作的子程序的集合。它們負(fù)責(zé)設(shè)置相應(yīng)設(shè)備有關(guān)寄存器的值,啟動設(shè)備進(jìn)行I/O操作,指定操作的類型和數(shù)據(jù)流向等。

      設(shè)備驅(qū)動程序屏蔽了直接對硬件操作的細(xì)節(jié),為編程者提供操縱設(shè)備的友好接口。

      用戶進(jìn)程通過調(diào)用設(shè)備驅(qū)動程序提供的接口來使用設(shè)備驅(qū)動程序。

      第四篇:操作系統(tǒng)課后題答案

      課本課后題部分答案 第一章

      1.設(shè)計現(xiàn)代OS的主要目標(biāo)是什么?

      答:(1)有效性(2)方便性(3)可擴(kuò)充性(4)開放性 2.OS的作用可表現(xiàn)在哪幾個方面?

      答:(1)OS作為用戶與計算機(jī)硬件系統(tǒng)之間的接口(2)OS作為計算機(jī)系統(tǒng)資源的管理者(3)OS實現(xiàn)了對計算機(jī)資源的抽象

      13.OS有哪幾大特征?其最基本的特征是什么?

      答:并發(fā)性、共享性、虛擬性和異步性四個基本特征;最基本的特征是并發(fā)性。14.處理機(jī)管理有哪些主要功能?它們的主要任務(wù)是什么?

      答:處理機(jī)管理的主要功能是:進(jìn)程管理、進(jìn)程同步、進(jìn)程通信和處理機(jī)調(diào)度; 進(jìn)程管理:為作業(yè)創(chuàng)建進(jìn)程,撤銷已結(jié)束進(jìn)程,控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換。進(jìn)程同步:為多個進(jìn)程(含線程)的運(yùn)行______________進(jìn)行協(xié)調(diào)。通信:用來實現(xiàn)在相互合作的進(jìn)程之間的信息交換。處理機(jī)調(diào)度:

      (1)作業(yè)調(diào)度。從后備隊里按照一定的算法,選出若干個作業(yè),為他們分配運(yùn)行所需 的資源(首選是分配內(nèi)存)。

      (2)進(jìn)程調(diào)度:從進(jìn)程的就緒隊列中,按照一定算法選出一個進(jìn)程,把處理機(jī)分配給 它,并設(shè)置運(yùn)行現(xiàn)場,使進(jìn)程投入執(zhí)行。

      15.內(nèi)存管理有哪些主要功能?他們的主要任務(wù)是什么?

      北京石油化工學(xué)院信息工程學(xué)院計算機(jī)系3/48 《計算機(jī)操作系統(tǒng)》習(xí)題參考答案余有明與計07和計G09的同學(xué)們編著 3/48 答:內(nèi)存管理的主要功能有:內(nèi)存分配、內(nèi)存保護(hù)、地址映射和內(nèi)存擴(kuò)充。內(nèi)存分配:為每道程序分配內(nèi)存。

      內(nèi)存保護(hù):確保每道用戶程序都只在自己的內(nèi)存空間運(yùn)行,彼此互不干擾。地址映射:將地址空間的邏輯地址轉(zhuǎn)換為內(nèi)存空間與對應(yīng)的物理地址。內(nèi)存擴(kuò)充:用于實現(xiàn)請求調(diào)用功能,置換功能等。16.設(shè)備管理有哪些主要功能?其主要任務(wù)是什么?

      答:主要功能有: 緩沖管理、設(shè)備分配和設(shè)備處理以及虛擬設(shè)備等。

      主要任務(wù): 完成用戶提出的I/O 請求,為用戶分配I/O 設(shè)備;提高CPU 和I/O 設(shè) 備的利用率;提高I/O速度;以及方便用戶使用I/O設(shè)備.17.文件管理有哪些主要功能?其主要任務(wù)是什么?

      答:文件管理主要功能:文件存儲空間的管理、目錄管理、文件的讀/寫管理和保護(hù)。文件管理的主要任務(wù):管理用戶文件和系統(tǒng)文件,方便用戶使用,保證文件安全性。

      第二章

      1.什么是前趨圖?為什么要引入前趨圖?

      答:前趨圖(Precedence Graph)是一個有向無循環(huán)圖,記為DAG(Directed Acyclic Graph),用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。

      2.畫出下面四條語句的前趨圖: S1=a:=x+y;S2=b:=z+1;S3=c:=a – b; S4=w:=c+1;答:其前趨圖為:

      5.在操作系統(tǒng)中為什么要引入進(jìn)程概念?它會產(chǎn)生什么樣的影響? 答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對并發(fā)執(zhí)行的程序加以控制和描述,在操 作系統(tǒng)中引入了進(jìn)程概念。

      影響: 使程序的并發(fā)執(zhí)行得以實行。

      7.試說明PCB 的作用,為什么說PCB 是進(jìn)程存在的惟一標(biāo)志?

      答:PCB 是進(jìn)程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu)。作用是使一個在 多道程序環(huán)境下不能獨立運(yùn)行的程序,成為一個能獨立運(yùn)行的基本單位,成為能與其它進(jìn)程 并發(fā)執(zhí)行的進(jìn)程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。8.試說明進(jìn)程在三個基本狀態(tài)之間轉(zhuǎn)換的典型原因。答:(1)就緒狀態(tài)→執(zhí)行狀態(tài):進(jìn)程分配到CPU資源(2)執(zhí)行狀態(tài)→就緒狀態(tài):時間片用完(3)執(zhí)行狀態(tài)→阻塞狀態(tài):I/O請求(4)阻塞狀態(tài)→就緒狀態(tài):I/O完成

      22.試寫出相應(yīng)的程序來描述圖2-17所示的前驅(qū)圖。

      答:(a)Var a, b, c, d, e, f, g, h;semaphore:= 0, 0, 0, 0, 0, 0, 0, 0;begin parbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);end;begin wait(c);S4;signal(f);end;begin wait(d);S5;signal(g);end;begin wait(e);S6;signal(h);end;begin wait(f);wait(g);wait(h);S7;end;2 parend end(b)Var a, b, c, d, e, f, g, h,i,j;semaphore:= 0, 0, 0, 0, 0, 0, 0,0,0, 0;begin parbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);signal(f);end;begin wait(c);S4;signal(g);end;begin wait(d);S5;signal(h);end;begin wait(e);S6;signal(i);end;begin wait(f);S7;signal(j);end;begin wait(g);wait(h);wait(i);wait(j);S8;end;parend end 第三章

      第三章 處理機(jī)調(diào)度與死鎖

      2.何謂作業(yè)、作業(yè)步和作業(yè)流?

      答:作業(yè)包含通常的程序和數(shù)據(jù),還配有作業(yè)說明書。系統(tǒng)根據(jù)該說明書對程序的運(yùn)行進(jìn)行控制。批處理系統(tǒng)中是以作業(yè)為基本單位從外存調(diào)入內(nèi)存。

      作業(yè)步是指每個作業(yè)運(yùn)行期間都必須經(jīng)過若干個相對獨立相互關(guān)聯(lián)的順序加工的步驟。作業(yè)流是指若干個作業(yè)進(jìn)入系統(tǒng)后依次存放在外存上形成的輸入作業(yè)流;在操作系統(tǒng)的控制下,逐個作業(yè)進(jìn)程處理,于是形成了處理作業(yè)流。5.試說明低級調(diào)度的主要功能。

      答:(1)保存處理機(jī)的現(xiàn)場信息(2)按某種算法選取進(jìn)程(3)把處理機(jī)分配給進(jìn)程。8.在批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種進(jìn)程(作業(yè))調(diào)度算法? 答:批處理系統(tǒng)的調(diào)度算法:短作業(yè)優(yōu)先、優(yōu)先權(quán)、高響應(yīng)比優(yōu)先、多級反饋隊列調(diào)度算法。分時系統(tǒng)的調(diào)度算法:時間片輪轉(zhuǎn)法。

      實時系統(tǒng)的調(diào)度算法:最早截止時間優(yōu)先即EDF、最低松弛度優(yōu)先即LLF算法。9.何謂靜態(tài)和動態(tài)優(yōu)先級?確定靜態(tài)優(yōu)先級的依據(jù)是什么?

      答:靜態(tài)優(yōu)先級是指在創(chuàng)建進(jìn)程時確定且在進(jìn)程的整個運(yùn)行期間保持不變的優(yōu)先級。

      動態(tài)優(yōu)先級是指在創(chuàng)建進(jìn)程時賦予的優(yōu)先權(quán),可以隨進(jìn)程推進(jìn)或隨其等待時間增加而改變的優(yōu)先級,可以獲得更好的調(diào)度性能。

      確定進(jìn)程優(yōu)先級的依據(jù):進(jìn)程類型、進(jìn)程對資源的需求和用戶要求。11.在時間片輪轉(zhuǎn)法中,應(yīng)如何確定時間片的大?。?/p>

      答:時間片應(yīng)略大于一次典型的交互需要的時間。一般應(yīng)考慮三個因素:系統(tǒng)對相應(yīng)時間的 要求、就緒隊列中進(jìn)程的數(shù)目和系統(tǒng)的處理能力。

      12.通過一個例子來說明通常的優(yōu)先級調(diào)度算法不能適用于實時系統(tǒng)?

      答:實時系統(tǒng)的調(diào)度算法很多,主要是基于任務(wù)的開始截止時間和任務(wù)緊急/松弛程度的任務(wù)優(yōu)先級調(diào)度算法,通常的優(yōu)先級調(diào)度算法不能滿足實時系統(tǒng)的調(diào)度實時性要求而不適用。

      13.為什么說多級反饋隊列調(diào)度算法能較好地滿足各方面用戶的需求?

      答:(1)終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使這些作業(yè)在 3 第一隊列規(guī)定的時間片內(nèi)完成,終端作業(yè)用戶就會感到滿足。

      (2)短批處理作業(yè)用戶,開始時像終端型作業(yè)一樣,如果在第一隊列中執(zhí)行一個時間片段即可完成,便可獲得與終端作業(yè)一樣的響應(yīng)時間。對于稍長作業(yè),通常只需在第二和第三隊列各執(zhí)行一時間片即可完成,其周轉(zhuǎn)時間仍然較短。

      (3)長批處理作業(yè),它將依次在第1,2,?,n個隊列中運(yùn)行,然后再按輪轉(zhuǎn)方式運(yùn)行,用戶不必?fù)?dān)心其作業(yè)長期得不到處理。所以,多級反饋隊列調(diào)度算法能滿足多用戶需求。

      18.何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么? 答:死鎖是指多個進(jìn)程在運(yùn)行過程中因爭奪資源而造成的一種僵局,當(dāng)進(jìn)程處于這種僵持狀 態(tài)時,若無外力作用,它們都將無法再向前推進(jìn)。

      產(chǎn)生死鎖的原因為競爭資源和進(jìn)程間推進(jìn)順序非法。其必要條件是:互斥條件、請求和 保持條件、不剝奪條件、環(huán)路等待條件。

      19.在解決死鎖問題的幾個方法中,哪種方法最易于實現(xiàn)?哪種方法使資源利用率最高? 答:解決死鎖的四種方法即預(yù)防、避免、檢測和解除死鎖中,預(yù)防死鎖最容易實現(xiàn); 避免死鎖使資源的利用率最高。

      20.請詳細(xì)說明可通過哪些途徑預(yù)防死鎖。

      答:(1)擯棄“請求和保持”條件,就是如果系統(tǒng)有足夠資源,便一次性把進(jìn)程需要的所 有資源分配給它;

      (2)擯棄“不剝奪”條件,就是已經(jīng)擁有資源的進(jìn)程,當(dāng)它提出新資源請求而不能立即 滿足時,必須釋放它已保持的所有資源,待以后需要時再重新申請;

      (3)擯棄“環(huán)路等待”條件,就是將所有資源按類型排序標(biāo)號,所有進(jìn)程對資源的請求 必須嚴(yán)格按序號遞增的次序提出。

      21.在銀行家算法的例子中,如果P0發(fā)出請求向量由Request(0,2,0)改為Request(0,1,0),問系統(tǒng)可否將資源分配給它?

      答:(1)可以。銀行家算法各種資源數(shù)量分別為10、5、7,在T0時刻的資源分配如圖所示:

      (2)具體分析如下:

      ①Requst0(0,1,0)<=Need0(7,4,3);② Requst0(0,1,0)<=Available(2,3,0);系統(tǒng)先假定可為P0分配資源,并修改Available0,Allocation0和Need0向量,由此形成 的資源變化情況如下圖所示:

      (3)P0請求資源:P0發(fā)出請求向量Requst0(0,1,0),系統(tǒng)按銀行家算法進(jìn)行檢查: ① Requst0(0,1,0)<=Need0(7,4,3);② Requst0(0,1,0)<=Available(2,3,0);③ 系統(tǒng)暫時先假定可為P0分配資源,并修改______________有關(guān)數(shù)據(jù),如下圖所示

      綜上所述系統(tǒng)可以將資源分配給它。

      22.銀行家算法中出現(xiàn)以下資源分配,試問(1)該狀態(tài)是否安全?(2)若進(jìn)程P2 提出 Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?

      試問:(1)該狀態(tài)是否安全?

      (2)若進(jìn)程P2提出請求Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它? 答:(1)安全,因為存在安全序列{P0,P3,P4,P1,P2}(2)系統(tǒng)能分配資源,分析如下。

      ① Request(1,2,2,2)<= Need2(2,3,5,6);② Request(1,2,2,2)<= Available2(1,3,5,4);

      ③ 系統(tǒng)先假定可為P2分配資源,并修改Available2,Allocation2和Need2向量,由此形成的資源變化情況如下圖所示:

      ④ 再利用安全性算法檢查此時系統(tǒng)是否安全。如下圖

      由此進(jìn)行的安全性檢查得知,可以找到一個安全序列{P2,P0,P1,P3,P4}。

      第四章

      2.可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場合? 答:(1)絕對裝入方式,只適用于單道程序環(huán)境。(2)可重定位裝入方式,適用于多道程序環(huán)境。

      (3)動態(tài)運(yùn)行時裝入方式,用于多道程序環(huán)境;不允許程序運(yùn)行時在內(nèi)存中移位置。17.分段和分頁存儲管理有何區(qū)別? 答:

      (1)是信息的物理單位,分頁是為了實現(xiàn)離散分配方式,以消減內(nèi)存的外部零頭,提高內(nèi) 存利用率。段則是信息的邏輯單位,它含有一組相對完整的信息。

      (2)頁的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分為頁號和頁內(nèi)地址兩部分,是由 機(jī)械硬件實現(xiàn)的,因而在系統(tǒng)中只能有一種大小的的頁面;而段的長度卻不固定,決定于用戶 所編寫的程序,通常由編譯程序在對原程序進(jìn)行編譯時,根據(jù)信息的性質(zhì)來劃分。(3)分頁的作業(yè)地址空間是一維的,而分段作業(yè)地址空間則是二維的。19.虛擬存儲器有哪些特征?其中最本質(zhì)的特征是什么?

      答:虛擬存儲器有多次性、對換性、虛擬性三大特征。最本質(zhì)的特征是虛擬性。20.實現(xiàn)虛擬存儲器需要哪些硬件支持?

      答:(1)請求分頁(段)的頁(段)表機(jī)制(2)缺頁(段)中斷機(jī)構(gòu)(3)地址變換機(jī)構(gòu) 21.實現(xiàn)虛擬存儲器需要哪幾個關(guān)鍵技術(shù)? 答:

      (1)在分頁請求系統(tǒng)中是在分頁的基礎(chǔ)上,增加了請求調(diào)頁功能和頁面置換功能所形成的 頁式虛擬存儲系統(tǒng)。允許只裝入少數(shù)頁面的程序(及數(shù)據(jù)),便啟動運(yùn)行。

      (2)在請求分段系統(tǒng)中是在分段系統(tǒng)的基礎(chǔ)上,增加了請求調(diào)段及分段置換功能后形成的 段式虛擬存儲系統(tǒng)。允許只裝入少數(shù)段(而非所有段)的用戶程序和數(shù)據(jù),即可啟動運(yùn)行。25.在請求分頁系統(tǒng)中,通常采用哪種頁面分配方式?為什么?

      答:固定分配方式是基于進(jìn)程的類型(交互型)或根據(jù)程序員、系統(tǒng)管理員的建議,為每個進(jìn) 6 程分配固定頁數(shù)的內(nèi)存空間,整個運(yùn)行期間不再改變;采用可變分配方式有全局置換和局部置換兩種,前者易于實現(xiàn),后者效率高。26.在一個請求分頁系統(tǒng)中,采用LRU 頁面置換算法時,假如一個作業(yè)的頁面走向為 4 , 3 , 2 ,1 , 4 , 3 , 5 , 4 ,3 , 2 , 1 ,5,當(dāng)分配給該作業(yè)的物理塊數(shù)M分別為3和4時,試計算訪問過程中所發(fā)生的缺頁次數(shù)和缺頁率 ? 比較所得結(jié)果 ? 答:當(dāng)分配給該作業(yè)的物理塊數(shù)M為3時,缺頁7次,缺頁率: 7/12=0.583; 當(dāng)分配給該作業(yè)的物理塊數(shù)M為4時,缺頁4次,缺頁率: 4/12=0.333.28.試說明改進(jìn)型 Clock 置換算法的基本原理.答:因為修改過的頁面在換出時付出的開銷比未被修改過的頁面大,在改進(jìn)型Clock 算法 中,既考慮頁面的使用情況,還要增加置換代價的因素;在選擇頁面作為淘汰頁面時,把同 時滿足未使用過和未被修改作為首選淘汰頁面。

      第五章

      7.有哪幾種I/O控制方式?各適用于何種場合? 答:共有四種I/O 控制方式。

      (1)程序I/O 方式:早期計算機(jī)無中斷機(jī)構(gòu),處理機(jī)對I/O設(shè)備的控制采用程序I/O方式或稱忙等的方式。

      (2)中斷驅(qū)動I/O 控制方式:適用于有中斷機(jī)構(gòu)的計算機(jī)系統(tǒng)中。

      (3)直接存儲器訪問(DMA)I/O 控制方式:適用于具有DMA控制器的計算機(jī)系統(tǒng)中。(4)I/O 通道控制方式:具有通道程序的計算機(jī)系統(tǒng)中。

      9.引入緩沖的主要原因是什么? 答:引入緩沖的主要原因是:

      (1)緩和CPU與I/O 設(shè)備間速度不匹配的矛盾

      (2)減少對CPU的中斷頻率,放寬對中斷響應(yīng)時間的限制(3)提高CPU與I/O 設(shè)備之間的并行性

      17.何謂設(shè)備虛擬?實現(xiàn)設(shè)備虛擬時所依賴的關(guān)鍵技術(shù)是什么? 答:設(shè)備虛擬是指把獨占設(shè)備經(jīng)過某種技術(shù)處理改造成虛擬設(shè)備??商摂M設(shè)備是指一臺物理設(shè)備在采用虛擬技術(shù)后,可變成多臺邏輯上的虛擬設(shè)備,則可虛擬設(shè)備是可共享的設(shè)備,將它同時分配給多個進(jìn)程使用,并對這些訪問該物理設(shè)備的先后次序進(jìn)行控制。

      18.試說明SPOOLing 系統(tǒng)的組成。

      答:SPOOLing 系統(tǒng)由輸入井和輸出井、輸入緩沖區(qū)和輸出緩沖區(qū)、輸入進(jìn)程 SPi 和輸出進(jìn)程 SPo 三部分組成。

      19.在實現(xiàn)后臺打印時,SPOOLing 系統(tǒng)應(yīng)為請求I/O 的進(jìn)程提供哪些服務(wù)? 答:在實現(xiàn)后臺打印時,SPOOLing 系統(tǒng)應(yīng)為請求 I/O的進(jìn)程提供以下服務(wù):(1)由輸出進(jìn)程在輸出井中申請一空閑盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;

      (2)輸出進(jìn)程為用戶進(jìn)程申請空白用戶打印表,填入打印要求,將該表掛到請求打印隊列。(3)一旦打印機(jī)空閑,輸出進(jìn)程便從請求打印隊列的隊首取出一張請求打印表,根據(jù)表中要求將要打印的數(shù)據(jù)從輸出井傳送到內(nèi)存緩沖區(qū),再由打印機(jī)進(jìn)行打印。

      第六章

      1.何謂數(shù)據(jù)項、記錄和文件?

      答:①數(shù)據(jù)項分為基本數(shù)據(jù)項和組合數(shù)據(jù)項?;緮?shù)據(jù)項描述一個對象某種屬性的字符集,7 具有數(shù)據(jù)名、數(shù)據(jù)類型及數(shù)據(jù)值三個特性。組合數(shù)據(jù)項由若干數(shù)據(jù)項構(gòu)成。②記錄是一組相關(guān)數(shù)據(jù)項的集合,用于描述一個對象某方面的屬性。③文件是具有文件名的一組相關(guān)信息的集合。

      4.何謂邏輯文件?何謂物理文件?

      答:邏輯文件是物理文件中存儲的數(shù)據(jù)的一種視圖方式,不包含具體數(shù)據(jù),僅包含物理文件中數(shù)據(jù)的索引。物理文件又稱文件存儲結(jié)構(gòu),是指文件在外存上的存儲組織形式。8.試說明順序文件的結(jié)構(gòu)及其優(yōu)點。

      答:第一種是串結(jié)構(gòu):各記錄之間的順序與關(guān)鍵字無關(guān)。第二種是順序結(jié)構(gòu):指文件中的所有記錄按關(guān)鍵字(詞)排列。可以按關(guān)鍵詞長短排序或英文字母順序排序。順序文件的最佳應(yīng)用場合是對諸記錄進(jìn)行批量存取時,存取效率最高;只有順序文件才能存儲在磁帶上并有效工作。

      15.什么是索引文件?為什么要引入多級索引?

      答:索引文件是指當(dāng)記錄為可變長度時,通常為之建立一張索引表,并為每個記錄設(shè)置一個表項構(gòu)成的文件。通常將索引非順序文件簡稱為索引文件。索引是為了是用戶的訪問速度更快,多級索引結(jié)構(gòu)可以有效的管理索引文件,可根據(jù)用戶的訪問情況多級處理。17.對目錄管理的主要要求是什么?

      答:實現(xiàn)按名存取、提高檢索目錄的速度、文件共享、允許文件重名。18.采用單級目錄能否滿足對目錄管理的主要要求?為什么?

      答:不能。單級目錄在整個文件系統(tǒng)中只建立一張目錄表,每個文件占一個目錄項,其中含文件名、文件擴(kuò)展名、文件長度、文件類型、文件物理地址、狀態(tài)位等其它文件屬性。單級只能實現(xiàn)目錄管理的基本功能,不能滿足查找速度、允許重名和文件共享的要求。19.目前廣泛應(yīng)用的目錄結(jié)構(gòu)有哪些?它有什么優(yōu)點?

      答:現(xiàn)代操作系統(tǒng)都采用多級目錄結(jié)構(gòu)。基本特點是查詢速度快、層次結(jié)構(gòu)清晰、文件管理和保護(hù)易于實現(xiàn)。

      第五篇:操作系統(tǒng)課后題答案

      第一章

      1.設(shè)計現(xiàn)代OS的主要目標(biāo)是什么?

      答:(1)有效性(2)方便性(3)可擴(kuò)充性(4)開放性 2.OS的作用可表現(xiàn)在哪幾個方面?

      答:(1)OS作為用戶與計算機(jī)硬件系統(tǒng)之間的接口(2)OS作為計算機(jī)系統(tǒng)資源的管理者(3)OS實現(xiàn)了對計算機(jī)資源的抽象

      3.為什么說OS實現(xiàn)了對計算機(jī)資源的抽象?

      答:OS首先在裸機(jī)上覆蓋一層I/O設(shè)備管理軟件,實現(xiàn)了對計算機(jī)硬件操作的第一層次抽 象;在第一層軟件上再覆蓋文件管理軟件,實現(xiàn)了對硬件資源操作的第二層次抽象。OS 通 過在計算機(jī)硬件上安裝多層系統(tǒng)軟件,增強(qiáng)了系統(tǒng)功能,隱藏了對硬件操作的細(xì)節(jié),由它們 共同實現(xiàn)了對計算機(jī)資源的抽象。

      4.試說明推動多道批處理系統(tǒng)形成和發(fā)展的主要動力是什么? 答:主要動力來源于四個方面的社會需求與技術(shù)發(fā)展:(1)不斷提高計算機(jī)資源的利用率;(2)方便用戶;

      (3)器件的不斷更新?lián)Q代;

      (4)計算機(jī)體系結(jié)構(gòu)的不斷發(fā)展。

      5.何謂脫機(jī)I/O和聯(lián)機(jī)I/O?

      答:脫機(jī)I/O 是指事先將裝有用戶程序和數(shù)據(jù)的紙帶或卡片裝入紙帶輸入機(jī)或卡片機(jī),在 外圍機(jī)的控制下,把紙帶或卡片上的數(shù)據(jù)或程序輸入到磁帶上。該方式下的輸入輸出由外圍 機(jī)控制完成,是在脫離主機(jī)的情況下進(jìn)行的。

      而聯(lián)機(jī)I/O方式是指程序和數(shù)據(jù)的輸入輸出都是在主機(jī)的直接控制下進(jìn)行的。6.試說明推動分時系統(tǒng)形成和發(fā)展的主要動力是什么?

      答:推動分時系統(tǒng)形成和發(fā)展的主要動力是更好地滿足用戶的需要。主要表現(xiàn)在:CPU 的 分時使用縮短了作業(yè)的平均周轉(zhuǎn)時間;人機(jī)交互能力使用戶能直接控制自己的作業(yè);主機(jī)的 共享使多用戶能同時使用同一臺計算機(jī),獨立地處理自己的作業(yè)。7.實現(xiàn)分時系統(tǒng)的關(guān)鍵問題是什么?應(yīng)如何解決?

      答:關(guān)鍵問題是當(dāng)用戶在自己的終端上鍵入命令時,系統(tǒng)應(yīng)能及時接收并及時處理該命令,在用戶能接受的時延內(nèi)將結(jié)果返回給用戶。

      解決方法:針對及時接收問題,可以在系統(tǒng)中設(shè)置多路卡,使主機(jī)能同時接收用戶從各個終 端上輸入的數(shù)據(jù);為每個終端配置緩沖區(qū),暫存用戶鍵入的命令或數(shù)據(jù)。針對及時處理問題,應(yīng)使所有的用戶作業(yè)都直接進(jìn)入內(nèi)存,并且為每個作業(yè)分配一個時間片,允許作業(yè)只在自己 的時間片內(nèi)運(yùn)行,這樣在不長的時間內(nèi),能使每個作業(yè)都運(yùn)行一次。8.為什么要引入實時OS?

      答:實時操作系統(tǒng)是指系統(tǒng)能及時響應(yīng)外部事件的請求,在規(guī)定的時間內(nèi)完成對該事件的處 理,并控制所有實時任務(wù)協(xié)調(diào)一致地運(yùn)行。引入實時OS 是為了滿足應(yīng)用的需求,更好地滿 足實時控制領(lǐng)域和實時信息處理領(lǐng)域的需要。

      9.什么是硬實時任務(wù)和軟實時任務(wù)?試舉例說明。

      答:硬實時任務(wù)是指系統(tǒng)必須滿足任務(wù)對截止時間的要求,否則可能出現(xiàn)難以預(yù)測的結(jié)果。舉例來說,運(yùn)載火箭的控制等。

      軟實時任務(wù)是指它的截止時間并不嚴(yán)格,偶爾錯過了任務(wù)的截止時間,對系統(tǒng)產(chǎn)生的影 響不大。舉例:網(wǎng)頁內(nèi)容的更新、火車售票系統(tǒng)。

      10.在8位微機(jī)和16位微機(jī)中,占據(jù)了統(tǒng)治地位的是什么操作系統(tǒng)?

      答:單用戶單任務(wù)操作系統(tǒng),其中最具代表性的是CP/M和MS-DOS.11.試列出Windows OS 中五個主要版本,并說明它們分別較之前一個版本有何改進(jìn)。答:

      (1)Microsoft Windows 1.0是微軟公司在個人電腦上開發(fā)圖形界面的首次嘗試。(2)Windows 95是混合的16位/32位系統(tǒng),第一個支持32位。帶來了更強(qiáng)大、更穩(wěn) 定、更實用的桌面圖形用戶界面,結(jié)束了桌面操作系統(tǒng)間的競爭。

      (3)Windows 98是微軟公司的混合16位/32位Windows 操作系統(tǒng),改良了硬件標(biāo)準(zhǔn) 的支持,革新了內(nèi)存管理,是多進(jìn)程操作系統(tǒng)。

      (4)Windows XP是基于Windows 2000的產(chǎn)品,擁有新用戶圖形界面月神Luna。簡 化了用戶安全特性,整合了防火墻。

      (5)Windows Vista 包含了上百種新功能;特別是新版圖形用戶界面和Windows Aero 全新界面風(fēng)格、加強(qiáng)的搜尋功能(Windows Indexing Service)、新媒體創(chuàng)作工具以及重 新設(shè)計的網(wǎng)絡(luò)、音頻、輸出(打?。┖惋@示子系統(tǒng)。

      12.試從交互性、及時性以及可靠性方面,將分時系統(tǒng)與實時系統(tǒng)進(jìn)行比較。

      答:(1)及時性:實時信息處理系統(tǒng)對實時性的要求與分時系統(tǒng)類似,都是以人所能接受 的等待時間來確定;而實時控制系統(tǒng)的及時性,是以控制對象所要求的開始截止時間或完成 截止時間來確定的,一般為秒級到毫秒級,甚至有的要低于100微妙。

      (2)交互性:實時信息處理系統(tǒng)具有交互性,但人與系統(tǒng)的交互僅限于訪問系統(tǒng)中某 些特定的專用服務(wù)程序。不像分時系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)和資源共享等服務(wù)。(3)可靠性:分時系統(tǒng)也要求系統(tǒng)可靠,但相比之下,實時系統(tǒng)則要求系統(tǒng)具有高度 的可靠性。因為任何差錯都可能帶來巨大的經(jīng)濟(jì)損失,甚至是災(zāi)難性后果,所以在實時系統(tǒng) 中,往往都采取了多級容錯措施保障系統(tǒng)的安全性及數(shù)據(jù)的安全性。13.OS有哪幾大特征?其最基本的特征是什么?

      答:并發(fā)性、共享性、虛擬性和異步性四個基本特征;最基本的特征是并發(fā)性。14.處理機(jī)管理有哪些主要功能?它們的主要任務(wù)是什么?

      答:處理機(jī)管理的主要功能是:進(jìn)程管理、進(jìn)程同步、進(jìn)程通信和處理機(jī)調(diào)度; 進(jìn)程管理:為作業(yè)創(chuàng)建進(jìn)程,撤銷已結(jié)束進(jìn)程,控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換。進(jìn)程同步:為多個進(jìn)程(含線程)的運(yùn)行______________進(jìn)行協(xié)調(diào)。通信:用來實現(xiàn)在相互合作的進(jìn)程之間的信息交換。

      處理機(jī)調(diào)度:

      (1)作業(yè)調(diào)度。從后備隊里按照一定的算法,選出若干個作業(yè),為他們分配運(yùn)行所需 的資源(首選是分配內(nèi)存)。

      (2)進(jìn)程調(diào)度:從進(jìn)程的就緒隊列中,按照一定算法選出一個進(jìn)程,把處理機(jī)分配給 它,并設(shè)置運(yùn)行現(xiàn)場,使進(jìn)程投入執(zhí)行。

      15.內(nèi)存管理有哪些主要功能?他們的主要任務(wù)是什么?

      北京石油化工學(xué)院信息工程學(xué)院計算機(jī)系3/48 《計算機(jī)操作系統(tǒng)》習(xí)題參考答案余有明與計07和計G09的同學(xué)們編著 3/48 答:內(nèi)存管理的主要功能有:內(nèi)存分配、內(nèi)存保護(hù)、地址映射和內(nèi)存擴(kuò)充。內(nèi)存分配:為每道程序分配內(nèi)存。

      內(nèi)存保護(hù):確保每道用戶程序都只在自己的內(nèi)存空間運(yùn)行,彼此互不干擾。地址映射:將地址空間的邏輯地址轉(zhuǎn)換為內(nèi)存空間與對應(yīng)的物理地址。內(nèi)存擴(kuò)充:用于實現(xiàn)請求調(diào)用功能,置換功能等。16.設(shè)備管理有哪些主要功能?其主要任務(wù)是什么?

      答:主要功能有: 緩沖管理、設(shè)備分配和設(shè)備處理以及虛擬設(shè)備等。

      主要任務(wù): 完成用戶提出的I/O 請求,為用戶分配I/O 設(shè)備;提高CPU 和I/O 設(shè) 備的利用率;提高I/O速度;以及方便用戶使用I/O設(shè)備.17.文件管理有哪些主要功能?其主要任務(wù)是什么?

      答:文件管理主要功能:文件存儲空間的管理、目錄管理、文件的讀/寫管理和保護(hù)。文件管理的主要任務(wù):管理用戶文件和系統(tǒng)文件,方便用戶使用,保證文件安全性。18.是什么原因使操作系統(tǒng)具有異步性特征?

      答:操作系統(tǒng)的異步性體現(xiàn)在三個方面:一是進(jìn)程的異步性,進(jìn)程以人們不可預(yù)知的速度向 前推進(jìn),二是程序的不可再現(xiàn)性,即程序執(zhí)行的結(jié)果有時是不確定的,三是程序執(zhí)行時間的 不可預(yù)知性,即每個程序何時執(zhí)行,執(zhí)行順序以及完成時間是不確定的。19.模塊接口法存在哪些問題?可通過什么樣的途徑來解決?

      答:(1)模塊接口法存在的問題:①在OS設(shè)計時,各模塊間的接口規(guī)定很難滿足在模塊完 成后對接口的實際需求。②在OS 設(shè)計階段,設(shè)計者必須做出一系列的決定,每一個決定必 須建立在上一個決定的基礎(chǔ)上。但模塊化結(jié)構(gòu)設(shè)計的各模塊設(shè)計齊頭并進(jìn),無法尋找可靠的 順序,造成各種決定的無序性,使程序設(shè)計人員很難做到設(shè)計中的每一步?jīng)Q定都建立在可靠 的基礎(chǔ)上,因此模塊接口法被稱為“無序模塊法”。

      (2)解決途徑:將模塊接口法的決定順序無序變有序,引入有序分層法。20.在微內(nèi)核OS中,為什么要采用客戶/服務(wù)器模式?

      答:C/S 模式具有獨特的優(yōu)點:⑴數(shù)據(jù)的分布處理和存儲。⑵便于集中管理。⑶靈活性和 可擴(kuò)充性。⑷易于改編應(yīng)用軟件。21.試描述什么是微內(nèi)核OS。

      答:1)足夠小的內(nèi)核 2)基于客戶/服務(wù)器模式

      3)應(yīng)用機(jī)制與策略分離原理 4)采用面向?qū)ο蠹夹g(shù)。22.在基于微內(nèi)核結(jié)構(gòu)的OS中,應(yīng)用了哪些新技術(shù)?

      答:在基于微內(nèi)核結(jié)構(gòu)的OS 中,采用面向?qū)ο蟮某绦蛟O(shè)汁技術(shù)。

      23.何謂微內(nèi)核技術(shù)?在微內(nèi)核中通常提供了哪些功能?

      答:把操作系統(tǒng)中更多的成分和功能放到更高的層次(即用戶模式)中去運(yùn)行,而留下一個 盡量小的內(nèi)核,用它來完成操作系統(tǒng)最基本的核心功能,稱這種技術(shù)為微內(nèi)核技術(shù)。在微內(nèi) 核中通常提供了進(jìn)程(線程)管理、低級存儲器管理、中斷和陷入處理等功能。24.微內(nèi)核操作系統(tǒng)具有哪些優(yōu)點?它為何能有這些優(yōu)點? 答:1)提高了系統(tǒng)的可擴(kuò)展性 2)增強(qiáng)了系統(tǒng)的可靠性 3)可移植性

      4)提供了對分布式系統(tǒng)的支持 5)融入了面向?qū)ο蠹夹g(shù)

      第二章

      1.什么是前趨圖?為什么要引入前趨圖?

      答:前趨圖(Precedence Graph)是一個有向無循環(huán)圖,記為DAG(Directed Acyclic Graph),用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。

      2.畫出下面四條語句的前趨圖: S1=a:=x+y;S2=b:=z+1;S3=c:=a – b; S4=w:=c+1;3 答:其前趨圖為:3.什么程序并發(fā)執(zhí)行會產(chǎn)生間斷性特征?

      答:程序在并發(fā)執(zhí)行時,由于它們共享系統(tǒng)資源,為完成同一項任務(wù)需要相互合作,致使這 些并發(fā)執(zhí)行的進(jìn)程之間,形成了相互制約關(guān)系,從而使得進(jìn)程在執(zhí)行期間出現(xiàn)間斷性。4.程序并發(fā)執(zhí)行時為什么會失去封閉性和可再現(xiàn)性?

      答:程序并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)由多個程序改 變,致使程序運(yùn)行失去了封閉性,也會導(dǎo)致其失去可再現(xiàn)性。

      5.在操作系統(tǒng)中為什么要引入進(jìn)程概念?它會產(chǎn)生什么樣的影響? 答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對并發(fā)執(zhí)行的程序加以控制和描述,在操 作系統(tǒng)中引入了進(jìn)程概念。

      影響: 使程序的并發(fā)執(zhí)行得以實行。

      6.試從動態(tài)性,并發(fā)性和獨立性上比較進(jìn)程和程序? 答:(1)動態(tài)性是進(jìn)程最基本的特性,表現(xiàn)為由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資源 而暫停執(zhí)行,由撤銷而消亡。進(jìn)程有一定的生命期,而程序只是一組有序的指令集合,是靜 態(tài)實體。

      (2)并發(fā)性是進(jìn)程的重要特征,同時也是OS 的重要特征。引入進(jìn)程的目的正是為了使 其程序能和其它進(jìn)程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的。

      (3)獨立性是指進(jìn)程實體是一個能獨立運(yùn)行的基本單位,也是系統(tǒng)中獨立獲得資源和獨 立調(diào)度的基本單位。對于未建立任何進(jìn)程的程序,不能作為獨立單位參加運(yùn)行。7.試說明PCB 的作用,為什么說PCB 是進(jìn)程存在的惟一標(biāo)志?

      答:PCB 是進(jìn)程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu)。作用是使一個在 多道程序環(huán)境下不能獨立運(yùn)行的程序,成為一個能獨立運(yùn)行的基本單位,成為能與其它進(jìn)程 并發(fā)執(zhí)行的進(jìn)程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。8.試說明進(jìn)程在三個基本狀態(tài)之間轉(zhuǎn)換的典型原因。答:(1)就緒狀態(tài)→執(zhí)行狀態(tài):進(jìn)程分配到CPU資源(2)執(zhí)行狀態(tài)→就緒狀態(tài):時間片用完(3)執(zhí)行狀態(tài)→阻塞狀態(tài):I/O請求

      (4)阻塞狀態(tài)→就緒狀態(tài):I/O完成

      9.為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質(zhì)?

      答:引入掛起狀態(tài)處于五種不同的需要: 終端用戶需要,父進(jìn)程需要,操作系統(tǒng)需要,對換

      北京石油化工學(xué)院信息工程學(xué)院計算機(jī)系5/48 《計算機(jī)操作系統(tǒng)》習(xí)題參考答案余有明與計07和計G09的同學(xué)們編著 5/48 需要和負(fù)荷調(diào)節(jié)需要。處于掛起狀態(tài)的進(jìn)程不能接收處理機(jī)調(diào)度。10.在進(jìn)行進(jìn)程切換時,所要保存的處理機(jī)狀態(tài)信息有哪些? 答:進(jìn)行進(jìn)程切換時,所要保存的處理機(jī)狀態(tài)信息有:(1)進(jìn)程當(dāng)前暫存信息

      (2)下一指令地址信息(3)進(jìn)程狀態(tài)信息

      (4)過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息。

      11.試說明引起進(jìn)程創(chuàng)建的主要事件。

      答:引起進(jìn)程創(chuàng)建的主要事件有:用戶登錄、作業(yè)調(diào)度、提供服務(wù)、應(yīng)用請求。12.試說明引起進(jìn)程被撤銷的主要事件。

      答:引起進(jìn)程被撤銷的主要事件有:正常結(jié)束、異常結(jié)束(越界錯誤、保護(hù)錯、非法指令、特權(quán)指令錯、運(yùn)行超時、等待超時、算術(shù)運(yùn)算錯、I/O 故障)、外界干預(yù)(操作員或操作系 統(tǒng)干預(yù)、父進(jìn)程請求、父進(jìn)程終止)。

      13.在創(chuàng)建一個進(jìn)程時所要完成的主要工作是什么?

      答:

      (1)OS 發(fā)現(xiàn)請求創(chuàng)建新進(jìn)程事件后,調(diào)用進(jìn)程創(chuàng)建原語Creat();(2)申請空白PCB;(3)為新進(jìn)程分配資源;(4)初始化進(jìn)程控制塊;

      (5)將新進(jìn)程插入就緒隊列.14.在撤銷一個進(jìn)程時所要完成的主要工作是什么?

      答:

      (1)根據(jù)被終止進(jìn)程標(biāo)識符,從PCB 集中檢索出進(jìn)程PCB,讀出該進(jìn)程狀態(tài)。

      (2)若被終止進(jìn)程處于執(zhí)行狀態(tài),立即終止該進(jìn)程的執(zhí)行,置調(diào)度標(biāo)志真,指示該進(jìn)程被 終止后重新調(diào)度。

      (3)若該進(jìn)程還有子進(jìn)程,應(yīng)將所有子孫進(jìn)程終止,以防它們成為不可控進(jìn)程。(4)將被終止進(jìn)程擁有的全部資源,歸還給父進(jìn)程,或歸還給系統(tǒng)。

      (5)將被終止進(jìn)程PCB 從所在隊列或列表中移出,等待其它程序搜集信息。15.試說明引起進(jìn)程阻塞或被喚醒的主要事件是什么?

      答:a.請求系統(tǒng)服務(wù);b.啟動某種操作;c.新數(shù)據(jù)尚未到達(dá);d.無新工作可做.16.進(jìn)程在運(yùn)行時存在哪兩種形式的制約?并舉例說明之。答:

      (1)間接相互制約關(guān)系。舉例:有兩進(jìn)程A 和B,如果A 提出打印請求,系統(tǒng)已把唯一的 一臺打印機(jī)分配給了進(jìn)程B,則進(jìn)程A 只能阻塞;一旦B 釋放打印機(jī),A 才由阻塞改為就 緒。

      (2)直接相互制約關(guān)系。舉例:有輸入進(jìn)程A 通過單緩沖向進(jìn)程B 提供數(shù)據(jù)。當(dāng)緩沖空時,計算進(jìn)程因不能獲得所需數(shù)據(jù)而阻塞,當(dāng)進(jìn)程A 把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進(jìn)程B;反 之,當(dāng)緩沖區(qū)已滿時,進(jìn)程A 因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進(jìn)程B 將緩沖區(qū)數(shù)據(jù)取走后便 喚醒A。

      17.為什么進(jìn)程在進(jìn)入臨界區(qū)之前應(yīng)先執(zhí)行“進(jìn)入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出 區(qū)”代碼?

      答:為了實現(xiàn)多個進(jìn)程對臨界資源的互斥訪問,必須在臨界區(qū)前面增加一段用于檢查欲訪問 的臨界資源是否正被訪問的代碼,如果未被訪問,該進(jìn)程便可進(jìn)入臨界區(qū)對資源進(jìn)行訪問,并設(shè)置正被訪問標(biāo)志,如果正被訪問,則本進(jìn)程不能進(jìn)入臨界區(qū),實現(xiàn)這一功能的代碼為“ 北京石油化工學(xué)院信息工程學(xué)院計算機(jī)系6/48 《計算機(jī)操作系統(tǒng)》習(xí)題參考答案余有明與計07和計G09的同學(xué)們編著 6/48 進(jìn)入?yún)^(qū)”代碼;

      在退出臨界區(qū)后,必須執(zhí)行“退出區(qū)”代碼,用于恢復(fù)未被訪問標(biāo)志,使其它進(jìn)程能再訪問此 臨界資源。

      18.同步機(jī)構(gòu)應(yīng)遵循哪些基本準(zhǔn)則?為什么?

      答:同步機(jī)構(gòu)應(yīng)遵循的基本準(zhǔn)則是:空閑讓進(jìn)、忙則等待、有限等待、讓權(quán)等待

      原因:為實現(xiàn)進(jìn)程互斥進(jìn)入自己的臨界區(qū)。

      19.試從物理概念上說明記錄型信號量wait 和signal。

      答:wait(S):當(dāng)S.value>0 時,表示目前系統(tǒng)中這類資源還有可用的。執(zhí)行一次wait 操 作,意味著進(jìn)程請求一個單位的該類資源,使系統(tǒng)中可供分配的該類資源減少一個,因此描 述為S.value:=S.value-1;當(dāng)S.value<0時,表示該類資源已分配完畢,進(jìn)程應(yīng)調(diào)用block 原語自我阻塞,放棄處理機(jī),并插入到信號量鏈表S.L中。

      signal(S):執(zhí)行一次signal操作,意味著釋放一個單位的可用資源,使系統(tǒng)中可供分配 的該類資源數(shù)增加一個,故執(zhí)行S.value:=S.value+1 操作。若加1 后S.value≤0,則表 示在該信號量鏈表中,仍有等待該資源的進(jìn)程被阻塞,因此應(yīng)調(diào)用wakeup 原語,將S.L 鏈表中的第一個等待進(jìn)程喚醒。

      20.你認(rèn)為整型信號量機(jī)制是否完全遵循了同步機(jī)構(gòu)的四條準(zhǔn)則?

      答:整型信號量機(jī)制不完全遵循同步機(jī)制的四條準(zhǔn)則,它不滿足“讓權(quán)等待”準(zhǔn)則。21.如何利用信號量機(jī)制來實現(xiàn)多個進(jìn)程對臨界資源的互斥訪問?并舉例說明之。

      答:為使多個進(jìn)程互斥訪問某臨界資源,只需為該資源設(shè)置一互斥信號量mutex,并設(shè)其 初值為1,然后將各進(jìn)程訪問該資源的臨界區(qū)CS置于wait(mutex)和signal(mutex)操作 之間即可。這樣,每個欲訪問該臨界資源的進(jìn)程在進(jìn)入臨界區(qū)之前,都要先對mutex 執(zhí)行 wait 操作,若該資源此刻未被訪問,本次wait 操作必然成功,進(jìn)程便可進(jìn)入自己的臨界區(qū),這時若再有其他進(jìn)程也欲進(jìn)入自己的臨界區(qū),此時由于對mutex 執(zhí)行wait操作定會失敗,因而該進(jìn)程阻塞,從而保證了該臨界資源能被互斥訪問。當(dāng)訪問臨界資源的進(jìn)程退出臨界區(qū) 后,應(yīng)對mutex執(zhí)行signal 操作,釋放該臨界資源。利用信號量實現(xiàn)進(jìn)程互斥的進(jìn)程描述 如下:

      Var mutex: semaphore:=1; begin parbegin process 1: begin repeat wait(mutex); critical section signal(mutex); remainder seetion until false; end process 2: begin repeat wait(mutex); critical section signal(mutex); remainder section until false; end parend

      22.試寫出相應(yīng)的程序來描述圖2-17所示的前驅(qū)圖。

      答:(a)Var a, b, c, d, e, f, g, h;semaphore:= 0, 0, 0, 0, 0, 0, 0, 0;begin parbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);end;begin wait(c);S4;signal(f);end;begin wait(d);S5;signal(g);end;begin wait(e);S6;signal(h);end;begin wait(f);wait(g);wait(h);S7;end;parend end(b)Var a, b, c, d, e, f, g, h,i,j;semaphore:= 0, 0, 0, 0, 0, 0, 0,0,0, 0;begin parbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);signal(f);end;begin wait(c);S4;signal(g);end;begin wait(d);S5;signal(h);end;begin wait(e);S6;signal(i);end;begin wait(f);S7;signal(j);end;begin wait(g);wait(h);wait(i);wait(j);S8;end;parend end 23.在生產(chǎn)者消費者問題中,如果缺少了signal(full)或signal(empty),對執(zhí)行結(jié)果有何影響? 答:

      如果缺少signal(full),那么表明從第一個生產(chǎn)者進(jìn)程開始就沒有改變信號量full 值,即使緩沖池產(chǎn)品已滿,但full 值還是0,這樣消費者進(jìn)程執(zhí)行wait(full)時認(rèn)為緩沖池是空 而取不到產(chǎn)品,消費者進(jìn)程一直處于等待狀態(tài)。

      如果缺少signal(empty),在生產(chǎn)者進(jìn)程向n個緩沖區(qū)投滿產(chǎn)品后消費者進(jìn)程才開始從

      中取產(chǎn)品,這時empty=0,full=n,那么每當(dāng)消費者進(jìn)程取走一個產(chǎn)品empty 值并不改變,7 直到緩沖池取空了,empty 值也是0,即使目前緩沖池有n 個空緩沖區(qū),生產(chǎn)者進(jìn)程要想 再往緩沖池中投放產(chǎn)品也會因為申請不到空緩沖區(qū)被阻塞。

      24.在生產(chǎn)消費者問題中,如果將兩個wait 操作即wait(full)和wait(mutex)互換位置,或者將signal(mutex)與signal(full)互換位置,結(jié)果如何?

      答:將wait(full)和wait(mutex)互換位置后,可能引起死鎖??紤]系統(tǒng)中緩沖區(qū)全滿時,若一生產(chǎn)者進(jìn)程先執(zhí)行了wait(mutex)操作并獲得成功,則當(dāng)再執(zhí)行wait(empty)操作時,它將因失敗而進(jìn)入阻塞狀態(tài),它期待消費者進(jìn)程執(zhí)行signal(empty)來喚醒自己,在此之前,它不可能執(zhí)行signal(mutex)操作,從而使試圖通過執(zhí)行wait(mutex)操作而進(jìn)入自己的臨 界區(qū)的其他生產(chǎn)者和所有消費者進(jìn)程全部進(jìn)入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖。若signal(mutex)和signal(full)互換位置后只是影響進(jìn)程對臨界資源的釋放次序,而 不會引起系統(tǒng)死鎖,因此可以互換位置。

      25.我們在為某一臨界資源設(shè)置一把鎖W,當(dāng)W=1時表示關(guān)鎖,當(dāng)W=0時表示鎖已打開。試寫出開鎖和關(guān)鎖的原語,并利用他們實現(xiàn)互斥。答:整型信號量:lock(W): while W=1 do no-op

      W:=1;

      unlock(W): W:=0;記錄型信號量:lock(W): W:=W+1;

      if(W>1)then block(W, L)unlock(W): W:=W-1;

      if(W>0)then wakeup(W, L)例子:

      Var W:semaphore:=0;

      begin repeat lock(W);critical section unlock(W);remainder section until false;end

      26.試修改下面生產(chǎn)者-消費者問題解法中的錯誤: 答: producer: begin repeat ?

      producer an item in nextp;wait(mutex);wait(full);/* 應(yīng)為wait(empty),而且還應(yīng)該在wait(mutex)的前面 */ buffer(in):=nextp;/* 緩沖池數(shù)組游標(biāo)應(yīng)前移: in:=(in+1)mod n;*/ signal(mutex);8 /* signal(full);*/ until false;end consumer: begin repeat wait(mutex);wait(empty);/* 應(yīng)為wait(full),而且還應(yīng)該在wait(mutex)的前面 */ nextc:=buffer(out);out:=out+1;/* 考慮循環(huán),應(yīng)改為: out:=(out+1)mod n;*/ signal(mutex);/* signal(empty);*/ consumer item in nextc;until false;end 27.試?yán)糜涗浶托盘柫繉懗鲆粋€不會出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問題的算法.答:Var chopstick:array[0,?,4] of semaphore;所有信號量均被初始化為1,第i 位哲學(xué)家的活動可描述為: Repeat Wait(chopstick[i]);Wait(.chopstick[(i+1)mod 5]);?

      Ea.t;?

      Signal(chopstick[i]);Signal(chopstick[(i+1)mod 5])Ea.t;?

      Think;Until false;

      28.在測量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù),把所采集的數(shù)據(jù)送一單緩沖區(qū);計算任務(wù)從該單 緩沖中取出數(shù)據(jù)進(jìn)行計算.試寫出利用信號量機(jī)制實現(xiàn)兩者共享單緩沖的同步算法。答:

      a.Var mutex, empty, full: semaphore:=1, 1, 0;gather: begin repeat ??

      gather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);9 signal(full);until false;end compute: begin repeat ??

      wait(full);wait(mutex);nextc:=buffer;signal(mutex);signal(empty);compute data in nextc;until false;end b.Var empty, full: semaphore:=1, 0;gather: begin repeat ??

      gather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;end compute: begin repeat ??

      wait(full);nextc:=buffer;signal(empty);compute data in nextc;until false;end 29.畫圖說明管程由哪幾部分組成,為什么要引入條件變量?

      答:管程由四部分組成:①管程的名稱;②局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明;③對該數(shù) 據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程;④對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語句;

      當(dāng)一個進(jìn)程調(diào)用了管程,在管程中時被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期 間,如果該進(jìn)程不釋放管程,則其它進(jìn)程無法進(jìn)入管程,被迫長時間地等待。為了解決這個 問題,引入了條件變量condition。

      30.如何利用管程來解決生產(chǎn)者與消費者問題?

      答:首先建立一個管程,命名為ProclucerConsumer,包括兩個過程:

      (1)Put(item)過程。生產(chǎn)者利用該過程將自己生產(chǎn)的產(chǎn)品放到緩沖池,用整型變 量count 表示在緩沖池中已有的產(chǎn)品數(shù)目,當(dāng)count≥n 時,表示緩沖池已滿,生產(chǎn)者須 等待。

      (2)get(item)過程。消費者利用該過程從緩沖池中取出一個產(chǎn)品,當(dāng)count≤0 時,表示緩沖池中已無可取的產(chǎn)品,消費者應(yīng)等待。PC 管程可描述如下:

      type producer-consumer =monitor Var in,out,count:integer;buffer:array[0,?,n-1]of item;notfull,notempty:condition;procedure entry dot(item)begin if count>=n then not full.wait;buffer(in):=nextp;in:=(in+1)mod n;count:=count+1;if notempty.queue then notempty.signal;end procedure entry get(item)begin if count<=0 then not full.wait;nextc:=buffer(out);out:=(out+1)mod n;count:=count-1;if notfull.quene then notfull.signal;11 end begin in:=out:=0;count:=0 end 在利用管程解決生產(chǎn)者一消費者問題時,其中的生產(chǎn)者和消費者可描述為: producer: begin pepeat produce an inem in nestp PC.put(item);until false;end consumer: begin repeat PC.get(item);consume the item in enxtc;until false;end 31.什么是AND信號量?試?yán)肁ND信號量寫出生產(chǎn)者一消費者問題的解法。

      答:為解決并行帶來的死鎖問題,在wait 操作中引入AND 條件,其基本思想是將進(jìn) 程在整個運(yùn)行過程中所需要的所有臨界資源,一次性地全部分配給進(jìn)程,用完后一次性釋放。解決生產(chǎn)者-消費者問題可描述如下: var mutex,empty,full: semaphore:=1,n,0;buffer: array[0,...,n-1] of item;in,out: integer:=0,0;begin parbegin producer: begin repeat ?

      produce an item in nextp;?

      wait(empty);wait(s1,s2,s3,...,sn);//s1,s2,...,sn為執(zhí)行生產(chǎn)者進(jìn)程除empty 外其余的條件 wait(mutex);buffer(in):=nextp;in:=(in+1)mod n;signal(mutex);signal(full);signal(s1,s2,s3,...,sn);until false;end consumer: begin repeat wait(full);12 wait(k1,k2,k3,...,kn);//k1,k2,...,kn 為執(zhí)行消費者進(jìn)程除full 外其余的條件

      wait(mutex);nextc:=buffer(out);out:=(out+1)mod n;signal(mutex);signal(empty);signal(k1,k2,k3,...,kn);consume the item in nextc;until false;end parend end 32.什么是信號量集?試?yán)眯盘柫考瘜懗鲎x者一寫者問題的解法。答:對AND信號量加以擴(kuò)充,形成的信號量集合的讀寫機(jī)制。解法:Var RN integer;L,mx: semaphore:=RN,1;begin parbegin reader:begin repeat Swait(L,1,1);Swait(mx,1,1);?

      perform read operation;?

      Ssignal(L,1);until false end writer:begin repeat Swait(mx,1,1;L,RN,0);perform write operation;Ssignal(mx,1);until false end parend end 33.試比較進(jìn)程間的低級與高級通信工具。

      答:用戶用低級通信工具實現(xiàn)進(jìn)程通信很不方便,效率低,通信對用戶不透明,所有操作都 必須由程序員來實現(xiàn),而高級通信工具彌補(bǔ)了這些缺陷,用戶直接利用操作系統(tǒng)提供的一組 通信命令,高效地傳送大量的數(shù)據(jù)。34.當(dāng)前有哪幾種高級通信機(jī)制?

      答:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。

      35.消息隊列通信機(jī)制有哪幾方面的功能?

      答:(1)構(gòu)成消息(2)發(fā)送消息(3)接收梢息(4)互斥與同步。36.為什么要在OS 中引入線程?

      答:在操作系統(tǒng)中引入線程,則是為了減少程序在并發(fā)執(zhí)行時所付出的時空開銷,使OS具 有更好的并發(fā)性,提高CPU的利用率。進(jìn)程是分配資源的基本單位,而線程則是系統(tǒng)調(diào)度的 基本單位。

      37.試說明線程具有哪些屬性?

      答:(1)輕型實體(2)獨立調(diào)度和分派的基本單位(3)可并發(fā)執(zhí)行(4)共享進(jìn)程資源。38.試從調(diào)度性,并發(fā)性,擁有資源及系統(tǒng)開銷方面對進(jìn)程和線程進(jìn)行比較。答:

      (1)調(diào)度性。線程在OS 中作為調(diào)度和分派的基本單位,進(jìn)程只作為資源擁有的基本單位。(2)并發(fā)性。進(jìn)程可以并發(fā)執(zhí)行,一個進(jìn)程的多個線程也可并發(fā)執(zhí)行。

      (3)擁有資源。進(jìn)程始終是擁有資源的基本單位,線程只擁有運(yùn)行時必不可少的資源,本 身基本不擁有系統(tǒng)資源,但可以訪問隸屬進(jìn)程的資源。

      (4)系統(tǒng)開銷。操作系統(tǒng)在創(chuàng)建、撤消和切換進(jìn)程時付出的開銷顯著大于線程。39.為了在多線程OS 中實現(xiàn)進(jìn)程之間的同步與通信,通常提供了哪幾種同步機(jī)制? 答:同步功能可以控制程序流并訪問共享數(shù)據(jù),從而并發(fā)執(zhí)行多個線程。共有四種同步模型: 互斥鎖、讀寫鎖、條件變量和信號。

      40.用于實現(xiàn)線程同步的私用信號量和公用信號量之間有何差別?

      答:

      (1)私用信號量。當(dāng)某線程需利用信號量實現(xiàn)同一進(jìn)程中各線程之間的同步時,可調(diào)用創(chuàng) 建信號量的命令來創(chuàng)建一個私用信號量,其數(shù)據(jù)結(jié)構(gòu)存放在應(yīng)用程序的地址空間中。

      (2)公用信號量。公用信號量是為實現(xiàn)不同進(jìn)程間或不同進(jìn)程中各線程之間的同步而設(shè)置 的。其數(shù)據(jù)結(jié)構(gòu)是存放在受保護(hù)的系統(tǒng)存儲區(qū)中,由OS為它分配空間并進(jìn)行管理。41.何謂用戶級線程和內(nèi)核支持線程?

      答:

      (1)用戶級線程:僅存在于用戶空間中的線程,無須內(nèi)核支持。這種線程的創(chuàng)建、撤銷、線程間的同步與通信等功能,都無需利用系統(tǒng)調(diào)用實現(xiàn)。用戶級線程的切換通常發(fā)生在一個 應(yīng)用進(jìn)程的諸多線程之間,同樣無需內(nèi)核支持。

      (2)內(nèi)核支持線程:在內(nèi)核支持下運(yùn)行的線程。無論是用戶進(jìn)程中的線程,還是系統(tǒng)線程 中的線 程,其創(chuàng)建、撤銷和切換等都是依靠內(nèi)核,在內(nèi)核空間中實現(xiàn)的。在內(nèi)核空間里還 為每個內(nèi)核支持線程設(shè)置了線程控制塊,內(nèi)核根據(jù)該控制塊感知某線程的存在并實施控制。42.試說明用戶級線程的實現(xiàn)方法。

      答:用戶級線程是在用戶空間中的實現(xiàn)的,運(yùn)行在“運(yùn)行時系統(tǒng)”與“內(nèi)核控制線程”的中 間系統(tǒng)上。運(yùn)行時系統(tǒng)用于管理和控制線程的函數(shù)的集合。內(nèi)核控制線程或輕型進(jìn)程LWP 可通過系統(tǒng)調(diào)用獲得內(nèi)核提供服務(wù),利用LWP進(jìn)程作為中間系統(tǒng)。43.試說明內(nèi)核支持線程的實現(xiàn)方法。

      答:系統(tǒng)在創(chuàng)建新進(jìn)程時,分配一個任務(wù)數(shù)據(jù)區(qū)PTDA,其中包括若干個線程控制塊TCB 空間。創(chuàng)建一個線程分配一個TCB,有關(guān)信息寫入TCB,為之分配必要的資源。當(dāng)PTDA 中的TCB 用完,而進(jìn)程又有新線程時,只要所創(chuàng)建的線程數(shù)目未超過系統(tǒng)允許值,系統(tǒng)可 在為之分配新的TCB;在撤銷一個線程時,也應(yīng)回收線程的所有資源和TCB。

      第三章 第三章 處理機(jī)調(diào)度與死鎖

      1.高級調(diào)度與低級調(diào)度的主要任務(wù)是什么?為什么要引入中級調(diào)度?

      答:高級調(diào)度的主要任務(wù)是根據(jù)某種算法,把外存上處于后備隊列中的那些作業(yè)調(diào)入內(nèi)存。低級調(diào)度是保存處理機(jī)的現(xiàn)場信息,按某種算法先取進(jìn)程,再把處理器分配給進(jìn)程。引入中級調(diào)度的主要目的是為了提高內(nèi)存利用率和系統(tǒng)吞吐量。使那些暫時不能運(yùn)行的進(jìn)程不再占用內(nèi)存資源,將它們調(diào)至外存等待,把進(jìn)程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài)。2.何謂作業(yè)、作業(yè)步和作業(yè)流?

      答:作業(yè)包含通常的程序和數(shù)據(jù),還配有作業(yè)說明書。系統(tǒng)根據(jù)該說明書對程序的運(yùn)行進(jìn)行控制。批處理系統(tǒng)中是以作業(yè)為基本單位從外存調(diào)入內(nèi)存。

      作業(yè)步是指每個作業(yè)運(yùn)行期間都必須經(jīng)過若干個相對獨立相互關(guān)聯(lián)的順序加工的步驟。作業(yè)流是指若干個作業(yè)進(jìn)入系統(tǒng)后依次存放在外存上形成的輸入作業(yè)流;在操作系統(tǒng)的控制下,逐個作業(yè)進(jìn)程處理,于是形成了處理作業(yè)流。

      3.在什么情況下需要使用作業(yè)控制塊JCB?其中包含了哪些內(nèi)容?

      答:每當(dāng)作業(yè)進(jìn)入系統(tǒng)時,系統(tǒng)便為每個作業(yè)建立一個作業(yè)控制塊JCB,根據(jù)作業(yè)類型將它插入到相應(yīng)的后備隊列中。JCB 包含的內(nèi)容通常有:1)作業(yè)標(biāo)識2)用戶名稱3)用戶賬戶4)作業(yè)類型(CPU繁忙型、I/O 芳名型、批量型、終端型)5)作業(yè)狀態(tài)6)調(diào)度信息(優(yōu)先級、作業(yè)已運(yùn)行)7)資源要求8)進(jìn)入系統(tǒng)時間9)開始處理時間10)作業(yè)完成時間11)作業(yè)退出時間12)資源使用情況等 4.在作業(yè)調(diào)度中應(yīng)如何確定接納多少個作業(yè)和接納哪些作業(yè)?

      答:作業(yè)調(diào)度每次接納進(jìn)入內(nèi)存的作業(yè)數(shù),取決于多道程序度。應(yīng)將哪些作業(yè)從外存調(diào)入內(nèi)存,取決于采用的調(diào)度算法。最簡單的是先來服務(wù)調(diào)度算法,較常用的是短作業(yè)優(yōu)先調(diào)度算法和基于作業(yè)優(yōu)先級的調(diào)度算法。5.試說明低級調(diào)度的主要功能。

      答:(1)保存處理機(jī)的現(xiàn)場信息(2)按某種算法選取進(jìn)程(3)把處理機(jī)分配給進(jìn)程。6.在搶占調(diào)度方式中,搶占的原則是什么?

      答:搶占的原則有:時間片原則、優(yōu)先權(quán)原則、短作業(yè)優(yōu)先權(quán)原則等。7.在選擇調(diào)度方式和調(diào)度算法時,應(yīng)遵循的準(zhǔn)則是什么?

      答:

      (1)面向用戶的準(zhǔn)則:周轉(zhuǎn)時間短、響應(yīng)時間快、截止時間的保證、優(yōu)先權(quán)準(zhǔn)則。(2)面向系統(tǒng)的準(zhǔn)則:系統(tǒng)吞吐量高、處理機(jī)利用率好、各類資源的平衡利用。

      8.在批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種進(jìn)程(作業(yè))調(diào)度算法? 答:批處理系統(tǒng)的調(diào)度算法:短作業(yè)優(yōu)先、優(yōu)先權(quán)、高響應(yīng)比優(yōu)先、多級反饋隊列調(diào)度算法。分時系統(tǒng)的調(diào)度算法:時間片輪轉(zhuǎn)法。

      實時系統(tǒng)的調(diào)度算法:最早截止時間優(yōu)先即EDF、最低松弛度優(yōu)先即LLF算法。9.何謂靜態(tài)和動態(tài)優(yōu)先級?確定靜態(tài)優(yōu)先級的依據(jù)是什么?

      答:靜態(tài)優(yōu)先級是指在創(chuàng)建進(jìn)程時確定且在進(jìn)程的整個運(yùn)行期間保持不變的優(yōu)先級。

      動態(tài)優(yōu)先級是指在創(chuàng)建進(jìn)程時賦予的優(yōu)先權(quán),可以隨進(jìn)程推進(jìn)或隨其等待時間增加而改變的優(yōu)先級,可以獲得更好的調(diào)度性能。

      確定進(jìn)程優(yōu)先級的依據(jù):進(jìn)程類型、進(jìn)程對資源的需求和用戶要求。10.試比較FCFS和SPF兩種進(jìn)程調(diào)度算法。

      答:相同點:兩種調(diào)度算法都可以用于作業(yè)調(diào)度和進(jìn)程調(diào)度。

      不同點:FCFS調(diào)度算法每次都從后備隊列中選擇一個或多個最先進(jìn)入該隊列的作業(yè),將它們調(diào)入內(nèi)存、分配資源、創(chuàng)建進(jìn)程、插入到就緒隊列。該算法有利于長作業(yè)/進(jìn)程,不利于短作業(yè)/進(jìn)程。SPF算法每次調(diào)度都從后備隊列中選擇一個或若 15 干個估計運(yùn)行時間最短的作業(yè),調(diào)入內(nèi)存中運(yùn)行。該算法有利于短作業(yè)/進(jìn)程,不利于長作業(yè)/進(jìn)程。

      11.在時間片輪轉(zhuǎn)法中,應(yīng)如何確定時間片的大???

      答:時間片應(yīng)略大于一次典型的交互需要的時間。一般應(yīng)考慮三個因素:系統(tǒng)對相應(yīng)時間的 要求、就緒隊列中進(jìn)程的數(shù)目和系統(tǒng)的處理能力。

      12.通過一個例子來說明通常的優(yōu)先級調(diào)度算法不能適用于實時系統(tǒng)?

      答:實時系統(tǒng)的調(diào)度算法很多,主要是基于任務(wù)的開始截止時間和任務(wù)緊急/松弛程度的任務(wù)優(yōu)先級調(diào)度算法,通常的優(yōu)先級調(diào)度算法不能滿足實時系統(tǒng)的調(diào)度實時性要求而不適用。

      13.為什么說多級反饋隊列調(diào)度算法能較好地滿足各方面用戶的需求?

      答:(1)終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使這些作業(yè)在第一隊列規(guī)定的時間片內(nèi)完成,終端作業(yè)用戶就會感到滿足。

      (2)短批處理作業(yè)用戶,開始時像終端型作業(yè)一樣,如果在第一隊列中執(zhí)行一個時間片段即可完成,便可獲得與終端作業(yè)一樣的響應(yīng)時間。對于稍長作業(yè),通常只需在第二和第三隊列各執(zhí)行一時間片即可完成,其周轉(zhuǎn)時間仍然較短。

      (3)長批處理作業(yè),它將依次在第1,2,?,n個隊列中運(yùn)行,然后再按輪轉(zhuǎn)方式運(yùn)行,用戶不必?fù)?dān)心其作業(yè)長期得不到處理。所以,多級反饋隊列調(diào)度算法能滿足多用戶需求。14.為什么在實時系統(tǒng)中,要求系統(tǒng)(尤其是CPU)具有較強(qiáng)的處理能力?

      答:實時系統(tǒng)中通常有著多個實時任務(wù)。若處理機(jī)的處理能力不夠強(qiáng),有可能因為處理機(jī)忙不過來而使某些實時任務(wù)得不到及時處理,導(dǎo)致發(fā)生難以預(yù)料的后果。15.按照調(diào)度方式可將實時調(diào)度算法分為哪幾種? 答:可分為非搶占式和搶占式兩種算法。而非搶占式算法又分為非搶占式輪轉(zhuǎn)和優(yōu)先調(diào)度算法;搶占式調(diào)度算法又分為基于時鐘中斷的搶占式優(yōu)先權(quán)和立即搶占式優(yōu)先權(quán)調(diào)度算法。

      16.什么是最早截止時間優(yōu)先調(diào)度算法?舉例說明。

      答:根據(jù)任務(wù)的開始截止時間確定的任務(wù)優(yōu)先級調(diào)度算法。截止時間越早則優(yōu)先級越高。該算法要求在系統(tǒng)中保持一個實時任務(wù)就緒隊列,該隊列按各任務(wù)截止時間的先后排序。舉例:非搶占式調(diào)度方式用于非周期實時任務(wù)。圖3-9 是將該算法用于非搶占調(diào)度方式之例。該例中具有四個非周期任務(wù),它們先后到達(dá)。系統(tǒng)首先調(diào)度任務(wù)1執(zhí)行,在任務(wù)1執(zhí)行期間,任務(wù)2、3又先后到達(dá)。由于任務(wù)3的開始截止時間早于任務(wù)2,故系統(tǒng)在任務(wù)1后將調(diào)度任務(wù)3執(zhí)行。在此期間又到達(dá)作業(yè)4,其開始截止時間仍是早于任務(wù)2的,故在任務(wù)3執(zhí)行完后,系統(tǒng)又調(diào)度任務(wù)4執(zhí)行,最后才調(diào)度任務(wù)2執(zhí)行。

      圖3-9 EDF算法用于非搶占調(diào)度的調(diào)度方式

      17.什么是最低松弛度優(yōu)先調(diào)度算法?舉例說明之。

      答:該算法是根據(jù)任務(wù)緊急(或松弛)的程度,來確定任務(wù)的優(yōu)先級。任務(wù)的緊急程度愈高,為該任務(wù)所賦予的優(yōu)先級就愈高,以使之優(yōu)先執(zhí)行。例如,一個任務(wù)在200 ms 時必須完

      成,而它本身所需的運(yùn)行時間就有100 ms,因此,調(diào)度程序必須在100 ms 之前調(diào)度執(zhí)行,該任務(wù)的緊急程度(松弛程度)為100 ms。又如,另一任務(wù)在400 ms 時必須完成,它本身 需要運(yùn)行 150 ms,則其松弛程度為 250 ms。

      18.何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么? 答:死鎖是指多個進(jìn)程在運(yùn)行過程中因爭奪資源而造成的一種僵局,當(dāng)進(jìn)程處于這種僵持狀 態(tài)時,若無外力作用,它們都將無法再向前推進(jìn)。

      產(chǎn)生死鎖的原因為競爭資源和進(jìn)程間推進(jìn)順序非法。其必要條件是:互斥條件、請求和 保持條件、不剝奪條件、環(huán)路等待條件。

      19.在解決死鎖問題的幾個方法中,哪種方法最易于實現(xiàn)?哪種方法使資源利用率最高? 答:解決死鎖的四種方法即預(yù)防、避免、檢測和解除死鎖中,預(yù)防死鎖最容易實現(xiàn); 避免死鎖使資源的利用率最高。

      20.請詳細(xì)說明可通過哪些途徑預(yù)防死鎖。

      答:(1)擯棄“請求和保持”條件,就是如果系統(tǒng)有足夠資源,便一次性把進(jìn)程需要的所 有資源分配給它;

      (2)擯棄“不剝奪”條件,就是已經(jīng)擁有資源的進(jìn)程,當(dāng)它提出新資源請求而不能立即 滿足時,必須釋放它已保持的所有資源,待以后需要時再重新申請;

      (3)擯棄“環(huán)路等待”條件,就是將所有資源按類型排序標(biāo)號,所有進(jìn)程對資源的請求 必須嚴(yán)格按序號遞增的次序提出。

      21.在銀行家算法的例子中,如果P0發(fā)出請求向量由Request(0,2,0)改為Request(0,1,0),問系統(tǒng)可否將資源分配給它?

      答:(1)可以。銀行家算法各種資源數(shù)量分別為10、5、7,在T0時刻的資源分配如圖所示:

      (2)具體分析如下:

      ①Requst0(0,1,0)<=Need0(7,4,3);② Requst0(0,1,0)<=Available(2,3,0);系統(tǒng)先假定可為P0分配資源,并修改Available0,Allocation0和Need0向量,由此形成 的資源變化情況如下圖所示:

      (3)P0請求資源:P0發(fā)出請求向量Requst0(0,1,0),系統(tǒng)按銀行家算法進(jìn)行檢查:

      ① Requst0(0,1,0)<=Need0(7,4,3);② Requst0(0,1,0)<=Available(2,3,0);③ 系統(tǒng)暫時先假定可為P0分配資源,并修改______________有關(guān)數(shù)據(jù),如下圖所示

      綜上所述系統(tǒng)可以將資源分配給它。

      22.銀行家算法中出現(xiàn)以下資源分配,試問(1)該狀態(tài)是否安全?(2)若進(jìn)程P2 提出 Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?

      試問:(1)該狀態(tài)是否安全?

      (2)若進(jìn)程P2提出請求Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它? 答:(1)安全,因為存在安全序列{P0,P3,P4,P1,P2}(2)系統(tǒng)能分配資源,分析如下。

      ① Request(1,2,2,2)<= Need2(2,3,5,6);② Request(1,2,2,2)<= Available2(1,3,5,4);

      ③ 系統(tǒng)先假定可為P2分配資源,并修改Available2,Allocation2和Need2向量,由此形成的資源變化情況如下圖所示:

      ④ 再利用安全性算法檢查此時系統(tǒng)是否安全。如下圖

      由此進(jìn)行的安全性檢查得知,可以找到一個安全序列{P2,P0,P1,P3,P4}。

      第四章

      1.為什么要配置層次式存儲器?

      答:設(shè)置多個存儲器可以使存儲器兩端的硬件能并行工作;采用多級存儲系統(tǒng),特別是 Cache 技術(shù),是減輕存儲器帶寬對系統(tǒng)性能影響的最佳結(jié)構(gòu)方案;在微處理機(jī)內(nèi)部設(shè)置各 種緩沖存儲器,減輕對存儲器存取的壓力。增加CPU中寄存器數(shù)量大大緩解對存儲器壓力。2.可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場合?

      答:(1)絕對裝入方式,只適用于單道程序環(huán)境。(2)可重定位裝入方式,適用于多道程序環(huán)境。

      (3)動態(tài)運(yùn)行時裝入方式,用于多道程序環(huán)境;不允許程序運(yùn)行時在內(nèi)存中移位置。3.何謂靜態(tài)鏈接?何謂裝入時動態(tài)鏈接和運(yùn)行時的動態(tài)鏈接?P120 答:靜態(tài)鏈接是指在程序運(yùn)行前,先將各目標(biāo)模塊及它們所需的庫函數(shù),鏈接成一個完整的 裝配模塊,以后不再拆開的鏈接方式。

      裝入時動態(tài)鏈接是指將用戶源程序編譯后得到的一組目標(biāo)模塊,在裝入內(nèi)存時采用邊裝 入邊鏈接的鏈接方式。

      運(yùn)行時動態(tài)鏈接是指對某些目標(biāo)模塊的鏈接,是在程序執(zhí)行中需要該目標(biāo)模塊時,才對 它進(jìn)行的鏈接。

      4.在進(jìn)行程序鏈接時,應(yīng)完成哪些工作?

      答:由鏈接程序Linker將編譯后形成的一組目標(biāo)模塊,以及它們需要的庫函數(shù)鏈接在一起,形成一個完整的裝入模塊Load Module。主要工作是修改程序內(nèi)的相對地址和修改目標(biāo)程 序中的外部調(diào)用標(biāo)號。

      5.在動態(tài)分區(qū)分配方式中,應(yīng)如何將各空閑分區(qū)鏈接成空閑分區(qū)鏈?

      答:在每個分區(qū)的起始部分,設(shè)置一些控制分區(qū)分配的信息,以及用于鏈接各分區(qū)所用的前 向指針;在分區(qū)尾部設(shè)置一個后向指針,通過前后向鏈接指針,將所有空閑分區(qū)鏈成一個雙 向鏈。當(dāng)分區(qū)分配出去后,把狀態(tài)位由“0”改為“1”。

      6.為什么要引入動態(tài)重定位?如何實現(xiàn)?

      答:在程序執(zhí)行過程中,每當(dāng)訪問指令或數(shù)據(jù)時,將要訪問的程序或數(shù)據(jù)的邏輯地址轉(zhuǎn)換成 物理地址,引入了動態(tài)重定位;

      具體實現(xiàn)方法是在系統(tǒng)中增加一個重定位寄存器,用來裝入程序在內(nèi)存中的起始地址,程序執(zhí)行時,真正訪問的內(nèi)存地址是相對地址與重定位寄存器中的地址相加之和,從而實現(xiàn) 動態(tài)重定位。

      7.在采用首次適應(yīng)算法回收內(nèi)存時,可能出現(xiàn)哪幾種情況?應(yīng)怎樣處理這些情況? 答:在采用首次適應(yīng)算法回收內(nèi)存時可能出現(xiàn)4種情況:

      (1)回收區(qū)前鄰空閑區(qū)。將回收區(qū)與前鄰空閑區(qū)合并,將前鄰空閑區(qū)大小修改為兩者之和。(2)回收區(qū)后鄰空閑區(qū)。將兩區(qū)合并,改后鄰空閑區(qū)始址為回收區(qū)始址,大小為兩者之和。

      19(3)回收區(qū)前后均鄰空閑區(qū)。將三個分區(qū)合并,修改前鄰空閑區(qū)大小為三者之和。(4)回收區(qū)前后均不鄰空閑區(qū)。為回收區(qū)設(shè)置空閑區(qū)表項,填入回收區(qū)始址和大小并插入 空閑區(qū)隊列。8.令通用表達(dá)式。答:當(dāng)

      時,表示大小為、地址為x 的塊的伙伴系統(tǒng)地址,試寫出的;當(dāng)

      時,9.分區(qū)存儲管理中常用那些分配策略?比較它們的優(yōu)缺點。

      答:分區(qū)存儲管理中的常用分配策略:首次適應(yīng)算法、循環(huán)首次適應(yīng)算法、最佳適應(yīng)算法、最壞適應(yīng)算法。

      首次適應(yīng)算法優(yōu)缺點:保留了高址部分的大空閑區(qū),有利于后來的大型作業(yè)分配;低址

      部分不斷被劃分,留下許多難以利用的小空閑區(qū),每次查找都從低址開始增加了系統(tǒng)開銷。

      循環(huán)首次適應(yīng)算法優(yōu)缺點:內(nèi)存空閑分區(qū)分布均勻,減少了查找系統(tǒng)開銷;缺乏大空閑分區(qū),導(dǎo)致不能裝入大型作業(yè)。

      最佳適應(yīng)算法優(yōu)缺點:每次分配給文件的都是最適合該文件大小的分區(qū),內(nèi)存中留下許多難以利用的小空閑區(qū)。

      最壞適應(yīng)算法優(yōu)缺點:剩下空閑區(qū)不太小,產(chǎn)生碎片幾率小,對中小型文件分配分區(qū)操作有利;存儲器中缺乏大空閑區(qū),對大型文件分區(qū)分配不利。

      10.在系統(tǒng)中引入對換后可帶來哪些好處?

      答:交換技術(shù)將暫不需要的作業(yè)移到外存,讓出內(nèi)存空間以調(diào)入其它作業(yè),交換到外存的作 業(yè)也可以被再次調(diào)入。目的是解決內(nèi)存緊張問題,帶來的好處是進(jìn)一步提高了內(nèi)存利用率和 系統(tǒng)吞吐量。

      11.為實現(xiàn)對換,系統(tǒng)應(yīng)具備哪幾方面的功能?

      答:系統(tǒng)應(yīng)具備三方面功能:對換空間管理,進(jìn)程換出,進(jìn)程換入。

      12.在以進(jìn)程為單位進(jìn)行對換時,每次是否都將整個進(jìn)程換出?為什么?

      答:不是。系統(tǒng)首先選擇處于阻塞狀態(tài)且優(yōu)先級最低的進(jìn)程作為換出進(jìn)程,然后啟動磁盤,將該進(jìn)程的程序和數(shù)據(jù)傳送到磁盤的兌換區(qū)。若傳送過程未出錯,便可回收該進(jìn)程占用的內(nèi) 存空間,并對該進(jìn)程的進(jìn)程控制塊做相應(yīng)修改,所以并不需要將整個進(jìn)程換出。13.為實現(xiàn)分頁存儲管理,需要哪些硬件的支持?

      答:動態(tài)重定位技術(shù)、虛擬存儲技術(shù)、多道程序設(shè)計技術(shù)。

      14.較詳細(xì)的說明引入分段存儲管理是為了滿足用戶哪幾方面的需要。答:

      1)方便編程。用戶通常把自己的作業(yè)按照邏輯關(guān)系劃分為若干段,每段都從0 編址,并 有自己名字和長度。因此,希望要訪問的邏輯地址是由段名和段內(nèi)偏移量決定。

      2)信息共享。在實現(xiàn)對程序和數(shù)據(jù)的共享時,是以信息邏輯單位為基礎(chǔ)。分頁系統(tǒng)中的頁 是存放信息的物理單位,無完整意義,不便于共享;段是信息的邏輯單位。為了實現(xiàn)段 的共享,希望存儲管理能與用戶程序分段的組織方式相適應(yīng)。

      3)信息保護(hù)。對信息的邏輯單位進(jìn)行保護(hù),分段能更有效方便地實現(xiàn)信息保護(hù)功能。

      4)動態(tài)增長。在實際應(yīng)用中,有些段特別是數(shù)據(jù)段,在使用過程中會不斷增長,事先又無

      法確切知道增長多少。分段存儲管理方式能較好解決這個問題。

      5)動態(tài)鏈接。運(yùn)行時先將主程序?qū)?yīng)的目標(biāo)程序裝入內(nèi)存并啟動運(yùn)行,運(yùn)行過程中又需要 調(diào)用某段時,才將該段調(diào)入內(nèi)存鏈接。所以動態(tài)鏈接也要求以段作為管理單位。15.在具有快表的段頁式存儲管理方式中,如何實現(xiàn)地址變換?

      答:在CPU給出有效地址后,由地址變換機(jī)構(gòu)自動將頁號P送入高速緩沖寄存器,并將此 頁號與高速緩存中的所有頁號比較,若找到匹配頁號,表示要訪問的頁表項在快表中??芍?接從快表讀出該頁對應(yīng)物理塊號,送到物理地址寄存器中。如快表中沒有對應(yīng)頁表項,則再 訪問內(nèi)存頁表,找到后,把從頁表項中讀出物理塊號送地址寄存器;同時修改快表,將此頁 表項存入快表。但若寄存器已滿,則OS必須找到合適的頁表項換出。16.為什么說為什么說分段系統(tǒng)比分頁系統(tǒng)更易于實現(xiàn)信息的共享和保護(hù)?

      答:分頁系統(tǒng)的每個頁面是分散存儲的,為了實現(xiàn)信息共享和保護(hù),頁面之間需要一一對應(yīng),為此需要建立大量的頁表項;而分段系統(tǒng)的每個段都從0 編址,并采用一段連續(xù)的地址空 間,在實現(xiàn)共享和保護(hù)時,只需為要共享和保護(hù)的程序設(shè)置一個段表項,將其中的基址與內(nèi) 存地址一一對應(yīng)就能夠?qū)崿F(xiàn)。

      17.分段和分頁存儲管理有何區(qū)別?

      答:

      (1)是信息的物理單位,分頁是為了實現(xiàn)離散分配方式,以消減內(nèi)存的外部零頭,提高內(nèi) 存利用率。段則是信息的邏輯單位,它含有一組相對完整的信息。

      (2)頁的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分為頁號和頁內(nèi)地址兩部分,是由 機(jī)械硬件實現(xiàn)的,因而在系統(tǒng)中只能有一種大小的的頁面;而段的長度卻不固定,決定于用戶 所編寫的程序,通常由編譯程序在對原程序進(jìn)行編譯時,根據(jù)信息的性質(zhì)來劃分。(3)分頁的作業(yè)地址空間是一維的,而分段作業(yè)地址空間則是二維的。18.試全面比較連續(xù)分配和離散分配方式.答:

      (1)連續(xù)分配是指為一個用戶程序分配一個連續(xù)的地址空間,包括單一和分區(qū)兩種分配方 式。單一方式將內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū),最簡單,只用于單用戶單任務(wù)操作系統(tǒng);分區(qū)方 式分固定和動態(tài)分區(qū)。

      (2)離散分配方式分為分頁、分段和段頁式存儲管理。分頁式存儲管理旨在提高內(nèi)存利用 率,分段式存儲管理旨在滿足用戶(程序員)的需要,段頁式存儲管理則將兩者結(jié)合起來,具 有分段系統(tǒng)便于實現(xiàn)、可共享、易于保護(hù)和動態(tài)鏈接等優(yōu)點,又能像分頁系統(tǒng)很好解決外部 碎片及為各段可離散分配內(nèi)存等問題,是比較有效的存儲管理方式;

      19.虛擬存儲器有哪些特征?其中最本質(zhì)的特征是什么?

      答:虛擬存儲器有多次性、對換性、虛擬性三大特征。最本質(zhì)的特征是虛擬性。

      20.實現(xiàn)虛擬存儲器需要哪些硬件支持?

      答:(1)請求分頁(段)的頁(段)表機(jī)制(2)缺頁(段)中斷機(jī)構(gòu)(3)地址變換機(jī)構(gòu) 21.實現(xiàn)虛擬存儲器需要哪幾個關(guān)鍵技術(shù)?

      答:

      (1)在分頁請求系統(tǒng)中是在分頁的基礎(chǔ)上,增加了請求調(diào)頁功能和頁面置換功能所形成的 頁式虛擬存儲系統(tǒng)。允許只裝入少數(shù)頁面的程序(及數(shù)據(jù)),便啟動運(yùn)行。

      (2)在請求分段系統(tǒng)中是在分段系統(tǒng)的基礎(chǔ)上,增加了請求調(diào)段及分段置換功能后形成的 段式虛擬存儲系統(tǒng)。允許只裝入少數(shù)段(而非所有段)的用戶程序和數(shù)據(jù),即可啟動運(yùn)行。22.在請求分頁系統(tǒng)中,頁表應(yīng)包括哪些數(shù)據(jù)項?每項的作用是什么?

      答:頁表應(yīng)包括:頁號、物理塊號、狀態(tài)位P、訪問字段A、修改位M和外存地址。

      其中狀態(tài)位P 指示該頁是否調(diào)入內(nèi)存,供程序訪問時參考;訪問字段A 用于記錄本頁在一 段時間內(nèi)被訪問的次數(shù),或最近已有多長時間未被訪問,提供給置換算法選擇換出頁面時參 考;修改位M 表示該頁在調(diào)入內(nèi)存后是否被修改過;外存地址用于指出該頁在外存上的地 址,通常是物理塊號,供調(diào)入該頁時使用。

      23.在請求分頁系統(tǒng)中,應(yīng)從何處將所需頁面調(diào)入內(nèi)存?

      答:請求分頁系統(tǒng)中的缺頁從何處調(diào)入內(nèi)存分三種情況:

      (1)系統(tǒng)擁有足夠?qū)Q區(qū)空間時,可以全部從對換區(qū)調(diào)入所需頁面,提高調(diào)頁速度。在進(jìn)程運(yùn)行前將與該進(jìn)程有關(guān)的文件從文件區(qū)拷貝到對換區(qū)。

      (2)系統(tǒng)缺少足夠?qū)Q區(qū)空間時,不被修改的文件直接從文件區(qū)調(diào)入;當(dāng)換出這些頁面時,未被修改的不必?fù)Q出,再調(diào)入時,仍從文件區(qū)直接調(diào)入。對于可能修改的,在換出時便調(diào)到對換區(qū),以后需要時再從對換區(qū)調(diào)入。

      (3)UNIX 方式。未運(yùn)行頁面從文件區(qū)調(diào)入。曾經(jīng)運(yùn)行過但被換出頁面,下次從對換區(qū)調(diào)入。UNIX 系統(tǒng)允許頁面共享,某進(jìn)程請求的頁面有可能已調(diào)入內(nèi)存,直接使用不再調(diào)入。24.在請求分頁系統(tǒng)中,常采用哪幾種頁面置換算法?

      答:采用的頁面置換算法有:最佳置換算法和先進(jìn)先出置換算法,最近最久未使用(LRU)置換算法,Clock置換算法,最少使用置換算法,頁面緩沖算法等。

      25.在請求分頁系統(tǒng)中,通常采用哪種頁面分配方式?為什么?

      答:固定分配方式是基于進(jìn)程的類型(交互型)或根據(jù)程序員、系統(tǒng)管理員的建議,為每個進(jìn)程分配固定頁數(shù)的內(nèi)存空間,整個運(yùn)行期間不再改變;采用可變分配方式有全局置換和局部置換兩種,前者易于實現(xiàn),后者效率高。26.在一個請求分頁系統(tǒng)中,采用LRU 頁面置換算法時,假如一個作業(yè)的頁面走向為 4 , 3 , 2 ,1 , 4 , 3 , 5 , 4 ,3 , 2 , 1 ,5,當(dāng)分配給該作業(yè)的物理塊數(shù)M分別為3和4時,試計算訪問過程中所發(fā)生的缺頁次數(shù)和缺頁率 ? 比較所得結(jié)果 ? 答:當(dāng)分配給該作業(yè)的物理塊數(shù)M為3時,缺頁7次,缺頁率: 7/12=0.583; 當(dāng)分配給該作業(yè)的物理塊數(shù)M為4時,缺頁4次,缺頁率: 4/12=0.333.27.實現(xiàn)LRU算法所需的硬件支持是什么? 答:需要寄存器和棧等硬件支持。寄存器用于記錄某進(jìn)程在內(nèi)存中各頁的使用情況,棧用于 保存當(dāng)前使用的各個頁面的頁面號。

      28.試說明改進(jìn)型 Clock 置換算法的基本原理.答:因為修改過的頁面在換出時付出的開銷比未被修改過的頁面大,在改進(jìn)型Clock 算法 中,既考慮頁面的使用情況,還要增加置換代價的因素;在選擇頁面作為淘汰頁面時,把同 時滿足未使用過和未被修改作為首選淘汰頁面。29.說明請求分段系統(tǒng)中的缺頁中斷處理過程。答:請求分段系統(tǒng)中的缺頁中斷處理過程描述如下:

      (1)根據(jù)當(dāng)前執(zhí)行指令中的邏輯地址查頁表,判斷該頁是否在主存儲器中

      (2)該頁標(biāo)志為“0”形成缺頁中斷,中斷裝置通過交換PSW讓操作系統(tǒng)的中斷處理程序占用處理器。

      (3)操作系統(tǒng)處理缺頁中斷處理的辦法是查主存分配表找一個空閑的主存塊,查頁表找出該頁在磁盤上位置,啟動磁盤讀出該頁信息。(4)把從磁盤上讀出的信息裝入找到的主存塊中。

      (5)當(dāng)頁面住處被裝入主存后,應(yīng)修改頁表中對應(yīng)的表目,填上該頁所占用的主存塊把標(biāo)志置為“1”,表示該頁已在主存儲器中

      (6)由于產(chǎn)生缺頁中斷時的那條指令并沒執(zhí)行完,所以在把頁面裝入之后應(yīng)重新執(zhí)行被中 22 斷指令。

      請求分段系統(tǒng)中的缺頁中斷處理過程如下圖所示:

      30.如何實現(xiàn)分段共享 ? 答:在每個進(jìn)程的段表中,用相應(yīng)的表項指向共享段在內(nèi)存中起始地址;配置相應(yīng)的數(shù)據(jù)結(jié)構(gòu)作為共享段表,在段表項中設(shè)置共享進(jìn)程計數(shù)Count,每調(diào)用一次該共享段,Count值增 1,每當(dāng)進(jìn)程釋放一個共享段時,Count 減1,若減為0,則系統(tǒng)回收該共享段的物理內(nèi)存,取消在共享段表中該段對應(yīng)的表項;共享段應(yīng)給不同的進(jìn)程以不同的存取權(quán)限;不同的進(jìn)程可以使用不同的段號去共享該段。

      第五章

      1.試說明設(shè)備控制器的組成。

      答:由設(shè)備控制器與處理機(jī)的接口,設(shè)備控制器與設(shè)備的接口與I/O邏輯組成。

      2.為了實現(xiàn)CPU與設(shè)備控制器間的通信,設(shè)備控制器應(yīng)具備哪些功能?

      答:接收和識別命令;數(shù)據(jù)交換;標(biāo)識和報告設(shè)備狀態(tài);地址識別;數(shù)據(jù)緩沖;差錯控制。3.什么是字節(jié)多路通道?什么是數(shù)組選擇通道和數(shù)組多路通道?

      答:(1)字節(jié)多路通道。按字節(jié)交叉方式工作的通道。通常含有許多非分配型子通道,數(shù) 量從幾十到數(shù)百個,每個子通道連接一臺I/O 設(shè)備,控制其I/O 操作。子通道按時間片輪 轉(zhuǎn)方式共享主通道。

      (2)數(shù)組選擇通道。按數(shù)組方式傳送數(shù)據(jù),傳輸速率很高,每次只允許一個設(shè)備數(shù)據(jù)。

      (3)數(shù)組多路通道。將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道的各子通道分時并行操作的優(yōu)點結(jié)合而成。含有多個非分配型子通道,具有很高的數(shù)據(jù)傳輸率和通道利用率。4.如何解決因通道不足而產(chǎn)生的瓶頸問題? 答:解決問題的有效方法是增加設(shè)備到主機(jī)間的通路而不增加通道,把一個設(shè)備連到多個控 23 制器上,控制器又連到多個通道上,這種多通路方式解決了“瓶頸”問題,提高了系統(tǒng)可靠性,個別通道或控制器的故障不會使設(shè)備和存儲器之間沒有通路。5.試對VESA 及PCI兩種總線進(jìn)行比較。

      答:VESA總線的設(shè)計思想是以低價占領(lǐng)市場。總線帶寬32位,最高傳輸速率132Mb/s。廣泛用于486微機(jī)。缺點是能連接的設(shè)備數(shù)僅為2~4 臺,控制器中無緩沖,難于適應(yīng)處理 器速度的提高,不支持Pentium機(jī)。

      PCI總線在CPU和外設(shè)間插入了復(fù)雜的管理層,協(xié)調(diào)數(shù)據(jù)傳輸和提供一致接口。管理 層中配有數(shù)據(jù)緩沖,放大了線路的驅(qū)動能力,最多支持10種外設(shè),支持高時鐘頻率的CPU 運(yùn)行,最大傳輸速率132Mb/s。可連接ISA、EISA 等傳統(tǒng)總線,又支持Pentium的64 位系統(tǒng),是基于奔騰等新一代微處理器而發(fā)展的總線。6.試說明推動I/O控制發(fā)展的主要因素是什么?

      答:推動I/O 控制發(fā)展的主要動力在于盡量減少主機(jī)對I/O 控制的干預(yù),把主機(jī)從繁雜的I/O控制事務(wù)中解脫出來,用更多的時間和精力去完成其數(shù)據(jù)處理任務(wù)。同時,中斷機(jī)制在計算機(jī)系統(tǒng)中的引入、DMA 控制器的出現(xiàn)和通道研制的成功使I/O 控制的發(fā)展具備了技術(shù)支持和成為可能。

      7.有哪幾種I/O控制方式?各適用于何種場合?

      答:共有四種I/O 控制方式。

      (1)程序I/O 方式:早期計算機(jī)無中斷機(jī)構(gòu),處理機(jī)對I/O設(shè)備的控制采用程序I/O方式或稱忙等的方式。

      (2)中斷驅(qū)動I/O 控制方式:適用于有中斷機(jī)構(gòu)的計算機(jī)系統(tǒng)中。

      (3)直接存儲器訪問(DMA)I/O 控制方式:適用于具有DMA控制器的計算機(jī)系統(tǒng)中。(4)I/O 通道控制方式:具有通道程序的計算機(jī)系統(tǒng)中。8.試說明DMA 的工作流程。

      答:以從磁盤讀入數(shù)據(jù)為例,說明DMA的工作流程。當(dāng)CPU要從磁盤讀入數(shù)據(jù)塊時,先向磁盤控制器發(fā)送一條讀命令。該命令被送到命令寄存器CR中。同時還發(fā)送本次要讀入數(shù)據(jù)的內(nèi)存起始目標(biāo)地址,送入內(nèi)存地址寄存器MAR;本次要讀數(shù)據(jù)的字節(jié)數(shù)送入數(shù)據(jù)計數(shù)器DC,將磁盤中的源地址直接送DMA控制器的I/O 控制邏輯上。然后啟動DMA 控制器傳送數(shù)據(jù),以后CPU 便處理其它任務(wù)。整個數(shù)據(jù)傳送過程由DMA控制器控制。下圖為DMA方式的工作流程圖。

      9.引入緩沖的主要原因是什么? 答:引入緩沖的主要原因是:

      (1)緩和CPU與I/O 設(shè)備間速度不匹配的矛盾

      (2)減少對CPU的中斷頻率,放寬對中斷響應(yīng)時間的限制

      (3)提高CPU與I/O 設(shè)備之間的并行性

      10.在單緩沖情況下,為什么系統(tǒng)對一塊數(shù)據(jù)的處理時間為max(C,T)+M ? 答:在塊設(shè)備輸入時,先從磁盤把一塊數(shù)據(jù)輸入到緩沖區(qū),耗時為T;然后由操作系統(tǒng)將緩沖區(qū)數(shù)據(jù)送給用戶區(qū),耗時M;接下來由CPU 對塊數(shù)據(jù)進(jìn)行計算,耗時C。在單緩沖情況下,磁盤把數(shù)據(jù)輸入到緩沖區(qū)的操作和CPU 對數(shù)據(jù)的計算過程可以并行展開,所以系統(tǒng)對每一整塊數(shù)據(jù)的處理時間為max(C, T)+ M。

      11.為什么在雙緩沖情況下,系統(tǒng)對一塊數(shù)據(jù)的處理時間為max(T,C)? 答:寫入者花費時間T 將數(shù)據(jù)寫滿一個緩沖區(qū)后再寫另一個緩沖區(qū);讀出者花費時間M 將一個緩沖區(qū)數(shù)據(jù)送到用戶區(qū)后再傳送另一個緩沖區(qū)數(shù)據(jù),計算者讀出用戶區(qū)數(shù)據(jù)進(jìn)行處理。由于將數(shù)據(jù)從緩沖區(qū)傳到用戶區(qū)操作必須與讀用戶區(qū)數(shù)據(jù)處理串行進(jìn)行,而且可以與從外存?zhèn)魉蛿?shù)據(jù)填滿緩沖區(qū)的操作并行。因此耗時大約為max(C+M,T)??紤]M 是內(nèi)存數(shù)據(jù)塊的移動耗時非常短暫可以省略,因此近似地認(rèn)為系統(tǒng)對一塊數(shù)據(jù)處理時間為max(C,T)。

      12.試?yán)L圖說明把多緩沖用于輸出時的情況。答:多緩沖用于輸出的示意圖如下:

      13.試說明收容輸入工作緩沖區(qū)和提取輸出工作緩沖區(qū)的工作情況。答:

      ① 收容輸入工作緩沖區(qū)的工作情況為:在輸入進(jìn)程需要輸入數(shù)據(jù)時,調(diào)用GetBuf(EmptyQueue)過程,從EmptyQueue隊列的隊首摘下一個空緩沖區(qū),作為收容輸入工作緩沖區(qū)Hin。然后把數(shù)據(jù)輸入其中,裝滿后再調(diào)用PutBuf(InputQueue, Hin)過程,將該緩沖區(qū)掛在輸入隊列InputQueue的隊尾。

      ② 提取輸出工作緩沖區(qū)的工作情況為:當(dāng)要輸出數(shù)據(jù)時,調(diào)用GetBuf(OutputQueue)過程,從輸出隊列的隊首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū)作為提取輸出工作緩沖區(qū)Sout。在數(shù)據(jù)提取完后,再調(diào)用PutBuf(EmptyQueue, Sout)過程,將該緩沖區(qū)掛到空緩沖隊列EmptyQueue的隊尾。

      14.何謂安全分配方式和不安全分配方式? 答:

      ① 安全分配方式是指每當(dāng)進(jìn)程發(fā)出I/O 請求后,便進(jìn)入阻塞狀態(tài),直到其I/O 操作完成時才被喚醒。在采用這種分配策略時,一旦進(jìn)程已獲得某種設(shè)備資源后便阻塞,使它不可能再請求任何資源,而在它運(yùn)行時又不保持任何資源。這種分配方式已經(jīng)摒棄了造成死鎖的“請求和保持”條件,分配是安全的。缺點是進(jìn)程進(jìn)展緩慢,CPU與I/O 設(shè)備串行工作。

      ②不安全分配方式是指進(jìn)程發(fā)出I/O 請求后仍繼續(xù)執(zhí)行,需要時又可發(fā)出第二個I/O 請求、第三個I/O 請求。僅當(dāng)進(jìn)程請求的設(shè)備已被另一個進(jìn)程占有時,進(jìn)程才進(jìn)入阻塞狀態(tài)。優(yōu)點是一個進(jìn)程可同時操作多個設(shè)備,進(jìn)程推進(jìn)迅速。缺點是分配不安全,可能具有“請求和保持”條件,可能造成死鎖。因此,在設(shè)備分配程序中需增加一個功能,用于對本次的設(shè)備分配是否會發(fā)生死鎖進(jìn)行安全性計算,僅當(dāng)計算結(jié)果表明分配安全的情況下才進(jìn)行分配。15.為何要引入設(shè)備獨立性?如何實現(xiàn)設(shè)備獨立性?

      答:現(xiàn)代操作系統(tǒng)為了提高系統(tǒng)的可適應(yīng)性和可擴(kuò)展性,都實現(xiàn)了設(shè)備獨立性或設(shè)備無關(guān)性?;竞x是應(yīng)用程序獨立于具體使用的物理設(shè)備,應(yīng)用程序以邏輯設(shè)備名請求使用某類設(shè)備。實現(xiàn)了設(shè)備獨立性功能可帶來兩方面的好處:(1)設(shè)備分配時的靈活性;(2)易于實現(xiàn)I/O 重定向。

      為了實現(xiàn)設(shè)備的獨立性,應(yīng)引入邏輯設(shè)備和物理設(shè)備概念。在應(yīng)用程序中,使用邏輯設(shè)備名請求使用某類設(shè)備;系統(tǒng)執(zhí)行時是使用物理設(shè)備名。鑒于驅(qū)動程序是與硬件或設(shè)備緊密相關(guān)的軟件,必須在驅(qū)動程序之上設(shè)置一層設(shè)備獨立性軟件,執(zhí)行所有設(shè)備的公有操作、完成邏輯設(shè)備名到物理設(shè)備名的轉(zhuǎn)換(為此應(yīng)設(shè)置一張邏輯設(shè)備表)并向用戶層(或文件層)軟件提供統(tǒng)一接口,從而實現(xiàn)設(shè)備的獨立性。

      16.在考慮到設(shè)備的獨立性時,應(yīng)如何分配獨占設(shè)備?

      答:在考慮到設(shè)備的獨立性時,應(yīng)按如下步驟來分配獨占設(shè)備:

      (1)進(jìn)程以邏輯設(shè)備名提出I/O請求。

      (2)根據(jù)邏輯設(shè)備表獲得I/O請求的邏輯設(shè)備對應(yīng)物理設(shè)備在系統(tǒng)設(shè)備表中的指針。

      (3)檢索系統(tǒng)設(shè)備表,找到屬于請求類型、空閑可用且分配安全設(shè)備的設(shè)備控制表,將對應(yīng) 設(shè)備分配給請求進(jìn)程;未找到則等待等待喚醒和分配。

      (4)到設(shè)備控制表中找出與其相連接的控制器的控制器控制表,根據(jù)狀態(tài)字段判斷是否忙 碌,忙則等待;否則將該控制器分配給進(jìn)程。

      (5)到該控制器的控制器控制表中找出與其相連接的通道的通道控制表,判斷通道是否忙 碌,忙則等待;否則將該通道分配給進(jìn)程。

      (6)只有在設(shè)備、控制器和通道三者都分配成功時,這次的設(shè)備分配才算成功,然后便可啟 動設(shè)備進(jìn)行數(shù)據(jù)傳送。

      17.何謂設(shè)備虛擬?實現(xiàn)設(shè)備虛擬時所依賴的關(guān)鍵技術(shù)是什么?

      答:設(shè)備虛擬是指把獨占設(shè)備經(jīng)過某種技術(shù)處理改造成虛擬設(shè)備。可虛擬設(shè)備是指一臺物理設(shè)備在采用虛擬技術(shù)后,可變成多臺邏輯上的虛擬設(shè)備,則可虛擬設(shè)備是可共享的設(shè)備,將它同時分配給多個進(jìn)程使用,并對這些訪問該物理設(shè)備的先后次序進(jìn)行控制。

      18.試說明SPOOLing 系統(tǒng)的組成。

      答:SPOOLing 系統(tǒng)由輸入井和輸出井、輸入緩沖區(qū)和輸出緩沖區(qū)、輸入進(jìn)程 SPi 和輸出進(jìn)程 SPo 三部分組成。

      19.在實現(xiàn)后臺打印時,SPOOLing 系統(tǒng)應(yīng)為請求I/O 的進(jìn)程提供哪些服務(wù)? 答:在實現(xiàn)后臺打印時,SPOOLing 系統(tǒng)應(yīng)為請求 I/O的進(jìn)程提供以下服務(wù):

      (1)由輸出進(jìn)程在輸出井中申請一空閑盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;

      (2)輸出進(jìn)程為用戶進(jìn)程申請空白用戶打印表,填入打印要求,將該表掛到請求打印隊列。(3)一旦打印機(jī)空閑,輸出進(jìn)程便從請求打印隊列的隊首取出一張請求打印表,根據(jù)表中要求將要打印的數(shù)據(jù)從輸出井傳送到內(nèi)存緩沖區(qū),再由打印機(jī)進(jìn)行打印。20.試說明設(shè)備驅(qū)動程序具有哪些特點。答:設(shè)備驅(qū)動程序具有如下特點:

      (1)是請求 I/O 進(jìn)程與設(shè)備控制器間的一個通信程序;(2)驅(qū)動程序與 I/O 設(shè)備的特性緊密相關(guān);(3)驅(qū)動程序與 I/O 控制方式緊密相關(guān);

      (4)驅(qū)動程序與硬件緊密相關(guān),部分程序用匯編語言書寫,基本部分往往固化在ROM中。

      21.試說明設(shè)備驅(qū)動程序應(yīng)具有哪些功能? 答:設(shè)備驅(qū)動程序的主要功能包括:

      (1)將接收到的抽象要求轉(zhuǎn)為具體要求;

      (2)檢查用戶I/O請求合法性,了解I/O 設(shè)備狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備工作方式;(3)發(fā)出I/O 命令,啟動分配到的I/O設(shè)備,完成指定I/O 操作;(4)及時響應(yīng)由控制器或通道發(fā)來的中斷請求,根據(jù)中斷類型調(diào)用相應(yīng)中斷處理程序處理;(5)對于有通道的計算機(jī),驅(qū)動程序還應(yīng)該根據(jù)用戶 I/O 請求自動構(gòu)成通道程序。22.設(shè)備中斷處理程序通常需完成哪些工作? 答:設(shè)備中斷處理程序通常需完成如下工作:(1)喚醒被阻塞的驅(qū)動程序進(jìn)程;(2)保護(hù)被中斷進(jìn)程的CPU環(huán)境;

      27(3)分析中斷原因、轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程序;

      (4)進(jìn)行中斷處理;(5)恢復(fù)被中斷進(jìn)程。

      23.磁盤訪問時間由哪幾部分組成?每部分時間應(yīng)如何計算?

      答:磁盤訪問時間由尋道時間Ts、旋轉(zhuǎn)延遲時間Tr、傳輸時間Tt 三部分組成。

      (1)Ts 是啟動磁臂時間s 與磁頭移動n條磁道的時間和,即Ts = m × n + s。

      (2)Tr是指定扇區(qū)移動到磁頭下面所經(jīng)歷的時間。硬盤15000r/min時Tr為2ms;軟盤300或600r/min時Tr為50~100ms。

      (3)Tt 是指數(shù)據(jù)從磁盤讀出或向磁盤寫入經(jīng)歷的時間。Tt 的大小與每次讀/寫的字節(jié)數(shù)b和旋轉(zhuǎn)速度有關(guān):Tt = b/rN。

      24.目前常用的磁盤調(diào)度算法有哪幾種?每種算法優(yōu)先考慮的問題是什么? 答:目前常用的磁盤調(diào)度算法有先來先服務(wù)、最短尋道時間優(yōu)先及掃描等算法。

      (1)先來先服務(wù)算法優(yōu)先考慮進(jìn)程請求訪問磁盤的先后次序;

      (2)最短尋道時間優(yōu)先算法優(yōu)先考慮要求訪問的磁道與當(dāng)前磁頭所在磁道距離是否最近;(3)掃描算法考慮欲訪問的磁道與當(dāng)前磁道間的距離,更優(yōu)先考慮磁頭當(dāng)前的移動方向。25.為什么要引入磁盤高速緩沖?何謂磁盤高速緩沖?

      答:目前磁盤的I/O速度遠(yuǎn)低于內(nèi)存的訪問速度,通常低上4-6個數(shù)量級。因此,磁盤I/O已成為計算機(jī)系統(tǒng)的瓶頸。為提高磁盤I/O的速度,便引入了磁盤高速緩沖。

      磁盤高速緩沖是指利用內(nèi)存中的存儲空間,暫存從磁盤中讀出的一系列盤塊中的信息。26.在設(shè)計磁盤高速緩沖時,如何實現(xiàn)數(shù)據(jù)交付? 答:數(shù)據(jù)交付是指將磁盤高速緩存中的數(shù)據(jù)傳給請求進(jìn)程。當(dāng)進(jìn)程請求訪問某個盤塊中的數(shù)據(jù)時,由核心先查看磁盤高速緩沖,看其中是否存在所需盤塊數(shù)據(jù)的拷貝。若有便直接從中提取數(shù)據(jù)交付給請求進(jìn)程,避免了訪盤操作,本次訪問速度提高4-6 個數(shù)量級;否則先從磁盤中將要訪問的數(shù)據(jù)讀入并交付給請求者進(jìn)程,同時送高速緩存以便下次直接讀取。

      27.何謂提前讀、延遲寫和虛擬盤?

      答:提前讀是指在讀當(dāng)前盤塊的同時,將下一個可能要訪問的盤塊數(shù)據(jù)讀入緩沖區(qū),以便需 要時直接從緩沖區(qū)中讀取,無需啟動磁盤。

      延遲寫是指在寫盤塊時,將對應(yīng)緩沖區(qū)中的立即寫數(shù)據(jù)暫時不立即寫以備不久之后再被訪問,只將它置上“延遲寫”標(biāo)志并掛到空閑緩沖隊列的末尾。當(dāng)移到空閑緩沖隊首并被分配出去時,才寫緩沖區(qū)中的數(shù)據(jù)。只要延遲寫塊仍在空閑緩沖隊列中,任何要求訪問都可直接從其中讀出數(shù)據(jù)或?qū)?shù)據(jù)寫入其中,而不必去訪問磁盤。

      虛擬盤又稱RAM盤,是利用內(nèi)存空間仿真磁盤。其設(shè)備驅(qū)動程序可以接受所有標(biāo)準(zhǔn)的磁盤操作,但這些操作不是在磁盤上而是在內(nèi)存中,因此速度更快。

      28.廉價磁盤冗余陣列是如何提高對磁盤的訪問速度和可靠性的?

      答:廉價磁盤冗余陣列RAID是利用一臺磁盤陣列控制器,統(tǒng)一管理和控制一組(幾臺到幾 十臺)磁盤驅(qū)動器,組成高度可靠快速大容量的磁盤系統(tǒng)。

      操作系統(tǒng)將RAID中的一組物理磁盤驅(qū)動器看作一個單個的邏輯磁盤驅(qū)動器。用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)可分布在陣列的所有磁盤中,并采取并行傳輸方式,大大減少數(shù)據(jù)傳輸時間和提高了可靠性。

      第六章

      1.何謂數(shù)據(jù)項、記錄和文件?

      答:①數(shù)據(jù)項分為基本數(shù)據(jù)項和組合數(shù)據(jù)項。基本數(shù)據(jù)項描述一個對象某種屬性的字符集,28 具有數(shù)據(jù)名、數(shù)據(jù)類型及數(shù)據(jù)值三個特性。組合數(shù)據(jù)項由若干數(shù)據(jù)項構(gòu)成。②記錄是一組相關(guān)數(shù)據(jù)項的集合,用于描述一個對象某方面的屬性。③文件是具有文件名的一組相關(guān)信息的集合。

      2.文件系統(tǒng)的模型可分為三層,試說明其每一層所包含的基本內(nèi)容。答:第一層:對象及其屬性說明(文件、目錄、硬盤或磁帶存儲空間);

      第二層:對對象操縱和管理的軟件集合(I/O控制層即設(shè)備驅(qū)動程序、基本文件系統(tǒng)即物理I/O層、基本I/O管理程序或文件組織模塊層、邏輯文件系統(tǒng)層)第三層:文件系統(tǒng)接口(命令接口/圖形化用戶接口與程序接口)。3.試說明用戶可以對文件施加的主要操作有哪些? 答:用戶通過文件系統(tǒng)提供的系統(tǒng)調(diào)用對文件實施操作。

      (1)基本文件操作:創(chuàng)建、刪除、讀、寫、截斷、設(shè)置讀/寫位置等;

      (2)文件打開和關(guān)閉操作:第一步通過檢索文件目錄找到指定文件屬性及其在外存上位置;第二步對文件實施讀寫等相應(yīng)操作。

      (3)其他文件操作:一是文件屬性操作;二是目錄操作;三是文件共享與文件系統(tǒng)操作的系統(tǒng)調(diào)用實現(xiàn)等。

      4.何謂邏輯文件?何謂物理文件?

      答:邏輯文件是物理文件中存儲的數(shù)據(jù)的一種視圖方式,不包含具體數(shù)據(jù),僅包含物理文件中數(shù)據(jù)的索引。物理文件又稱文件存儲結(jié)構(gòu),是指文件在外存上的存儲組織形式。5.如何提高對變長記錄順序文件的檢索速度?

      答:基本方法是為變長記錄順序文件建立一張索引表,以主文件中每條記錄的長度及指向?qū)?yīng)記錄的指針(即該記錄在邏輯地址空間的首址)作為相應(yīng)表項的內(nèi)容。由于索引表本身是一個定長記錄的順序文件,若將其按記錄鍵排序,則實現(xiàn)了對主文件方便快捷的直接存取。如果文件較大,應(yīng)通過建立分組多級索引以進(jìn)一步提高檢索效率。

      6.試說明對索引文件和索引順序文件的檢索方法。

      答: ① 索引文件的檢索,首先根據(jù)用戶(程序)提供的關(guān)鍵字,利用折半查找法檢索索引表,找到相應(yīng)表項;再利用給出的指向記錄指針值,訪問對應(yīng)記錄。

      ② 索引順序文件的檢索,首先利用用戶(程序)提供的關(guān)鍵字及查找方法,檢索索引表,找到該記錄在記錄組中的第一條記錄表項,得到第一個記錄在主文件中的位置;再利用順序查找法查找主文件,找到所要求的記錄。

      7.試從檢索速度和存儲費用兩方面對索引文件和索引順序文件進(jìn)行比較。

      答:索引文件的主文件每條記錄配置一個索引項,存儲開銷N,檢索到具有指定關(guān)鍵字的記錄,平均查找N/2 條記錄。對于索引順序文件,每個記錄分組配置一個索引項,存儲開銷為N,檢索到具有指定關(guān)鍵字的記錄,平均需要查找N /2次。

      8.試說明順序文件的結(jié)構(gòu)及其優(yōu)點。

      答:第一種是串結(jié)構(gòu):各記錄之間的順序與關(guān)鍵字無關(guān)。第二種是順序結(jié)構(gòu):指文件中的所有記錄按關(guān)鍵字(詞)排列。可以按關(guān)鍵詞長短排序或英文字母順序排序。順序文件的最佳應(yīng)用場合是對諸記錄進(jìn)行批量存取時,存取效率最高;只有順序文件才能存儲在磁帶上并有效工作。

      9.在鏈接式文件中常用哪種鏈接方式?為什么?

      答:鏈接方式分為隱式鏈接和顯式鏈接兩種形式。隱式鏈接是在文件目錄的每個目錄項中,都含有指向鏈接文件第一個盤塊和最后一個盤塊的指針。顯式鏈接則把用于鏈接文件各物理塊的指針,顯式地存放在內(nèi)存的一張鏈接表中。

      10.在MS-DOS中有兩個文件A 和B,A占用11、12、16和14 四個盤塊;B 占用13、18和20三個盤塊。試畫出在文件A和B中各盤塊間的鏈接情況及FAT的情況。答:如下圖所示。

      11.NTFS文件系統(tǒng)對文件采用什么樣的物理結(jié)構(gòu)?

      答:在NTFS 文件系統(tǒng)中,以簇作為磁盤空間分配和回收的基本單位。一個文件占若干個簇,一個簇只屬于一個文件。

      12.假定一個文件系統(tǒng)的組織方式與MS-DOS相似,在FAT中可有64K個指針,磁盤的盤塊大小為512B,試問該文件系統(tǒng)能否指引一個512MB 的磁盤?

      解:512MB/512B=1M 個盤塊,而每個盤塊都應(yīng)有一個指針來指示,所以應(yīng)該有1M 個指針,因此若有64K 指針不能指引一個512MB的磁盤。

      13.為了快速訪問,又易于更新,當(dāng)數(shù)據(jù)為以下形式時,應(yīng)選用何種文件組織方式。⑴ 不經(jīng)常更新,經(jīng)常隨機(jī)訪問;⑵經(jīng)常更新,經(jīng)常按一定順序訪問;⑶經(jīng)常更新,經(jīng)常隨機(jī)訪問;

      答:以上三種宜分別采用(1)順序結(jié)構(gòu)(2)索引順序結(jié)構(gòu)(3)索引結(jié)構(gòu)的組織方式。14.在UNIX 中,如果一個盤塊的大小為1KB,每個盤塊號占4個字節(jié),即每塊可放256個地址。請轉(zhuǎn)換下列文件的字節(jié)偏移量為物理地址。⑴9999; ⑵18000; ⑶420000 答:首先將邏輯文件的字節(jié)偏移量轉(zhuǎn)換為邏輯塊號和塊內(nèi)偏移量,就是將[字節(jié)偏移量]/[盤塊大小],商為邏輯塊號,余數(shù)是塊內(nèi)偏移量。在FCB中,第0-9個地址為直接地址,第10個為一次間接地址,第11個地址為二次間接地址,第12個地址為三次間接地址。

      再將文件的邏輯塊號轉(zhuǎn)換為物理塊號。使用多重索引結(jié)構(gòu),在索引節(jié)點中根據(jù)邏輯塊號 通過直接索引或間接索引找到對應(yīng)的物理塊號。

      (1)9999/1024=9 余783,則邏輯塊號為9,直接索引第9個地址得到物理塊號,塊內(nèi)偏移地址為783。

      (2)18000/1024=17余592,則邏輯塊號為10<17<10+256,通過一次間接索引在第10個地址可得到物理塊號,塊內(nèi)偏移地址為592。

      (3)420000/1024=410 余160,則邏輯塊號為10+256<410,通過二次間接索引在第11個地址可得到一次間址,再由此得到二次間址,再找到物理塊號,其塊內(nèi)偏移地址160。15.什么是索引文件?為什么要引入多級索引?

      答:索引文件是指當(dāng)記錄為可變長度時,通常為之建立一張索引表,并為每個記錄設(shè)置一個表項構(gòu)成的文件。通常將索引非順序文件簡稱為索引文件。索引是為了是用戶的訪問速度更 30 快,多級索引結(jié)構(gòu)可以有效的管理索引文件,可根據(jù)用戶的訪問情況多級處理。

      16.試說明UNIX 系統(tǒng)中所采用的混合索引分配方式。答:混合索引分配方式是指將多種索引分配方式結(jié)合而成的分配方式。常見的是采用直接地址和一級索引聯(lián)合的分配方式,或兩級索引分配方式,甚至三級索引分配方式。在UNIXSystem Ⅴ和BSD UNIX 的索引結(jié)點中,都設(shè)置了13 個地址項,即iaddr(0)~iaddr(12),把所有地址項分成直接地址和間接地址。

      17.對目錄管理的主要要求是什么?

      答:實現(xiàn)按名存取、提高檢索目錄的速度、文件共享、允許文件重名。18.采用單級目錄能否滿足對目錄管理的主要要求?為什么?

      答:不能。單級目錄在整個文件系統(tǒng)中只建立一張目錄表,每個文件占一個目錄項,其中含文件名、文件擴(kuò)展名、文件長度、文件類型、文件物理地址、狀態(tài)位等其它文件屬性。單級只能實現(xiàn)目錄管理的基本功能,不能滿足查找速度、允許重名和文件共享的要求。19.目前廣泛應(yīng)用的目錄結(jié)構(gòu)有哪些?它有什么優(yōu)點?

      答:現(xiàn)代操作系統(tǒng)都采用多級目錄結(jié)構(gòu)。基本特點是查詢速度快、層次結(jié)構(gòu)清晰、文件管理和保護(hù)易于實現(xiàn)。

      20.Hash 檢索法有何優(yōu)點?又有何局限性?

      答:Hash檢索法是系統(tǒng)把用戶提供的文件名變換為文件目錄的索引值,再利用該值查找目錄,有效提高目錄的檢索速度,但Hash 檢索法局限于非通配符文件名。21.在Hash檢索法中,如何解決“沖突”問題?

      答:在Hash法查找目錄時,如果目錄表中相應(yīng)目錄項為空,表示系統(tǒng)中無指定文件。如果文件名與指定文件名匹配,表示找到了目標(biāo)文件,也就找到了文件的物理地址。如果目錄表中找到的相應(yīng)文件名不匹配,則發(fā)生了沖突,需要Hash轉(zhuǎn)換形成新的索引值,返回第一步重新查找。

      22.試說明在樹型目錄結(jié)構(gòu)中線性檢索法的檢索過程,并給出相應(yīng)的流程圖。

      答:在樹型結(jié)構(gòu)的目錄中,當(dāng)有兩個或多個用戶共享一個子目錄或文件時,將共享文件或字母路連接到兩個或多個用戶目錄中,方便找到該文件。此時目錄結(jié)構(gòu)不再是樹形結(jié)構(gòu),而是個有向非循環(huán)圖DGA。

      23.有一計算機(jī)系統(tǒng)利用圖6-33 所示的位示圖來管理空閑盤塊。盤塊的大小為1KB,現(xiàn) 要為某文件分配量個盤塊,試說明盤塊的具體分配過程。

      答:分配量個盤塊的過程如下:

      ⑴ 順序掃描位示圖,從中找到第一個值為0的二進(jìn)制位,得到行號i=3,列號j=3。⑵ 將找到的二進(jìn)制位轉(zhuǎn)換成對應(yīng)盤塊號。盤塊號為:b=(3-1)*16+3=35; ⑶ 修改位示圖,令map[3,3]=1,并將該盤塊分配出去。

      類似地,可使用相同的方法找到第二個值為0的二進(jìn)制位,得到行號i=4,列號j=7,其對應(yīng)的盤塊號為55,令map[i,j]=1,并將該盤塊分配出去。24.某操作系統(tǒng)磁盤文件空間共500塊,若用字長為32位的位示圖管理磁盤空間,試問:(1)位示圖需要多少字?

      (2)第i字第j位對應(yīng)的塊號是多少?

      (3)給出申請/歸還一塊的工作流程。

      答:(1)位示圖需要的字?jǐn)?shù)計算:INT(500/32)=16 個字。

      (2)塊號b=(i-1)*32+j(3)申請的過程:順序掃描位示圖、找到空閑塊并分配、修改位示圖map[i,j]=1。歸還的過程:找到回收盤塊在位示圖中的行和列,修改位示圖map[i,j]=0。

      25.對空閑磁盤空間的管理常采用哪幾種分配方式?在UNIX系統(tǒng)中采用何種分配方式? 答:空閑表法、空閑鏈表法、位示圖法、成組鏈接法。UNIX系統(tǒng)采用的是成組鏈接法 26.基于索引節(jié)點的文件共享方式有何優(yōu)點?

      答:優(yōu)點是建立新的共享鏈接時,不改變文件擁有者關(guān)系,僅把索引結(jié)點共享計數(shù)器加1,系統(tǒng)可獲悉了由多少個目錄項指向該文件。缺點是擁有者不能刪除自己的文件否則會出錯。27.基于符號鏈的文件共享方式有何優(yōu)點?

      答:能夠通過網(wǎng)絡(luò)鏈接世界上 任何地方的計算機(jī)中的文件。

      28.在一級系統(tǒng)容錯技術(shù)中,包括哪些容錯措施?什么是寫后讀校驗?

      答:一級系統(tǒng)容錯技術(shù)包括雙份目錄、雙份文件分配表及寫后讀校驗等容錯措施。寫后讀校驗是每次從內(nèi)存緩沖區(qū)向磁盤寫入一個數(shù)據(jù)塊后,又立即從磁盤上讀出該數(shù)據(jù)塊,并送至另一緩沖區(qū)中,再將該緩沖區(qū)內(nèi)容與內(nèi)存緩沖區(qū)中在寫后仍保留的數(shù)據(jù)進(jìn)行比較。若兩者一致,才認(rèn)為寫入成功,繼續(xù)寫下一個盤塊。否則重寫。若重寫后仍不一致,則認(rèn)為盤塊缺陷,便將應(yīng)寫入該盤塊的數(shù)據(jù),寫入到熱修復(fù)重定向區(qū)中。29.在第二級系統(tǒng)容錯技術(shù)中,包括哪些容錯措施?畫圖說明之。

      答:第二級容錯技術(shù)包括磁盤鏡像和磁盤雙工兩種容錯措施。圖示如下:

      30.何謂事務(wù)?如何保證事務(wù)的原子性?

      答:事務(wù)是用于訪問和修改各種數(shù)據(jù)項的一個程序單位。

      要保證事務(wù)的原子性必須要求一個事務(wù)在對一批數(shù)據(jù)執(zhí)行修改操作時,要么全部完成,32 用修改后的數(shù)據(jù)代替原來數(shù)據(jù),要么一個也不改,保持原來數(shù)據(jù)的一致性。

      31.引入檢查點的目的是什么?引入檢查點后又如何進(jìn)行恢復(fù)處理? 答:引入檢查點的目的是使對事務(wù)記錄表中事務(wù)記錄的清理工作經(jīng)?;?。

      恢復(fù)處理由恢復(fù)例程來實現(xiàn)。首先查找事務(wù)記錄表,確定在最近檢查點以前開始執(zhí)行的 最后的事務(wù)Ti。找到Ti后再返回搜索事務(wù)記錄表,找到第一個檢查點記錄,從該檢查點開 始,返回搜索各個事務(wù)記錄,利用redo和undo 過程對他們進(jìn)行相應(yīng)的處理。32.為何引入共享鎖?如何用互斥鎖或共享鎖來實現(xiàn)事務(wù)的順序性?

      答:引入共享鎖是為了提高運(yùn)行效率。在給對象設(shè)置了互斥鎖和共享鎖的情況下,如果事務(wù)Ti要對Q執(zhí)行讀操作,只需獲得Q的共享鎖。如果對象Q已被互斥鎖鎖住,則Ti必須等待;否則便獲得共享鎖對Q執(zhí)行讀操作。如果Ti 要對Q 執(zhí)行寫操作,則Ti還要獲得Q的互斥鎖。若失敗則等待;成功則獲得互斥鎖并對Q執(zhí)行寫操作。33.當(dāng)系統(tǒng)中有重復(fù)文件時,如何保證他們的一致性?

      答:可以采用兩種方法:一是對所有的重復(fù)文件進(jìn)行同樣的修改,二是用新修改的文件替換所有的重復(fù)文件。

      34.如何檢索盤塊號的一致性?檢查時可能出現(xiàn)哪幾種情況?

      答:為了保證盤塊號的一致性,先將計數(shù)器表中的所有表項初始化為0,用N 個空閑盤塊 號計數(shù)器組成的第一組計數(shù)器對從空閑盤塊表中讀出的盤塊號計數(shù),用N 個數(shù)據(jù)盤塊號計 數(shù)器組成的第二組計數(shù)器對從文件分配表中讀出的已分配給文件使用的盤快號計數(shù)。如果兩組計數(shù)中的對應(yīng)數(shù)據(jù)互補(bǔ)則數(shù)據(jù)一致,反之則發(fā)生錯誤。

      檢查時可能出現(xiàn)的情況:

      (1)兩組計數(shù)器中盤塊K 的計數(shù)值均為0,應(yīng)在空閑盤塊表中增加盤塊號K;(2)空閑盤塊號計數(shù)器中盤塊K 的計數(shù)值為2,應(yīng)刪除一個空閑盤塊號K;

      (3)空閑盤塊號計數(shù)器中盤塊號K 的計數(shù)值為0,而數(shù)據(jù)盤塊號計數(shù)器中盤塊號K 的 計數(shù)值大于1,則錯誤嚴(yán)重,存在數(shù)據(jù)丟失等事件,必須立即報告系統(tǒng)加以處理。

      下載張堯?qū)W-操作系統(tǒng)課后題答案(5篇材料)word格式文檔
      下載張堯?qū)W-操作系統(tǒng)課后題答案(5篇材料).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        計算機(jī)操作系統(tǒng)教程_第三版_(張堯?qū)W_張高_(dá)史美林_著)_清華大學(xué)出版社_課后答案

        第一章緒論 I.什么是操作系統(tǒng)的幕本功能? 答:操作系統(tǒng)的職能是管理和控制汁算機(jī)系統(tǒng)中的所有硬、軟們資源,合理地組織計算 機(jī)工作流程,并為用戶提供一個良好的工作環(huán)境和友好......

        【智匯通】張堯?qū)W:透明計算云計算操作系統(tǒng)現(xiàn)狀

        【專家簡介】張堯?qū)W,1956年1月生,湖南常德澧縣人,1982年本科畢業(yè)于陜西西北電訊工程學(xué)院(現(xiàn)陜西西安電子科技大學(xué)),1987年4月加入中國共產(chǎn)黨,獲日本東北大學(xué)博士學(xué)位。教授,博士生導(dǎo)......

        包裝材料學(xué)課后題答案范文

        第一篇 紙包裝材料與制品(習(xí)題集) 第一章 概論 思考題: 1.紙包裝為什么在包裝工業(yè)中占有主導(dǎo)地位? 答: a原料來源廣、生產(chǎn)成本低; b保護(hù)性能優(yōu)良; c加工儲運(yùn)方便; d印刷裝潢適性好;......

        金屬學(xué)課后答案

        金屬材料學(xué)(第二版)課后答案 主編戴啟勛 第一章 鋼的合金化原理 1.名詞解釋 1)合金元素: 特別添加到鋼中為了保證獲得所要求的組織結(jié)構(gòu)從而得到一定的物理、化學(xué) 或機(jī)械性能的......

        張堯?qū)W校長答法學(xué)院學(xué)生問

        張堯?qū)W校長答法學(xué)院學(xué)生問 (2014年4月25日,根據(jù)錄音整理) 來源:學(xué)校辦公室 點擊次數(shù):4671次 發(fā)布時間:2014-05-04 16:58:04.0 作者:—— 主持人:大家好,這里是中南大學(xué)法學(xué)院“......

        社會實踐報告(張堯)

        寒 假 社 會 實 踐 報 告 師范學(xué)院 學(xué)前教育1201班張堯 2014年1月16日 紅色中國夢,共話盛世 實踐人:張堯 實踐實踐:2014年1月16日 實踐地點:子洲縣 實踐目的:了解中國夢,去尋找祖......

        實習(xí)報告--張堯

        實習(xí)報 告班級:建裝123班學(xué)號:06姓名:張堯日期:2014/3/16一、 實習(xí)目的: (一)通過參觀北京的裝飾材料展,了解本專業(yè)材料市場行情; (二)通過對北京著名景點街道的考察,了解城市規(guī)劃和景......

        張成福公共管理學(xué)考研筆記課后題習(xí)題答案

        第一章 公共管理導(dǎo)論一.公共管理的含義: 公共管理是以政府為核心的公共部門整合社會的各種力量,廣泛運(yùn)用政治的、經(jīng)濟(jì)的、管理的、法律的方法,強(qiáng)化政府的治理能力,提升政府績效......