操作系統(tǒng)第六章

1. I/O系統(tǒng)組成


包括:

需要用于輸入男旗、輸出和存儲信息的設(shè)備舶斧;

需要相應的設(shè)備控制器;

控制器與CPU連接的高速總線察皇;

有的大中型計算機系統(tǒng)捧毛,配置I/O通道;

(1)I/O設(shè)備的類型

從OS的觀點让网,按其重要的性能指標進行分類如下:

按傳輸速率分類:

低速呀忧、中速、高速(鍵盤溃睹、打印機而账、磁盤)

使用:存儲設(shè)備、輸入輸出設(shè)備

按信息交換的單位分類:

塊設(shè)備:有結(jié)構(gòu)因篇、速率高泞辐、可尋址、DMA方式控制

字符設(shè)備:無結(jié)構(gòu)竞滓、速率低咐吼、不可尋址、中斷方式控制

按設(shè)備的共享屬性分類:

獨占:打印機

共享:一個時刻上仍然是只被一個進程占用商佑【馇眩可尋址、可隨機訪問的色后備茶没。磁盤肌幽。

虛擬:使一臺獨占設(shè)備變換為若干臺邏輯設(shè)備,供給若干用戶“同時使用”

(2)I/O設(shè)備中的接口

與控制器的接口有三種類型的信號:

a)? 數(shù)據(jù)信號線(進出數(shù)據(jù)轉(zhuǎn)換抓半、緩沖后傳送)

b) 控制信號線(讀\寫\移動磁頭等控制)

c)? 狀態(tài)信號線


(3)設(shè)備控制器

控制器是CPU與I/O設(shè)備之間的接口喂急,作為中間人接收從CPU發(fā)來的命令,并去控制I/O設(shè)備工作笛求,以使處理機脫離繁雜的設(shè)備控制事務(wù)

①?基本功能:

*接收和識別CPU命令(控制寄存器:存放命令和參數(shù))

*標識和報告設(shè)備的狀態(tài)(狀態(tài)寄存器)

*數(shù)據(jù)交換(數(shù)據(jù)寄存器)

*地址識別(控制器識別設(shè)備地址廊移、寄存器地址。地址譯碼器)

*數(shù)據(jù)緩沖(協(xié)調(diào)I/O與CPU的速度差距)

*差錯控制

②組成:

*設(shè)備控制器與處理機的接口

*設(shè)備控制器與設(shè)備的接口

*I/O邏輯:通過一組控制線與處理機交互


(4)I/O通道

設(shè)備控制器已大大減少CPU對I/O的干預探入,但當主機的外設(shè)很多時狡孔,CPU的負擔仍然很重。在CPU和設(shè)備控制器之間增設(shè)一個硬件機構(gòu):“通道”

*設(shè)置通道后:

CPU只需向通道發(fā)送一條I/O指令即可不再干預后續(xù)操作新症。

通道形成通道程序步氏,執(zhí)行I/O操作,完成后向CPU發(fā)中斷信號

*實際上I/O通道是一種特殊的處理機

*主要目的:

建立更獨立的I/O操作徒爹,解放CPU

*通道類型:

根據(jù)其控制的外圍設(shè)備的不同類型荚醒,信息交換方式也可分為以下三種類型:

1)????字節(jié)多路通道

2)????數(shù)組選擇通道

3)????數(shù)組多路通道


(5)??

2. 設(shè)備管理

管理對象

I/O設(shè)備和相應的設(shè)備控制器(I/O系統(tǒng)組成)

基本任務(wù)

完成用戶提出的I/O請求芋类,

提高I/O速率、改善I/O設(shè)備的利用率界阁。

為更高層進程方便使用設(shè)備提供手段

(1)中斷

中斷處理流程:

a)?測定是否有未響應的中斷信號

b)? 保護被中斷進程的CPU環(huán)境

c)? 轉(zhuǎn)入相應的設(shè)備處理程序

d)?中斷處理

e)? 恢復CPU的現(xiàn)場

(2)

3. I/O系統(tǒng)的基本功能及模型

(1)功能:

*隱藏物理設(shè)備細節(jié)

*實現(xiàn)設(shè)備無關(guān)性

*提高處理機和設(shè)備的并行性

*對I/O設(shè)備進行控制

*確保對設(shè)備正確共享

*錯誤處理

(2)層次結(jié)構(gòu):

系統(tǒng)中的設(shè)備管理模塊分為若干個層次

下層為上層提供服務(wù)侯繁,完成輸入輸出功能中的某些子功能,并屏蔽功能實現(xiàn)的細節(jié)


