計(jì)算機(jī)操作系統(tǒng)期末復(fù)習(xí)資料(共24頁)_第1頁
計(jì)算機(jī)操作系統(tǒng)期末復(fù)習(xí)資料(共24頁)_第2頁
計(jì)算機(jī)操作系統(tǒng)期末復(fù)習(xí)資料(共24頁)_第3頁
計(jì)算機(jī)操作系統(tǒng)期末復(fù)習(xí)資料(共24頁)_第4頁
計(jì)算機(jī)操作系統(tǒng)期末復(fù)習(xí)資料(共24頁)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上第一章什么是OS,它在計(jì)算機(jī)系統(tǒng)中處在什么位置?加載在硬件上的第一層軟件,是硬件功能的首次延伸;是系統(tǒng)資源的管理機(jī)構(gòu);是人、機(jī)之間的接口。OS的發(fā)展過程-幾類典型操作系統(tǒng)(多道批處理、分時(shí)、實(shí)時(shí)),每類操作系統(tǒng)的原理、特征(優(yōu)缺點(diǎn))多道批處理系統(tǒng):原理: 20世紀(jì)60年代中期引入多道程序設(shè)計(jì)技術(shù),由此形成了多道批處理系統(tǒng)。在該系統(tǒng)中,用戶所提交的作業(yè)都先存放在外存上并排成一個(gè)隊(duì)列,稱為“后備隊(duì)列”;然后,由作業(yè)調(diào)度程序按一定的算法從后備隊(duì)列中選擇若干個(gè)作業(yè)調(diào)入內(nèi)存,使它們共享CPU和系統(tǒng)中的各種資源。特征(優(yōu)缺點(diǎn)):(1)資源利用率高(2)系統(tǒng)吞吐量大(3)平均周轉(zhuǎn)時(shí)

2、間長(4)無交互能力分時(shí)系統(tǒng):原理: 分時(shí)系統(tǒng)是指在一臺(tái)主機(jī)上連接了多個(gè)帶有顯示器和鍵盤的終端,同時(shí)允許多個(gè)用戶通過自己的終端,以交互方式使用計(jì)算機(jī),共享主機(jī)中的資源。特征(優(yōu)缺點(diǎn)):(1)多路性(2)獨(dú)立性(3)及時(shí)性(4)交互性實(shí)時(shí)系統(tǒng):原理: 實(shí)時(shí)系統(tǒng)是指系統(tǒng)能及時(shí)(或即時(shí))響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致的運(yùn)行。特征(優(yōu)缺點(diǎn)):(1)多路性(2)獨(dú)立性(3)及時(shí)性(4)交互性(5)可靠性O(shè)S的基本特性(并發(fā)、共享、虛擬、異步)-其中“并發(fā)”是最重要的特性并發(fā)性、共享性、虛擬性和異步性四個(gè)基本特征;最基本的特征是并發(fā)性。 OS的主要功能-資

3、源管理器和用戶接口資源管理功能:處理機(jī)管理存儲(chǔ)器管理設(shè)備管理文件管理操作系統(tǒng)和用戶之間的接口:用戶接口:聯(lián)機(jī)用戶接口,脫機(jī)用戶接口和圖形用戶接口程序接口:該接口是為用戶程序在執(zhí)行中訪問系統(tǒng)資源而設(shè)置的,它是由一組系統(tǒng)調(diào)用組成。 試說明推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁??主要?jiǎng)恿碓从谒膫€(gè)方面的社會(huì)需求與技術(shù)發(fā)展:(1)不斷提高計(jì)算機(jī)資源的利用率;(2)方便用戶;(3)器件的不斷更新?lián)Q代;(4)計(jì)算機(jī)體系結(jié)構(gòu)的不斷發(fā)展。 第二章 進(jìn)程的概念,進(jìn)程與程序(作業(yè))的區(qū)別進(jìn)程是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ);是一個(gè)正在執(zhí)行的程序;計(jì)算機(jī)中正在運(yùn)行的程序?qū)嵗豢梢苑峙浣o處理器并由處理器執(zhí)行的一個(gè)實(shí)體。進(jìn)程

4、實(shí)體:為使程序(含數(shù)據(jù))能獨(dú)立運(yùn)行,應(yīng)為之配置一進(jìn)程控制塊,即PCB;而由程序段、相關(guān)的數(shù)據(jù)段和PCB三個(gè)部分便構(gòu)成了進(jìn)程實(shí)體。進(jìn)程的實(shí)質(zhì)是進(jìn)程實(shí)體的一次執(zhí)行過程。進(jìn)程和程序區(qū)別:(1)進(jìn)程是一個(gè)動(dòng)態(tài)概念,強(qiáng)調(diào)執(zhí)行的過程,每個(gè)進(jìn)程中包含了程序段和數(shù)據(jù)段兩個(gè)部分,以及進(jìn)程控制塊PCB; 而程序是一個(gè)靜態(tài)概念,程序是指令的有序集合,無執(zhí)行含義;(2)進(jìn)程具有并行特征(獨(dú)立性,異步性),程序則沒有;(3)一個(gè)進(jìn)程可以執(zhí)行多個(gè)程序(如Linux中通過exec調(diào)用),同一程序的多次執(zhí)行將產(chǎn)生多個(gè)不同的進(jìn)程。同一個(gè)程序的一次執(zhí)行也可產(chǎn)生多個(gè)進(jìn)程(如在程序中多次調(diào)用Linux中的fork)。進(jìn)程和作業(yè)的區(qū)別

5、在于: 一個(gè)進(jìn)程是一個(gè)程序?qū)δ硞€(gè)數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位。作業(yè)是用戶需要計(jì)算機(jī)完成某項(xiàng)任務(wù),而要求計(jì)算機(jī)所做工作的集合。一個(gè)作業(yè)的完成要經(jīng)過作業(yè)提交、作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成四個(gè)階段。而進(jìn)程是已提交完畢的程序所執(zhí)行過程的描述,是資源分配的基本單位。其主要區(qū)別關(guān)系如下:(1)作業(yè)是用戶向計(jì)算機(jī)提交任務(wù)的任務(wù)實(shí)體。在用戶向計(jì)算機(jī)提交作業(yè)之后,系統(tǒng)將它放入外存中的作業(yè)等待隊(duì)列中等待執(zhí)行;而進(jìn)程則是完成用戶任務(wù)的執(zhí)行實(shí)體,是向系統(tǒng)申請(qǐng)分配資源的基本單位。任一進(jìn)程,只要它被創(chuàng)建,總有相應(yīng)的部分存在于內(nèi)存中;(2)一個(gè)作業(yè)可由多個(gè)進(jìn)程組成,且必須至少由一個(gè)進(jìn)程組成,但反過來不成立;(3)

6、作業(yè)的概念主要用在批處理系統(tǒng)中,像UNIX這樣的分時(shí)系統(tǒng)中,則沒有作業(yè)的概念;而進(jìn)程的概念則用在幾乎所有的多道程序系統(tǒng)中。 什么是PCB,PCB包含的主要信息,PCB的作用為了描述和控制進(jìn)程的運(yùn)行,系統(tǒng)為每個(gè)進(jìn)程定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)進(jìn)程控制塊PCB(Process Control Block)。PCB中主要包括下述四方面的信息:進(jìn)程標(biāo)識(shí)符:內(nèi)部標(biāo)識(shí)符,外部標(biāo)識(shí)符;處理機(jī)狀態(tài);進(jìn)程調(diào)度信息;進(jìn)程控制信息。PCB的作用: PCB是系統(tǒng)只為每個(gè)進(jìn)程定義的一個(gè)數(shù)據(jù)結(jié)構(gòu),是為了使程序(含數(shù)據(jù))能獨(dú)立運(yùn)行,為之配置的一進(jìn)程控制塊; PCB、程序段和相關(guān)的數(shù)據(jù)段三部分構(gòu)成了進(jìn)程實(shí)體,創(chuàng)建進(jìn)程,實(shí)質(zhì)上是創(chuàng)建進(jìn)程

