IO
2019-12-20 13:52:16 0 举报
AI智能生成
操作系统IO
作者其他创作
大纲/内容
文件存储空间管理
存储空间的划分和初始化
文件卷(逻辑卷)的概念
目录区和文件区
几种管理方法
空闲表法
空闲表数据结构:[第一个空闲盘块号,空闲盘块数]
适用于连续的分配方式
分配时可以使用动态分区分配一样的方法,最佳/最大/首次等等
回收也相同
空闲链表法
空闲盘快链
以盘快为单位组成一条空闲链
空闲盘区链
以盘区为单位组成一条空闲练
盘区就是连续的几个盘块
位示图法
用二进制表示对应一个盘块,
(字号,位号) = (i,j)的二进制对应对的盘块号 b = ni + j ; n表示字长
一定要注意块号和位号是从0还是1开始的
成组链接法
文件系统层次结构
用户接口
文件系统需要向上层的用户提供一些简单易用的功能接口,这层就是用于处理用户发出的系统调用请求(read,write,open,close
文件目录系统
用户是通过文件路径来访问文件的,因此这一层需要根据用户所给出的文件路径找到响应的FCB或索引结点,所有和目录,目录项相关的管理工作都在本层完成,如:管理活跃的文件目录表,管理打开文件表等
存取控制模块
为了保证文件数据的安全,还需要检查用户是否有访问权限,这一层主要完成了文件保护相关工作
逻辑文件系统与文件信息缓冲区
用户指明想要访问文件记录号,这一层需要将记录号转换为对应的逻辑地址
物理文件系统
这一层需要把上一层提供的文件逻辑地址转换为实际的物理地址
辅助分配模块
负责文件存储控件的管理,即负责分配和回收存储控件
设备管理模块
直接与硬件交互,负责和硬件直接相关的一些管理工作,如:分配设备,分配设备缓冲区,磁盘调度,启动设备,释放设备等
一个操作的整体过程
假设某用户请求删除文件"学生信息.xlsx"的最后100条记录
1:用户需要通过操作系统提供的接口发出上述请求--用户接口
2:由于用户提供的是文件的存放路径,因此需要操作系统一层层地查找目录,找到对应的目录项--文件目录系统
3:不同的用户对文件有不同的操作权限,因此为了保证安全,需要检查用户是否有访问权限--存取控制模块
4:验证了用户对文件的操作权限后,需要把用户提供的"记录号"转变成对应的逻辑地址--逻辑文件系统与文件信息缓冲区
5:知道了目标记录对应的逻辑地址后,还需要转换成实际的物理地址--物理文件系统
6:要删除这条记录,必定要对磁盘设备发出请求,--设备管理程序模块
7:删除这些记录后,会有一些盘块空闲,因此要将这些空闲盘快回收--辅助分配模块
大容量存储器
磁盘
盘片
存储数据的介质
正反两面可以存储数据
磁头
有多少盘面就有多少磁头
扇区
每个扇区512B
磁盘访问时间1
寻道时间
1/3磁道移动时间(1-4ms)
旋转延迟
1/(2*RPM/60)
子主题
RAID
磁盘冗余阵列
可靠性
磁盘可靠性
引入冗余
性能
数据分散,并行读写
RAID0
空间利用率最高
不具有容错功能
数据分散在多个磁盘上,条状分散技术
提高读写性能
RAID1
磁盘镜像
提高可靠性
RAID5
分散+校验
校验信息分散在各个磁盘
文件系统
文件属性
文件访问
顺序访问
依次访问数据,不能直接跳到文件的指定位置
优点:节省存储控件
缺点:访问效率差
直接访问
直接通过计算得到需要读写的位置,直接跳转进行文件读写
优点:访问效率好
缺点:访问效率不好
索引文件
为顺序文件建立索引表
文件目录
文件控制块(FCB) 重要的是文件名和文件物理地址
文件检索过程(目录遍历)
平均遍历目录项数 (1+n) / 2 n指需要的物理块的数目
目录性能
读入尽可能小的物理块
I node
把文件名和文件描述信息分开,文件的描述信息形成一个单独的索引节点,叫做I node,这样简化的文件目录为,文件名对应i结点指针
单级目录结构,二级目录结构,多级目录结构,是为了解决文件系统中存在重复的文件名
树型目录结构不适合文件共享,提出无环图目录结构.无环图在树型基础上将一些文件名执行同一份文件,形成无环图
文件索引结点包含FCB中除了文件名以外的信息,通过索引结点指针指向索引结点,是文件索引瘦身策略
共享方式
基于索引结点的共享方式硬链接
两个文件索引结点指针指向同一个文件索引结点
文件索引结点维持一个计数,记录使用的该结点的个数,只有计数为0才可以删除
基于符号链的共享方式(软连接)
不使用索引结点,而是保持一个索引和指向的文件中记录文件位置,
文件系统
文件分配方式
连续分配
在FCB中添加起始块号和长度,
连续分配要求每个文件在磁盘上占有一组连续的快
优点
支持顺序访问和直接访问
连续分配在顺序访问时速度最快
缺点
物理上采用连续分配方式不便拓展
磁盘利用率低,产生很多磁盘碎片,紧凑消耗多
链接分配(默认隐式)
可以为文件分配离散的磁盘块
隐式链接
FCB中添加起始块号和结束块号
除了最后一个磁盘块,其他磁盘块都有指向下一个磁盘块的指针
缺点
只支持顺序访问,查找效率低,消耗些许空间存放指针
优点
方便文件扩展,不会有碎片问题,外村利用率高
显式链接
FCB中记录起始块号
维持一个文件分配表FAT 存放文件的指针链接
形式 : 物理块号 , 下一块
一个磁盘设置一张FAT表,常驻内存
访问FAT不需要磁盘操作
优点
支持顺序访问和随机访问
地址转换时不需要访问磁盘,访问速度快,不产生碎片,
缺点
文件分配表需要占用一定的分配控件
索引分配
系统为每一个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块
在FCB中添加一个字段:索引块,指定对应索引表的位置
索引表类似页表,有逻辑块好,物理块号(逻辑块好隐藏)
读索引表需要读内存
索引表太大,索引快无法存放
解决
链接多个索引快
查找效率低下
多层索引
缺点:即使是小文件,也需要层数+1次度磁盘
混合索引
考点
根据索引结构计算出文件的最大长度(key:各级索引表最大不能超过一个快)
首先明确一个文件对应一个索引块,然后如果这个索引快是单级的,就看一个索引快能存放多少索引项,然后乘一页的大小,如果是多级,就一个索引快存放索引项的个数的多少次方乘以页面大小
自己分析访问某个快需要的度磁盘次数(key:FCB中会存有指向顶级索引块的指针)注意题目条件--顶级索引快是否已经调入内存
考点
1:访问多少次磁盘块
主要注意是目录项的总数/一个盘块存放的目录项再除以2
2:索引分配读取,不需要遍历索引表,可以直接定位到对应的索引指针,但是如果该处的索引指针是多级的,访问磁盘块个数就是级数+1
磁盘调度
FCFS先来先服务
SSTF最短寻到时间优先
SCAN
按方向滑到一端,在反向滑到另一端
C-SCAN
滑到一端后,从另一端头开始沿源方向滑过去
LOOK
不滑到头,滑到最后一个时间
选择
SSTF较为普遍且有吸引力
SCAN和C-SCAN适合磁盘大负荷系统
I/O
设备独立性
为了提高操作系统的可适应性和可拓展性
实现方法
引入逻辑设备和物理设备
在应用程序中,使用逻辑设备名来请求使用某类设备
而系统在实际执行时必须使用物理设备名
系统必须具有将逻辑设备名转为物理设备名的功能
类似于设备存储管理中的逻辑地址和物理地址的概念
I/O控制方式
轮询(基本不用)
使用中断的可编程I/O方式(广泛使用)
可使CPU与I/O设备并行工作
直接存储器访问
DMA
进一步提高了CPU与I/O设备的并行操作程度
I/O通道控制方式
缓冲区
缓冲区是一个存储区域,可以由专门的硬件组成,更多的是利用内存,
缓冲
设备之间传输的数据暂时存放在内存中
解决设备之间的速度差异
协调传输数据大小不一致
维持拷贝语义
引入缓冲的主要原因
缓和CPU和I/O设备间速度不匹配的矛盾
减少对CPU的中断频率
解决数据粒度不匹配的问题
提高CPU与I/O设之间的并行性
假脱机
为了缓和CPU的高速性与I/O的低速性之间的矛盾而引入了脱机输入,脱机输出技术
利用一道其中一道程序,模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到告诉磁盘上
用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备
特点
提高了I/O的速度
将独占设备改造为共享设备
实现了虚拟设备功能
0 条评论
下一页