6輸入輸出系統(tǒng)——I/O系統(tǒng)

I/O系統(tǒng)的組成:

需要用于輸入篓跛、輸出和存儲(chǔ)信息的設(shè)備;

需要相應(yīng)的設(shè)備控制器坦刀;

控制器與CPU連接的高速總線愧沟;

有的大中型計(jì)算機(jī)系統(tǒng),配置I/O通道鲤遥;

關(guān)于設(shè)備管理

管理對(duì)象:

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

基本任務(wù):

完成用戶提出的I/O請(qǐng)求沐寺,

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

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

1.I/O系統(tǒng)的功能混坞、模型和接口

1)主要功能:

隱藏物理設(shè)備細(xì)節(jié),方便用戶

用戶使用抽象的I/O命令即可

實(shí)現(xiàn)設(shè)備無(wú)關(guān)性钢坦,方便用戶

用戶可用抽象的邏輯設(shè)備名來(lái)使用設(shè)備究孕,同時(shí)也提高了OS的可移植性和易適應(yīng)性。

提高處理機(jī)和設(shè)備的并行性爹凹,提高利用率:緩沖區(qū)管理

對(duì)I/O設(shè)備進(jìn)行控制:控制方式厨诸、設(shè)備分配、設(shè)備處理

確保對(duì)設(shè)備正確共享:虛擬設(shè)備及設(shè)備獨(dú)立性等

錯(cuò)誤處理


中斷處理程序 處于I/O系統(tǒng)的底層禾酱,直接與硬件進(jìn)行交互 設(shè)備驅(qū)動(dòng)程序 處于次底層微酬,是進(jìn)程和控制器之間的通信程序 功能:將上層發(fā)來(lái)的抽象I/O請(qǐng)求,轉(zhuǎn)換為對(duì)I/O設(shè)備的具體命令和參數(shù)宇植,并把它裝入到設(shè)備控制其中的命令和參數(shù)寄存器中 設(shè)備獨(dú)立性軟件 包括設(shè)備命名得封、設(shè)備分配、數(shù)據(jù)緩沖等軟件?

I/O系統(tǒng)接口:塊設(shè)備接口指郁、流設(shè)備接口忙上、網(wǎng)絡(luò)通信接口

2.I/O設(shè)備和設(shè)備控制器

I/O設(shè)備的類型繁多,從OS的觀點(diǎn)闲坎,按其重要的性能指標(biāo)進(jìn)行分類如下:

按傳輸速率分類:

低速疫粥、中速茬斧、高速(鍵盤、打印機(jī)梗逮、磁盤)

使用:存儲(chǔ)設(shè)備项秉、輸入輸出設(shè)備

按信息交換的單位分類:

塊設(shè)備:有結(jié)構(gòu)、速率高慷彤、可尋址娄蔼、DMA方式控制

字符設(shè)備:無(wú)結(jié)構(gòu)、速率低底哗、不可尋址岁诉、中斷方式控制

I/O通道

主要目的:

建立更獨(dú)立的I/O操作,解放CPU跋选。

數(shù)據(jù)傳送的獨(dú)立

I/0操作的組織涕癣、管理及結(jié)束處理也盡量獨(dú)立。

實(shí)際上I/O通道是一種特殊的處理機(jī):

指令類型單一前标,只用于I/O操作坠韩;

通道沒(méi)有內(nèi)存,它與CPU共享內(nèi)存

3.中斷機(jī)構(gòu)和中斷處理程序


4.設(shè)備驅(qū)動(dòng)程序

?I/O控制方式:
程序I/O方式

中斷驅(qū)動(dòng)I/O方式

直接存儲(chǔ)器訪問(wèn)DMA(字節(jié)—塊)

I/O通道控制方式(組織傳送的獨(dú)立)

宗旨:減少主機(jī)對(duì)I/O控制的干預(yù)炼列,將CPU從繁雜的I/O控制事物中解脫出來(lái)只搁。

5.用戶層的I/O軟件

SPOOLing系統(tǒng)的組成

主要有三大部分(如下頁(yè)圖)

