《ch11-磁盘与文件》由会员分享,可在线阅读,更多相关《ch11-磁盘与文件(50页珍藏版)》请在金锄头文库上搜索。
1、- 1 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科11.1 磁盘结构磁盘结构11.2 磁盘调度磁盘调度(IO子系统)子系统)11.3 磁盘编址磁盘编址11.4 文件概念及实现方法文件概念及实现方法主要内容主要内容第第1111章章 磁盘与文件磁盘与文件- 2 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科认识计算机外设与计算机认识计算机外设与计算机!PCI总线总线图形控制器图形控制器IDE控制器控制器总线控制器总线控制器CPU-内存总线内存总线对我们来说,磁盘无疑是对我们来说,磁盘无疑是最重要的设备,我们下载最重要的设备,我们下载的电影放在这里
2、,我们写的电影放在这里,我们写的论文也放在这里的论文也放在这里- 3 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科11.1磁盘结构磁盘结构首先需要了解磁盘首先需要了解磁盘!- 4 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科认识一下磁盘认识一下磁盘- 5 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科认识一下磁盘认识一下磁盘磁盘面磁盘面柱面柱面c c扇区扇区s s磁道磁道t t旋转旋转磁臂磁臂转轴转轴机械臂杆机械臂杆读写磁头读写磁头盘片高速旋转产生气流非常强,盘片高速旋转产生气流非常强,足以使磁头托起,并与盘面保足以使
3、磁头托起,并与盘面保持一个微小的距离。持一个微小的距离。现在的水平已经达到现在的水平已经达到,这只,这只是人类头发直径的千分之一。是人类头发直径的千分之一。- 6 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科认识一下磁盘认识一下磁盘磁道磁道扇区扇区盘面盘面画一个示意图画一个示意图:看看俯视图看看俯视图:磁盘的数据单位磁盘的数据单位是扇区是扇区扇区大小:扇区大小:512字节字节扇区是磁盘的寻址扇区是磁盘的寻址单位、访问单位单位、访问单位扇区的大小是传输时间和扇区的大小是传输时间和碎片浪费的折衷碎片浪费的折衷所以,磁盘被称为块设备所以,磁盘被称为块设备!- 7 -曲明成曲
4、明成博士后博士后/硕导操作系操作系统for2015级本科本科磁盘的磁盘的I/O总线控制器总线控制器IDE控制器控制器让我们仔细想想磁盘如何让我们仔细想想磁盘如何读读/写写1一个字节一个字节?(1)(2)(3)n分析磁盘分析磁盘I/O的重点的重点在于第在于第2步步!磁道磁道内存缓存内存缓存读出了一读出了一个字节个字节写写(修改修改)一个字节一个字节磁盘磁盘I/O:缓存队列缓存队列控制器控制器寻道寻道旋转旋转传输传输!- 8 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科磁盘磁盘I/O的分析的分析n整理磁盘整理磁盘I/O的过程:的过程:进程进程请求队列请求队列磁磁盘盘控控制
5、制器器磁盘磁盘我们最关心的磁盘什么时候读我们最关心的磁盘什么时候读/写完写完?磁盘访问延迟磁盘访问延迟=队列时间队列时间+控制器时间控制器时间+寻道时间寻道时间+旋转时间旋转时间+传输时间传输时间扇区扇区磁道磁道Head12msto8ms(半周半周):8msto4ms约约前两项可前两项可以忽略以忽略!关键所在关键所在:最小化寻道时间和旋转延迟最小化寻道时间和旋转延迟!- 9 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科I/O过程是解开许多磁盘问题的钥匙过程是解开许多磁盘问题的钥匙n分析磁盘扇区尺寸:分析磁盘扇区尺寸:磁盘访问延迟磁盘访问延迟=队列时间队列时间+控制器时
6、间控制器时间+寻道时间寻道时间+旋转时间旋转时间+传输时间传输时间128ms84ms约约0.25ms前两项可以忽略前两项可以忽略!扇区尺寸为扇区尺寸为1byte:没有碎片;传输速度:没有碎片;传输速度100byte/秒秒(寻道时间寻道时间10ms)扇区尺寸扇区尺寸1KByte:平均碎片:平均碎片0.5K;传输;传输100KByte/秒秒扇区尺寸扇区尺寸1MByte:平均碎片:平均碎片0.5M;传输;传输4Mbyte/秒秒扇区大小扇区大小空空间间利利用用率率传传输输速速度度- 10 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科I/O过程是解开许多磁盘问题的钥匙过程是解开
7、许多磁盘问题的钥匙n磁盘调度:磁盘调度:磁盘访问延迟磁盘访问延迟=队列时间队列时间+控制器时间控制器时间+寻道时间寻道时间+旋转时间旋转时间+传输时间传输时间12msto8ms8msto4ms约约0.25ms前两项可以忽略前两项可以忽略!多个磁盘访问请求出现在请求队列怎么办多个磁盘访问请求出现在请求队列怎么办?调度调度调度的目标是什么调度的目标是什么?调度时主要考察什么调度时主要考察什么?目标当然是平均目标当然是平均访问延迟小访问延迟小!寻道时间是主要寻道时间是主要矛盾矛盾!磁盘调度磁盘调度:输入多个磁道请求,给出服务顺序输入多个磁道请求,给出服务顺序!- 11 -曲明成曲明成博士后博士后/硕
8、导操作系操作系统for2015级本科本科11.2磁盘调度磁盘调度磁盘读写请求频繁发生,磁盘读写请求频繁发生,如何尽快响应?如何尽快响应?- 12 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科FCFS磁盘调度磁盘调度n最直观、最公平的调度:最直观、最公平的调度:一个实例一个实例:磁头开始磁道位置磁头开始磁道位置=53;请求队列请求队列=98,183,37,122,14,124,65,670 143753656798122124183199磁头在长途奔磁头在长途奔袭袭!FCFS:磁头共磁头共移动移动640磁道磁道!在移动过在移动过程中把经程中把经过的请求过的请求处理了处理
9、了?!183-53=130183-37=146122-37=85122-14=108124-14=110124-65=5967-65=2130+146+85+108+110+59+2=640- 13 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科SSTF磁盘调度磁盘调度nShortest-seek-timeFirst最短寻道时间优先:最短寻道时间优先:继续该实例继续该实例:磁头开始位置磁头开始位置=53;请求队列请求队列=98,183,37,122,14,124,65,670 143753656798122124183199如果在处理如果在处理183之前之前又来一些中间
10、磁道又来一些中间磁道的请求,则的请求,则SSTF:磁头共移动磁头共移动236(14+53+169)磁磁道,要少很多道,要少很多!SSTF存在饥饿问题存在饥饿问题- 14 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科SCAN磁盘调度磁盘调度(扫描扫描/电梯算法电梯算法)nSSTF+中途不回折:每个请求都有处理机会中途不回折:每个请求都有处理机会继续该实例继续该实例:磁头开始位置磁头开始位置=53;请求队列请求队列=98,183,37,122,14,124,65,670 143753656798122124183199这些请求的等待时这些请求的等待时间较长,只因所在间较长
11、,只因所在方向不够幸运方向不够幸运!根据其特征,根据其特征,SCAN也被称为也被称为电梯算法电梯算法!SCAN:磁头共移动磁头共移动53+183=236磁道,磁道,和和SSTF一样一样!SCAN导致延迟不均导致延迟不均- 15 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科C-SCAN磁盘调度磁盘调度nSCAN+直接移到另一端:两端请求都能很快处理直接移到另一端:两端请求都能很快处理继续该实例继续该实例:磁头开始位置磁头开始位置=53;请求队列请求队列=98,183,37,122,14,124,65,670 143753656798122124183199CSCAN中的
12、中的Circular是环的意思是环的意思!CSCAN:磁头共移磁头共移动动53+199+134磁道磁道!其中其中199会较快会较快!140(183199)没有必要没有必要- 16 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科C-LOOK磁盘调度磁盘调度nCSCAN+看一看:前面没有请求就回移看一看:前面没有请求就回移继续该实例继续该实例:磁头开始位置磁头开始位置=53;请求队列请求队列=98,183,37,122,14,124,65,670 143753656798122124183199LOOK和和C-LOOK是比较合理的缺省算法是比较合理的缺省算法操作系统中所有的
13、算法都要因地制宜操作系统中所有的算法都要因地制宜!- 17 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科C-LOOK磁盘调度磁盘调度继续该实例继续该实例:磁头开始位置磁头开始位置=53;请求队列请求队列=98,183,37,122,14,124,65,670 143753 65 6798122 124183199时间时间柱面柱面HeadRear53-37-14-183-124-122-98-67-651)磁道请求队列的的形式)磁道请求队列的的形式2)新磁道请求如何入队列)新磁道请求如何入队列Ci+1XCi+1ci- 18 -曲明成曲明成博士后博士后/硕导操作系操作系统
14、for2015级本科本科11.3磁盘编址磁盘编址如何管理磁盘,如何管理磁盘,首先对磁盘的扇区进行编号!首先对磁盘的扇区进行编号!l出厂的磁盘需要低级格式化出厂的磁盘需要低级格式化(物理格式化物理格式化):将连续的磁性记录材料分成物理扇区将连续的磁性记录材料分成物理扇区l扇区扇区=头头+数据区数据区+尾尾l头、尾中包含只有磁盘控制器能识别的头、尾中包含只有磁盘控制器能识别的扇区号扇区号码和纠错码码和纠错码等信息等信息什么是磁盘的逻辑格式化?什么是磁盘的逻辑格式化?第第12章章文件系统!文件系统!- 19 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科I/O过程是解开许多磁
15、盘问题的钥匙过程是解开许多磁盘问题的钥匙n磁盘寻址:磁盘寻址:对于内存,我们对于内存,我们往往更关心存放内容的地址往往更关心存放内容的地址实际上就是扇区怎么编址实际上就是扇区怎么编址?显然这个地址是显然这个地址是(盘面盘面+磁道磁道+扇区扇区)寻道和旋转费时多寻道和旋转费时多花最少时间访问最多扇花最少时间访问最多扇区的方案区的方案:磁臂不动、磁盘旋转一周,访问磁磁臂不动、磁盘旋转一周,访问磁头遇到的所有扇区头遇到的所有扇区。磁臂磁臂让这些扇区的编址邻近让这些扇区的编址邻近:因为局部性因为局部性!柱面柱面!扇区编址扇区编址(1):CHS(Cylinder/Head/Sector)扇区编址扇区编址
16、(2):扇区编号(扇区编号(LogicalBlockAddressingLBA)- 20 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科已知已知A,则,则s=A%S;h=A/S%H;c=A/(H*S)扇区编号扇区编号现代磁盘的常见寻址方式现代磁盘的常见寻址方式磁臂磁臂扇区编号扇区编号,按照,按照(C,H,S)将将扇区形成一维扇区数组,扇区形成一维扇区数组,数组索引就是扇区编号数组索引就是扇区编号柱面柱面0柱面柱面1柱面柱面C-1整个磁盘整个磁盘磁道磁道0磁道磁道1磁道磁道H-1一个柱面一个柱面扇区扇区0扇区扇区1扇区扇区S-1一个磁道一个磁道某扇区某扇区(c,h,s)编
17、号编号A=c*H*S+h*S+s扇区总数扇区总数=C*H*S体现了局部性体现了局部性!柱面编号柱面编号c(0cC-1)柱面内磁道柱面内磁道(磁头磁头)编号编号h(0hH-1)磁道内扇区编号磁道内扇区编号s(0sS-1)- 21 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科扇区编号扇区编号现代磁盘的常见寻址方式现代磁盘的常见寻址方式nchs(Cylinder/Head/Sector)模式模式n以前以前,硬盘的容量还非常小硬盘的容量还非常小,采用与软盘类似的结构生产采用与软盘类似的结构生产硬盘硬盘.n也就是也就是硬盘盘片的每一条磁道都具有相同的扇区数硬盘盘片的每一条磁道都
18、具有相同的扇区数n由此产生了所谓的由此产生了所谓的3D参数参数(DiskGeometry).:n磁柱面数磁柱面数(Cylinders),头数头数(Heads),扇区数扇区数(Sectorspertrack),以及相应的寻址方式以及相应的寻址方式.- 22 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科扇区编号扇区编号现代磁盘的常见寻址方式现代磁盘的常见寻址方式nchs(Cylinder/Head/Sector)模式模式n磁头数磁头数(Heads)表示硬盘总共有几个磁头表示硬盘总共有几个磁头,也就是有几面盘片也就是有几面盘片,最大最大为为256(用用8个二进制位存储个二进
19、制位存储);n柱面数柱面数(Cylinders)表示硬盘每一面盘片上有几条磁道表示硬盘每一面盘片上有几条磁道,最大为最大为1024(用用10个二进制位存储个二进制位存储);n扇区数扇区数(Sectorspertrack)表示每一条磁道上有几个扇区表示每一条磁道上有几个扇区,最大为最大为63(用用6个二进制位存储个二进制位存储).n每个扇区一般是每个扇区一般是512个字节;个字节;n所以磁盘最大容量为所以磁盘最大容量为:n256*1024*63*512/1048576=8064MB- 23 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科扇区编号扇区编号现代磁盘的常见寻址方
20、式现代磁盘的常见寻址方式nchs(Cylinder/Head/Sector)模式模式n这种方式会浪费很多磁盘空间这种方式会浪费很多磁盘空间(与软盘一样与软盘一样)n为了进一步提高硬盘容量为了进一步提高硬盘容量,产生了产生了等密度结构硬盘,外圈磁道的扇等密度结构硬盘,外圈磁道的扇区比内圈磁道多区比内圈磁道多.n采用这种结构后采用这种结构后,硬盘不再具有实际的硬盘不再具有实际的3D参数参数,寻址方式也改为线寻址方式也改为线性寻址性寻址,即以扇区为单位进行寻址即以扇区为单位进行寻址n为了与使用为了与使用chs寻址的兼容寻址的兼容(如使用如使用BIOSInt13H接口的软件接口的软件),在在硬硬盘控制
21、器内部安装了一个地址翻译器盘控制器内部安装了一个地址翻译器,由它负责将老式由它负责将老式3D参数翻译参数翻译成新的线性参数成新的线性参数.- 24 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科IDE硬盘控制器的寄存器硬盘控制器的寄存器n有一组命令寄存器组有一组命令寄存器组(TaskFileRegisters),I/O的端口地址为的端口地址为1F0H1F7Hn1F2H扇区计数寄存器扇区计数寄存器1F3H扇区号,或扇区号,或LBA块地址块地址071F4H柱面数低柱面数低8位,或位,或LBA块地址块地址8151F5H柱面数高柱面数高8位,或位,或LBA块地址块地址16231
22、F6H驱动器驱动器/磁头,或磁头,或LBA块地址块地址24271F7H状态寄存器状态寄存器命令寄存器命令寄存器nCHS或或LBA在磁头寄存器中指定在磁头寄存器中指定- 25 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科想一想想一想磁盘驱动应如何实现?磁盘驱动应如何实现?下实现磁盘读写驱动片段下实现磁盘读写驱动片段- 26 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科磁盘速度与内存速度的差异磁盘速度与内存速度的差异1)磁盘往往不是严格按需读取,而是每次都会预读,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开
23、始,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取顺序向后读取一定扇区长度一定扇区长度的数据放入内存。的数据放入内存。2)这样做的理论依据是计算机科学中著名的这样做的理论依据是计算机科学中著名的局部性局部性原理原理:当一个数据被用到时,其附近的数据也通常:当一个数据被用到时,其附近的数据也通常会马上被使用。会马上被使用。- 27 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科回忆:虚拟内存中程序优化回忆:虚拟内存中程序优化n对对代代码码来来说说,紧紧凑凑的的代代码码也也往往往往意意味味着着接接下下来来执执行行的的代代码码更更大大可可能能就就在在相相同同的的页页
24、或或相相邻邻页页。根根据据时时间间locality特特性性,程程序序90%的的时时间间花花在在了了10%的的代代码码上上。如如果果将将这这10%的的代代码码尽尽量量紧凑且排在一起,被换出的概率降低,紧凑且排在一起,被换出的概率降低,从磁盘读取速度快。从磁盘读取速度快。n对对数数据据来来说说,尽尽量量将将那那些些会会一一起起访访问问的的数数据据放放在在一一起起。这这样样当当访访问问这这些些数数据据时时,因因为为它它们们在在同同一一页页或或相相邻邻页页,只只需需要要一一次次调调页页操操作作即即可可完完成成;反反之之,如如果果这这些些数数据据分分散散在在多多个个页页(更更糟糟的的情情况况是是这这些些
25、页页还还不不相相邻邻),那那么么每每次次对对这这些些数数据据的的整整体体访访问问都都会引发大量的缺页错误,从而降低性能。会引发大量的缺页错误,从而降低性能。虚拟内存:按需调页与页面置换。虚拟内存:按需调页与页面置换。如何优化提升程序的性能?如何优化提升程序的性能?经常访问的放在一起,被唤经常访问的放在一起,被唤出的概率降低出的概率降低,从磁盘读取速度快。从磁盘读取速度快。- 28 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科进程进程I/O整个过程贯穿整个过程贯穿n第第1步:步:得到要访问的扇区编号;得到要访问的扇区编号;得到读盘的目标得到读盘的目标(或写盘的源或写盘的
26、源)内存地址内存地址算法输入算法输入!n第第2步:步:将扇区编号和内存地址写给将扇区编号和内存地址写给DMA;然后阻塞进程然后阻塞进程查手册、写端口查手册、写端口!n第第3步:步:DMA处理完成后中断处理完成后中断CPU;中断处;中断处理程序唤醒阻塞进程理程序唤醒阻塞进程编写中断处理程序编写中断处理程序!n第第4步:步:进程继续进程继续获得编号是使用磁获得编号是使用磁盘的关键盘的关键!- 29 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科Example hard disk layout硬盘布局硬盘布局- 30 -曲明成曲明成博士后博士后/硕导操作系操作系统for201
27、5级本科本科Example hard disk layoutl 物物理理盘盘以以扇扇区区( (一一般般为为512512字字节节) )为为单单位位 进行编址,它是硬盘读写的进行编址,它是硬盘读写的基本单位基本单位l 一一块块硬硬盘盘从从逻逻辑辑上上可可以以理理解解为为连连续续的的一一 维维扇区序列扇区序列硬盘布局硬盘布局- 31 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科Example hard disk layout 整个硬盘的第整个硬盘的第1 1个扇区个扇区 存储着存储着“主引导记录(主引导记录(MBRMBR)”: 引导可执行代码引导可执行代码 硬盘基本分区表硬盘
28、基本分区表 最多包含最多包含4 4个个基本分区位置信息基本分区位置信息 硬盘布局硬盘布局- 32 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科Example hard disk layoutl 除除了了第第1个个扇扇区区之之外外,其其余余扇扇区区可可以以 划分为至多划分为至多4个个基本分区基本分区l 每每个个分分区区的的第第1个个扇扇区区预预留留,可可以以作作 为为引导扇区引导扇区硬盘布局硬盘布局- 33 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科Example hard disk layoutl 每每个个分分区区除除第第1个个扇扇区区外外
29、的的其其他他部部分分还还 可以看做一个硬盘,继续分区可以看做一个硬盘,继续分区 l 这这样样的的分分区区可可以以无无限限制制地地重重复复进进行行,直直 到硬盘划分完成为止到硬盘划分完成为止硬盘布局硬盘布局- 34 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科Example hard disk layout 概念概念 l 扇区扇区 物理盘存储空间基本编址单位,一般为物理盘存储空间基本编址单位,一般为512512字节字节l 主引导记录主引导记录MBRMBR 硬盘的第硬盘的第1 1个扇区的内容,个扇区的内容, 含引导代码和主分区表含引导代码和主分区表l 分区分区 硬盘中可以
30、作为逻辑盘管理的一组扇区集合硬盘中可以作为逻辑盘管理的一组扇区集合l 可扩展分区可扩展分区 可以继续划分成可以继续划分成“分区分区”的硬盘分区的硬盘分区l 引引导导分分区区 标标记记有有可可引引导导标标记记的的硬硬盘盘分分区区,这这种种分分区区有有引引 导扇区和引导文件导扇区和引导文件l 引导扇区引导扇区 引导分区的第引导分区的第1 1个扇区个扇区l 可扩展分区引导记录可扩展分区引导记录 可扩展分区中第可扩展分区中第2 2个扇区中的内容个扇区中的内容硬盘布局硬盘布局- 35 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科硬盘布局硬盘布局在在MBR分区表中最多分区表中最多
31、4个个主分区或者主分区或者3个主分区个主分区+1个个扩展分区,也就是说扩展分扩展分区,也就是说扩展分区只能有一个,然后可以再区只能有一个,然后可以再细分为多个逻辑分区。细分为多个逻辑分区。MBR由三部分构成:由三部分构成:1主引导程序代码,占主引导程序代码,占446字节字节2硬盘分区表硬盘分区表DPT,占,占64字节字节3主引导扇区结束标志主引导扇区结束标志AA55H系统在分区时,各分区都系统在分区时,各分区都不允许跨柱面,即均以柱面不允许跨柱面,即均以柱面为单位,这就是通常所说的为单位,这就是通常所说的分区粒度。分区粒度。主引导程序功能:主引导程序功能:1)扫描分区表查找活动分区扫描分区表查
32、找活动分区(安装了操作系统的分区)(安装了操作系统的分区)2)寻找活动分区的起始扇区寻找活动分区的起始扇区3)将活动分区的引导扇区读将活动分区的引导扇区读到内存到内存4)执行引导扇区的运行代码执行引导扇区的运行代码- 36 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科页面置换(页面置换(Swap)?- 37 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科磁盘磁盘页表页表物理内存物理内存请求调页请求调页页面置换页面置换loadaddri页错误处页错误处理程序理程序(1)(2)(3)(4)(5)(6)交换出去的页面放在哪里交换出去的页面放在哪里?交
33、换出去交换出去- 38 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科交换分区交换分区问题的关键是写到磁盘的什么位置问题的关键是写到磁盘的什么位置?n交换出去的页面显然要写到磁盘上交换出去的页面显然要写到磁盘上如果是代码段和数据段,如果是代码段和数据段,直接写到文件中?直接写到文件中?如果是堆栈段呢如果是堆栈段呢?创建一个文件吗创建一个文件吗?变成了页面变成了页面文件文件扇区扇区映射关系,显然是低效的映射关系,显然是低效的应该是直接应该是直接“页面页面扇区扇区”页表条目页表条目(PageTableEntry)PTEP=0换出地址换出地址为提高效率,这部分磁为提高效率,这
34、部分磁盘不存文件,直接用扇盘不存文件,直接用扇区号寻址。区号寻址。(交换分区交换分区)这样使用的磁盘称为生磁盘这样使用的磁盘称为生磁盘(rawdisk)- 39 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科回忆:回忆:Intelx86的分页硬件的分页硬件P-位位0是存在(是存在(Present)标志)标志页框号页框号(物理页号物理页号)ppn保留保留0 L D APCDPWTU W P01234567811-931-12?Intelx86结构的结构的PTER/W-位位1是读是读/写(写(Read/Write)标志。)标志。A-位位5是已访问(是已访问(Accessed
35、)标志。)标志。D-位位6是页面已被修改(是页面已被修改(Dirty)标志。)标志。换出到换出到SWAP分区后地址存到哪里?分区后地址存到哪里?可以存到页框号的位置可以存到页框号的位置- 40 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科Linux交换分区交换分区安装安装Linux时,需创建一硬盘分区作为交换分区时,需创建一硬盘分区作为交换分区fdisk命令可以查看分区信息命令可以查看分区信息因为交换分区要和内存不断交换,所以是动态变化的因为交换分区要和内存不断交换,所以是动态变化的swap分区的大小通分区的大小通常是内存大小的两倍常是内存大小的两倍- 41 -曲明成
36、曲明成博士后博士后/硕导操作系操作系统for2015级本科本科为什么引入文件为什么引入文件?“烹调烹调”磁盘磁盘11.4文件概念及实现方法文件概念及实现方法- 42 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科为什么引入文件为什么引入文件?n让普通用户使用让普通用户使用rawdisk:许多人连扇区都不知许多人连扇区都不知道是什么道是什么?要求他们根据扇区编号来访问磁盘要求他们根据扇区编号来访问磁盘需要在扇区上引入更高一层次的抽象概念需要在扇区上引入更高一层次的抽象概念!文件文件首先想一想用户眼里的文件是什么样子首先想一想用户眼里的文件是什么样子?字符序列字符序列(字符
37、流字符流)磁盘上的文件是什么样子磁盘上的文件是什么样子?扇区集合扇区集合文件文件:建立字符流到扇区集合的映射关系建立字符流到扇区集合的映射关系- 43 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科文件概念文件概念n建立字符流到盘块集合的映射关系建立字符流到盘块集合的映射关系看一个例子看一个例子intmain() test.c将将2-12字符删去字符删去中的中的2-12字符对应字符对应盘块盘块789读入、修读入、修改、读出改、读出为增加灵活性,为增加灵活性,OS又将多又将多个连续扇区定义为盘块个连续扇区定义为盘块- 44 -曲明成曲明成博士后博士后/硕导操作系操作系统f
38、or2015级本科本科三种文件存储磁盘块分配方式的优缺点三种文件存储磁盘块分配方式的优缺点从三个方面评估:从三个方面评估:1)访问速度(读写)访问速度(读写)2)磁盘碎片(外部碎片)磁盘碎片(外部碎片)3)文件操作(增删改查)文件操作(增删改查)11.4文件概念及实现方法文件概念及实现方法- 45 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科文件的实现文件的实现n文件抽象概念的实现关键:文件抽象概念的实现关键:描述这一映射关系描述这一映射关系文件实现文件实现1:物理盘块连续分配物理盘块连续分配intmain() test.c0123456789101112131415
39、16171819202122232425262728293031ftrmaillist需存放什么信息需存放什么信息?起始盘块和盘块个数起始盘块和盘块个数存放在哪里存放在哪里?文件描述信息节点中文件描述信息节点中名字很多名字很多:FCB,FileHeader等等文件名文件名 始址始址 块数块数test.c 0 4test.c的的FileHeader优点简单快速,缺点?和连优点简单快速,缺点?和连续内存分配相比一下!续内存分配相比一下!文件文件f的起始的起始块块=?块数块数=?1)访问速度(读写)访问速度(读写)2)磁盘碎片(外部碎片)磁盘碎片(外部碎片)3)文件操作(增删改查)文件操作(增删改查
40、)- 46 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科文件实现文件实现2:链式分配链式分配intmain() test.c文件名文件名 始址始址test.c 1test.c的的FileHeader优点优点:文件长度增减容易文件长度增减容易01234567891011121314151617181920212223242526272829303110-1917test.cNullFileHeader缺点缺点:顺序访问、效率低顺序访问、效率低1)访问速度(读写)访问速度(读写)2)磁盘碎片(外部碎片)磁盘碎片(外部碎片)3)文件操作(增删改查)文件操作(增删改查)- 4
41、7 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科文件实现文件实现3:索引分配索引分配intmain() test.c是连续和链式分配的有效折衷是连续和链式分配的有效折衷012345678910111213141516171819202122232425262728293031 917 110 -1 -1 -119文件名文件名 索引块索引块test.c 19test.c的的FileHeader在实际操作系在实际操作系统中较常用统中较常用!1)访问速度(读写)访问速度(读写)2)磁盘碎片(外部碎片)磁盘碎片(外部碎片)3)文件操作(增删改查)文件操作(增删改查)文件大小不
42、一样,怎么优化?文件大小不一样,怎么优化?- 48 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科UNIX的索引节点的索引节点(inode)根据名字就知根据名字就知道是索引分配道是索引分配!ptr1ptr2ptr3ptr4.ptr11ptr12ptr13数据块数据块ptr1ptr2ptr128一阶间接索引一阶间接索引ptr1ptr2ptr128二阶间接索引二阶间接索引一阶间接索引一阶间接索引UNIXinode三阶间接索引三阶间接索引可以表示很大的文件可以表示很大的文件很小的文件高效访问很小的文件高效访问中等大小的文件访问中等大小的文件访问速度也不慢速度也不慢!这就是通用
43、操这就是通用操作系统的魅力作系统的魅力!- 49 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科磁盘与文件总结磁盘与文件总结n磁盘也是一种重要的外设磁盘也是一种重要的外设磁盘提供了大容量存储磁盘提供了大容量存储n管理外设首先需要了解外设管理外设首先需要了解外设认识磁盘结构和读写认识磁盘结构和读写n磁盘结构磁盘结构(读写读写)柱面柱面(寻道寻道)/磁头磁头(选磁头选磁头)/扇区扇区(旋转旋转)传输传输n通过扇区编号来直接访问磁盘通过扇区编号来直接访问磁盘生磁盘生磁盘交换分区交换分区nLinux交换分区实现交换分区实现虚拟内存技术就完整了虚拟内存技术就完整了n熟磁盘熟磁盘:
44、有意义的扇区集合有意义的扇区集合文件文件字符流到扇区的映射字符流到扇区的映射n生磁盘让用户使用是不合适的生磁盘让用户使用是不合适的CookedDiskn映射方案映射方案连续连续(象数组象数组)链式链式(象指针象指针)索引索引(折衷折衷)- 50 -曲明成曲明成博士后博士后/硕导操作系操作系统for2015级本科本科C-LOOK磁盘调度磁盘调度继续该实例继续该实例:磁头开始位置磁头开始位置=53,磁头向高磁道移动,复位地址为低磁道,磁头向高磁道移动,复位地址为低磁道请求队列请求队列=98,183,37,122,14,124,65,670 143753 65 6798122 124183199tCHeadRear首先给出寻到序列,然后首先给出寻到序列,然后建立队列?建立队列?