操作系統(tǒng) ch11-磁盤與文件學(xué)習(xí)專業(yè)課件_第1頁
操作系統(tǒng) ch11-磁盤與文件學(xué)習(xí)專業(yè)課件_第2頁
操作系統(tǒng) ch11-磁盤與文件學(xué)習(xí)專業(yè)課件_第3頁
操作系統(tǒng) ch11-磁盤與文件學(xué)習(xí)專業(yè)課件_第4頁
操作系統(tǒng) ch11-磁盤與文件學(xué)習(xí)專業(yè)課件_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

主講教師:范國祥

電話811(O)

E-mail:fgx@

軟件學(xué)院教研室

2015.06

操作系統(tǒng)11.1磁盤結(jié)構(gòu)11.2磁盤調(diào)度11.3磁盤編址11.4文件概念及實(shí)現(xiàn)方法主要內(nèi)容第11章磁盤與文件認(rèn)識計(jì)算機(jī)外設(shè)與計(jì)算機(jī)!PCI總線圖形控制器IDE控制器總線控制器CPU-內(nèi)存總線對我們來說,磁盤無疑是最重要的設(shè)備,我們下載的電影放在這里,我們寫的論文也放在這里…11.1磁盤結(jié)構(gòu)首先需要了解磁盤!認(rèn)識一下磁盤認(rèn)識一下磁盤磁盤面柱面c扇區(qū)s磁道t旋轉(zhuǎn)磁臂轉(zhuǎn)軸機(jī)械臂桿讀寫磁頭認(rèn)識一下磁盤磁道扇區(qū)盤面畫一個(gè)示意圖:看看俯視圖:磁盤的數(shù)據(jù)單位是扇區(qū)扇區(qū)大?。?12字節(jié)扇區(qū)是磁盤的尋址單位、訪問單位扇區(qū)的大小是傳輸時(shí)間和碎片浪費(fèi)的折衷所以,磁盤被稱為塊設(shè)備!磁盤的I/O總線控制器IDE控制器讓我們仔細(xì)想想磁盤如何讀/寫1一個(gè)字節(jié)?(1)(2)(3)分析磁盤I/O的重點(diǎn)在于第2步!磁道內(nèi)存緩存讀出了一個(gè)字節(jié)寫(修改)一個(gè)字節(jié)磁盤I/O:緩存隊(duì)列

控制器尋道旋轉(zhuǎn)傳輸!磁盤I/O的分析整理磁盤I/O的過程:進(jìn)程請求隊(duì)列磁盤控制器磁盤我們最關(guān)心的磁盤什么時(shí)候讀/寫完?磁盤訪問延遲=隊(duì)列時(shí)間+控制器時(shí)間+

尋道時(shí)間+旋轉(zhuǎn)時(shí)間+傳輸時(shí)間扇區(qū)磁道Head12msto8ms(半周):8msto4ms約0.25ms前兩項(xiàng)可以忽略!關(guān)鍵所在:最小化尋道時(shí)間和旋轉(zhuǎn)延遲!I/O過程是解開許多磁盤問題的鑰匙分析磁盤扇區(qū)尺寸:磁盤訪問延遲=隊(duì)列時(shí)間+控制器時(shí)間+

尋道時(shí)間+旋轉(zhuǎn)時(shí)間+傳輸時(shí)間12~8ms8~4ms約0.25ms前兩項(xiàng)可以忽略!扇區(qū)尺寸=1Byte:沒有碎片;訪問速度≈70B/秒【假定尋道時(shí)間=10ms,旋轉(zhuǎn)時(shí)間=5ms,傳輸時(shí)間≈0ms】扇區(qū)尺寸=1KByte:碎片0.5K;訪問速度≈70KB/秒扇區(qū)尺寸=1MByte:碎片0.5M;訪問速度≈25MB/秒【傳輸時(shí)間不能再忽略≈0.25ms×1000=25ms】扇區(qū)大小空間利用率傳輸速度規(guī)定標(biāo)準(zhǔn)扇區(qū)尺寸