7、和實(shí)體中的PCB,而撤銷進(jìn)程,實(shí)質(zhì)上是撤銷進(jìn)程的PCB;PCB是為了保證程序的并發(fā)執(zhí)行; PCB使一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序(含數(shù)據(jù)),成為一個(gè)能獨(dú)立運(yùn)行的基本單位,一個(gè)能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程。進(jìn)程的3種基本狀態(tài),狀態(tài)間的轉(zhuǎn)換以及引起狀態(tài)轉(zhuǎn)換的原因進(jìn)程的三種基本狀態(tài):就緒狀態(tài),執(zhí)行狀態(tài),阻塞狀態(tài)還存在兩種比較常見的進(jìn)程狀態(tài),即創(chuàng)建狀態(tài)和終止?fàn)顟B(tài)創(chuàng)建就緒:在當(dāng)前系統(tǒng)的性能和內(nèi)存容量均允許的情況下,完成對(duì)進(jìn)程創(chuàng)建的必要操作, 相應(yīng)的系統(tǒng)進(jìn)程將進(jìn)程的狀態(tài)轉(zhuǎn)換成活動(dòng)就緒狀態(tài)執(zhí)行終止:當(dāng)一個(gè)進(jìn)程到達(dá)了自然結(jié)束點(diǎn),或是出現(xiàn)了無法克服的錯(cuò)誤,或是被操作系統(tǒng)所終結(jié), 或是被其他有終止權(quán)的進(jìn)程所

8、終結(jié),進(jìn)程即進(jìn)終止?fàn)顟B(tài)(1) 就緒執(zhí)行處于就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)后,該進(jìn)程便由就緒狀態(tài)轉(zhuǎn)變成執(zhí)行狀態(tài)。(2) 執(zhí)行就緒處于執(zhí)行狀態(tài)的進(jìn)程在其執(zhí)行過程中,因分配給它的一個(gè)時(shí)間片已用完而不得不讓出處理機(jī),于是進(jìn)程從執(zhí)行狀態(tài)轉(zhuǎn)變成就緒狀態(tài)。(時(shí)間片用完)(3) 執(zhí)行阻塞正在執(zhí)行的進(jìn)程因等待某種事件發(fā)生而無法繼續(xù)執(zhí)行時(shí),便從執(zhí)行狀態(tài)變成阻塞狀態(tài)。(I/O請(qǐng)求)(4) 阻塞就緒 處于阻塞狀態(tài)的進(jìn)程,若其等待的事件已經(jīng)發(fā)生,于是進(jìn)程由阻塞狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。(I/O完成)什么是臨界資源臨界資源是指每次僅允許一個(gè)進(jìn)程訪問的資源。 進(jìn)程間的兩種相互制約關(guān)系(-同步、互斥-)的概念(是進(jìn)

9、程間的低級(jí)通信)進(jìn)程同步(直接相互制約關(guān)系):它主要源于進(jìn)程合作,是進(jìn)程間共同完成一項(xiàng)任務(wù)時(shí)直接發(fā)生相互作用的關(guān)系。為進(jìn)程之間的直接制約關(guān)系。在多道環(huán)境下,這種進(jìn)程間在執(zhí)行次序上的協(xié)調(diào)是必不可少的。舉例:有輸入進(jìn)程A 通過單緩沖向進(jìn)程B 提供數(shù)據(jù)。當(dāng)緩沖空時(shí),計(jì)算進(jìn)程因不能獲得所需數(shù)據(jù)而阻塞,當(dāng)進(jìn)程A 把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進(jìn)程B;反之,當(dāng)緩沖區(qū)已滿時(shí),進(jìn)程A 因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進(jìn)程B 將緩沖區(qū)數(shù)據(jù)取走后便喚醒A。進(jìn)程互斥(間接相互制約關(guān)系):它主要源于資源共享,是進(jìn)程之間的間接制約關(guān)系。在多道系統(tǒng)中,每次只允許一個(gè)進(jìn)程訪問的資源稱為臨界資源,進(jìn)程互斥就是保證每次只有一個(gè)進(jìn)程使用臨

10、界資源。舉例:有兩進(jìn)程A 和B,如果A 提出打印請(qǐng)求,系統(tǒng)已把唯一的一臺(tái)打印機(jī)分配給了進(jìn)程B,則進(jìn)程A只能阻塞;一旦B釋放打印機(jī),A才由阻塞改為就緒。 什么是信號(hào)量 信號(hào)量是Dijkstra提出的用于解決進(jìn)程同步的有效工具。信號(hào)量是一個(gè)數(shù)據(jù)結(jié)構(gòu)以及對(duì)其的操作。除初始化外,僅能通過兩個(gè)標(biāo)準(zhǔn)的原子操作wait(S)和signal(S)來訪問。兩個(gè)語句在執(zhí)行到一半的時(shí)候不能被中斷。 什么是P操作、什么是V操作(P、V操作的處理流程,以記錄型信號(hào)量為例)專心-專注-專業(yè)P(S):wait(S)每次wait操作,意味著進(jìn)程請(qǐng)求一個(gè)單位的該類資源,使系統(tǒng)可供分配的該類資源數(shù)減少一個(gè)。 將信號(hào)量S的值減1,

11、即S.value:=S.value-1; 當(dāng)S.value<0時(shí),表示該類資源分配完畢,進(jìn)程調(diào)用block原語,進(jìn)行自我阻塞,放棄處理機(jī),并插入到信號(hào)量鏈表中。V(S):signal(S)每次signal操作,表示執(zhí)行進(jìn)程釋放一個(gè)單位資源,使系統(tǒng)中可供分配的該類資源數(shù)增加一個(gè) 將信號(hào)量S的值加1,即S.value:=S.value+1; 如果S.value<=0,表示在該信號(hào)量鏈表中,仍有等待該資源的進(jìn)程被阻塞,故還應(yīng)調(diào)用wakeup原語,將鏈表中的第一個(gè)等待進(jìn)程喚醒。用信號(hào)量和P、V操作機(jī)制實(shí)現(xiàn)互斥和同步的方法,信號(hào)量取值的含義利用信號(hào)量和PV操作實(shí)現(xiàn)進(jìn)程互斥時(shí)應(yīng)該注意的是:(1

12、)每個(gè)程序中用戶實(shí)現(xiàn)互斥的P,V操作必須成對(duì)出現(xiàn),先做P操作,進(jìn)臨界區(qū),后做V操作,出臨界區(qū)。若有多個(gè)分支,要認(rèn)真檢查其成對(duì)性。(2)P,V操作應(yīng)分別緊靠臨界區(qū)的頭尾部,臨界區(qū)的代碼應(yīng)盡可能短,不能有死循環(huán)。(3)互斥信號(hào)量得初值一般為1其中信號(hào)量S用于互斥,初值為1。利用信號(hào)量和PV操作實(shí)現(xiàn)進(jìn)程同步PV操作是典型的同步機(jī)制之一。用一個(gè)信號(hào)量與一個(gè)消息聯(lián)系起來,當(dāng)信號(hào)量的值為0時(shí),表示期望的消息尚未產(chǎn)生;當(dāng)信號(hào)量的值非0時(shí),表示期望的消息已經(jīng)存在。用PV操作實(shí)現(xiàn)進(jìn)程同步時(shí),調(diào)用P操作測(cè)試消息是否到達(dá),調(diào)用V操作發(fā)送消息。使用PV操作實(shí)現(xiàn)進(jìn)程同步時(shí)應(yīng)該注意的是:(1)分析進(jìn)程間的制約關(guān)系,確定信