①用戶層軟件

實現(xiàn)與用戶交互的接口泡躯,用戶可直接調(diào)用在用戶層提供的贮竟、與I/O操作有關(guān)的庫函數(shù),對設(shè)備進行操作较剃。

②設(shè)備獨立軟件

用于實現(xiàn)用戶程序與設(shè)備驅(qū)動器的統(tǒng)一接口咕别、設(shè)備命名、設(shè)備的保護以及設(shè)備的分配與釋放等写穴,同時為設(shè)備管理和數(shù)據(jù)傳送提供必要的存儲空間惰拱。

③設(shè)備驅(qū)動程序

與硬件直接相關(guān),用于具體實現(xiàn)系統(tǒng)對設(shè)備發(fā)出的操作指令啊送,驅(qū)動I/O設(shè)備工作的驅(qū)動程序偿短。

④中斷處理程序

用于保存被中斷進程的CPU環(huán)境,轉(zhuǎn)入相應的中斷處理程序進行處理馋没,處理完后再恢復被中斷進程的現(xiàn)場后昔逗,返回到被中斷進程。


4. I/O控制方式

1)程序I/O方式

2)中斷驅(qū)動I/O方式

3)直接存儲器訪問DMA 方式

①該方式的特點是:

1)???數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊篷朵;

2)???所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的勾怒,或者直接從內(nèi)存進設(shè)備;不需要CPU操作款票。

3)????CPU干預進一步減少:僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時控硼,才需CPU干預,整塊數(shù)據(jù)的傳送是在控制器的控制下完成的艾少。

????可見DMA方式又是成百倍的減少了CPU對I/O的干預,進一步提高了CPU與I/O設(shè)備的并行操作程度翼悴。

②DMA控制器的組成

DMA控制器由三部分組成:

主機與DMA控制器的接口缚够;

DMA控制器與塊設(shè)備的接口;

3.I/O控制邏輯

③DMA工作過程

CPU先向磁盤控制器發(fā)送一條讀命令鹦赎。

該命令被送到命令寄存器CR中谍椅。

同時發(fā)送數(shù)據(jù)讀入到內(nèi)存的起始地址,該地址被送入MAR中古话;

要讀數(shù)據(jù)的字數(shù)則送入數(shù)據(jù)計數(shù)器DC中雏吭;

將磁盤中的數(shù)據(jù)原地址直接送入DMA控制器的I/O控制邏輯上,按設(shè)備狀態(tài)啟動磁頭到相應位置陪踩。

啟動DMA控制器控制邏輯開始進行數(shù)據(jù)傳送

DMA控制器讀入一個數(shù)據(jù)到數(shù)據(jù)寄存器DR中杖们,然后傳到內(nèi)存MAR地址中悉抵;

接著MAR+1,DC-1,判斷DC是否為0,如否摘完,繼續(xù)姥饰,反之控制器發(fā)中斷請求,傳送完畢孝治。


4)I/O通道控制方式

?

?

5.用戶層的I/O軟件

小部分I/O系統(tǒng)軟件放在了用戶應用層上

1)?系統(tǒng)調(diào)用與庫函數(shù)

a)?不允許運行在用戶態(tài)的應用進程列粪,去直接調(diào)用運行在核心態(tài)(系統(tǒng)態(tài))的OS過程。

b)?用進程在運行時谈飒,又必須取得OS所提供的服務(wù)岂座。

于是:

OS在用戶層中引入了系統(tǒng)調(diào)用,應用程序可以通過它杭措,間接調(diào)用OS中的I/O過程掺逼,對I/O設(shè)備進行操作

2) 設(shè)備分配中的虛擬技術(shù)

?????? —— SPOOLing

技術(shù)

SPOOLing系統(tǒng)的組成:

*輸入井和輸出井:磁盤上開辟兩大存儲空間。輸入井模擬脫機輸入的磁盤設(shè)備瓤介,輸出井模擬脫機輸出時的磁盤吕喘。

*輸入緩沖區(qū)和輸出緩沖區(qū):為緩解速度矛盾,內(nèi)存中開辟兩大緩沖空間刑桑,輸入緩沖區(qū)暫存輸入設(shè)備送來的數(shù)據(jù)氯质,再送給輸入井;輸出緩沖區(qū)暫存輸出井送來的數(shù)據(jù)祠斧,再送輸出設(shè)備

*輸入進程和輸出進程:

用一進程模擬脫機輸入時外圍設(shè)備控制器的功能闻察,把低速輸入設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;