=512Bytes=0.5KBI/O過程是解開許多磁盤問題的鑰匙磁盤調(diào)度:磁盤訪問延遲=隊(duì)列時(shí)間+控制器時(shí)間+

尋道時(shí)間+旋轉(zhuǎn)時(shí)間+傳輸時(shí)間12msto8ms8msto4ms約0.25ms前兩項(xiàng)可以忽略!多個(gè)磁盤訪問請求出現(xiàn)在請求隊(duì)列怎么辦?調(diào)度!調(diào)度的目標(biāo)是什么?調(diào)度時(shí)主要考察什么?目標(biāo)當(dāng)然是平均訪問延遲最小!①旋轉(zhuǎn)定位:固定速度;②讀寫取決于旋轉(zhuǎn)速度;③傳輸時(shí)間幾乎恒定。因此:尋道時(shí)間是主要矛盾!磁盤調(diào)度:輸入多個(gè)磁道請求,給出服務(wù)順序!11.2磁盤調(diào)度磁盤讀寫請求頻繁發(fā)生,

如何盡快響應(yīng)?FCFS磁盤調(diào)度最直觀、最公平的調(diào)度:一個(gè)實(shí)例:磁頭開始位置=53;請求隊(duì)列=98,183,37,122,14,124,65,670143753656798122124183199磁頭在長途奔襲!FCFS:磁頭共移動640磁道!在移動過程中把經(jīng)過的請求處理了?!183-53=130183-37=146122-37=85122-14=108124-14=110124-65=5967-65=2130+146+85+108+110+59+2=640SSTF磁盤調(diào)度ShortestSeekTimeFirst最短尋道時(shí)間優(yōu)先:繼續(xù)該實(shí)例:磁頭開始位置=53;請求隊(duì)列=98,183,37,122,14,124,65,670143753656798122124183199如果在處理183之前又來一些中間磁道的請求,則…SSTF:磁頭共移動236(14+53+169)磁道,比FIFO要少很多!SSTF存在饑餓問題SCAN磁盤調(diào)度(掃描/電梯算法)SSTF+中途不回折:每個(gè)請求都有處理機(jī)會繼續(xù)該實(shí)例:磁頭開始位置=53;請求隊(duì)列=98,183,37,122,14,124,65,670143753656798122124183199這些請求的等待時(shí)間較長,只因所在方向不夠幸運(yùn)!根據(jù)其特征,SCAN也被稱為電梯算法!SCAN:磁頭共移動53+183=236磁道,和SSTF一樣!SCAN導(dǎo)致延遲不均C-SCAN磁盤調(diào)度SCAN+直接移到另一端:兩端請求都能很快處理繼續(xù)該實(shí)例:磁頭開始位置=53;請求隊(duì)列=98,183,37,122,14,124,65,670143753656798122124183199CSCAN中的Circular是環(huán)的意思!CSCAN:磁頭共移動53+199+134磁道!其中199會較快!14

0(183199)沒有必要C-LOOK磁盤調(diào)度CSCAN+看一看:前面沒有請求就回移繼續(xù)該實(shí)例:磁頭開始位置=53;請求隊(duì)列=98,183,37,122,14,124,65,670143753656798122124183199LOOK和C-LOOK是比較合理的缺省算法操作系統(tǒng)中所有的算法都要因地制宜!11.3磁盤編址如何管理磁盤,

首先對磁盤的扇區(qū)進(jìn)行編號!

出廠的磁盤需要低級格式化(物理格式化):

將連續(xù)的磁性記錄材料分成物理扇區(qū)

扇區(qū)