13、號(hào)量種類。在保持進(jìn)程間有正確的同步關(guān)系情況下,哪個(gè)進(jìn)程先執(zhí)行,那些進(jìn)程后執(zhí)行,彼此間通過什么資源(信號(hào)量)進(jìn)行協(xié)調(diào),從而明確要設(shè)置那些信號(hào)量。(2)信號(hào)量的初值與相應(yīng)資源的數(shù)量有關(guān),也與P,V操作在程序代碼中出現(xiàn)的位置有關(guān)。(3)同一信號(hào)量的P,V操作要成對(duì)出現(xiàn),但他們分別在不同的進(jìn)程代碼中。什么是進(jìn)程的(高級(jí))通信,類型進(jìn)程通信,是指進(jìn)程之間的信息交換,其所交換的信息量少者是一個(gè)狀態(tài)或數(shù)值,多者則是成千上萬個(gè)字節(jié)。高級(jí)進(jìn)程通信,是指用戶可直接利用操作系統(tǒng)所提供的一組通信命令高效地傳送大量數(shù)據(jù)的一種通信方式。三大類:(1)共享存儲(chǔ)器系統(tǒng)a、 基于共享數(shù)據(jù)結(jié)構(gòu)的通信方式b、基于共享存儲(chǔ)區(qū)得通信方

14、式(2)消息傳遞系統(tǒng)(3)管道通信系統(tǒng)。 消息傳遞通信的兩種實(shí)現(xiàn)方法(1)直接通信方式發(fā)送進(jìn)程利用OS所提供的發(fā)送命令,直接把消息發(fā)送給目標(biāo)進(jìn)程。(2)間接通信方式進(jìn)程之間的通信需要通過作為共享數(shù)據(jù)結(jié)構(gòu)的實(shí)體。 在操作系統(tǒng)為什么引入進(jìn)程的概念?它會(huì)產(chǎn)生什么樣的影響? 為了使程序在多道程序環(huán)境下并發(fā)執(zhí)行。并對(duì)并發(fā)執(zhí)行的程序加以控制和描述,在操作系統(tǒng)為什么引入進(jìn)程的概念。影響:使程序的并發(fā)執(zhí)行得意實(shí)行。 為什么說PCB是進(jìn)程存在的唯一標(biāo)志?因?yàn)椋?在調(diào)度到某進(jìn)程后,要根據(jù)其PCB中所保存的處理機(jī)狀態(tài)信息,設(shè)置該進(jìn)程恢復(fù)運(yùn)行的現(xiàn)場(chǎng),并根據(jù)其PCB中的程序和數(shù)據(jù)的內(nèi)存地址,找到其程序和數(shù)據(jù);進(jìn)程在執(zhí)行

15、過程中,當(dāng)需要和與之合作的進(jìn)程實(shí)現(xiàn)同步、通信或訪問文件時(shí),也都需要訪問PCB:當(dāng)進(jìn)程由于某種原因而暫停執(zhí)行時(shí),又需將器斷點(diǎn)的處理機(jī)環(huán)境保存在PCB中??梢?,在進(jìn)程的整個(gè)生命期中,系統(tǒng)總是通過PCB對(duì)進(jìn)程進(jìn)行控制的,亦即系統(tǒng)是根據(jù)進(jìn)程的PCB而不是任何別的什么而感知到該進(jìn)程的存在的。所以PCB是進(jìn)程存在的唯一標(biāo)志。線程的概念和屬性線程:是"進(jìn)程"中某個(gè)單一順序的控制流,也被稱為輕量進(jìn)程(lightweight processes)。線程具有以下屬性:1)輕型實(shí)體。2)獨(dú)立調(diào)度和分派的基本單位。3)可并發(fā)執(zhí)行。4)共享進(jìn)程資源。 試寫出相應(yīng)的程序來描述圖所示的前驅(qū)圖。進(jìn)程管理相

16、關(guān)內(nèi)容進(jìn)程管理相關(guān)內(nèi)容第一個(gè)圖: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

17、; signal(h); end; begin wait(f); wait(g); wait(h); S7; end; parend end第二個(gè)圖: Var a, b, c, d, e, f, g, h, i, j;semaphore:= 0, 0, 0, 0, 0, 0, 0,0,0, 0;begin parbeginbegin 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

18、); 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在生產(chǎn)者-消費(fèi)者問題中,如果將兩個(gè)wait操作即wait(full)和wait(mutex)互換位置,或者將signal(mutex)與signal(full)互換位置,結(jié)果會(huì)如何?var mutex,empty,full: sema

19、phore:=1,n,0;buffer: array0,.,n-1 of item;in,out: integer:=0,0;beginparbeginproducer: duce an item in nextp;.wait(empty);wait(mutex);buffer(in):=nextp;in:=(in+1) mod n;/* * */signal(full);signal(mutex);/* * */until false;endconsumer: beginrepeat/* * */wait(mutex);wait(full);/* * */nex

20、tc:=buffer(out);out:=(out+1) mod n;signal(mutex);signal(empty);consume the item in nextc;until false;endparendenda. wait(full)和wait(mutex)互換位置后,因?yàn)閙utex在這兒是全局變量,執(zhí)行完wait(mutex),則mutex賦值為0,倘若full也為0,則該生產(chǎn)者進(jìn)程就會(huì)轉(zhuǎn)入進(jìn)程鏈表進(jìn)行等待,而生產(chǎn)者進(jìn)程會(huì)因全局變量mutex為0而進(jìn)行等待,使full始終為0,這樣就形成了死鎖.b. 而signal(mutex)與signal(full)互換位置后,從邏輯上

21、來說應(yīng)該是一樣的. 試?yán)糜涗浶孕盘?hào)量寫出一個(gè)不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問題的算法。規(guī)定在拿到左側(cè)的筷子后,先檢查右面的筷子是否可用。如果不可用,則先放下左側(cè)筷子,等一段時(shí)間再重復(fù)整個(gè)過程。分析:當(dāng)出現(xiàn)以下情形,在某一個(gè)瞬間,所有的哲學(xué)家都同時(shí)啟動(dòng)這個(gè)算法,拿起左側(cè)的筷子,而看到右側(cè)筷子不可用,又都放下左側(cè)筷子,等一會(huì)兒,又同時(shí)拿起左側(cè)筷子如此這樣永遠(yuǎn)重復(fù)下去。對(duì)于這種情況,所有的程序都在運(yùn)行,但卻無法取得進(jìn)展,即出現(xiàn)饑餓,所有的哲學(xué)家都吃不上飯。(2) 描述一種沒有人餓死(永遠(yuǎn)拿不到筷子)算法??紤]了四種實(shí)現(xiàn)的方式(A、B、C、D):A原理:至多只允許四個(gè)哲學(xué)家同時(shí)進(jìn)餐,以保證至少有一個(gè)哲學(xué)家

