操作系统 磁盘 文件系统

前言 

  虽然操作系统中文件管理和IO操作考的不是很多,像IO更少,不好出题,可能就是选择题什么的。而文件管理可能考一些磁盘的调度算法,可能会有一道大题。虽然大学很多的期末考试都是一种考前突击的状态,但是对于计算机的学生来讲,学好操作系统这门课对于我们的职业生涯有很大的帮助,他会提高我们对计算机的理解,能够写好更好的程序。总体来说,很多人都推荐学好计算机的基本功,这些是强大的内功,当这些内功学好之后,你学其他的东西也能触类旁通。比如说为什么张无忌可以在一个时辰内学完乾坤大挪移,就是因为他学了天下第一的内功。以至于他能学这么快。所以对于计算机的学生,一定要深刻掌握其中的原理。可以去看看《深入理解计算机系统》这本书,也就是csapp,很多人给出了高分评价。总之,我认为,学好这门学科一定要多理解,多思考。(本文参考哈工大李治军老师的OS课)

磁盘结构

磁盘有柱面,扇区,磁道等结构,磁盘的访问单位是扇区,扇区的大小是512KB。扇区的大小是传输时间和碎片浪费的折中。

磁盘I/O过程:控制器→寻道→旋转→传输。

直接使用

很麻烦,需要很多参数。

一层抽象

磁盘驱动负责从block计算出 对应的参数。隐藏细节。

操作系统负责从一维编址到三味编址

磁盘访问时间 = 写入控制器时间 + 寻道时间 + 旋转时间+传输时间

空间换时间

盘块可以是好几个扇区合成一个盘块。

多个进程通过队列使用磁盘

第二层抽象

这里介绍一些磁盘调度算法

FCFS

SSFT 短寻道优先
SCAN 电梯算法 C-SCAN

SCAN 常见电梯,先往一头走, CSCAN 就是防止某个人一直按电梯,先负责把所有人送上去,然后再回来接。

总结

生磁盘使用整理

1.进程:得到盘块号,算出扇区号

2.用扇区号发起请求,根据相应算法

3进程 sleep_on

4磁盘中断处理

5.do_hd_request 算出相应的c h s

第三层抽象

在盘块引入更高一层的抽象概念,文件

映射 字符流映射到具体盘块

每个文件都有一个FCB

记录文件名,起始块

连续结构来实现文件

处理很快,但是增长的话,比较麻烦。

链式结构实现文件,每一个盘块存地址

读取的时候不如连续,但是动态增长很方便

索引方式实现文件

优点:

可以表示很大的文件

很小的文件高效访问

中等大小的文件访问速度也不慢

文件使用磁盘的实现

inode 索引表 我们可以看到,只需要拿到文件描述符,也就是句柄。

第四层抽象

目录与文件系统

将应用程序+存储的数据可以得到那棵文件树,找到文件、读写文件

用目录树进行划分

分治的思想。

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

如何使用目录?

存目录项,用的什么目录文件。

引导块是固定的

超级块:记录两个位图有多大等信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值