所有的 I/O 设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当作相应文件的读和写来执行。这种将设备优雅地映射为文件的方式,允许 Linux 内核引出一个简单、低级的应用接口,称为 Unix I/O,这使得所有的输入和输出都能以一种统一且一致的方式来执行。
硬盘 => chs => 盘块 => 文件
文件:建立字符流(序列)到盘块集合的映射关系,由操作系统维护这个映射关系。
FCB 以块号为单位,会不会太大,比如单个位的编辑?
inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
Unix/Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件。
目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。
文件系统:一种用于持久性存储的系统抽象。
文件:文件系统中一个单元的相关数据在操作系统中的抽象。
文件系统提供了按名存取功能,使用户能透明地访问文件。
文件分类:
这里引出了交换区和文件区。
文件区主要用于存放文件,追求存储空间的利用率,因此对文件区空间的管理采用离散分配方式;
交换区只占磁盘空间的小部分,被换出的进程数据就存放在这里,追求换入换出的速度,因此对交换区采用连续分配方式。
目的:对所有不同文件系统的抽象
文件系统主要功能:
有序的字符流,内部无结构划分
文件内的数据被划分为具有逻辑完整性的单元,每个单元称作一条记录,每条记录可以包含若干个数据项。(CSV
文件系统通过文件的物理结构和目录文件实现按名存取功能。
描述信息
管理信息
包含文件的元信息(无文件的名称):
每个inode都有一个号码,操作系统用inode号码来识别不同的文件,系统内部不使用文件名。
对于系统来说,文件名只是inode号码便于识别的别称或者绰号。
表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。
主要就是空闲区管理
结构
分配、回收算法
空闲盘块链
空闲盘区链
类型
共享方法
保护采用保护键法。
文件保护
保密安全策略分为 MAC(强制访问策略,安全性更高)、DAC(自主访问策略,更加灵活)
主机对设备的访问表现为使用基本的端口通讯指令(in、out)与这组 IO 地址通讯。
设备相关层
设备无关层
设备独立性:操作系统提供了物理设备到逻辑设备的抽象,用户或程序中使用的设备与具体的设备无关,不再需要关注设备的细节,方便用户使用。
CPU 无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为 CPU 和 I/O 设备机械部件之间的“中介”,用于实现 CPU 对设备的控制。这个电子部件就是 I/O 控制器,又称设备控制器,CPU 可控制 I/O 控制器,又由 I/O 控制器来控制设备的机械部件。
I/O 控制器功能点:
两种寄存器编制方式
目标:减少 CPU 等待时间、减轻 CPU 负担、提高系统并行性
进程提出 IO 请求并获得设备后,IO 子程序将不断循环检测设备的状态,直到设备能够满足 IO 操作的要求时实施传输动作。
设备《=》CPU《=》内存
与异常的关系?
1.进程提出 IO 请求并获得设备后,若设备未就绪,则阻塞进程。
2.当设备进入就绪状态时,发出中断信号,已在系统中注册的中断处理函数唤醒进程以启动一个传输动作,而后再阻塞进程直到设备再次就绪。
设备《=》CPU《=》内存
1.进程提出 IO 请求并获得设备后,将数据(或接收缓冲区)安置在内存中的位置和大小写入 DMA 控制器的寄存器内,启动 DMA 过程并阻塞进程。
2.DMA 控制器控制指定内存区域同设备之间的数据交换。其间需要使用总线时,总线控制权将供DMA使用(硬件机制)。
3.当原进程请求的IO操作全部完成时,DMA 控制器发出中断,中断处理程序唤醒进程。
DMA 中两个主要寄存器:
数据的传送单位是“块”。
设备《=》内存
在DMA方式的基础上,通道方式中使用通道处理器替代DMA控制器来实施传输动作。
通道处理器是一个简单的专用处理器,具有自身的指令系统,可按程序完成传输动作。这使得通道处理器较只能进行单纯传输动作的DMA控制器具有更强大的功能,例如传输纠错、数据格式转换、数据预处理 等。
对于系统中的每一个通道,内存中有两个固定的专用存储单元分别存储通道程序的首地址(CAW通道地址字)和状态信息(CSW通道状态字)。
数据的传送单位是“一组数据块”
通道方式的运作过程:
➢ 进程提出IO请求并获得设备后,根据所要求的IO操作,生成由通道指令组成的通道程序,并将程序首地址写入CAW中。然后启动通道并阻塞进程。
➢ 通道处理器从CAW中找到通道程序,并按通道程序的指令完成数据传输过程。每条指令执行之后都将通道状态写入CSW中,使得主机能够随时掌握通道运行情况。
➢ 若通道程序执行中出现错误,通道处理器将发出错误中断,交由中断处理程序处理错误;若通道程序顺利执行完毕也将发出完成中断,由中断处理程序唤醒原进程。
缓冲技术一般应用于两种速度不一致的部件之间的协作。一般形式是以缓冲区来暂时存放需要交换的信息。
使用缓冲技术的输出(Write)的一般过程:
使用缓冲技术的输入(Read)的一般过程:
一次磁盘读/写操作需要的时间 = 寻道时间(大头) + 旋转延迟时间 + 传输时间
减少延迟时间方法:
驱动调度:
调度算法:
存储空间管理数据结构:
磁盘管理:
创建进程时,会打开三个文件,其文件描述符为 0、1、2,分别表示标准输入、标准输出以及标准错误流。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有