操作系統(tǒng)期末復(fù)習要點_第1頁
操作系統(tǒng)期末復(fù)習要點_第2頁
操作系統(tǒng)期末復(fù)習要點_第3頁
操作系統(tǒng)期末復(fù)習要點_第4頁
操作系統(tǒng)期末復(fù)習要點_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

精選優(yōu)質(zhì)文檔-----傾情為你奉上精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)專心---專注---專業(yè)精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)《操作系統(tǒng)》復(fù)習指導考試共有5種題型:選擇、填空、判斷、簡答、操作,基本上每種題型20分。操作題出自下面6種題型。簡答題:什么是多道程序設(shè)計?其主要特點是什么?2..什么是進程?進程和程序有什么區(qū)別與聯(lián)系?3.什么是線程?建立線程的目的是什么?4.什么是臨界資源?什么是臨界區(qū)?舉一個臨界資源的例子。5.在進程的整個生命周期中,可能要經(jīng)歷哪幾種狀態(tài)?這幾種狀態(tài)在什么情況下會發(fā)生什么樣的變遷(主要敘述三狀態(tài)模型即可)?所謂三狀態(tài)模型、五狀態(tài)模型、七狀態(tài)模型各包括進程的哪幾種狀態(tài)?6.什么是死鎖?產(chǎn)生死鎖的根本原因是什么?解決死鎖有哪幾種解決策略?這些策略有哪些具體的解決方案?7.為什么要使用聯(lián)想寄存器(快表)?聯(lián)想寄存器里存放的內(nèi)容是什么?8.什么是虛擬技術(shù)?虛擬技術(shù)需要什么物質(zhì)基礎(chǔ)?9.在設(shè)備管理中為什么要引入緩沖區(qū)?常見的緩沖技術(shù)有哪幾種?現(xiàn)在最常用的是哪種?10.什么是SPOOLING系統(tǒng)?SPOOLING系統(tǒng)由哪幾部份構(gòu)成?舉一個利用SPOOLING技術(shù)的例子。11.以打印機為例,說明SPOOLING的工作原理12.有哪幾種常見的輸入輸出控制機制?簡述其工作原理。操作題(共有6種類型的題,20分上下))(1)作業(yè)調(diào)度:分別用先來先服務(wù)、最短作業(yè)優(yōu)先、響應(yīng)比高者優(yōu)先算法調(diào)度,計算作業(yè)的平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間。注:在時間運算上,可用10進程,也可用60進制參與運算。(2)信號量機制和P、V(Wait、Signal)操作。理解P、V操作的定義,理解信號量值的含義。能夠在具體的應(yīng)用里,根據(jù)題意,建立信號量,并用偽代碼(類C或類PASCAL)來表達進程之間的同步與互斥。(3)銀行家算法:(一種典型的死鎖避免策略)這是一種避免死鎖的策略。要會根據(jù)當前資源情況和進程需求情況,判斷當前狀態(tài)是否安全;若當前狀態(tài)安全,再有進程申請新的資源,可否給它?邏輯地址到內(nèi)存地址的轉(zhuǎn)換:給定一個邏輯地址(段號,段內(nèi)地址)和段表,要求給出物理地址;給定一個邏輯地址(邏輯地址)、頁面尺寸、頁表,要求換算出物理地址;頁面淘汰算法:給定一個頁面訪問序列,會用以下幾種算法分別計算頁面的缺頁中斷數(shù)和缺頁中斷率:最佳淘汰算法(OPT)、先進先出淘汰算法(FIFO)、最近最久未使用淘汰算法(LRU)(6)磁盤調(diào)度算法:給定一個磁盤訪問序列,會分別用以下幾種磁盤調(diào)度算法計算尋道總長度和平均尋道長度:先來先服務(wù)(FCFS)、最短尋道時間優(yōu)先(SSTF)掃描算法(SCAN)——又叫電梯算法、循環(huán)掃描(CSCAN)章節(jié)復(fù)習要點:第一章1.什么是操作系統(tǒng)?操作系統(tǒng)的目標和作用是什么?答:操作系統(tǒng)是最復(fù)雜、最典型的系統(tǒng)軟件。其目標有以下幾點:1.方便性2.有效性3.可擴充性4.開放性作用:操作系統(tǒng)是為改善計算機系統(tǒng)的性能、提高計算機的利用率、方便用戶使用計算機而配備的一種最基本的低層系統(tǒng)軟件,是計算機系統(tǒng)的核心。其作用可以概括如下:1.OS作為用戶與計算機硬件之間的接口2.OS作為計算機系統(tǒng)資源的管理者3.OS用作擴充機器2.操作系統(tǒng)給用戶提供哪幾種接口來操縱和使用計算機?體會這些接口的含義。答:操作系統(tǒng)提供給用戶的接口有兩大類:脫機用戶接口和聯(lián)機用戶接口脫機用戶接口主要是為批處理系統(tǒng)中的脫機用戶準備的。用戶在提交作業(yè)時,不僅要提交源程序和初始數(shù)據(jù),還要將反映控制意圖的說明書“作業(yè)控制說明書”一并交給計算機系統(tǒng)。這時操作系統(tǒng)提供給用戶的接口稱為“作業(yè)控制語言(JCL)”,“作業(yè)控制說明書”就是用這種語言寫成的。聯(lián)機用戶接口:又可分為命令接口、程序接口(又叫系統(tǒng)調(diào)用)和圖形用戶接口。俗稱命令口、程序口和圖形口。(1)命令接口。這是指由OS提供了一組聯(lián)機命令(語言),用戶可通過鍵盤輸入有關(guān)命令,來直接操縱計算機系統(tǒng)。(2)程序接口。又稱“系統(tǒng)調(diào)用”或應(yīng)用程序編程接口(API)。OS提供了一組系統(tǒng)調(diào)用,用戶可以在自己的程序中通過使用系統(tǒng)調(diào)用,來獲得操作系統(tǒng)的底層服務(wù),訪問系統(tǒng)的各種軟硬件資源。(3)圖形接口。用戶通過屏幕上的窗口和圖標來操縱計算機系統(tǒng)和運行自己的程序。3.OS作為計算機系統(tǒng)資源的管理者,主要管理哪幾方面的資源? 答:OS的主要功能也正是針對這四類資源進行有效的管理,即:(1)處理機管理:用于分配和控制處理機;(2)存儲器管理:主要負責內(nèi)存的分配與回收;(3)I/O設(shè)備管理:負責I/O設(shè)備的分配與操縱;(4)文件管理:負責文件的存取、共享和保護。4.在操作系統(tǒng)中什么叫并發(fā)?并發(fā)是真正的并行處理嗎?至少有幾個CPU的情況下才可能實現(xiàn)真正的并行處理?什么叫共享,什么叫虛擬?什么叫異步?答:并發(fā):并行性和并發(fā)性是既相似又有區(qū)別的兩個概念,并行性是指兩個或多個事件在同一時刻發(fā)生;而并發(fā)性是指兩個或多個事件在同一時間間隔內(nèi)發(fā)生。在多道程序環(huán)境下,并發(fā)性是指在一段時間內(nèi),宏觀上有多個程序在同時運行,但在單處理機系統(tǒng)中,每一時刻卻僅能有一道程序執(zhí)行,故微觀上這些程序只能是分時地交替執(zhí)行。倘若在計算機系統(tǒng)中有多個處理機,則這些可以并發(fā)執(zhí)行的程序便可被分配到多個處理機上,實現(xiàn)并行執(zhí)行,即利用每個處理機來處理一個可并發(fā)執(zhí)行的程序,這樣,多個程序便可同時執(zhí)行。共享:在操作系統(tǒng)環(huán)境下,所謂共享是指系統(tǒng)中的資源可供內(nèi)存中多個并發(fā)執(zhí)行的進程(線程)共同使用。虛擬:操作系統(tǒng)中的所謂“虛擬”,是指通過某種技術(shù)把一個物理實體變?yōu)槿舾蓚€邏輯上的對應(yīng)物。物理實體(前者)是實的,即實際存在的;而后者是虛的,是用戶感覺上的東西。相應(yīng)地,用于實現(xiàn)虛擬的技術(shù),稱為虛擬技術(shù)。異步:在多道程序環(huán)境下,允許多個進程并發(fā)執(zhí)行,但只有進程在獲得所需的資源后方能執(zhí)行。在單處理機環(huán)境下,由于系統(tǒng)中只有一個處理機,因而每次只允許一個進程執(zhí)行,其余進程只能等待?;蛘哒f,進程是以人們不可預(yù)知的速度向前推進,此即進程的異步性?;镜牟僮飨到y(tǒng)有哪幾種?它們各有什么特點?答:批處理系統(tǒng)(單道和多道),分時系統(tǒng),實時系統(tǒng)特點:(a)是計算機對一批作業(yè)進行自動處理的技術(shù),為此,把一批作業(yè)以脫機的方式輸入到磁帶上,并在系統(tǒng)中配置監(jiān)督程序。在監(jiān)督程序的控制下,先把磁帶上的第一個作業(yè)裝入內(nèi)存,并把運行控制權(quán)交給該作業(yè),當該作業(yè)處理完后,又把控制權(quán)交還給監(jiān)督程序,由監(jiān)督程序再把第二個作業(yè)裝入內(nèi)存,直至一批作業(yè)處理完。多道批處理系統(tǒng)的特征(1)多道性。(2)無序性。(3)調(diào)度性。多道批處理系統(tǒng)的優(yōu)缺點(1)資源利用率高。(2)系統(tǒng)吞吐量大。(3)平均周轉(zhuǎn)時間長。(4)無交互能力(b)分時系統(tǒng)的特征.(1)多路性。(2)獨立性。(3)及時性。(4)交互性。(c)實時系統(tǒng)與分時系統(tǒng)特征的比較(1)多路性。(2)獨立性。(3)及時性。(4)交互性。(5)可靠性。第二章:進程描述與控制1.什么是進程?為什么要引入進程?在單道程序環(huán)境中有無必要引入進程?進程由哪幾個部分構(gòu)成?系統(tǒng)是通過什么來感知進程的存在的?答:(1)進程的定義有多種,比較典型的有:1)進程是程序在處理器上的一次執(zhí)行過程。2)進程是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生的活動。3)進程是程序在一個數(shù)據(jù)集合上的運行的過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。通常人們定義進程為:進程是進程實體的運行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。(2)在多道程序環(huán)境下,程序的并發(fā)執(zhí)行代替了程序的順序執(zhí)行,程序不再像單道程序環(huán)境那樣,順序連貫地執(zhí)行,而是走走停停,具有執(zhí)行——暫停——執(zhí)行的規(guī)律。它破壞了程序的“封閉性”和“可再現(xiàn)性”,使得程序和機器執(zhí)行程序的活動不再一一對應(yīng),程序執(zhí)行的結(jié)果也不再唯一,這樣,程序的執(zhí)行也就失去了意義。這時“程序”這個靜態(tài)的概念已經(jīng)不能反映程序活動所具有的特征,需要引進一個新的概念——進程。為了使程序能并發(fā)執(zhí)行,且為了對并發(fā)執(zhí)行的程序加以描述和控制,人們引入了“進程”的概念。(3)程序段、數(shù)據(jù)段及PCB三個部分組成。(4)PCB2.進程有哪幾種基本的狀態(tài)?這些狀態(tài)都在哪些典型情況下會發(fā)生哪種變遷?掛起有幾種狀態(tài)?掛起的進程能獲得處理機嗎?答:(1)進程的三種基本狀態(tài):1)就緒(Ready)狀態(tài)2)執(zhí)行狀態(tài)3)阻塞狀態(tài)(2)就緒(Ready)狀態(tài):當進程已分配到除CPU以外的的所有必要資源后,只要再獲得CPU就可以立即執(zhí)行,這時的進程狀態(tài)稱為就緒狀態(tài)。在一個系統(tǒng)中處于就緒狀態(tài)的進程可能有多個,通常將他們排成一個隊列,稱為就緒隊列執(zhí)行狀態(tài):進程已獲得CPU,其程序正在執(zhí)行。在單處理機系統(tǒng)中,只有一個進程處于執(zhí)行狀態(tài);在多處理器系統(tǒng)中,則有多個進程處于執(zhí)行狀態(tài)。阻塞狀態(tài):正在執(zhí)行的進程由于發(fā)生某事件(如需要輸入或輸出數(shù)據(jù))而暫時無法繼續(xù)執(zhí)行時,便放棄處理機而處于暫停狀態(tài),即進程的執(zhí)行受到阻塞,這種暫停的狀態(tài)稱為阻塞狀態(tài)致使進程阻塞的典型事件有:請求I/O,申請緩沖空間等。(3)當內(nèi)存所有進程阻塞時,操作系統(tǒng)可將一進程置為掛起狀態(tài)并交換到磁盤,再將另一個處于就緒狀態(tài)的進程調(diào)入另一進程執(zhí)行。掛起狀態(tài)與原有的阻塞和就緒狀態(tài)結(jié)合為起來又可形成阻塞掛起狀態(tài)和就緒掛起狀態(tài)。1)活動就緒→靜止就緒。(通過掛起原語將其掛起)2)活動阻塞→靜止阻塞。3)靜止就緒→活動就緒。(用激活原語將靜止狀態(tài)變?yōu)榛顒訝顟B(tài))4)靜止阻塞→活動阻塞。3.什么是線程?操作系統(tǒng)根據(jù)什么來感知線程的存在?線程有哪幾種不同的實現(xiàn)方式?答:(1)線程是進程內(nèi)的一個相對獨立的、可獨立調(diào)度和指派的執(zhí)行單元。(2)線程使用線程控制塊(TCB)來描述其數(shù)據(jù)結(jié)構(gòu)。(3)內(nèi)核級線程(KLT):內(nèi)核級線程KLT中的所有線程的創(chuàng)建、調(diào)度和管理全部由操作系統(tǒng)內(nèi)核負責.用戶級線程(ULT):用戶級線程是指不依賴于操作系統(tǒng)內(nèi)核,由應(yīng)用進程利用線程庫提供的創(chuàng)建、同步、調(diào)度和管理線程的函數(shù)來控制線程。用戶級線程ULT由用戶應(yīng)用程序建立,由用戶應(yīng)用程序負責對這些線程進行調(diào)度和管理,操作系統(tǒng)內(nèi)核并不知道有用戶級線程的存在。KLT和ULT結(jié)合:即內(nèi)核支持多線程的建立、調(diào)度與管理;同時系統(tǒng)又提供使用線程庫的便利,允許用戶應(yīng)用程序建立、調(diào)度和管理用戶級的線程。4.比較進程和程序有什么異同和聯(lián)系。5.為什么要引進線程的概念?比較線程和進程之間有什么異同和聯(lián)系。答:(1)線程的引入,進一步提高了程序并發(fā)執(zhí)行的程度,從而進一步提高了系統(tǒng)的吞吐量。為了既能提高程序的并發(fā)程度,又能減少OS的開銷,操作系統(tǒng)設(shè)計者引入了線程,把進程的兩個基本屬性分離開來。即以進程為單位分配資源,以線程為單位進行調(diào)度。(2)進程和線程的區(qū)別與聯(lián)系:調(diào)度擁有資源并發(fā)性系統(tǒng)開銷第三章并發(fā)控制——進程的同步與互斥1.什么叫進程同步?什么叫進程互斥?通過前趨圖進一步感受進程的同步。答:(1)同步,也稱為直接相互制約,是指某些并發(fā)執(zhí)行的進程為共同完成一個任務(wù),需要相互合作、協(xié)同工作。這些合作的進程都是獨立地以不可預(yù)知的速度推進,這就需要在一些關(guān)鍵點上互相等待,互通消息。所謂進程同步,是指多個相互合作的進程,在一些關(guān)鍵點上可能需要互相等待或互相交換信息,這種相互制約的關(guān)系稱為進程同步。進程同步是進程之間直接的相互作用,是合作進程間有意識的行為。(2)互斥:也稱間接相互制約關(guān)系,是指多個進程同時競爭一個需要互斥使用的資源(如打印機等),當該資源已經(jīng)分配給某個進程使用時,其它進程只能等待,直到該資源被釋放。所謂進程互斥是指當有若干進程都要使用某一共享資源時,最多允許一個進程使用,而其他要使用該資源的進程必須等待,直到占用該資源的進程釋放了該資源為止。2.什么叫臨界資源?什么叫臨界區(qū)?答:(1操作系統(tǒng)中將一次僅允許一個進程訪問的資源稱為臨界資源,如打印機、共享變量等(2)操作系統(tǒng)中把每個進程中訪問臨界資源的那段代碼段稱為臨界區(qū)。3.什么叫信號量?它是一種解決什么問題的機制?信號量的值可以人為設(shè)定幾次?它的值是由哪些操作改變的?答:(1)信號量是一個確定的兩元組(S,Q),其中S是一個具有非負初值的整型變量,Q是一個初始狀態(tài)為空的隊列。整型變量S表示系統(tǒng)中某類資源的數(shù)目,當其值大于或等于0時,表示系統(tǒng)中當前可用資源的數(shù)目;當其值小于0時,其絕對值表示系統(tǒng)中因請求該類資源而被阻塞的進程數(shù)目。(2)信號量是一種用來有效地解決進程同步與互斥問題的機制。(3)信號量的初值(4)除信號量的初值外,信號量的值僅能由P操作(又叫Wait操作)和V操作(又稱Signal操作)來改變。4.體會、理解信號量以及P、V(Wait、Signal)操作的意義。答:一個信號量的建立必須經(jīng)過說明,即應(yīng)該準確說明S的意義和初值(注意這個初值不是一個負值)。每個信號量都有一個相應(yīng)的隊列,在建立信號量時,隊列為空。P、V操作以原語方式實現(xiàn),信號量的值僅能由這兩條原語加以改變。P、V操作的定義為:P操作。P操作記為P(S),其中S為一個信號量,它執(zhí)行時主要完成下述動作:S=S-1;若S>=0則進程繼續(xù)運行;否則(即S<0)阻塞該進程,并將它插入該信號量的等待隊列中。V操作。V操作記為V(S),S為一個信號量,它執(zhí)行時主要完成下述動作:S=S+1;若S大于0則進程繼續(xù)執(zhí)行;否則(即S<=0)則從信號量等待隊列中移出第一個進程,使其變?yōu)榫途w狀態(tài)并插入就緒隊列,然后再返回原進程繼續(xù)執(zhí)行。只需要把臨界區(qū)置于P(S)和V(S)之間,即可以實現(xiàn)兩個進程的互斥?;コ庠L問臨界區(qū)的描述如下:----要求P1、P2互斥訪問臨界區(qū)://注意書寫格式!semaphoreS=1;main(){cobeginP1();P2();coend}P1(){……/*剩余區(qū)*/P(S);進程P1的臨界區(qū);V(S);……}P2(){……/*剩余區(qū)*/P(S);進程P2的臨界區(qū);V(S);……}當我們可使用的資源數(shù)量最多為1的時候,信號量一般用mutex表示.如:semaphoremutex=15.為什么要引入管程?管程由哪幾個部分組成?答:(1)雖然信號量機制是一種既方便又有效的進程同步機制,但每個要訪問臨界資源的進程都必須自備同步操作P(S)和V(S)。這使得大量的同步操作分散在各個進程中。這不僅給系統(tǒng)管理帶來麻煩,而且還會因為同步操作的使用不當造成系統(tǒng)死鎖。于是在解決上述問題的基礎(chǔ)上,又產(chǎn)生了一種新的同步工具——管程.Hasan為管程下的定義為:“一個管程定義了一個數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進程所執(zhí)行(在該數(shù)據(jù)結(jié)構(gòu)上)的一組操作,這組操作能同步進程和改變管程中的數(shù)據(jù)”建立管程的基本理由:由于對臨界區(qū)的執(zhí)行分散在各個進程之中,這樣不便于系統(tǒng)對臨界資源的控制和管理,也很難發(fā)現(xiàn)和糾正分散在用戶程序中的對同步原語的錯誤使用等問題。為此應(yīng)把分散的各同類臨界區(qū)集中起來,并為每個可共享資源設(shè)立一個專門的管程來統(tǒng)一管理各進程對資源的訪問。這樣,既便于系統(tǒng)管理共享資源,又能保證互斥訪問。(2)定義一個管程:具體包括:(1)聲明一個管程,給出名字:(2)聲明管程內(nèi)的數(shù)據(jù)結(jié)構(gòu)、變量、條件變量:(3)聲明管程從外部可調(diào)用的函數(shù)(里面就包含了CWait和CSignal操作)(4)對管程聲明的變量進行初始化6.什么是進程的低級通信、高級通信?高級通信機制分為哪幾大類?答:(1)進程之間的互斥與同步也是一種通信,由于其所交換的信息量少而被叫做“低級通信”。高級進程通信,是指用戶可直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量數(shù)據(jù)的一種通信方式。(2)目前的高級通信機制可以歸為三大類:a.共享存儲器系統(tǒng);在共享存儲器系統(tǒng)中,相互通信的進程共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲區(qū),進程之間能夠通過這些空間進行通信。于是又可再分為以下兩種通信方式:基于共享數(shù)據(jù)結(jié)構(gòu)的通信方式:要求諸進程共用某些數(shù)據(jù)結(jié)構(gòu),借以實現(xiàn)進程間的數(shù)據(jù)交換。如在生產(chǎn)者-消費者問題中,就是用有界緩沖區(qū)這種數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)通信的。這里,公用數(shù)據(jù)結(jié)構(gòu)的設(shè)置及對進程間同步的處理,都是程序員的職責。這無疑增加了程序員的負擔,而操作系統(tǒng)只需提供共享存儲器。因此這種通信方式是低效的,只適宜于傳送較少量的數(shù)據(jù)?;诠蚕泶鎯^(qū)的通信方式:為了傳遞大量數(shù)據(jù),在存儲器中劃出了一塊共享存儲區(qū),諸進程可通過對共享存儲區(qū)中數(shù)據(jù)的讀或?qū)憗韺崿F(xiàn)通信。這種通信方式屬于高級通信。進程在通信前,先向系統(tǒng)申請獲得共享存儲區(qū)中的一個分區(qū),并指定該分區(qū)的關(guān)鍵字;接著由申請者把獲得的共享存儲分區(qū)連接到本進程上。此后,便可像讀寫普通存儲器一樣讀寫該公用存儲分區(qū)。b消息傳遞系統(tǒng);在消息傳遞系統(tǒng)中,進程間的數(shù)據(jù)交換,是以格式化的消息(message)為單位的。在計算機網(wǎng)絡(luò)中又把信息叫作“報文”。程序員直接利用系統(tǒng)提供的一組通信命令(原語)進行通信。操作系統(tǒng)隱藏了通信的實現(xiàn)細節(jié),大大簡化了通信程序編程的復(fù)雜性,因而獲得廣泛的應(yīng)用。消息傳遞系統(tǒng)的通信屬于高級通信。又因其實現(xiàn)方式的不同進一步細分為直接通信方式和間接通信方式。直接通信方式發(fā)送進程利用操作系統(tǒng)提供的發(fā)送命令,直接把消息發(fā)送給目標進程。此時要求發(fā)送進程和接收進程都以顯式方式提供對方的標識符。間接通信方式進程間的通信需要通過作為共享數(shù)據(jù)結(jié)構(gòu)的實體。該實體暫存發(fā)送進程發(fā)出的消息,接收進程則從該實體中取出對方發(fā)給自己的消息,通常把這種實體叫作“信箱”。消息在信箱中可以安全地保存,只允許核準的目標用戶隨時讀取。因此利用信箱既可實現(xiàn)實時通信,又可實現(xiàn)非實時通信。系統(tǒng)為信箱通信提供了若干條原語,分別用于信箱的創(chuàng)建、撤銷和消息的發(fā)送、接收等。c管道通信系統(tǒng):管道是用于連接一個寫進程和一個讀進程以及實現(xiàn)它們之間通信的一個共享文件,又叫pipe文件。向管道(共享文件)提供輸入的發(fā)送進程(即寫進程)以字符流的形式將大量的數(shù)據(jù)送入管道;接收管道輸出的接收進程(即讀進程),則從管道中接收(讀)數(shù)據(jù)。由于發(fā)送進程和接收進程是利用管道進行通信的,故又稱為管道通信。這種方式首創(chuàng)于Unix,由于它能有效地傳送大量數(shù)據(jù),因而又被引入到其它操作系統(tǒng)中。第四章處理機調(diào)度與死鎖1.簡述三級調(diào)度的概念。是否任何操作系統(tǒng)都必須配置作業(yè)調(diào)度?哪一級調(diào)度是所有操作系統(tǒng)必備的?答:(1)用戶作業(yè)從進入系統(tǒng)成為后備作業(yè),直到運行程序、退出系統(tǒng),可能會經(jīng)歷三級調(diào)度:高級調(diào)度:又稱作業(yè)調(diào)度、長程調(diào)度。操作系統(tǒng)根據(jù)允許并發(fā)執(zhí)行的作業(yè)道數(shù)和一定的算法,從作業(yè)后備隊列中選取若干作業(yè)裝入內(nèi)存,使它們能夠獲得處理器運行,這項工作稱為作業(yè)調(diào)度,完成這項工作的程序稱為作業(yè)調(diào)度程序(——這是操作系統(tǒng)的一個子程序)。作業(yè)共有四種狀態(tài):提交狀態(tài)、收容狀態(tài)、執(zhí)行狀態(tài)、完成狀態(tài)。高級調(diào)度又稱作業(yè)調(diào)度或長程調(diào)度,它的功能是按照某種原則從后備作業(yè)隊列中選取若干作業(yè)進入主存。用于決定把外存中處于后備隊列中的哪些作業(yè)調(diào)入內(nèi)存,并為它們建立進程,分配必要的資源,然后再將新建立的進程排在就緒隊列上,準備執(zhí)行(這時進入進程調(diào)度階段)。因此也把作業(yè)調(diào)度叫作接納調(diào)度。中級調(diào)度:又稱平衡負載調(diào)度、中程調(diào)度。引入中級調(diào)度的主要目的,是為了提高內(nèi)存利用率和系統(tǒng)吞吐量。為此,應(yīng)使那些暫時不能運行的進程不再占用寶貴的內(nèi)存資源,而將它們調(diào)到外存上去等待,把此時的狀態(tài)稱為就緒駐外存狀態(tài)或掛起狀態(tài)。當這些進程重又具備運行條件,且內(nèi)存又稍有空閑時,由中級調(diào)度決定把外存上的那些又具備運行條件的就緒進程重新調(diào)入內(nèi)存,并修改其狀態(tài)為就緒,掛在就緒隊列上等待進程調(diào)度??傊?,中級調(diào)度實際上就是存儲器管理中的對換功能。特別在采用虛擬存儲技術(shù)的系統(tǒng)或分時系統(tǒng)中,往往都會增加中級調(diào)度這一級。低級調(diào)度:又稱進程調(diào)度、短程調(diào)度。用來決定就緒隊列中的哪個進程應(yīng)獲得處理機,然后再由分派程序(——操作系統(tǒng)的一個子程序)執(zhí)行具體的操作,把處理機分配給具體的進程。(2)在批處理系統(tǒng)中,作業(yè)進入系統(tǒng)后是先駐留在外存上的,需要有作業(yè)調(diào)度的過程,以便將其分批地裝入內(nèi)存。然而在分時系統(tǒng)中,為了做到及時響應(yīng),用戶通過鍵盤輸入的命令和數(shù)據(jù)都是被直接送入內(nèi)存的,無須再配置作業(yè)調(diào)度機制,在實時系統(tǒng)中一般也不需要作業(yè)調(diào)度?!Y(jié)論:并不是所有的操作系統(tǒng)都必須具備作業(yè)調(diào)度(3)進程調(diào)度是最基本的調(diào)度,在三種基本類型的OS中,都必須配備這一級調(diào)度。2.常見的作業(yè)調(diào)度算法有哪些?常見的進程調(diào)度有哪些?哪些調(diào)度是可剝奪的,哪些是不可剝奪的?答:(1)先來先服務(wù)調(diào)度算法(FCFS)、短作業(yè)優(yōu)先調(diào)度算法(SJF)、響應(yīng)比高者優(yōu)先(HRF)調(diào)度算法(2)剝奪式:當系統(tǒng)按照某種原則發(fā)現(xiàn)一個比現(xiàn)運行的進程更合適、更應(yīng)該占用CPU的進程時,系統(tǒng)將強迫處于運行狀態(tài)的進程將CPU的使用權(quán)交給這個更合適的進程。常見的調(diào)度原則有優(yōu)先權(quán)原則、短進程優(yōu)先原則和時間片原則等。非剝奪式:一旦某個進程占用了CPU,除非是由于它自身的原因自動放棄CPU,否則它將一直運行下去直到完成。常見的進程調(diào)度算法有以下4種:先來先服務(wù)算法、最高優(yōu)先權(quán)優(yōu)先調(diào)度算法、時間片輪轉(zhuǎn)調(diào)度算法、多級反饋隊列調(diào)度算法3.給定一個作業(yè)序列,按先來先服務(wù)、短作業(yè)優(yōu)先、響應(yīng)比高者優(yōu)先算法調(diào)度,分別計算該作業(yè)序列的平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間答:衡量作業(yè)調(diào)度算法性能的指標1.系統(tǒng)吞吐率:平均每單位時間內(nèi)完成的作業(yè)數(shù)2.周轉(zhuǎn)時間:作業(yè)從提交到完成所經(jīng)歷的時間作業(yè)i的周轉(zhuǎn)時間為:Ti=Tei-Tsi其中,Tei為作業(yè)i的完成時間,Tsi為提交時間3.平均周轉(zhuǎn)時間:多個作業(yè)周轉(zhuǎn)時間的平均值T=(T1+T2+……+Tn)/n平均周轉(zhuǎn)時間越短,作業(yè)吞吐率越大,系統(tǒng)效率越高4.帶權(quán)周轉(zhuǎn)時間:作業(yè)周轉(zhuǎn)時間與作業(yè)實際運行時間的比。作業(yè)i的帶權(quán)周轉(zhuǎn)時間為:Wi=Ti/Tri其中Ti為作業(yè)i的周轉(zhuǎn)時間,Tri為作業(yè)i的實際運行時間5.平均帶權(quán)周轉(zhuǎn)時間:多個作業(yè)帶權(quán)周轉(zhuǎn)時間的平均值W=(W1+W2+……+Wn)/n4.什么是死鎖?死鎖產(chǎn)生的根本原因是什么?至少有幾個進程并發(fā)才可能發(fā)生死鎖?答:(1)所謂死鎖是指多個進程在運行過程中因爭奪資源而造成的一種僵局,當進程處于這種僵局的時候,若沒有外力的干預(yù),它們都將無法再向前推進。死鎖的定義1:在系統(tǒng)中某個進程提出資源申請后,使得若干進程在沒有外力作用的情況下永遠不能前進,這種現(xiàn)象稱為死鎖。處于死鎖狀態(tài)的進程稱為死鎖進程。死鎖定義2指兩個或兩個以上的進程因競爭系統(tǒng)資源或相互通信而處于永久阻塞狀態(tài),每一個進程都在等待另一個進程釋放資源而被封鎖,若無外力作用,這些進程都將無法向前推進。(2)一是系統(tǒng)提供的資源有限,不能滿足每個進程的需要;二是多道程序運行時,進程推進順序不合理。(3)25.總的來說,解決死鎖問題有哪幾個方面的策略?答:解決死鎖的基本方法有三種(或死鎖有三種解決策略)(注意填空):死鎖的預(yù)防:死鎖的避免:銀行家算法死鎖的檢測與恢復(fù):6.預(yù)防死鎖可從哪幾個方面著手?常見的措施有哪些?答:死鎖的預(yù)防主要是打破造成死鎖的4個必要條件之一:(1)破壞“互斥”條件:該條無法做到。因為計算機系統(tǒng)中大多數(shù)資源必須互斥使用,所以無法使互斥條件不成立而防止死鎖,相反還必須嚴格遵守互斥使用資源的要求。(2)破壞“占用并等待”條件:可以采用靜態(tài)分配策略。靜態(tài)分配就是要求每一個進程在開始執(zhí)行前就一次性申請它所需要的全部資源。僅當系統(tǒng)能滿足進程全部資源要求并把資源分配給進程后,該進程才能開始執(zhí)行,否則,只要有一種資源不能滿足,即使其它資源空閑也不分配,讓該進程等待。在等待期間,該進程不占有任何資源。這種策略也稱“預(yù)分配資源法”,該方法實現(xiàn)簡單,但降低了資源的利用率。(3)破壞“不可剝奪”條件:方法:進程需要的資源不是一次性分配給它,而是在運行的過程中,它需要的時候才進行分配。當一個進程已占有了某些資源,又申請新的資源而不能立即得到滿足時,該進程將被剝奪已占有的全部資源,進入阻塞狀態(tài)。只有在進程重新獲得了原有資源和新資源后,才能繼續(xù)執(zhí)行。(4)破壞“循環(huán)等待”條件:可采用按序分配資源策略,具體做法是:把系統(tǒng)中所有的資源都按類型順序排列,并對每類資源確定一個序號,如掃描儀、輸入機、打印機、磁盤的編號依次為1、2、3、4,每個進程對資源的申請要嚴格按照序號遞增的次序進行。7.銀行家算法是解決死鎖問題的一種什么策略?什么樣的狀態(tài)為安全狀態(tài)?什么樣的為不安全狀態(tài)?會根據(jù)具體問題用銀行家算法判斷系統(tǒng)是否安全。答:(1)銀行家算法是一種避免死鎖的方法。其實現(xiàn)思想是:允許進程動態(tài)地申請資源,系統(tǒng)在每次實施資源分配之前,先計算資源分配的安全性,若此次資源分配安全(即資源分配后,系統(tǒng)能按某種順序,來為每個進程分配其所需的資源,直至最大需求,使每個進程最終都可以順利完成),便將資源分配給該進程,否則不分配資源,讓進程等待。資源分配的安全性是指要保證至少有一個進程能夠運行到結(jié)束,并且通過回收該進程所占用的資源再分配能依次使其它進程運行結(jié)束,然后繼續(xù)回收資源、繼續(xù)分配,直到全部進程運行結(jié)束??梢砸来潍@得資源并運行結(jié)束的進程序列稱為安全序列。如果計算出來的資源分配是不安全的,系統(tǒng)將拒絕分配。(2)若在某一時刻,系統(tǒng)能按某種順序如<P1,P2,…,Pn>來為每個進程分配所需的資源,直至最大需求,使得每個進程都能順利完成,則稱此時的系統(tǒng)狀態(tài)為安全狀態(tài),稱<P1,P2,…Pn>為安全序列。(3)若某一時刻系統(tǒng)中一個安全序列都沒有,則稱此時的系統(tǒng)狀態(tài)為不安全狀態(tài)。并非所有的不安全狀態(tài)都是死鎖狀態(tài);但當系統(tǒng)進入不安全狀態(tài)后,便有可能進入死鎖狀態(tài);反之,只要系統(tǒng)處于安全狀態(tài),系統(tǒng)便可以避免進入死鎖。另:若系統(tǒng)有同類資源m個,可并發(fā)執(zhí)行且共享該類資源的的進程最多是n個,而每個進程申請該類資源的最大量為x(1<=x<=m)只要不等式n(x-1)+1<=m成立,則系統(tǒng)就一定不會死鎖。例題:a.有3個進程競爭7個同類資源,每個進程競爭的資源數(shù)一樣多,問最大請求資源在什么范圍就一定不會引起死鎖?b.有某類資源10個,每個進程需要的最大資源數(shù)為4,問競爭該類資源的進程數(shù)為多少就一定不會死鎖?c.有5個進程各需要申請某類資源4個,問系統(tǒng)有該類資源多少個就一定不會引起死鎖?8.什么是死鎖定理?死鎖定理有什么用?答:(1)系統(tǒng)為死鎖狀態(tài)的充分條件是:當且僅當該系統(tǒng)狀態(tài)的資源分配圖是不可完全簡化的。該充分條件被稱為死鎖定理。資源分配圖(RAG)(2)死鎖的檢測第五章存儲器管理1.內(nèi)存管理的任務(wù)是什么?操作系統(tǒng)的內(nèi)存管理應(yīng)具備哪些功能?答:(1)在多道程序的環(huán)境中,存儲管理的目的主要有兩個:一是提高資源的利用率,盡量滿足多個用戶對主存的要求;二是能方便用戶使用主存儲器,使用戶不必考慮作業(yè)存放在哪塊區(qū)域,也不必考慮如何能實現(xiàn)正確運行等問題。(2)存儲管理一般應(yīng)能完成如下功能:1)按作業(yè)要求進行內(nèi)存的分配并進行實時回收;2)實現(xiàn)程序中的邏輯地址到物理地址的重定位;3)對操作系統(tǒng)及其用戶的信息提供存儲保護;4)實現(xiàn)主存的邏輯擴充,提供給用戶更大的存儲空間。2.什么是重定位?什么是靜態(tài)重定位和動態(tài)重定位?它們重定位的時機都在什么時候?答:(1)為使程序能正確運行,必須將邏輯地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間中的物理地址,這一過程稱為地址重定位或地址映射。換句話說,地址重定位就是建立用戶程序的邏輯地址和物理地址之間的對應(yīng)關(guān)系。(2)靜態(tài)地址重定位是在程序執(zhí)行之前由操作系統(tǒng)的重定位裝入程序完成的。它根據(jù)要裝入的內(nèi)存起始地址,直接修改所有涉及到的邏輯地址,一次性完成邏輯地址到物理地址的轉(zhuǎn)換,在程序運行中,不再進行任何地址轉(zhuǎn)換。靜態(tài)地址重定位的優(yōu)點是只需通過重定位裝入程序,即可實現(xiàn)邏輯地址向物理地址的轉(zhuǎn)化,不需要硬件的支持,可以在任何機器上實現(xiàn)。早期的操作系統(tǒng)大多采用這種方法。缺點是程序必須占據(jù)連續(xù)的內(nèi)存空間,且一旦裝入內(nèi)存后,就不能被移動,不利于內(nèi)存空間的利用動態(tài)地址重定位也稱動態(tài)地址映射,是指把目標程序裝入內(nèi)存的時候,并不立即把邏輯地址轉(zhuǎn)換為物理地址,而是在程序運行過程中,當CPU訪問程序和數(shù)據(jù)的時候,才進行地址轉(zhuǎn)換。為了提高轉(zhuǎn)換效率,一般需要重定位寄存器的支持。通常在程序裝入內(nèi)存后,將其在內(nèi)存中的起始地址裝入重定位寄存器。在程序執(zhí)行時,把要訪問的程序(數(shù)據(jù))的邏輯地址加上重定位寄存器中的起始地址,便可形成CPU能夠訪問的物理地址。動態(tài)地址重定位的優(yōu)點是不要求程序裝入連續(xù)的內(nèi)存空間。在內(nèi)存中允許程序再次移動位置,而且還可以部分地裝入程序運行。便于作業(yè)共享同一程序的副本。因此現(xiàn)代計算機系統(tǒng)廣泛采用動態(tài)地址重定位技術(shù)。動態(tài)地址重定位的缺點是需要硬件的支持,而且實現(xiàn)存儲管理的軟件算法也比較復(fù)雜3.體會幾種內(nèi)存管理的實現(xiàn)方法,引入的原因、組織空閑區(qū)的方式、回收的規(guī)定:(1)實存:單一連續(xù)分區(qū)、固定分區(qū)、可變式分區(qū)、分頁、分段、段頁式(2)虛存:請求式分頁、請求式分段、請求段頁式4.上面哪些內(nèi)存管理有內(nèi)碎片、哪些有外碎片?解決碎片有哪些方法?答:5.什么是頁表?什么是段表?其主要內(nèi)容是什么?引入聯(lián)想寄存器有什么用處?答:(1)在內(nèi)存中為每個進程開辟一塊特定區(qū)域,建立起作業(yè)的邏輯頁與存儲塊之間的對應(yīng)表格關(guān)系,這種表稱為頁面映像表,簡稱頁表。最簡單的頁表只包含頁號、塊號兩個內(nèi)容。(2)為使程序能正常運行,亦即,能從物理內(nèi)存中找出每個邏輯段所對應(yīng)的位置,應(yīng)象分頁系統(tǒng)那樣,在系統(tǒng)中為每個進程建立一張段映射表,簡稱“段表”。每個段在表中有一個表項,記錄了該段在內(nèi)存中的地址和長度.(3)為了提高查表的速度,人們在分頁地址變換機構(gòu)中,加入了一組高速緩沖存儲器,用來存放當前作業(yè)的最常用的頁號和與之相應(yīng)的物理塊號。一般稱這樣的寄存器組為快表或聯(lián)想存儲器。6.會借助于段表、頁表等表格,來將給定的用戶程序地址(邏輯地址)轉(zhuǎn)化為內(nèi)存地址。7.理解、體會虛擬內(nèi)存管理中涉及的幾種頁面淘汰算法,會計算頁面中斷數(shù)和頁面中斷率第六章設(shè)備管理1.設(shè)備的幾種分類方式:輸入輸出設(shè)備和存儲設(shè)備、高速設(shè)備和低速設(shè)備、字符設(shè)備和塊設(shè)備。答:按操作特性分類:存儲設(shè)備和輸入輸出(I/O)設(shè)備。按系統(tǒng)和用戶的觀點分類:可將外部設(shè)備分為系統(tǒng)設(shè)備和用戶設(shè)備兩種按設(shè)備的傳輸速率分類:高速設(shè)備、中速設(shè)備和低速設(shè)備按信息交換的單位分類:字符設(shè)備和塊設(shè)備按設(shè)備的共享屬性分類:獨占設(shè)備、共享設(shè)備、虛擬設(shè)備2.分配設(shè)備需要的4個數(shù)據(jù)結(jié)構(gòu)(表):系統(tǒng)設(shè)備表、設(shè)備控制表、控制器控制表、通道控制表。答:系統(tǒng)設(shè)備表:這是系統(tǒng)范圍的數(shù)據(jù)結(jié)構(gòu),其中記錄了系統(tǒng)中全部設(shè)備的情況。每個設(shè)備占一個表目,每個表目包含了:設(shè)備類型、設(shè)備標識符、設(shè)備控制表指針、設(shè)備驅(qū)動程序的入口地址等。設(shè)備控制表:系統(tǒng)為每一個設(shè)備都配置了一張設(shè)備控制表(DCT),用于記錄本設(shè)備的情況設(shè)備類型type設(shè)備標識符deviceid設(shè)備狀態(tài)忙、閑、等待等指向控制器表的指針重復(fù)執(zhí)行次數(shù)設(shè)備隊列的隊首指針控制器控制表:系統(tǒng)為每一個控制器都設(shè)置了一張用于記錄本控制器情況的控制器控制表:控制器標識符concollerid控制器狀態(tài):忙/閑指向通道表的指針控制器隊列的隊首指針控制器隊列的隊尾指針通道控制表:每個通道都配置一張通道控制表通道標識符channel_id通道狀態(tài):忙/閑指向控制器表的指針通道隊列的隊首指針通道隊列的隊尾指針3.描述并體會幾種常見的輸入輸出控制方式:程序直接控制、中斷控制、DMA控制、通道控制。答:(1)或稱為詢問方式、忙-等方式。下面以數(shù)據(jù)輸入為例說明這種控制方式:當用戶進程需要輸入數(shù)據(jù)的時候,由處理機向設(shè)備控制器發(fā)送一條I/O指令啟動設(shè)備進行輸入;在設(shè)備輸入數(shù)據(jù)期間,處理機通過循環(huán)執(zhí)行測試指令,不間斷地檢測設(shè)備狀態(tài)寄存器的值;直到設(shè)備狀態(tài)寄存器的值顯示設(shè)備輸入完成的時候,處理機才結(jié)束測試循環(huán);接著將數(shù)據(jù)寄存器中的數(shù)據(jù)取出,送入內(nèi)存指定單元,然后再啟動設(shè)備去讀下一個數(shù)據(jù)。同樣,當用戶進程需要向設(shè)備輸出數(shù)據(jù)的時候,CPU也必須發(fā)出啟動命令啟動輸出設(shè)備,并循環(huán)測試,等待輸出完成。在程序I/O方式中,由于CPU的高速性和I/O設(shè)備的低速性,致使CPU的絕大部分時間都處于等待I/O設(shè)備完成數(shù)據(jù)I/O的循環(huán)測試中,造成CPU的極大浪費。在該方式中,CPU之所以要不斷測試I/O設(shè)備的狀態(tài),就是因為在CPU中沒有中斷機構(gòu),使I/O設(shè)備無法向CPU報告它已完成了一個字符的輸入操作。程序直接控制方式工作過程簡單,但CPU的利用率相當?shù)停珻PU和外設(shè)以及外設(shè)和外設(shè)之間只能串行工作,且CPU大部分時間處于循環(huán)測試狀態(tài)。所以程序直接控制I/O方式,只適合于那些CPU執(zhí)行速度較慢,且外設(shè)較少的系統(tǒng)。(2)中斷控制方式要求CPU與設(shè)備之間有相應(yīng)的中斷請求線,在狀態(tài)寄存器中有相應(yīng)的“中斷允許位”。中斷控制下的數(shù)據(jù)輸入按下面的步驟進行:首先,需要數(shù)據(jù)的進程通過CPU發(fā)出啟動指令啟動外設(shè)來輸入數(shù)據(jù);同時還將狀態(tài)寄存器中的中斷允許位打開;在進程發(fā)出指令啟動設(shè)備之后,該進程放棄處理機,等待輸入完成。而操作系統(tǒng)的進程調(diào)度程序就會調(diào)度其它就緒進程占據(jù)處理機;當輸入完成時,輸入設(shè)備的I/O控制器通過中斷請求線向CPU發(fā)出中斷請求信號;CPU接到中斷信號后,轉(zhuǎn)向中斷處理程序;設(shè)備中斷處理程序?qū)⑤斎霐?shù)據(jù)寄存器中的數(shù)據(jù)傳送到某一特定的內(nèi)存單元中,以便供要求輸入的進程使用;同時還把等待輸入數(shù)據(jù)的那個進程喚醒,再返回到被中斷的進程繼續(xù)執(zhí)行。在以后的某一時刻,進程調(diào)度程序選中提出輸入請求的進程,該進程從約定的內(nèi)存單元中取出數(shù)據(jù)做進一步處理。與程序直接控制方式相比,中斷控制方式大大提高了CPU的利用率,并能支持設(shè)備的并行操作;但這種控制方式仍存在許多問題。如每臺設(shè)備每輸入/輸出一個數(shù)據(jù)都要求中斷CPU,這樣在一次數(shù)據(jù)傳送過程中,中斷發(fā)生次數(shù)太多,從而耗去了大量CPU時間。(3)DMA方式又稱直接存儲器訪問(DirectMemoryAccess)方式?;舅枷胧窃谕庠O(shè)和主存之間開辟直接的數(shù)據(jù)傳輸通路。DMA控制器除了有控制/狀態(tài)寄存器和數(shù)據(jù)緩沖寄存器外,還設(shè)置有傳送字節(jié)計數(shù)器和內(nèi)存地址寄存器。DMA控制器可用來代替CPU控制內(nèi)存和外設(shè)之間進行成批的數(shù)據(jù)交換。DMA方式的特點:數(shù)據(jù)傳送的基本單位是數(shù)據(jù)塊。即CPU和I/O設(shè)備之間,每次傳送的至少是一個數(shù)據(jù)塊。所傳送的數(shù)據(jù)是從設(shè)備送往內(nèi)存,或相反。僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需要中斷CPU,請求干預(yù),整塊數(shù)據(jù)的傳送是在DMA控制器的控制下完成的。從DMA方式的特點看出,DMA方式較之中斷控制方式成百倍地減少了CPU對I/O控制的干預(yù),進一步提高了CPU的利用率,提高了CPU與I/O設(shè)備的并行操作程度。DMA方式下的數(shù)據(jù)輸入處理過程:①當某一進程要求設(shè)備輸入數(shù)據(jù)的時候,CPU把準備存放輸入數(shù)據(jù)的內(nèi)存始址及要傳送的字節(jié)數(shù)分別送入DMA控制器中的內(nèi)存地址寄存器和傳送字節(jié)計數(shù)器。②將控制/狀態(tài)寄存器中的中斷允許位和啟動位置“1”,啟動設(shè)備進行成批的數(shù)據(jù)輸入,并允許中斷。③發(fā)出數(shù)據(jù)請求的進程進入等待狀態(tài),等待數(shù)據(jù)輸入的完成;操作系統(tǒng)的進程調(diào)度程序調(diào)度其它進程占用CPU。④在DMA控制器的控制下,按內(nèi)存地址寄存器中的內(nèi)容,把數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)源源不斷地寫入到相應(yīng)的主存單元,直至所要求的數(shù)據(jù)傳送完畢。⑤輸入完成時,DMA控制器通過中斷請求線發(fā)出中斷信號,CPU接到該中斷信號后,轉(zhuǎn)入中斷處理程序,喚醒等待輸入完成的進程,并返回被中斷的程序。⑥在以后的某個時刻,操作系統(tǒng)進程調(diào)度程序選中提出請求輸入的進程;該進程從指定的內(nèi)存單元取出數(shù)據(jù),并做進一步處理。DMA控制與中斷控制方式的主要區(qū)別:中斷控制方式在每個數(shù)據(jù)傳送完成后中斷一次CPU,DMA控制方式則是在所要求傳送的一批數(shù)據(jù)傳送結(jié)束時中斷CPU;中斷控制方式的數(shù)據(jù)傳送是在中斷處理時由CPU控制完成,而DMA控制方式是在DMA控制器的控制下完成。雖然DMA方式較前兩種方式有明顯的進步,但仍存在一定的局限性。首先,DMA方式對外設(shè)的管理和某些操作仍由CPU控制:如傳送數(shù)據(jù)的方向、存放數(shù)據(jù)的內(nèi)存始址及傳送數(shù)據(jù)的長度都由CPU控制。另外,多個DMA控制器的同時使用可能會引起內(nèi)存地址的沖突,同時每臺設(shè)備都需要一個DMA控制器,也是不經(jīng)濟的。為了克服以上不足,出現(xiàn)了通道控制方式。(4)與DMA控制方式相似,通道控制也是一種內(nèi)存和設(shè)備直接進行數(shù)據(jù)交換的方式。與DMA控制方式不同的是,在通道控制方式中,數(shù)據(jù)傳送的方向、存放數(shù)據(jù)的內(nèi)存始址以及傳送數(shù)據(jù)塊的長度均有望一個專門的硬件——通道來控制。另外,DMA方式每臺設(shè)備至少需要一個DMA控制器,而通道方式中,一個通道能控制多臺設(shè)備與內(nèi)存進行數(shù)據(jù)交換。通道是一個獨立于CPU的專門負責輸入輸出控制的處理機,它和設(shè)備控制器一起控制設(shè)備與內(nèi)存直接進行數(shù)據(jù)交換。通道有自己的指令,這些指令受CPU控制啟動,并在操作結(jié)束時,向CPU發(fā)出中斷信號。4.為什么要開辟緩沖區(qū)?常見的緩沖區(qū)有哪幾種?目前最常用的是哪種?答:(1)①緩和CPU和I/O設(shè)備之間速度不匹配的矛盾。事實上,凡在數(shù)據(jù)到達速率與其離去速率不同的地方,都可設(shè)置緩沖區(qū)。②減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)時間的限制如從外設(shè)來的數(shù)據(jù)僅用一位緩沖來接收,則每收到一位數(shù)據(jù)就要中斷一次;若設(shè)置一個8位的緩沖寄存器,則可使中斷的次數(shù)降低為1/8。所以,用緩沖技術(shù)可以減少CPU的中斷次數(shù)。③提高CPU和I/O設(shè)備之間的并行性引入緩沖后,在輸入數(shù)據(jù)的時候,輸入設(shè)備可將數(shù)據(jù)輸入到緩沖區(qū)存放,與此同時CPU在進行計算工作;輸出數(shù)據(jù)時,CPU也在進行計算工作,而同時輸出設(shè)備將緩沖區(qū)的數(shù)據(jù)取出來慢慢打印。所以緩沖區(qū)的引入可以提高CPU和I/O設(shè)備的并行性。(2)常采用的緩沖技術(shù)有:單緩沖:每當一個進程發(fā)出I/O請求的時候,操作系統(tǒng)便在主存中為之分配一個緩沖區(qū),該緩沖區(qū)用來臨時存放輸入輸出數(shù)據(jù)。當進程要求數(shù)據(jù)輸入的時候,操作系統(tǒng)先控制外設(shè)將數(shù)據(jù)送往緩沖區(qū)存放,然后進程從緩沖區(qū)中取出數(shù)據(jù)繼續(xù)運行。雙緩沖:解決外設(shè)之間并行操作的最簡單的辦法是設(shè)置雙緩沖。具體方案是為輸入或輸出操作設(shè)置兩個緩沖區(qū)buffer1和buffer2。當進程要求輸入數(shù)據(jù)的時候,輸入設(shè)備首先把輸入數(shù)據(jù)送往Bufffer1,然后進程從Buffer1中取出數(shù)據(jù)進行計算;在進程從Buffer1中取數(shù)據(jù)的同時,輸入設(shè)備可向緩沖區(qū)Buffer2送入數(shù)據(jù)。當Buffer1中的數(shù)據(jù)取完的時候,進程又可以從Buffer2中提取數(shù)據(jù),與此同時,輸入設(shè)備又可將輸入數(shù)據(jù)送往Buffer1。如此交替使用Buffer1和Buffer2,可使CPU和外設(shè)的并行操作進一步提高。環(huán)形緩沖:該技術(shù)是在主存中分配一組大小相等的存儲區(qū)作為緩沖區(qū),并將這些緩沖區(qū)鏈接起來,每個緩沖區(qū)中有一個指向下一個緩沖區(qū)的指針,最后一個緩沖區(qū)的指針指向第一個緩沖區(qū),這樣n個緩沖區(qū)就組成一個環(huán)形。此外系統(tǒng)中還有一個鏈首指針指向第一個緩沖區(qū)。緩沖池:為了提高緩沖區(qū)的利用率,目前廣泛采用的是緩沖池技術(shù)。從自由主存中分配一組緩沖區(qū)即可構(gòu)成緩沖池。在緩沖池中每個緩沖區(qū)的大小可以等于物理記錄的大小,它們作為共享資源被共享—即系統(tǒng)中只配備一個緩沖池供多個進程使用。緩沖池既可用于輸入,也可用于輸出。緩沖池中的緩沖區(qū)一般有以下三種類型:空緩沖區(qū)、裝輸入數(shù)據(jù)的緩沖區(qū)(輸入緩沖區(qū))、裝輸出數(shù)據(jù)的緩沖區(qū)(輸出緩沖區(qū))(3)緩沖池5.設(shè)備分配的過程。尤其注意設(shè)備的使用性質(zhì)和設(shè)備的獨立性、設(shè)備的安全性各指的是什么?答:為了使系統(tǒng)有條不紊地工作,系統(tǒng)在分配設(shè)備時應(yīng)考慮這樣幾個因素:①設(shè)備的固有屬性:獨占、共享、虛擬性②設(shè)備分配算法:先來先服務(wù)、優(yōu)先級高者優(yōu)先③設(shè)備分配時的安全性:該分配是否可能死鎖④設(shè)備的獨立性:應(yīng)用程序獨立于使用的物理設(shè)備6.什么是SPOOLING系統(tǒng)?它由哪幾部分構(gòu)成?答:(1)通過SPOOLing技術(shù)便可將一臺物理I/O設(shè)備虛擬為多臺邏輯I/O設(shè)備,同樣允許多個用戶共享一臺物理I/O設(shè)備。事實上,當系統(tǒng)中引入了多道程序技術(shù)后,完全可以利用其中的一道程序,來模擬脫機輸入時的外圍控制機的功能,把低速I/O上的數(shù)據(jù)傳送到高速磁盤上;再利用另一道程序來模擬脫機輸出時外圍控制機的功能,把數(shù)據(jù)從磁盤傳送到低速設(shè)備上。這樣,便可在主機的直接控制下,實現(xiàn)脫機輸入輸出功能。此時的外圍操作與CPU對數(shù)據(jù)的處理同時進行。把這種在聯(lián)機情況下實現(xiàn)的同時外圍操作稱為SPOOLing,或稱為假脫機操作從上述可知,SPOOLing技術(shù)是對脫機輸入、脫機輸出系統(tǒng)的模擬。相應(yīng)地,SPOOLing系統(tǒng)必須建立在具有多道程序功能的操作系統(tǒng)上,而且還應(yīng)具有高速隨機外存的支持。(2)SPOOLing系統(tǒng)主要由以下三部分組成:(1)輸入井和輸出井。這是在磁盤上開辟的兩個大的存儲空間。輸入井是模擬脫機輸入時的磁盤設(shè)備,用于暫存I/O設(shè)備輸入時的數(shù)據(jù);輸出井是模擬脫機輸出時的磁盤,用于暫存用戶程序的輸出數(shù)據(jù)。(2)輸入緩沖區(qū)和輸出緩沖區(qū)為了緩和CPU和磁盤之間速度不匹配的矛盾,在內(nèi)存中要開辟兩個緩沖區(qū):輸入緩沖區(qū)和輸出緩沖區(qū)。輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再傳送到輸入井;輸出緩沖區(qū)用于暫存從輸出井送來的數(shù)據(jù),以后再傳送給輸出設(shè)備。(3)輸入進程SPi和輸出進程SPo。這里利用兩個進程來模擬脫機I/O的外圍控制機。其中進程SPi模擬脫機輸入時的外圍控制機,將用戶要求的數(shù)據(jù)從輸入設(shè)備通過輸入緩沖區(qū)再送到輸入井,當CPU需要數(shù)據(jù)的時候,直接從輸入井讀入內(nèi)存;進程SPo模擬脫機輸出時的外圍控制機,把用戶要求輸出的數(shù)據(jù),先從內(nèi)存送到輸出井,待輸出設(shè)備空閑時,再將輸出井中的數(shù)據(jù)經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。7.會用磁盤調(diào)度算法(FCFS,SSTF,SCAN,CSCAN),計算一系列磁盤請求的宗道到數(shù)和平均尋道數(shù)第七章文件管理1.按照文件的幾種分類方法體會文件答:2.文件的邏輯結(jié)構(gòu)(2種)、答:文件的邏輯結(jié)構(gòu)分為以下兩類:1.有結(jié)構(gòu)的文件有結(jié)構(gòu)的文件是指由若干個相關(guān)的記錄構(gòu)成的文件,又稱記錄式文件。在文件中的記錄一般有著相同或不同數(shù)目的數(shù)據(jù)項,根據(jù)記錄的長度,記錄式文件又分為等長記錄文件和變長記錄文件。2.無結(jié)構(gòu)文件又稱流式文件,組成它的基本信息單位是字節(jié)或字,其長度是文件中所含字節(jié)的數(shù)目。如大量的源程序、庫函數(shù)等采用的就是流式文件。3.文件的物理結(jié)構(gòu)(3種),各適合于哪種存取方式?答:連續(xù)結(jié)構(gòu)(順序結(jié)構(gòu)):這種結(jié)構(gòu)的文件,其文件在磁盤上的存放順序與用戶看到的邏輯記錄是一致的。連續(xù)文件可采用順序存取,也可以隨機存取,就看你采用什么樣的存儲介質(zhì)來存儲文件鏈接結(jié)構(gòu):且其存取的方法只能順序存取,不能隨機存取。索引結(jié)構(gòu):索引結(jié)構(gòu)要求系統(tǒng)為每一個文件建立一張索引表,表中每個欄目指出文件信息所在的邏輯塊號和物理塊號之間的對應(yīng)關(guān)系即當文件的物理結(jié)構(gòu)為索引結(jié)構(gòu)時,即可順序存取,也可隨機存取。4.文件的存儲介質(zhì)(磁帶、磁盤、磁鼓),各適合于哪種存取方式?答:磁帶是一種順序存取設(shè)備,對磁帶上的用戶文件信息只能順序訪問。磁帶文件的物理結(jié)構(gòu)只有一種——順

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論