52o软件原理 5,2.1I/O软件的设计目标和原则 I/O软件的总体设计目标是: 高效率 通用性
5.2 I/O软件原理 5.2.1 I/O软件的设计目标和原则 ◼ I/O软件的总体设计目标是: 高效率 通用性
I/O软件设计主要要考虑以下4个问题: ■设备无关性。 ■出错处理 同步(阻塞)—异步(中断驱动)传 输 独占性外围设备和共享性外围设备
I/O软件设计主要要考虑以下4个问题: ◼ 设备无关性。 ◼ 出错处理。 ◼ 同步(阻塞)——异步(中断驱动)传 输。 ◼ 独占性外围设备和共享性外围设备
操作系统通常把IO软件组织成以下四 个层次 ●IO中断处理程序(底层)。 设备驱动程序 与设备无关的操作系统IO软件。 用户层I/O软件
操作系统通常把I/O软件组织成以下四 个层次 ◼ l I/O中断处理程序(底层)。 ◼ l 设备驱动程序。 ◼ l 与设备无关的操作系统I/O软件。 ◼ l 用户层I/O软件
5,2.2I/O中断处理程序 输入输出中断的类型和功能如下: ●通知用户程序输入输岀操作沿链推进的程度。此 类中断有程序进程中断。 ●通知用户程序输入输岀操作正常结束。当输入输 出控制器或设备发现通道结束、控制结束、设备结 束等信号时,就向通道发出一个报告输入输出操作 正常结束的中断 ●通知用户程序发现的输入输出操作异常,包括设 备出错、接口出错、I/O程序出错、设备特殊、设 备忙等,以及提前中止操作的原因。 ●通知程序外围设备上重要的异步信号。此类中断 有注意、设备报到、设备结束等
5.2.2 I/O中断处理程序 ◼ 输入输出中断的类型和功能如下: ◼ l通知用户程序输入输出操作沿链推进的程度。此 类中断有程序进程中断。 ◼ l通知用户程序输入输出操作正常结束。当输入输 出控制器或设备发现通道结束、控制结束、设备结 束等信号时,就向通道发出一个报告输入输出操作 正常结束的中断。 ◼ l通知用户程序发现的输入输出操作异常,包括设 备出错、接口出错、I/O程序出错、设备特殊、设 备忙等,以及提前中止操作的原因。 ◼ l通知程序外围设备上重要的异步信号。此类中断 有注意、设备报到、设备结束等
输入输出中断事件的原则如下: ■1)如果是操作正常结東 2)如果由于操作中发生故障或某种特殊 事件而产生的中断 3)如果是人为要求而产生的中断 4)如果是外围设备上来的“设备结束” 等异步信号
输入输出中断事件的原则如下: ◼ 1)如果是操作正常结束 ◼ 2) 如果由于操作中发生故障或某种特殊 事件而产生的中断 ◼ 3)如果是人为要求而产生的中断 ◼ 4)如果是外围设备上来的“设备结束” 等异步信号
5.2.3设备驱动程序 ■设备驱动程序的功能是从与设备无关的 软件中接收抽象的请求,并执行之。 条典型的请求是读第η块。如果请求到来 时驱动程序空闲,则它立即执行该请求 但如果它正在处理另一条请求,则它将 该请求挂在一个等待队列中
5.2.3 设备驱动程序 ◼ 设备驱动程序的功能是从与设备无关的 软件中接收抽象的请求,并执行之。一 条典型的请求是读第n块。如果请求到来 时驱动程序空闲,则它立即执行该请求。 但如果它正在处理另一条请求,则它将 该请求挂在一个等待队列中
5.2.4与硬件无关的操作系统I/O软件 设备无关软件完成的功能: ●对设备驱动程序的统一接口 设备命名 设备保护 提供独立于设备的块大小 缓冲区管理 块设备的存储分配 独占性外围设备的分配和释放 错误报告
5.2.4 与硬件无关的操作系统I/O软件 ◼ 设备无关软件完成的功能: ◼ l 对设备驱动程序的统一接口 ◼ l 设备命名 ◼ l 设备保护 ◼ l 提供独立于设备的块大小 ◼ l 缓冲区管理 ◼ l 块设备的存储分配 ◼ l 独占性外围设备的分配和释放 ◼ l 错误报告
操作系统的一个主要论题是文件和IO设备 的命名方式 ■操作系统如何保护对设备的未授权访问呢 ■设备无关软件屏蔽不同磁盘的扇区大小并 向高层软件提供统一大小的逻辑块 块设备和字符设备都需要缓冲技术 ■错误处理多数由驱动程序完成
◼ 操作系统的一个主要论题是文件和I/O设备 的命名方式 ◼ 操作系统如何保护对设备的未授权访问呢 ◼ 设备无关软件屏蔽不同磁盘的扇区大小并 向高层软件提供统一大小的逻辑块 ◼ 块设备和字符设备都需要缓冲技术 ◼ 错误处理多数由驱动程序完成
52.5用户空间的IO软件 库例程实现的I/O系统调用 I/O系统调用通常先是库例程调用 格式化输入输出是用库例程实现的 非库例程实现的IO系统调用 spooling系统
5.2.5 用户空间的I/O软件 ◼ 库例程实现的 I/O系统调用 I/O系统调用通常先是库例程调用 格式化输入输出是用库例程实现的 ◼ 非库例程实现的 I/O系统调用 spooling系统
I/O系统每一层软件及其功能 1/0应答 /0功能 用户进程 进行I/O0调用;格式化I/0; SPOOL ING I/0请求 设备无关软件 命名;保护;阻塞:缓冲;分配 设备驱动程序 建立设备寄存器;检查状态 中断处理程序 当I/0结束时,唤醒驱动程序 硬件 执行I/0操作
I/O系统每一层软件及其功能 ◼ 用户进程 进行I/O调用;格式化I/O;SPOOLING 设备无关软件 命名;保护;阻塞;缓冲;分配 设备驱动程序 建立设备寄存器;检查状态 硬件 执行I/O操作 中断处理程序 当I/O结束时,唤醒驱动程序 层次 I/O应答 I/O功能 I/O请求