22、能夠進(jìn)餐,最終總會(huì)釋放出他所使用過的兩支筷子,從而可使更多的哲學(xué)家進(jìn)餐。以下將room 作為信號(hào)量,只允許4 個(gè)哲學(xué)家同時(shí)進(jìn)入餐廳就餐,這樣就能保證至少有一個(gè)哲學(xué)家可以就餐,而申請(qǐng)進(jìn)入餐廳的哲學(xué)家進(jìn)入room 的等待隊(duì)列,根據(jù)FIFO 的原則,總會(huì)進(jìn)入到餐廳就餐,因此不會(huì)出現(xiàn)餓死和死鎖的現(xiàn)象。偽碼:semaphore chopstick5=1,1,1,1,1;semaphore room=4;void philosopher(int i)while(true)think();wait(room); /請(qǐng)求進(jìn)入房間進(jìn)餐wait(chopsticki); /請(qǐng)求左手邊的筷子wait(chopsti

23、ck(i+1)%5); /請(qǐng)求右手邊的筷子eat();signal(chopstick(i+1)%5); /釋放右手邊的筷子signal(chopsticki); /釋放左手邊的筷子signal(room); /退出房間釋放信號(hào)量roomB原理:僅當(dāng)哲學(xué)家的左右兩支筷子都可用時(shí),才允許他拿起筷子進(jìn)餐。方法1:利用AND 型信號(hào)量機(jī)制實(shí)現(xiàn):根據(jù)課程講述,在一個(gè)原語中,將一段代碼同時(shí)需要的多個(gè)臨界資源,要么全部分配給它,要么一個(gè)都不分配,因此不會(huì)出現(xiàn)死鎖的情形。當(dāng)某些資源不夠時(shí)阻塞調(diào)用進(jìn)程;由于等待隊(duì)列的存在,使得對(duì)資源的請(qǐng)求滿足FIFO 的要求,因此不會(huì)出現(xiàn)饑餓的情形。偽碼:semaphore

24、chopstick5=1,1,1,1,1;void philosopher(int I)while(true)think();Swait(chopstick(I+1)%5,chopstickI);eat();Ssignal(chopstick(I+1)%5,chopstickI);方法2:利用信號(hào)量的保護(hù)機(jī)制實(shí)現(xiàn)。通過信號(hào)量mutex對(duì)eat()之前的取左側(cè)和右側(cè)筷子的操作進(jìn)行保護(hù),使之成為一個(gè)原子操作,這樣可以防止死鎖的出現(xiàn)。偽碼:semaphore mutex = 1 ;semaphore chopstick5=1,1,1,1,1;void philosopher(int I)while(

25、true)think();wait(mutex);wait(chopstick(I+1)%5);wait(chopstickI);signal(mutex);eat();signal(chopstick(I+1)%5);signal(chopstickI); 第三章進(jìn)程調(diào)度的功能:1)保存處理劑的現(xiàn)場(chǎng)信息;2)按某種算法選取進(jìn)程;3)把處理機(jī)分配給進(jìn)程。對(duì)于本章內(nèi)的基本調(diào)度算法:算法思想、就緒隊(duì)列的組織、是搶占還是非搶占FCFS先來先服務(wù)調(diào)度算法算法思想:當(dāng)在作業(yè)調(diào)度中采用該算法時(shí),每次調(diào)度都是從后備作業(yè)隊(duì)列中選擇一個(gè)或多個(gè)最先進(jìn)入該隊(duì)列的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進(jìn)程,然后放

26、入就緒隊(duì)列。在進(jìn)程調(diào)度中采用FCFS算法時(shí),則每次調(diào)度是從就緒對(duì)壘中選擇一個(gè)最先進(jìn)入該隊(duì)列的進(jìn)程,為之分配處理機(jī),使之投入運(yùn)行。該進(jìn)程一直運(yùn)行到完成或發(fā)生某事件而阻塞后才放棄處理機(jī)。FCFS是非搶占式的調(diào)度算法。短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法算法思想:短作業(yè)優(yōu)先(SJF)的調(diào)度算法是從后備隊(duì)列中選擇一個(gè)或若干個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),將它們調(diào)入內(nèi)存運(yùn)行。而短進(jìn)程優(yōu)先(SPF)調(diào)度算法則是從就緒隊(duì)列中選擇一個(gè)估計(jì)運(yùn)行時(shí)間最短的進(jìn)程,將處理機(jī)分配給它,使它立即執(zhí)行并一直執(zhí)行到完成,或發(fā)生某事件而被阻塞放棄處理機(jī)時(shí)再重新調(diào)度。短作業(yè)調(diào)度算法是非搶占式的調(diào)度算法。非搶占式優(yōu)先權(quán)調(diào)度算法和搶占式優(yōu)先權(quán)調(diào)度算

27、法算法思想:非搶占式優(yōu)先權(quán)調(diào)度算法:系統(tǒng)一旦把處理機(jī)分配給就緒隊(duì)列中優(yōu)先權(quán)最高的進(jìn)程后,該進(jìn)程便一直執(zhí)行下去,直至完成,或因發(fā)生某事件使該進(jìn)程放棄處理機(jī)時(shí),系統(tǒng)方可再將處理機(jī)重新分配給另一個(gè)優(yōu)先權(quán)最高的進(jìn)程。搶占式優(yōu)先權(quán)調(diào)度算法:系統(tǒng)同樣是把處理機(jī)分配給優(yōu)先權(quán)最高的進(jìn)程,使之執(zhí)行。但在其執(zhí)行期間,只要又出現(xiàn)了另一個(gè)其優(yōu)先權(quán)更高的進(jìn)程,進(jìn)程調(diào)度就立即停止當(dāng)前進(jìn)程的執(zhí)行,重新將處理機(jī)分配給新到的優(yōu)先權(quán)最高的進(jìn)程。靜態(tài)優(yōu)先權(quán)和動(dòng)態(tài)優(yōu)先權(quán)算法思想:靜態(tài)優(yōu)先權(quán)是在創(chuàng)建進(jìn)程時(shí)確定的,且在進(jìn)程的整個(gè)運(yùn)行期間保持不變。動(dòng)態(tài)優(yōu)先權(quán)是指在創(chuàng)建進(jìn)程時(shí)所賦予的優(yōu)先權(quán),是可以隨進(jìn)程的推進(jìn)或隨其等待時(shí)間的增加而改變的。高

28、響應(yīng)比優(yōu)先調(diào)度算法算法思想:為每個(gè)作業(yè)引入動(dòng)態(tài)優(yōu)先權(quán),并使作業(yè)的優(yōu)先級(jí)隨著等待時(shí)間的增加而以速率a提高,則長作業(yè)在等待一定的時(shí)間后,必然后寄回分配到處理機(jī)。該優(yōu)先權(quán)的變化規(guī)律可描述為:優(yōu)先權(quán)=(等待時(shí)間+要求服務(wù)時(shí)間)/ 要求服務(wù)事件基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法算法思想:系統(tǒng)將所有的就緒進(jìn)程按先來先服務(wù)的原則排成一個(gè)隊(duì)列,每次調(diào)度時(shí),把CPU分配給隊(duì)首進(jìn)程,并令其執(zhí)行一個(gè)時(shí)間片。多級(jí)反饋隊(duì)列調(diào)度算法算法思想: 設(shè)置多個(gè)就緒隊(duì)列,并為各個(gè)隊(duì)列賦予不同的優(yōu)先級(jí)。第一個(gè)隊(duì)列的優(yōu)先級(jí)最高,第二個(gè)隊(duì)列次之。 當(dāng)一個(gè)新進(jìn)程進(jìn)入內(nèi)存后,首先將它放入第一個(gè)隊(duì)列的末尾,按FCFS原則排隊(duì)等待調(diào)度。如果一個(gè)時(shí)間片后進(jìn)