用另一進程模擬脫機輸出時外圍設(shè)備控制器的功能琢锋,把數(shù)據(jù)從磁盤上傳送到低速輸出設(shè)備上


3)SPOOLing系統(tǒng)的特點

*提高了I/O的速度

*實現(xiàn)了虛擬設(shè)備功能


6. 緩沖區(qū)管理

[if !supportLists]n? [endif]I/O控制方式減少CPU對I/O的干預提高利用率辕漂;

[if !supportLists]n? [endif]緩沖則通過緩和CPU和I/O設(shè)備速度不匹配矛盾,增加CPU和I/O設(shè)備的并行性吴超,提高利用率钉嘹。

[if !supportLists]n? [endif]現(xiàn)代OS中,幾乎所有的I/O設(shè)備與處理機交換數(shù)據(jù)時鲸阻,都用了緩沖區(qū)跋涣。

[if !supportLists]n? [endif]引入緩沖區(qū)的主要原因:

[if !supportLists]n? [endif]緩和CPU與I/O設(shè)備間速度不匹配的矛盾。

[if !supportLists]n? [endif]緩沖區(qū)數(shù)據(jù)成批傳入內(nèi)存鸟悴,也可進一步減少對CPU的中斷頻率

[if !supportLists]n? [endif]最終目的:提高CPU和I/O設(shè)備的并行性陈辱。

[if !supportLists]1)[endif]單緩沖與多緩沖

(1)單緩沖

每當用戶進程發(fā)出一I/O請求時,OS在主存中為之分配一個緩沖區(qū)细诸。CPU和外設(shè)輪流使用沛贪,一方處理完后等待對方處理。

(2)雙緩沖

兩個緩沖區(qū),CPU和外設(shè)不再針對一塊交替

可能實現(xiàn)連續(xù)處理無需等待對方利赋。前提是CPU和外設(shè)對一塊數(shù)據(jù)的處理速度相近

* 雙緩沖還適合雙向通訊:一個用作發(fā)送緩沖區(qū)水评,另一個用作接受緩沖區(qū)。

2)循環(huán)緩沖

設(shè)置多塊緩沖區(qū)

用循環(huán)結(jié)構(gòu)組織隐砸,只供兩個相關(guān)進程使用

順一個方向放入或取出


①?循環(huán)緩沖的組成

多個緩沖區(qū)之碗。大小相同,三種類型:

b)? 備裝輸入數(shù)據(jù)的空緩沖區(qū)R

c) 裝滿數(shù)據(jù)的緩沖區(qū)G

d) 計算進程正在使用的現(xiàn)行工作緩沖區(qū)C

多個指針季希。

e) 指示正在使用的緩沖區(qū)C的指針Current

f)? 指示計算進程下一個可取的緩沖區(qū)G的指針Nextg

g) 指示輸入進程下次可放的緩沖區(qū)R的指針Nexti

②循環(huán)緩沖區(qū)的使用

③進程同步

[if !supportLists]3)[endif]緩沖池

提高緩沖區(qū)的利用率褪那。在池中設(shè)置多個可供若干個進程共享的緩沖區(qū)

[if !supportLists]n?? [endif]組織形式:隊列及隊列指針

[if !supportLists]①? [endif]緩沖池的組成

對于既可輸入又可輸出的公用緩沖池,至少應含有下列三種類型的緩沖區(qū):

[if !supportLists]a)??[endif]空緩沖區(qū)式塌;

[if !supportLists]b)??[endif]裝滿輸入數(shù)據(jù)的緩沖區(qū)博敬;

[if !supportLists]c)??[endif]裝滿輸出數(shù)據(jù)的緩沖區(qū);

為方便管理峰尝,將上述類型相同的緩沖區(qū)連成隊列

[if !supportLists]¨?? [endif]空緩沖區(qū)隊列(所有進程都可用)

[if !supportLists]¨?? [endif]輸入隊列(n個進程有各自的隊列)

[if !supportLists]¨?? [endif]輸出隊列(n個進程有各自的隊列)

*(隊列長度不固定偏窝,根據(jù)進程實際情況靈活變動,需要多少用多少)


[if !supportLists]②? [endif]緩沖區(qū)的工作方式

收容輸入

提取輸入

收容輸出

提取輸出

使用:Getbuf(隊列武学,工作區(qū))

Putbuf(隊列祭往,工作區(qū))

緩沖池:可雙向緩沖;緩沖區(qū)整體利用率高


7火窒、磁盤存儲器的性能和調(diào)度

1)磁盤性能

與格式有關(guān)

[if !supportLists]n? [endif]數(shù)據(jù)的組織和格式

