第11章文件系统实现明确文件系统实现是分层实现的,各层的作用明确文件系统共有的内容明确虚拟文件系统的作用明确目录的实现方法明确文件磁盘空间块分配方法及各自优缺点明确空闲空间管理方法及各自优缺点明确影响磁盘管理的效率和性能的因素分层设计的文件系统2逻辑文件系统管理元数据:文件系统的所有结构数据,而不包括实际数据(或文件内容)根据给定符号文件名来管理目录结构逻辑文件系统通过文件控制块(FCB)来维护文件结构文件组织模块逻辑块地址转换为物理块地址。空闲空间管理基本文件系统向合适的设备驱动程序发送一般命令就可对磁盘上的物理块进行读写I/O控制由设备驱动程序和中断处理程序组成,实现内存与磁盘之间的信息传输文件系统共有的内容:1)如何启动所存储的操作系统2)总的块数3)空闲块的数目和位置4)目录结构5)各个具体文件相关的信息虚拟文件系统虚拟文件系统作用虚拟文件系统示意图4虚拟文件系统(VFS)提供了一种面向对象的方法来实现文件系统VFS允许在不同类型的文件系统上采用同样的系统调用接口(API)API是针对VFS的接口,而非对任何特定类型的文件系统目录的实现方法5最为简单的目录实现方法是使用存储文件名和数据块指针的线性列表(数组、链表等)容易实现但运行费时采用线性搜索来查找特定条目(缺点)许多操作系统采用软件缓存来存储最近访问过的目录信息Hash表:采用Hash数据结构的线性表减少了目录搜索时间碰撞:两个文件名哈希到相同的位置哈希表的最大困难是其通常固定的大小和哈希函数对大小的依赖性文件磁盘空间分配方法6分配方法指的是如何为文件分配磁盘块(因此磁盘空间分配又叫块分配),常用的分配方法有以下三类:连续分配链接分配索引分配(一)连续分配(contiguousallocation)7每个文件占据磁盘上的一组连续的块特点:简单-只需要记录文件的起始位置(块号)及长度。访问文件很容易,所需的寻道时间也最少存在的问题为新文件找空间比较困难(类似于内存分配中的连续内存分配方式)文件增长确定一个文件需要多少空间(二)链接分配(linkedallocation)8每个文件是磁盘块的链表;磁盘块分布在磁盘的任何地方。优点:简单-只需起始位置文件创建与增长容易缺点:只能顺序访问,不能直接访问块与块之间的链接指针需要占用空间簇:将多个连续块组成簇,磁盘以簇为单位进行分配(将每个链接块变大)存在可靠性问题(指针丢失)(三)索引分配(indexedallocation)9将所有的数据块指针集中到索引块中索引块中的第i个条目指向文件的第i块。目录条目包括索引块的地址索引分配支持直接访问,且没有外部碎片问题索引块本身可能会浪费空间链接方案:一个索引块通常为一个磁盘块。对于大文件,可以将多个索引块链接起来。多层索引:类似于内存的间接寻址方式(一级、二级间接…)组合方案:如Unix的inode空闲空间管理10为了记录空闲磁盘空间,系统需要维护一个空闲空间链表,它记录了所有空闲磁盘空间,即未分配给文件或目录的空间。(空闲链表虽然称为链表,但不一定表现为链表)他可以有四种实现方式:1)位图或位向量(n块)(记录每一个块的使用情况)bit[i]=0block[i]被占用bit[i]=1block[i]空闲空闲块数计算一个字的位数×值为0的字数+第一个值为1的位的偏移位向量需要额外的空间容易得到连续的文件112)链表(空闲链表):使用链表记录空闲块的地址,将所有空闲磁盘块用链表连接起来,并将指向第一空闲块的指针保存在磁盘的特殊位置,同时也缓存在内存中。不易得到连续空间相比位图方式,空间浪费少3)组:将n个空闲块的地址存在第一个空闲块中,而最后一块包含另外n个空闲块的地址,如此继续。不易得到连续空间查找比较快4)计数在前三种方法中记录每个块的地址,但通常,系统中总是有多个连续块需要同时分配或释放。因此,可以记录第一块的地址和紧跟第一块的连续的空闲块的数量n即可,而不必记录每个块的地址。磁盘管理效率与性能12效率依赖于磁盘空间分配(块分配)与目录管理算法文件目录项中保存的数据类型性能1)使用合适的算法将外存数据调入内存2)设置缓冲区选择题1.对于下列文件的物理结构中,哪一个只能采用顺序存取方式?A.顺序文件B.链接文件C.索引文件D.HASH文件B2.在文件系统中,文件的逻辑结构可分为两类,它们是。A.流式文件和记录式文件B.字符文件和二进制文件C.程序文件和数据文件D.内存文件和外存文件A文件的存取结构分为两种:逻辑结构与物理结构。前者从用户的角度出发研究文件的逻辑上的组织形式,后者从系统的角度出发,研究文件在外存上的存储形式。1)逻辑结构可分为两大类:一种是记录式的有结构文件,另一种是字符流式的无记录文件。a)有结构文件:有结构文件又称为记录式文件,是由一组相关记录组成,用户以记录为单位来存取信息。记录又分为定长记录和变长记录。记录的组织方法有多种:顺序,索引,索引顺序,散列(哈希)。b)无结构文件:无结构文件又称为流式文件,是以字节为单位来存取信息。因此可将流式文件看成记录式文件的一个特例(即记录式文件中的记录长度为一个字节)2)文件的物理结构:即文件磁盘空间的管理(块分配)a)连续分配b)链接分配c)索引分配3.操作系统实现文件管理够,允许用户对记录式文件进行存取的最小单位是。A文件B.记录C.数据项D.字符串B4.从用户角度看,引入文件系统的主要目的是。A.实现虚拟存储B.保存系统开销C.保存用户和系统开销D.实现对文件的按名存取D5.从用户角度出发考虑文件的组织形式称为文件的。A逻辑结构B.物理结构C.存取方式D.文件的保护级别A6.文件系统中文件被按照名字存取是为了。A方便操作系统对信息的管理B方便用户的使用C.确定文件的存取权限D.加强对文件内容的保密B7.文件的物理组织形式是与下列哪一项因素有关?A.文件长度B.记录的个数C.文件目录结构D.用户对文件的存取方式D第12章大容量存储器结构明确磁盘的物理结构。明确磁盘访问时间(寻址时间)的组成。1)寻址时间=寻道时间+等待时间2)磁盘带宽是指磁盘传送数据的速度了解磁盘附属的方法(磁盘附属即计算机访问磁盘的方式)1)主机附属存储(I/O端口)2)网络附属存储(分布式文件系统的远程主机)明确磁盘调度的调度算法当系统有多个待处理请求时,系统需要判断优先处理哪个待处理请求,这是要用到调度算法。1)FCFS(先来先服务)2)SSTF(最短寻道时间优先):在将磁头移到远处以处理其他请求之前,先处理靠近当前磁头位置的请求可能比较合理。类似最短作业优先算法,寻道时间长的请求可能永远得不到响应。3)SCAN算法(电梯算法):磁臂从一端向另一端移动,当磁头移过每个柱面时,处理位于该组面上的请求。当磁头到达另一端时,改变方向,处理继续。以此类推,磁头在磁盘上来回扫描。如果一个请求刚好在磁头移动到请求位置之前加入到队列,那么他几乎将马上得到处理。如果一个请求刚好在磁头移动到请求位置之后加入到队列,那么他必须等待磁头到达磁盘的另一段并返回后,才能处理。4)C-SCAN算法该算法是SCAN算法的变种,主要提供一个更为均匀的等待时间。在SCAN的基础上,当磁头移到另一端时,他会马上返回到磁盘开始,而在返回的过程中不处理任何请求。(红的表示不处理请求)5)LOOK算法与C-LOOK算法:在SCAN算法与C-SCAN的基础上,磁头不必移动到磁盘的两端,而只需移到最远的请求所在的磁道即可。选择题1.下列哪一种文件存储设备不支持文件的随机存取?A.磁盘B.光盘C.软盘D.磁带D2.位示图可用于。A.文件目录的查找B.磁盘空间的管理C.内存空间的共享D.实现文件的保护和保密B第13章I/O输入系统明确I/O硬件的相关基本概念(I/O端口、总线、控制器等)明确I/O处理的三种方式(查询,中断,DMA)明确I/O内核子系统提供的服务(调度、缓冲、假脱机等等)明确块设备、字符设备、网络设备区别和统一的访问接口I/O内核子系统提供的服务1)I/O调度:当系统有众多I/O请求时,确定一个好的调度顺序,以减少开销。2)缓冲:缓冲区是用来保存两个设备之间或在设备和应用程序之间所传输数据的内存区域。采用缓冲区有三个理由:a)处理数据流的生产者与消费者之间速度的差异。b)协调传输数据大小不一致的设备。c)支持应用程序I/O的复制语义3)高速缓存4)假脱机和设备预留:假脱机可以把专用设备变成共享设备,即一种协调并发输出的方法。5)错误处理6)I/O保护7)内核数据结构简答题1.有哪几种I/O控制方式?答:查询,中断,DMA,通道,外围处理机2.设备管理的主要功能和主要任务答:主要功能:缓冲管理,设备分配和设备处理,以及虚拟设备等.主要任务:完成用户提出的I/O请求,为用户分配I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;以及方便用户使用I/O设备.●缓冲管理:提高CPU的利用率进而提高系统的吞吐量●设备分配:根据用户进程的I/O请求、系统的现有资源以及按照某种设备的分配策略,为之分配其所需的设备●设备处理:用于实现CPU和设备控制器之间的通信3.设备分配时应考虑的因素答:设备的固定属性、设备分配算法、设备分配时的安全性、设备独立性(1)设备的固有属性有3种:独占性:设备在一段时间内只允许一个进程独占,eg:临界资源共享性:设备允许多个进程同时共享可虚拟设备:设备本身随时独占设备,但经过某种技术处理,可以把它改造成虚拟设备(2)设备分配算法:先来先服务、优先级高者优先(3)设备分配中的安全性:安全分配方式、不安全分配方式4.为什么引入缓冲(目的是什么?)答:在设备管理中,引入缓冲区的主要原因可归结为以下几点:(1)缓和CPU与I/O设备间速度不匹配的矛盾(2)协调处理数据大小不一致的设备(3)支持应用程序I/O的复制语义(CPU与I/O的并行性)综合分析计算题从53号磁道开始有8个进程先后提出磁盘I/O请求时,试分析分别按照本章所讲的前四种磁盘调度算法进行调度时,平均寻道距离:98,183,37,122,14,124,65,67FCFS算法SSTF算法SCAN算法(向小地址移动)SCAN算法(向大地址移动)(1)FCFS磁盘调度算法(2)最短寻道时间优先(SSTF)被访问的下一个磁道号移动距离(磁道数)9845183853714612285141081241106559672平均寻道长度:640/8平均寻道距离:640/8被访问的下一个磁道号移动距离(磁道数)651267237301423988412224124218359平均寻道长度:236/8寻道顺序:65,67,37,14,98,122,124,183平均寻道距离:236/8(3)扫描调度算法SCAN(电梯调度算法)假定磁头从53号磁道向磁道号减小方向移动。假定磁头从53号磁道向磁道号增大方向移动被访问的下一个磁道号移动距离(磁道数)371614236551672983112224124218359平均寻道长度:208/8被访问的下一个磁道号移动距离(磁道数)6512672983112224124218359371461423平均寻道长度:299/82.假设计算机系统采用CLOOK磁盘调度策略,使用2KB的内存空间记录16384个磁盘的空闲状态(1)请说明在上述条件如何进行磁盘块空闲状态的管理。(2)设某单面磁盘的旋转速度为每分钟6000转,每个磁道有100个扇区,相临磁道间的平均移动的时间为1ms.若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动,磁道号的请求队列为50,90,30,120对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这个扇区点共需要多少时间?需要给出计算过程。寻道时间+等待时间+读取时间解答:(