29、程尚未完成,調(diào)度程序便將該進(jìn)程轉(zhuǎn)入第二個(gè)隊(duì)列的末尾,再同樣地按FCFS原則等待調(diào)度執(zhí)行。當(dāng)一個(gè)長作業(yè)從第一個(gè)隊(duì)列一次降到第n個(gè)隊(duì)列后,在第n隊(duì)列中便采取按時(shí)間片輪轉(zhuǎn)的方式運(yùn)行。 僅當(dāng)?shù)谝魂?duì)列空閑時(shí),調(diào)度程序才調(diào)度第二隊(duì)列中的進(jìn)程運(yùn)行。 典型的動(dòng)態(tài)優(yōu)先權(quán)調(diào)度調(diào)度算法:高響應(yīng)比優(yōu)先度調(diào)度算法;典型的實(shí)時(shí)調(diào)度算法:最低松弛度優(yōu)先調(diào)度算法;時(shí)間片輪轉(zhuǎn)法中,時(shí)間片取值的影響時(shí)間片取值的影響: 如果選擇很小的時(shí)間片將有利于短作業(yè),因?yàn)樗茌^快地完成,但會(huì)頻繁地發(fā)生中斷、進(jìn)程上下文的切換,從而增加系統(tǒng)的開銷;反之,如果選擇太長的時(shí)間片,使得每個(gè)進(jìn)程都能在一個(gè)時(shí)間片內(nèi)完成,時(shí)間片輪轉(zhuǎn)算法便退化為FCFS算法,

30、無法滿足交互式用戶的需求。如何確定時(shí)間片的大?。?時(shí)間片應(yīng)略大于一次典型的交互需要的時(shí)間。這樣可使大多數(shù)進(jìn)程在一個(gè)時(shí)間片內(nèi)完成。一般應(yīng)考慮三個(gè)因素:系統(tǒng)對(duì)相應(yīng)時(shí)間的要求、就緒隊(duì)列中進(jìn)程的數(shù)目和系統(tǒng)的處理能力。 什么是死鎖,死鎖產(chǎn)生的原因和必要條件 所謂死鎖,是指多個(gè)進(jìn)程在運(yùn)行過程中因爭(zhēng)奪資源而造成的一種僵局,當(dāng)進(jìn)程處于這種僵持狀態(tài)時(shí),若無外力作用,它們都將無法再向前推進(jìn)。 產(chǎn)生死鎖的原因:(1)競(jìng)爭(zhēng)資源。(2)進(jìn)程間推進(jìn)順序非法。 產(chǎn)生死鎖的必要條件:1)互斥條件;2)請(qǐng)求和保持條件;3)不剝奪條件;4)環(huán)路等待條件。什么是安全狀態(tài)、不安全狀態(tài),它與死鎖間的關(guān)系 所謂安全狀態(tài),只系統(tǒng)能按某種進(jìn)

31、程順序(P1,P2,···,Pn)(稱<P1,P2,···,Pn>序列為安全序列),來為每個(gè)進(jìn)程Pi分配其所需資源,直至滿足每個(gè)進(jìn)程對(duì)資源的最大需求,使每個(gè)進(jìn)程都可順利的完成。 如果系統(tǒng)無法找到這樣一個(gè)安全序列,則稱系統(tǒng)處于不安全狀態(tài)。死鎖的預(yù)防、避免、檢測(cè)與解除的含義1) 預(yù)防死鎖。這是一種較簡單的和直觀的事先預(yù)防的方法。該方法是通過設(shè)置某些限制條件, 去破壞產(chǎn)生死鎖的四個(gè)必要條件,來預(yù)防發(fā)生死鎖。2) 避免死鎖。該方法同樣是屬于事先預(yù)防的策略,但他并不須事先采取各種限制措施去破壞產(chǎn)生死鎖的四個(gè) 必要條件,而是在資源的動(dòng)

32、態(tài)分配過程中,用某種方法去防止系統(tǒng)進(jìn)入不安全狀態(tài),從而避免死鎖。3) 檢測(cè)死鎖。這種方法并不須事先采取任何限制措施,也不必檢查系統(tǒng)是否已經(jīng)進(jìn)入不安全區(qū), 而是允許系統(tǒng)在運(yùn)行過程中發(fā)生死鎖。但可通過系統(tǒng)所設(shè)置的檢測(cè)機(jī)構(gòu),及時(shí)地檢測(cè)死鎖的發(fā)生, 并精確地確定與死鎖有關(guān)的進(jìn)程資源;然后,采取適當(dāng)措施,從系統(tǒng)中將已發(fā)生的死鎖清除掉。4)解除死鎖。這是與檢測(cè)死鎖相配套的一種措施。當(dāng)檢測(cè)到系統(tǒng)中已發(fā)生死鎖時(shí),須將進(jìn)程從死鎖狀態(tài)中解脫出來。死鎖的避免-避免死鎖的銀行家算法,數(shù)據(jù)結(jié)構(gòu),算法思想銀行家算法中的數(shù)據(jù)結(jié)構(gòu): 可利用資源向量 Available 最大需求矩陣Max 分配矩陣 Allocation 需求

33、矩陣 Need三個(gè)矩陣間存在下述關(guān)系:Needpi,j = Maxi,j Allocationi,j算法思想:(1)如果Request ij <= Needi,j,便轉(zhuǎn)向步驟(2); 否則認(rèn)為出錯(cuò),因?yàn)樗枰馁Y源數(shù)已超過它所宣布的最大值。(2)如果Request ij <= Availablej,便轉(zhuǎn)向步驟(3);否則,表示尚無足夠資源,Pi須等待。(3)系統(tǒng)試探著把資源分配給進(jìn)程Pi,并修改下面數(shù)據(jù)結(jié)構(gòu)中的值:Availablej:=Availablej Request ij;Allocationi,j:=Allocationi,j + Request ij;Needi,j:

34、=Needi,j Request ij;(4) 系統(tǒng)執(zhí)行安全性算法,減產(chǎn)此次算法分配后系統(tǒng)是否處于安全狀態(tài)。若安全,才正式將資源分配給進(jìn)程Pi,以完成本次分配;否則,將本次的試探分配作廢,恢復(fù)原來的資源分配狀態(tài),讓進(jìn)程Pi等待。安全性算法:(1)設(shè)置兩個(gè)向量: 工作向量Work,表示系統(tǒng)可提供給進(jìn)程繼續(xù)運(yùn)行所需的各類資源數(shù)目,它含有m個(gè)元素,在執(zhí)行安全算法開始時(shí),Work:=Available。 Finish,表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成。開始時(shí)限做Finishi:=false;當(dāng)有足夠資源分配給進(jìn)程時(shí),再令Finishi:=true。(2)從進(jìn)程集合中找到一個(gè)能滿足下述條

35、件的進(jìn)程: Finishi = false; Needi,j <= Workj;若找到,執(zhí)行步驟(3),否則,執(zhí)行步驟(4)(3) 當(dāng)進(jìn)程Pi獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:Workj:=Workj + Allocationi,j;Finishi:=true;go to step 2;(4) 如果所有進(jìn)程的Finishi = true都滿足,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。死鎖的檢測(cè)和解除-資源分配圖,檢測(cè)方法、解除方法資源分配圖:系統(tǒng)死鎖可利用資源分配圖來描述。該圖是由一組節(jié)點(diǎn)N和一組邊E所組成的一個(gè)對(duì)偶G=(N1E)。用圓圈代表一