*盤片硼补、面、磁道熏矿、扇區(qū)

*為方便處理已骇,每條磁道存儲容量相同,每個磁道上的每個扇區(qū)相當于一個盤塊票编。磁盤”格式化”的過程就是按規(guī)定的格式規(guī)劃盤塊

?

與速度有關(guān)

[if !supportLists]n? [endif]磁盤類型

[if !supportLists]¨? [endif]固定磁頭(每道一磁頭)

[if !supportLists]¨? [endif]移動磁頭(每盤一磁頭)

[if !supportLists]n? [endif]訪問時間的計算

[if !supportLists]¨? [endif]尋道時間(到磁道)

[if !supportLists]¨? [endif]旋轉(zhuǎn)延遲(到扇區(qū))

[if !supportLists]¨? [endif]傳輸時間

????????????????? 傳輸時間占總時間的比例最小褪储,磁盤讀寫速度的提高要選擇合適的調(diào)度算法,減少前兩項用時慧域,使所有作業(yè)的磁盤處理時間均衡鲤竹。

2)磁盤調(diào)度方法

對所有請求訪問磁盤的進程進行合理調(diào)度,使對磁盤的平均訪問時間最小

目標:使平均尋道時間最少

?

算法:

①? FCFS

*多個進程的磁盤I/O請求構(gòu)成一個隨機分布的請求隊列吊趾。

*磁盤I/O執(zhí)行順序按磁盤請求的先后順序宛裕。

②? 最短尋道時間優(yōu)先SSTF

選擇從當前磁頭位置出發(fā)移動最少的磁盤I/O請求

③? 掃描算法SCAN(磁盤電梯調(diào)度算法)

SSTF會導致“饑餓”現(xiàn)象

總選擇最近的磁道訪問,遠磁道請求的進程會長時間得不到執(zhí)行论泛。

改進:

考慮距離的同時,更優(yōu)先考慮方向

SCAN算法

規(guī)定磁頭移動方向:自里向外蛹屿,再自外向里移動屁奏。

后續(xù)的I/O磁道請求,哪個在規(guī)定方向上距離最近错负,就先執(zhí)行哪個坟瓢。

循環(huán)掃描CSCAN

SCAN的錯過問題:

容易錯過與當前磁道距離近勇边,但方向不一致的磁道。

修改:將SCAN規(guī)定的移動方向改為“單向移動”

由里向外后折联,再由里向外

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末粒褒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子诚镰,更是在濱河造成了極大的恐慌奕坟,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件清笨,死亡現(xiàn)場離奇詭異月杉,居然都是意外死亡,警方通過查閱死者的電腦和手機抠艾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門苛萎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人检号,你說我怎么就攤上這事腌歉。” “怎么了齐苛?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵翘盖,是天一觀的道長。 經(jīng)常有香客問我脸狸,道長最仑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任炊甲,我火速辦了婚禮泥彤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卿啡。我一直安慰自己吟吝,他們只是感情好,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布颈娜。 她就那樣靜靜地躺著剑逃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪官辽。 梳的紋絲不亂的頭發(fā)上蛹磺,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機與錄音同仆,去河邊找鬼萤捆。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的俗或。 我是一名探鬼主播市怎,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辛慰!你這毒婦竟也來了区匠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帅腌,失蹤者是張志新(化名)和其女友劉穎驰弄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狞膘,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡揩懒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挽封。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片已球。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辅愿,靈堂內(nèi)的尸體忽然破棺而出智亮,到底是詐尸還是另有隱情,我是刑警寧澤点待,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布阔蛉,位于F島的核電站,受9級特大地震影響癞埠,放射性物質(zhì)發(fā)生泄漏状原。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一苗踪、第九天 我趴在偏房一處隱蔽的房頂上張望颠区。 院中可真熱鬧,春花似錦通铲、人聲如沸毕莱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朋截。三九已至,卻和暖如春吧黄,著一層夾襖步出監(jiān)牢的瞬間部服,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工拗慨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饲宿,地道東北人厦酬。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓胆描,卻偏偏與公主長得像瘫想,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子昌讲,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5国夜? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 27,489評論 1 45
  • 感恩自己對峙了我的因為感覺自己做的不好而愛放棄的毛病窄驹。其實自己是哪種完美主義者。常常逼的自己把可以做好的事情選擇...
    悅心慧兒閱讀 157評論 0 0
  • 1.《原因》 不知道我喜歡你什么 如果知道 那不再喜歡你就很簡單了 2《我希望你能丑一點》 我希望你不化妝 吃的很...
    夢中陶羅閱讀 301評論 1 6