輸入井和輸出井:磁盤上開(kāi)辟兩大存儲(chǔ)空間。輸入井模擬脫機(jī)輸入的磁盤設(shè)備唯鸭,輸出井模擬脫機(jī)輸出時(shí)的磁盤须蜗。

輸入緩沖區(qū)和輸出緩沖區(qū):為緩解速度矛盾硅确,內(nèi)存中開(kāi)辟兩大緩沖空間目溉,輸入緩沖區(qū)暫存輸入設(shè)備送來(lái)的數(shù)據(jù),再送給輸入井菱农;輸出緩沖區(qū)暫存輸出井送來(lái)的數(shù)據(jù)缭付,再送輸出設(shè)備。

輸入進(jìn)程和輸出進(jìn)程循未。

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

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

特點(diǎn):

提高了I/O的速度。利用輸入輸出井模擬成脫機(jī)輸入輸出嫂粟,緩和了CPU和I/O設(shè)備速度不匹配的矛盾娇未。

將獨(dú)占設(shè)備改造為共享設(shè)備。并沒(méi)有為進(jìn)程分配設(shè)備星虹,而是為進(jìn)程分配一存儲(chǔ)區(qū)和建立一張I/O請(qǐng)求表零抬。

最終镊讼,實(shí)現(xiàn)了虛擬設(shè)備功能。多個(gè)進(jìn)程可“同時(shí)”使用一臺(tái)獨(dú)占設(shè)備平夜。

6.緩沖區(qū)管理

引入緩沖區(qū)的主要原因:

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

緩沖區(qū)數(shù)據(jù)成批傳入內(nèi)存,也可進(jìn)一步減少對(duì)CPU的中斷頻率

最終目的:提高CPU和I/O設(shè)備的并行性忽妒。

使用緩沖區(qū)的方式:1)單緩沖玩裙、多緩沖2)循環(huán)緩沖3)緩沖池(Buffer Pool)

1)單緩沖與多緩沖

OS在主存中為之分配一個(gè)緩沖區(qū)。

CPU和外設(shè)輪流使用段直,一方處理完后等待對(duì)方處理献酗。

雙緩沖(Double Buffer)

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

可能實(shí)現(xiàn)連續(xù)處理無(wú)需等待對(duì)方坷牛。前提是CPU和外設(shè)對(duì)一塊數(shù)據(jù)的處理速度相近罕偎。而如下圖情況CPU仍需等待慢速設(shè)備。

循環(huán)緩沖(circular buffer)

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

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

順一個(gè)方向放入或取出

緩沖池(Buffer Pool)

為提高緩沖區(qū)的利用率颜及,目前廣泛流行緩沖池,在池中設(shè)置多個(gè)可供若干個(gè)進(jìn)程共享的緩沖區(qū)

組織形式:隊(duì)列及隊(duì)列指針

組成:

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

空緩沖區(qū)俏站;

裝滿輸入數(shù)據(jù)的緩沖區(qū);

裝滿輸出數(shù)據(jù)的緩沖區(qū)痊土;

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

空緩沖區(qū)隊(duì)列(所有進(jìn)程都可用)

輸入隊(duì)列(n個(gè)進(jìn)程有各自的隊(duì)列)

輸出隊(duì)列(n個(gè)進(jìn)程有各自的隊(duì)列)

(隊(duì)列長(zhǎng)度不固定,根據(jù)進(jìn)程實(shí)際情況靈活變動(dòng)赁酝,需要多少用多少)

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

7.磁盤存儲(chǔ)器的性能和調(diào)度

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

對(duì)所有請(qǐng)求訪問(wèn)磁盤的進(jìn)程進(jìn)行合理調(diào)度酌呆,使對(duì)磁盤的平均訪問(wèn)時(shí)間最小衡载。

目標(biāo):使平均尋道時(shí)間最少。

算法:

FCFS:多個(gè)進(jìn)程的磁盤I/O請(qǐng)求構(gòu)成一個(gè)隨機(jī)分布的請(qǐng)求隊(duì)列隙袁。

磁盤I/O執(zhí)行順序按磁盤請(qǐng)求的先后順序痰娱。