36、個(gè)進(jìn)程,用方框代表一類資源。檢查方法:我們可以利用把資源分配圖加以簡化的方法,來檢查當(dāng)系統(tǒng)處于S狀態(tài)時(shí)是否為死鎖狀態(tài)。簡化方法如下: 在資源分配圖中,找出一個(gè)既不阻塞又非獨(dú)立的進(jìn)程結(jié)點(diǎn)Pi。分配資源使Pi運(yùn)行再釋放全部資源,相當(dāng)于小區(qū)Pi所求的請(qǐng)求邊和分配邊,使之成為孤立的結(jié)點(diǎn)。 Pi釋放資源后,使其他進(jìn)程獲取資源運(yùn)行。這樣不斷減緩資源分配圖 在進(jìn)程一系列的簡化后,若能消去圖中所有的邊,使所有的進(jìn)程結(jié)點(diǎn)都成為孤立結(jié)點(diǎn),則成該圖是可完全簡化的。有關(guān)文件已經(jīng)證明,所有的簡化順序,都將得到相同的不可簡化圖。S為死鎖的充分條件是:當(dāng)且僅當(dāng)S狀態(tài)的資源分配圖是不可完全簡化的。該充分條件被稱為死鎖定理。解

37、除方法: 常用解除死鎖的兩種方法是: 剝奪資源; 撤銷進(jìn)程。 ProcessAllocationNeedAvailableP00 0 3 20 0 1 21 6 2 2P11 0 0 01 7 5 0P21 3 5 42 3 5 6P30 3 3 20 6 5 2P40 0 1 40 6 5 6 在銀行家算法中,若出現(xiàn)下述資源分配情況:試問: 該狀態(tài)是否安全? 若進(jìn)程P2提出請(qǐng)求Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?該狀態(tài)是安全的,因?yàn)榇嬖谝粋€(gè)安全序列< P0P3P4P1P2>。下表為該時(shí)刻的安全序列表。資源情況進(jìn)程WorkNeedAllocationWork

38、+AllocationFinishP0P3P4P1P21 6 2 21 6 5 41 9 8 71 9 9 112 9 9 110 0 1 20 6 5 20 6 5 61 7 5 02 3 5 60 0 3 20 3 3 30 0 1 41 0 0 01 3 5 41 6 5 41 9 8 71 9 9 112 9 9 113 12 14 17truetruetruetruetrue若進(jìn)程P2提出上述請(qǐng)求,系統(tǒng)不能將資源分配給它,因?yàn)榉峙渲笙到y(tǒng)將進(jìn)入不安全狀態(tài)。 P2請(qǐng)求資源:P2發(fā)出請(qǐng)求向量Request2(1,2,2,2),系統(tǒng)按銀行家算法進(jìn)行檢查:Request2(1,2,2,2)N

39、eed2(2,3,5,6);Request2(1,2,2,2)Available(1,6,2,2);系統(tǒng)暫時(shí)先假定可為P2分配資源,并修改P2的有關(guān)數(shù)據(jù),如下表:AllocationNeedAvailable2 5 7 61 1 3 40 4 0 0 可用資源Available(0,4,0,0)已不能滿足任何進(jìn)程的需要。第四章邏輯地址和物理地址的概念 邏輯地址(Logical Address)是指由程式產(chǎn)生的段偏移地址部分。 物理地址(Physical Address)是指CPU外部地址總線上的尋址物理內(nèi)存地址信號(hào),是地址變換的最終結(jié)果地址。 什么是地址重定位(地址變換),變換的時(shí)機(jī)(靜態(tài)地址

40、重定位和動(dòng)態(tài)地址重定位) 地址重定位就是把程序中相對(duì)地址變換為絕對(duì)地址。通常是把在裝入時(shí)對(duì)目標(biāo)程序中指令和數(shù)據(jù)的修改過程稱為重定位。有靜態(tài)重定位和動(dòng)態(tài)重定位兩種重定位技術(shù)。 因?yàn)榈刂纷儞Q通常是在裝入時(shí)一次完成的,以后不再改變,故稱為靜態(tài)重定位。 動(dòng)態(tài)重定位,在運(yùn)行過程中程序在內(nèi)存中的位置可能經(jīng)常要改變,此時(shí)就應(yīng)采用動(dòng)態(tài)運(yùn)行時(shí)裝入的方式。動(dòng)態(tài)運(yùn)行時(shí)的裝入程序在把裝入模塊裝入內(nèi)存后,并不立即把裝入模塊中的相對(duì)地址轉(zhuǎn)換為絕對(duì)地址,而是把這種地址轉(zhuǎn)換推遲到程序真正要執(zhí)行時(shí)才進(jìn)行。因此,裝入內(nèi)存后的所有地址都仍是相對(duì)地址。為使地址轉(zhuǎn)換不影響指令的執(zhí)行速度,這種方式需要一個(gè)重定位寄存器的支持。 什么是虛擬

41、存儲(chǔ)器:所謂虛擬存儲(chǔ)器,是指具有請(qǐng)求調(diào)入功能和置換功能,能從邏輯上對(duì)內(nèi)存容量加以擴(kuò)充的一種存儲(chǔ)系統(tǒng)。其邏輯容量由內(nèi)存容量和外存容量之和所決定,其運(yùn)行速度接近于內(nèi)存速度,而每位的成本卻又接近于外存。引入的原因: 有的作業(yè)很大,要求的內(nèi)存空間超過了內(nèi)存總?cè)萘?,不能裝入內(nèi)存,致使該作業(yè)無法運(yùn)行。 有大量作業(yè)要求運(yùn)行,但由于內(nèi)存容量不足以容納所有這些作業(yè),只能將少數(shù)作業(yè)裝入內(nèi)存讓它們運(yùn)行,而將其他大量的作業(yè)駐留在外存上等待。 常規(guī)存儲(chǔ)器管理方式:一次性;駐留性 局部性原理的提出:時(shí)間局限性;空間局限性。一個(gè)解決方式是從邏輯上擴(kuò)充內(nèi)存容量,這正是虛擬存儲(chǔ)技術(shù)所要解決的主要問題。虛存空間容量由什么因素決定

42、其容量由內(nèi)存容量和外存容量之和決定。虛擬存儲(chǔ)器有哪些特征?最本質(zhì)的特征是什么? 對(duì)換性,多次性,虛擬性三大特征。 虛擬性是最本質(zhì)的特征對(duì)于分區(qū)、分頁、分段、段頁式(純/請(qǐng)求)存儲(chǔ)管理方式,掌握:1)基本思想2)存儲(chǔ)管理使用的數(shù)據(jù)結(jié)構(gòu)(空閑空間管理的/作業(yè)占用空間管理的)3)邏輯地址的格式,地址變換的時(shí)間(動(dòng)態(tài)/靜態(tài))、方法4)存儲(chǔ)分配和存儲(chǔ)回收過程5)是否能實(shí)現(xiàn)虛擬存儲(chǔ);如果能,如何實(shí)現(xiàn)6)其他特點(diǎn):是否存在碎片問題(原因);是否能實(shí)現(xiàn)存儲(chǔ)保護(hù)(如何實(shí)現(xiàn))等7)請(qǐng)求分頁式存儲(chǔ)管理的頁面置換過程和簡單的頁面置換算法何為靜態(tài)鏈接?何謂裝入時(shí)動(dòng)態(tài)鏈接和運(yùn)行時(shí)動(dòng)態(tài)鏈接? 靜態(tài)鏈接是指在程序運(yùn)行之前,先