=頭+數(shù)據(jù)區(qū)+尾頭、尾中包含只有磁盤控制器能識別的扇區(qū)號碼和糾錯(cuò)碼等信息什么是磁盤的邏輯格式化?第12章文件系統(tǒng)!I/O過程是解開許多磁盤問題的鑰匙磁盤尋址:對于內(nèi)存,我們往往更關(guān)心存放內(nèi)容的地址實(shí)際上就是扇區(qū)怎么編址?顯然這個(gè)地址是(盤面+

磁道+

扇區(qū))尋道和旋轉(zhuǎn)費(fèi)時(shí)多花最少時(shí)間訪問最多扇區(qū)的方案:磁臂不動、磁盤旋轉(zhuǎn)一周,訪問磁頭遇到的所有扇區(qū)。磁臂讓這些扇區(qū)的編址鄰近:因?yàn)榫植啃?柱面!扇區(qū)編址(1):CHS(Cylinder/Head/Sector)扇區(qū)編址(2):扇區(qū)編號已知A,則s=A%S;h=[A/S]%H;c=[A/(H*S)]扇區(qū)編號—現(xiàn)代磁盤的常見尋址方式磁臂扇區(qū)編號,按照(C,H,S)將扇區(qū)形成一維扇區(qū)數(shù)組,數(shù)組索引就是扇區(qū)編號柱面0柱面1柱面C-1…整個(gè)磁盤磁道0磁道1磁道H-1…一個(gè)柱面扇區(qū)0扇區(qū)1扇區(qū)S-1…一個(gè)磁道磁盤扇區(qū)總數(shù)

=C*H*S某扇區(qū)編號A=c*H*S+h*S+s體現(xiàn)了局部性!柱面編號c(0≤c≤C-1)柱面內(nèi)磁道(磁頭)編號h(0≤h≤H-1)磁道內(nèi)扇區(qū)編號s(0≤s≤S-1)想一想……磁盤驅(qū)動應(yīng)如何實(shí)現(xiàn)?Linux0.11下實(shí)現(xiàn)磁盤讀寫驅(qū)動片段進(jìn)程I/O整個(gè)過程貫穿第1步:得到要訪問的扇區(qū)編號;

得到讀盤的目標(biāo)(或?qū)懕P的源)內(nèi)存地址算法輸入!第2步:將扇區(qū)編號和內(nèi)存地址寫給DMA;然后阻塞進(jìn)程查手冊、寫端口!第3步:DMA處理完成后中斷CPU;中斷處理程序喚醒阻塞進(jìn)程編寫中斷處理程序!第4步:進(jìn)程繼續(xù)…獲得編號是使用磁盤的關(guān)鍵!Exampleharddisklayout硬盤布局Exampleharddisklayout

物理盤以扇區(qū)(一般為512字節(jié))為單位

進(jìn)行編址,它是硬盤讀寫的基本單位一塊硬盤從邏輯上可以理解為連續(xù)的一

維扇區(qū)序列硬盤布局Exampleharddisklayout

整個(gè)硬盤的第1個(gè)扇區(qū)存儲著“主引導(dǎo)記錄(MBR)”:

<1>引導(dǎo)可執(zhí)行代碼

<2>硬盤基本分區(qū)表

最多包含4個(gè)基本分區(qū)位置信息

硬盤布局Exampleharddisklayout

除了第1個(gè)扇區(qū)之外,其余扇區(qū)可以

劃分為至多4個(gè)基本分區(qū)每個(gè)分區(qū)的第1個(gè)扇區(qū)預(yù)留,可以作

為引導(dǎo)扇區(qū)硬盤布局Exampleharddisklayout

每個(gè)分區(qū)除第1個(gè)扇區(qū)外的其他部分還

可以看做一個(gè)硬盤,繼續(xù)分區(qū)

這樣的分區(qū)可以無限制地重復(fù)進(jìn)行,直

到硬盤劃分完成為止硬盤布局Exampleharddisklayout

概念

扇區(qū)-物理盤存儲空間基本編址單位,一般為512字節(jié)

主引導(dǎo)記錄MBR

-硬盤的第1個(gè)扇區(qū)的內(nèi)容,含引導(dǎo)代碼和主分區(qū)表

分區(qū)-硬盤中可以作為邏輯盤管理的一組扇區(qū)集合

可擴(kuò)展分區(qū)-可以繼續(xù)劃分成“分區(qū)”的硬盤分區(qū)

