计算机操作系统--哈工大(4)

文章讲述了操作系统如何通过文件视图简化用户与I/O设备的交互,重点讨论了磁盘的读写过程,包括寻道时间和调度算法如FCFS、SSTF、SCAN、C-SCAN。接着介绍了文件系统的三层抽象:连续结构、链式结构和索引结构,以及目录在文件系统中的作用,强调了目录树的扩展性和效率。
摘要由CSDN通过智能技术生成

操作系统要给用户提供一个简单视图--文件视图,方便使用

I/O与显示器

开始设备驱动的学习

听不进去了,明天继续^^

这一段听的糊涂,感觉知识没有进脑子

键盘

生磁盘的使用

认识磁盘

移动磁头到相应的磁道上,旋转磁盘到相应的扇区上,进行读写(数据传输)

最直接使用磁盘

层层抽象,最终实现文件系统

一层抽象--通过盘块号读写

磁盘访问时间主要局限于寻道时间,所以为了提高读写速率,会将相邻的数据写入相邻的扇区

磁盘读写的时候会旋转,正好从0号扇区转到1号扇区读写1号扇区

第二层抽象--多进程通过队列使用磁盘

调度目标:平均访问延迟小(寻道时间是主要矛盾)

研究调度算法:

FCFS算法

直接根据列表一个一个来,效率很低

SSTF算法

短寻道优先,去找离我近的,顺便执行掉

磁盘请求是不断生成的吗,而且中间的请求比较多,所以这种方式磁头总是在中间移动,边缘的请求就会被忽略,造成饥饿问题

SCAN算法 电梯算法

SSTF+中途不回折,每个请求都有处理机会。不回来会转来转去

C-SCAN算法

SCAN +直接移动到另一端,两端请求都能很快处理,中间的请求就不会占便宜

生磁盘的使用管理

丛生磁盘到文件

第三层抽象--引入文件

连续结构实现文件

让普通用户使用生磁盘不方便,不了解扇区什么的,所以在盘块上引入更高一层的抽象概念--文件

用户眼里的文件是什么样子?

文件:建立字符流到盘块集合的映射关系

假设一个块存储100个,test.c的起始地址为块6,知道起始块就可以算出目标块。目标地址是200-212,块8为200-299,所以目标块为8

这种连续结构适合读写,不适合动态增长

链式结构实现文件

先读1,再找到10,读10找到17,17是目标块。读写效率比较低,适合动态增长

索引结构--第三种结构

实际系统中用的就是多级索引

这个熟悉的多级索引,知识重叠了^^

可以表示很大的文件,很小的文件高效访问,中等大小的文件访问速度也不低

文件使用到磁盘的实现

一到这种讲解源码的地方就开始懵逼

感觉就是左耳朵进右耳朵出

目录与文件系统

磁盘文件:建立了字符流到盘块集合的映射关系

第四层抽象--文件系统,抽象整个磁盘

目录树

将划分后的集合再进行划分:k次划分后,每个集合中的文件数为

这一树状结构扩展性好,表示清晰,最常用

引入了一个新的东西:目录,表示一个文件的集合

用 /my/data/a 定位文件a 更准确地说是:根据/my/data/a 得到文件a的FCB

六得嘞

目录存什么让系统效率更高?

要使整个系统能自举,还需要存一些信息

完成全部映射下的磁盘使用

目录解析代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值