43、將各自目標(biāo)模塊及它們所需的庫函數(shù),鏈接成一個(gè)完整的裝配模塊,以后不再拆開的鏈接方式。 裝入時(shí)動(dòng)態(tài)鏈接是指將用戶源程序編譯后所得到的一組目標(biāo)模塊,在裝入內(nèi)存時(shí),采用邊裝入邊鏈接的一種鏈接方式,即在裝入一個(gè)目標(biāo)模塊時(shí),若發(fā)生一個(gè)外部模塊調(diào)用事件,將引起裝入程序去找相應(yīng)的外部目標(biāo)模塊,把它裝入內(nèi)存中,并修改目標(biāo)模塊中的相對(duì)地址。 運(yùn)行時(shí)動(dòng)態(tài)鏈接是將對(duì)某些模塊的鏈接推遲到程序執(zhí)行時(shí)才進(jìn)行鏈接,也就是,在執(zhí)行過程中,當(dāng)發(fā)現(xiàn)一個(gè)被調(diào)用模塊尚未裝入內(nèi)存時(shí),立即由OS去找到該模塊并將之裝入內(nèi)存,把它鏈接到調(diào)用者模塊上。 第五章 I/O系統(tǒng)的組成(I/O設(shè)備、控制器、通道、總線) 設(shè)備分類情況,什么是虛擬設(shè)備,

44、引入的目的按設(shè)備的使用特性分類:存儲(chǔ)設(shè)備;輸入/輸出設(shè)備按傳輸速率分類:低速設(shè)備;中速設(shè)備;高速設(shè)備按信息交換的單位分類:塊設(shè)備;字符設(shè)備按設(shè)備的共享屬性分類:獨(dú)占設(shè)備;共享設(shè)備;虛擬設(shè)備虛擬設(shè)備:通過虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備變換為若干臺(tái)邏輯設(shè)備,供若干個(gè)用戶(進(jìn)程)同時(shí)使用。引入的目的:將慢速的獨(dú)占設(shè)備改造成多個(gè)用戶可共享的同類設(shè)備,提高設(shè)備的利用率 OS在設(shè)備管理中引入的相關(guān)技術(shù):中斷技術(shù)、DMA技術(shù)、通道技術(shù)、總線技術(shù)、緩沖技術(shù)、 Spooling技術(shù)(Spooling系統(tǒng),可以用來實(shí)現(xiàn)虛擬設(shè)備)-組成和工作原理中斷技術(shù):組成:CPU,I/O控制器工作原理: CPU:向控制器發(fā)出I/O命令

45、,然后繼續(xù)執(zhí)行計(jì)算任務(wù); I/O控制器:執(zhí)行I/O命令,控制外部設(shè)備完成指定的I/O操作,然后向CPU發(fā)送中斷信號(hào); CPU:暫停正在執(zhí)行的任務(wù),處理I/O中斷,完成后再返回,繼續(xù)執(zhí)行原來的任務(wù)。DMA技術(shù):組成:CPU,內(nèi)存,DMA控制器(主機(jī)與DMA控制器的接口;DMA控制器域塊設(shè)備的接口;I/O控制邏輯;命令/狀態(tài)寄存器CR;內(nèi)存地址寄存器MAR;數(shù)據(jù)寄存器DR;數(shù)據(jù)計(jì)數(shù)器DC)工作原理:當(dāng)處理器需要讀/寫一整塊數(shù)據(jù)時(shí),給DMA控制單元發(fā)送一條命令,包含:一次讀或?qū)懙闹噶?、I/O設(shè)備的地址、開始讀或?qū)懙闹鞔娴刂?、需要傳送的?shù)據(jù)長度等;處理器發(fā)送完命令后就可處理其它事情;DMA控制器自己獨(dú)

46、立管理整塊數(shù)據(jù)的傳送;當(dāng)這個(gè)過程完成后,它會(huì)向處理器發(fā)一個(gè)中斷請(qǐng)求。處理器只在一塊數(shù)據(jù)開始傳送和傳送結(jié)束時(shí)關(guān)注一下I/O操作即可。通道技術(shù):組成:每條通道指令包含的信息是:操作碼、內(nèi)存地址、計(jì)數(shù)、程序結(jié)束位、記錄結(jié)束位。工作原理:把DMA方式中CPU以數(shù)據(jù)塊為單位對(duì)讀/寫任務(wù)的干預(yù),減少為以一次讀/寫任務(wù)及有關(guān)的控制和管理為單位的干預(yù)。 同時(shí),又可實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,從而更有效地提高整個(gè)系統(tǒng)的資源利用率。緩沖技術(shù):組成:單緩沖,雙緩沖,循環(huán)緩沖,緩沖池工作原理:在CPU與外設(shè)之間建立緩沖區(qū),用于暫存CPU與外設(shè)間交換的數(shù)據(jù),從而緩沖CPU與外設(shè)間速度不匹配的矛盾。Spo

47、oling技術(shù)組成:在磁盤上開辟輸入井和輸出井;在內(nèi)存中開辟輸入緩沖區(qū)和輸出緩沖區(qū);OS要有相關(guān)的管理進(jìn)程:SPi,模擬脫機(jī)輸入;SPo模擬脫機(jī)輸出。工程原理:脫機(jī)輸入和脫機(jī)輸出在多道環(huán)境下,可以用OS的一道管理程序?qū)崿F(xiàn)從I/O設(shè)備輸入數(shù)據(jù)并存放到磁盤上,模擬脫機(jī)輸入;用OS的另一道管理程序?qū)⒋疟P上的數(shù)據(jù)輸出到I/O設(shè)備上,模擬脫機(jī)輸出;這種假脫機(jī)I/O操作稱為Spooling技術(shù)。Spooling是一種虛擬設(shè)備技術(shù)、一種資源轉(zhuǎn)換技術(shù)。 設(shè)備分配的原則,什么是設(shè)備獨(dú)立性(與設(shè)備無關(guān)性)原則:要充分發(fā)揮設(shè)備的使用效率,盡可能地讓設(shè)備忙碌,但又要避免由于不合理的分配方法造成進(jìn)程死鎖;設(shè)備獨(dú)立性:即

48、應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請(qǐng)求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),還必須使用物理設(shè)備名稱。因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能,這非常類似于存儲(chǔ)器管理中所介紹的邏輯地址和物理地址的概念。 什么是磁盤調(diào)度,磁盤調(diào)度的目標(biāo),磁盤調(diào)度算法(FCFS、SSTF、SCAN)的原理、優(yōu)先考慮的因素磁盤調(diào)度:就是當(dāng)有多個(gè)進(jìn)程同時(shí)要求訪問磁盤時(shí),安排對(duì)磁道訪問請(qǐng)求的執(zhí)行順序。磁盤調(diào)度的目標(biāo)是:使磁盤的平均尋道時(shí)間最少。先來先服務(wù)FCFS:根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度。最短尋道時(shí)間優(yōu)先SS

