本文已参与「新人创作礼」活动,一起开启掘金创作之路。
磁盘管理:
磁盘地址结构:柱面号、盘面号、扇区号
读写时间:
- 寻道时间:将磁头移动到指定磁道所需要的时间
- 延迟时间:磁头定位到某一磁道的扇区所需要的时间
- 传输时间:从磁盘读出或向磁盘写入数据所经历的时间
- 启动时间(一般忽略):控制器的启动时间
调度算法:
- 先来先服务(FCFS):根据进程请求访问磁盘的先后顺序进行调度
- 最短寻找时间优先(SSTF):选择当前磁头所在的磁道距离最近的磁道
- 扫描(SCAN)算法(电梯算法):在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求
- 循环扫描(C-SCAN):在扫描算法的基础上规定磁头单向移动来提供服务
磁盘管理:
- 初始化:对磁盘进行低级格式化和逻辑化
- 引导块:存放自举程序
- 坏块:对于损坏扇区的处理
5.I/O管理:
I/O管理概述: 状态跟踪、设备存取、设备分配、设备控制
设备分类:
-
按传输速率分:
- 低速:如磁盘、鼠标
- 中速:如行式打印机、激光打印机
- 高速:如磁带机、磁盘机、光盘机
-
按信息交换单位分:
- 块设备:如磁盘
- 字符设备:如键盘、打印机
控制方式:
-
程序直接控制:程序直接对设备特环测试
-
中断驱动:引入中断机制,当设备准备完成时发生中断
-
DMA:在I/O设备与主存之间开辟直接数据通路,彻底“解放”CPU。
-
基本数据单位是块;
-
传送的数据从设备直接送入内存(或相反)
-
仅在传送一个或多个数据块的开始和结束时,才需要CPU干预,整块数据的传送是在DMA控制器的控制下完成的;
-
包含的四类控制器:
- 命令/状态寄存器(CR)
- 内存地址寄存器(MAR)
- 数据寄存器(DR)
- 数据计数器(DC)
-
-
通道控制:引入专门的I/O处理机进行管理
I/O子系统层次:
- 用户层I/O软件:实现与用户交互的接口
- 设备独立性软件:实现用户程序与设备驱动器的统一接口、设备命令、设备保护以及设备分配与释放
- 设备驱动程序:与硬件直接相关,负责具体实现系统对设备发出的操作指令
- 中断处理程序:用于处理中断相关事项
- 硬件设备:包括一个机械部件(设备本身)和一个电子邮件(控制器)
I/O核心子系统:
I/O调度:确定一个好的顺序来执行这些I/O请求
磁盘高速缓存:指利用内存中的存储空间来暂存从磁盘上读出的一系列盘块中的信息;逻辑上属于磁盘,物理上属于内存;
- 1:在内存中开辟一个单独的存储空间作为磁盘高速缓存,大小固定
- 2:把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘时I/O共享
缓冲区:位于内存区域
-
特点:当缓冲区的数据非空的时候,不能往缓冲区冲入数据,只能从缓冲区把数据传出;为空时,可以冲入数据,但必须充满遗憾才能再传出。
-
引入缓冲区的目的:
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对CUP中断响应时间的限制
- 解决基本数据单元大小不匹配的问题
- 提高CPU和I/O设备之间的并行性
-
单缓冲
-
双缓冲
-
循环缓冲
-
缓冲池
| 高度缓存 | 缓冲区 | |
|---|---|---|
| 存放数据 | 存放的是低速设备上的某些数据的复制数据 | 存放的是低速设备传递给高速设备的数据(或相反) |
| 目的 | 高速缓存存放的是高速设备经常要访问的数据 | 高速设备和低速设备的通信都要经过缓冲区,高速设备永远不会直接去访问低速设备 |
| 相同点 | 都是介于高速设备和低速设备之间 |
设备的分配与回收:
-
分类:
- 独点式使用设备:设备被使用时不再允许其他进程使用设备
- 分时共享式使用设备:设备没有独占使用的要求时,可以通过分时共享使用
- SPOOLing技术:将独占设备改造成共享设备,实现了虚拟设备的功能;以空间换时间,必须先有独占设备
-
设备分配的数据结构:
- 设备控制表(DCT):每个设备配置一张DCT,以记录本设备的情况;
- 控制器控制表(COCT):每个控制器有一张COCT;
- 通道控制表(CHCT):每个通道配置一张CHCT;
- 系统设备表(SDT)整个系统只有一张SDT,记录已连接到系统中的所有物理设备的情况;
- SDT中有一个DCT指针,DCT中有一个COCT指针,COCT中有一个CHCT指针,CHCT中有一个COCT指针。
-
分配原则:
- 即要求充分发挥设备的使用效率,又要避免造成进程死锁,还要将用户程序和具体设备隔离开
-
分配方式:
- 静态分配:在用户作业开始执行前,由系统一次性分配该作业所要求的全部设备
- 动态分配:在进程执行过程中根据执行需要进行分配
-
设备分配的安全性:
- 安全分配方式:每当进程发出I/O请求后便进入阻塞状态,直到其I/O操作完成时才被唤醒。
- 不安全分配方式:进程发出多个I/O请求并继续运行,仅当进程所请求的设备已被另一进程占用时,才进入阻塞状态。
-
设备独立性是指应用程序独立于具体使用的物理设备
SPOOLing技术:主要包括输入井、输出井、输入缓冲区和输出缓冲区以及输入进程和输出进程。
-
输入井和输出井是在磁盘上开辟的两大存储空间;
- 输入井是模拟脱机输入时的磁盘设备,用于暂存I/O设备输入的数据
- 输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据