操作系统笔记
原作者视频地址:https://www.bilibili.com/video/BV1YE411D7nH?spm_id_from=333.337.search-card.all.click
本人为自学整理的文档
1.I/O基本概念:将数据输入计算机,或接收计算机的数据输出到外部设备
2.I/O设备的构成:机械部件(硬件),电子部件(软件)—>I/O控制器,设备控制器
3.I/O控制器:
作用:接收并识别CPU命令、向CPU报告设备状态、数据交换、地址识别
I/O控制方式:
(1)程序直接控制方式(每次读/写一个字)
过程: CPU通过控制线向I/O控制器发送指令,然后I/O控制器启动I/O设备,
将对应的状态寄存器设置为1(表示设备未准备好数据),
输入设备将数据传入I/O控制器,报告自己的状态,
然后I/O控制器将数据传入数据寄存器,修改I/O寄存器状态为0(表示设备已就绪),
其次CPU将数据寄存器的内容读取到自己的寄存器,最后再到内存。
优点:实现简单,缺点:CPU和设备是串行,每次的轮巡检查状态寄存器,可能导致“忙等”,因此CPU利用率低
(2)中断驱动方式(每次读/写一个字)
过程:CPU通过控制线向I/O控制器发送指令,
CPU将此I/O进程阻塞,将对应的状态寄存器设置为1(表示设备未准备好数据),
输入设备将数据传入I/O控制器,报告自己的状态,
然后I/O控制器将数据传入数据寄存器,修改I/O寄存器状态为0(表示设备已就绪),
I/O控制器发送一个中断命令给CPU,CPU将数据寄存器的内容读取到自己的寄存器,最后再到内存。
优点:CPU和I/O设备可以并行工作,缺点:CPU在I/O操作前后干预,但每次都是按字读,实际也存在CPU频繁干预
(3)DMA方式(传输块)
过程:CPU通过控制线向I/O控制器发送指令以及一个内存地址,I/O控制器通知设备
设备传输一个块的数据暂存到数据寄存器,修改状态寄存器
DMA控制器将数据传到之前CPU给的内存,然后发送中断命令给CPU,告诉CPU已执行前面的指令
优点:CPU和I/O设备可以并行工作缺点:多个块必须是连续的,每个I/O指令操作一个块,离散块需要频繁中断
(4)通道控制方式(一组数据块)
通道是专门负责I/O的处理机,是硬件,区别于以前的管道(缓冲区,是软件)
I/O通道直接操作内存中的通道程序,将设备传入数据直接传到内存
4.I/O软件层次结构
(1)用户层软件:实现用户交互接口,通过库函数实现系统调用
(2)设备独立性软件:与硬件底层无关的操作,对上层的封装操作,向上一层提供调用接口,设备保护,容错处理,设备分配与回收,数据缓冲区管理,逻辑设备与物理设备映射映射
(3)设备驱动程序:CPU指令相同,负责控制硬件设备,将CPU指令转成设备操作,驱动程序以独立进程的形式存在
(4)中断处理程序(I/O中断的应答):IO完成后发送中断信号,执行中断处理程序,会直接操作硬件
5.假脱机技术
解决输入和输出效率不平衡的问题:缓冲思想,缓冲区满了才放到输入井
6.I/O设备的分配和回收(在设备独立性软件层处理)