49、FT:要求訪問的磁道與當(dāng)前磁頭所在的磁道距離最近,以使每次的尋道時(shí)間最短。掃描算法SCAN:不僅考慮到欲訪問的磁道與當(dāng)前磁道間的距離,更優(yōu)先考慮的是磁頭當(dāng)前的移動(dòng)方向。 為什么要引入設(shè)備獨(dú)立性?如何實(shí)現(xiàn)設(shè)備獨(dú)立性? 引入設(shè)備獨(dú)立性,可使應(yīng)用程序獨(dú)立于具體的物理設(shè)備,是設(shè)備分配具有靈活性。另外容易實(shí)現(xiàn)I/O重定向。 為了實(shí)現(xiàn)設(shè)備獨(dú)立性,必須在設(shè)備驅(qū)動(dòng)程序之上設(shè)置一層設(shè)備獨(dú)立性軟件,用來執(zhí)行所有I/O設(shè)備的公用操作,并向用戶層軟件提供統(tǒng)一接口。關(guān)鍵是系統(tǒng)中必須設(shè)置一張邏輯設(shè)備表LUT用來進(jìn)行邏輯設(shè)備到物理設(shè)備的映射,其中每個(gè)表目中包含了邏輯設(shè)備名、物理設(shè)備名和設(shè)備驅(qū)動(dòng)程序入口地址三項(xiàng);當(dāng)應(yīng)用程序用

50、邏輯設(shè)備名請(qǐng)求分配I/O設(shè)備時(shí),系統(tǒng)必須為它分配相應(yīng)的物理設(shè)備,并在LUT中建立一個(gè)表目,以后進(jìn)程利用該邏輯設(shè)備名請(qǐng)求I/O操作時(shí),便可從LUT中得到物理設(shè)備名和驅(qū)動(dòng)程序入口地址。(OS實(shí)現(xiàn)設(shè)備獨(dú)立性的方法:設(shè)置設(shè)備獨(dú)立性軟件(P164)、配置邏輯設(shè)備表,實(shí)現(xiàn)邏輯設(shè)備到物理設(shè)備的映射。) 什么是虛擬設(shè)備?其實(shí)現(xiàn)所依賴的關(guān)鍵技術(shù)有哪些? 虛擬設(shè)備是指通過虛擬技術(shù),可將一臺(tái)獨(dú)占設(shè)備變換成若干臺(tái)邏輯設(shè)備,供若干個(gè)用戶(進(jìn)程)同時(shí)使用。由于多臺(tái)邏輯設(shè)備實(shí)際上并不存在,而只是給用戶的一種感覺,因此被稱為虛擬設(shè)備。其實(shí)現(xiàn)所依賴的關(guān)鍵技術(shù)是SPOOLing技術(shù)。 試說明Spooling系統(tǒng)的組成。 輸入井和

51、輸出井; 輸入緩沖區(qū)和輸出緩沖區(qū); 輸入進(jìn)程SPi和輸出進(jìn)程SPo。第六章什么是文件的邏輯結(jié)構(gòu),記錄式文件的邏輯結(jié)構(gòu)有哪幾種文件的邏輯結(jié)構(gòu):這是用用戶觀點(diǎn)出發(fā)所觀察到的文件組織形式,是用戶可以直接處理的數(shù)據(jù)及其結(jié)構(gòu),它獨(dú)立于文件的物理特性,又稱為文件組織。記錄式文件的邏輯結(jié)構(gòu):1、有結(jié)構(gòu)文件:記錄的長度可分為定長和不定長兩類:定長記錄;變長記錄根據(jù)用戶和系統(tǒng)管理上的需要,可采用多種方式來組織這些記錄,形成下述的幾種文件:順序文件;索引文件;索引順序文件。2、無結(jié)構(gòu)文件:流式文件,其長度以字節(jié)為單位。 什么是文件的物理結(jié)構(gòu),文件的物理結(jié)構(gòu)(外存分配方式)有哪幾種,每一種文件物理結(jié)構(gòu)的實(shí)現(xiàn)方法,需

52、要用到的數(shù)據(jù)結(jié)構(gòu),目錄中如何記錄文件地址又稱為文件的存儲(chǔ)結(jié)構(gòu),是指文件在外存上的存儲(chǔ)組織形式。這不僅與存儲(chǔ)介質(zhì)的存儲(chǔ)性能有關(guān),而且與所采用的外存分配方式有關(guān)。外存的分配方式:連續(xù)分配(P213)a.實(shí)現(xiàn)方式:為每個(gè)文件分配一組位置相鄰接的盤塊(物理地址連續(xù)的外存空間),文件中的邏輯頁被順序地存放到相鄰的物理盤塊中。這保證了文件中的邏輯順序與文件占用盤塊順序的一致性。這樣物理結(jié)構(gòu)的文件稱為順序文件。每個(gè)文件都從分配給它的一個(gè)盤塊的第一個(gè)字節(jié)開始存放。b.記錄文件地址:在文件的目錄中,存放該文件的第一個(gè)記錄所在的盤塊號(hào)和文件的長度(共占多少塊)鏈接分配(P215)a.實(shí)現(xiàn)方式:為每個(gè)文件分配一組位

53、置離散的盤塊,每個(gè)盤塊中存放文件的一個(gè)邏輯頁。通過在每個(gè)盤塊上設(shè)置一個(gè)指針,將屬于同一個(gè)文件的盤塊順序地鏈接在一起,鏈接的順序和文件的邏輯順序一致。這樣物理結(jié)構(gòu)的文件稱為鏈接文件。鏈接方式有隱式鏈接和顯式鏈接兩種。b.記錄文件地址:顯示鏈接:每個(gè)文件的第一個(gè)盤塊的編號(hào)存放在文件目錄中;文件的其他盤塊的編號(hào)存放在FAT中;隱式鏈接:目錄和FAT一起記錄了哪些盤塊分給了這個(gè)文件以及這些盤塊中內(nèi)容的邏輯順序。索引分配(P221)a.實(shí)現(xiàn)方式: 為每個(gè)文件分配一組位置離散的盤塊,為每個(gè)文件建立一個(gè)物理結(jié)構(gòu)的索引表,記錄分配給該文件的物理盤塊,以及這些盤塊和文件邏輯順序的對(duì)應(yīng)關(guān)系。建立一個(gè)文件時(shí),要初始

54、化它的索引表,并將索引表的地址放到文件的目錄中。打開一個(gè)文件時(shí),文件的索引表也被同時(shí)讀入內(nèi)存。b.記錄文件地址: 單級(jí)索引:每個(gè)文件一張索引表,這張索引表放在一個(gè)盤塊中多級(jí)索引:對(duì)于一個(gè)長文件的索引表(內(nèi)容同上,但單個(gè)盤塊放不下),可以將它存放在若干個(gè)離散的盤塊中。 再為這些索引塊建立一個(gè)索引表,存放在一個(gè)盤塊中,這樣就形成了一個(gè)文件的兩級(jí)索引?;旌纤饕何募到y(tǒng)混合使用多種分配方式。文件的目錄中可以存放不同形式的地址信息: ? 直接地址,文件數(shù)據(jù)的盤塊號(hào); ? 一次間接地址,文件索引塊的盤塊號(hào); ? 二次間接地址,文件二級(jí)索引塊的盤塊號(hào)。 單級(jí)、兩級(jí)和多級(jí)(樹型)目錄結(jié)構(gòu)的構(gòu)成,逐步能實(shí)現(xiàn)的功能(特點(diǎn))單級(jí)目錄結(jié)構(gòu):構(gòu)成: 為整個(gè)文件系統(tǒng)建立一張目錄表,每個(gè)文件占一個(gè)目錄項(xiàng)。功能: 優(yōu)點(diǎn):簡單且能實(shí)現(xiàn)目錄管理的基本功能-按名存取。 缺點(diǎn):(1)查找

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論