最短尋道時(shí)間優(yōu)先SSTF:選擇從當(dāng)前磁頭位置出發(fā)移動(dòng)最少的磁盤I/O請(qǐng)求

使每次磁頭移動(dòng)時(shí)間最少。

不一定是最短平均柱面定位時(shí)間菩收,但比FIFO算法有更好的性能梨睁。

對(duì)中間的磁道有利,但可能會(huì)有進(jìn)程處于饑餓狀態(tài)(I/O請(qǐng)求總不被執(zhí)行)娜饵。

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

規(guī)定磁頭移動(dòng)方向:自里向外坡贺,再自外向里移動(dòng)。

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

循環(huán)掃描算法CSCAN:

將SCAN規(guī)定的移動(dòng)方向改為“單向移動(dòng)”

由里向外后狈邑,再由里向外。

N-Step-SCAN算法:“磁臂粘著”——磁頭靜止在一個(gè)磁道上风瘦,導(dǎo)致其它進(jìn)程無(wú)法及時(shí)進(jìn)行磁盤I/O。(因:高密度盤公般,進(jìn)程的讀寫可能集中在某一磁道)

FSCAN算法:

請(qǐng)求隊(duì)列只分為兩個(gè)子隊(duì)列

當(dāng)前一個(gè)隊(duì)列万搔,按SCAN算法執(zhí)行;

掃描期間新生成的組成一個(gè)隊(duì)列官帘,等待被掃描瞬雹。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市刽虹,隨后出現(xiàn)的幾起案子酗捌,更是在濱河造成了極大的恐慌,老刑警劉巖涌哲,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胖缤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡阀圾,警方通過(guò)查閱死者的電腦和手機(jī)哪廓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)初烘,“玉大人涡真,你說(shuō)我怎么就攤上這事∩隹穑” “怎么了哆料?”我有些...
    開(kāi)封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)局齿。 經(jīng)常有香客問(wèn)我剧劝,道長(zhǎng)橄登,這世上最難降的妖魔是什么抓歼? 我笑而不...
    開(kāi)封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮拢锹,結(jié)果婚禮上谣妻,老公的妹妹穿的比我還像新娘。我一直安慰自己卒稳,他們只是感情好蹋半,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著充坑,像睡著了一般减江。 火紅的嫁衣襯著肌膚如雪染突。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天辈灼,我揣著相機(jī)與錄音份企,去河邊找鬼。 笑死巡莹,一個(gè)胖子當(dāng)著我的面吹牛司志,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播降宅,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼骂远,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了腰根?” 一聲冷哼從身側(cè)響起激才,我...
    開(kāi)封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎额嘿,沒(méi)想到半個(gè)月后贸营,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岩睁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年钞脂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捕儒。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冰啃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刘莹,到底是詐尸還是另有隱情阎毅,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布点弯,位于F島的核電站扇调,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抢肛。R本人自食惡果不足惜狼钮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捡絮。 院中可真熱鬧熬芜,春花似錦、人聲如沸福稳。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鼓拧,卻和暖如春半火,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背季俩。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工慈缔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人种玛。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓藐鹤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赂韵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娱节,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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

  • 在評(píng)估問(wèn)題和意見(jiàn)時(shí)肄满,一定更要把人與他所提出的見(jiàn)解分開(kāi)。 前段時(shí)間质涛,一位自媒體大咖去大學(xué)做演講稠歉,結(jié)果演講做完,學(xué)生很...
    大嘴堂閱讀 619評(píng)論 1 2
  • 雜記: 時(shí)間過(guò)得真快汇陆,一晃眼已經(jīng)是晚上六七點(diǎn)怒炸;今天白天完成學(xué)習(xí)任務(wù)(1小時(shí)),下午處理一些商務(wù)事務(wù)毡代、回復(fù)客戶郵件阅羹、...
    書桌前一天閱讀 214評(píng)論 0 0
  • 算了吧 還記得街口的那次相遇嗎 你一身白裙 披著長(zhǎng)發(fā) 笑聲不停 讓我至今牽掛 從那以后 你就在我的心里住下 我們一...
    你的眼神出賣你的心閱讀 572評(píng)論 4 0