引導(dǎo)分區(qū)-標(biāo)記有可引導(dǎo)標(biāo)記的硬盤分區(qū),這種分區(qū)有引

導(dǎo)扇區(qū)和引導(dǎo)文件

引導(dǎo)扇區(qū)-引導(dǎo)分區(qū)的第1個(gè)扇區(qū)

可擴(kuò)展分區(qū)引導(dǎo)記錄-可擴(kuò)展分區(qū)中第2個(gè)扇區(qū)中的內(nèi)容問題:硬盤中每個(gè)分區(qū)都有引導(dǎo)扇區(qū)嗎?硬盤布局直接使用扇區(qū)編號尋址磁盤嗎?磁盤頁表物理內(nèi)存請求調(diào)頁—頁面置換load[addr]i頁錯(cuò)誤處理程序(1)(2)(3)(4)(5)(6)交換出去的頁面放在哪里?交換出去交換分區(qū)問題的關(guān)鍵是寫到磁盤的什么位置?交換出去的頁面顯然要寫到磁盤上如果是代碼段和數(shù)據(jù)段,直接寫到可執(zhí)行文件中如果是堆棧段呢?創(chuàng)建一個(gè)文件嗎?變成了頁面文件扇區(qū)映射關(guān)系,顯然是低效的應(yīng)該是直接“頁面扇區(qū)”PTEP=0換出地址為提高效率,這部分磁盤不存文件,直接用扇區(qū)號尋址。(交換分區(qū))這樣使用的磁盤稱為生磁盤(rawdisk)Linux交換分區(qū)安裝Linux時(shí),需創(chuàng)建一硬盤分區(qū)作為交換分區(qū)fdisk命令可以查看分區(qū)信息因?yàn)榻粨Q分區(qū)要和內(nèi)存不斷交換,所以是動態(tài)變化的swap分區(qū)的大小通常是內(nèi)存大小的2倍為什么引入文件?

—“烹調(diào)”磁盤11.4文件概念及實(shí)現(xiàn)方法為什么引入文件?讓普通用戶使用rawdisk:

許多人連扇區(qū)都不知道是什么?要求他們根據(jù)扇區(qū)編號來訪問磁盤…需要在扇區(qū)上引入更高一層次的抽象概念!文件首先想一想用戶眼里的文件是什么樣子?字符序列(字符流)磁盤上的文件是什么樣子?扇區(qū)集合文件:建立字符流到扇區(qū)集合的映射關(guān)系文件概念建立字符流到盤塊集合的映射關(guān)系看一個(gè)例子intmain(){…

test.c將2-12字符刪去test.c中的2-12字符對應(yīng)盤塊789讀入、修改、讀出文件:按用戶邏輯地址連續(xù)“排列”的盤塊集合為增加靈活性,OS又將多個(gè)連續(xù)扇區(qū)定義為盤塊文件的實(shí)現(xiàn)文件抽象概念的實(shí)現(xiàn)關(guān)鍵:描述這一映射關(guān)系文件實(shí)現(xiàn)1:物理盤塊連續(xù)分配intmain(){…

test.c012345678910111213141516171819202122232425262728293031test.cftrmaillist需存放什么信息?起始盤塊和盤塊個(gè)數(shù)存放在哪里?文件描述信息節(jié)點(diǎn)中名字很多:FCB,FileHeader等文件名始址塊數(shù)test.c04test.c的FileHeader優(yōu)點(diǎn)簡單快速,缺點(diǎn)碎片多文件f的起始塊=?塊數(shù)=?文件實(shí)現(xiàn)2:鏈?zhǔn)椒峙鋓ntmain(){…

test.c文件名始址test.c1test.c的FileHeader優(yōu)點(diǎn):文件長度增減容易01234567891011121314151617181920212223242526272829303110-1917test.cNullFileHeader缺點(diǎn):順序訪問、可靠性差文件實(shí)現(xiàn)3:索引分配intmain(){…

test.c優(yōu)點(diǎn):是連續(xù)和鏈?zhǔn)椒峙涞挠行д壑?12

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論