2./0软件的目标 在设计I/O软件时的一个关键概念是设备独 立性。用户在编写使用软盘或硬盘上文件的 程序时,无需为不同的设备类型而修改程序 就可以使用 与设备独立性密切相关的是统一命名这一目 标。一个文件或一个设备的名字只应是一个 简单的字符串或一个整数,不应依赖于设备 ·出错处理是I/O软件的另一个目标。一般来 说,数据传输中的错误应尽可能地在接近硬 件层上处理 最后一个问题是可共享设备和独占设备的处 理问题
• 在设计I/O软件时的一个关键概念是设备独 立性。用户在编写使用软盘或硬盘上文件的 程序时,无需为不同的设备类型而修改程序 就可以使用 • 与设备独立性密切相关的是统一命名这一目 标。一个文件或一个设备的名字只应是一个 简单的字符串或一个整数,不应依赖于设备 • 出错处理是I/O软件的另一个目标。一般来 说,数据传输中的错误应尽可能地在接近硬 件层上处理 • 最后一个问题是可共享设备和独占设备的处 理问题 2. I/O软件的目标
3.中断处理程序 ·每个进程在启动一个I/O操作后阻塞 ·直到I/O操作完成并产生一个中断 由操作系统接管CPU后唤醒该进程为 止
• 每个进程在启动一个I/O操作后阻塞 • 直到I/O操作完成并产生一个中断 • 由操作系统接管CPU后唤醒该进程为 止 3. 中断处理程序
4.设备驱动程序 与设备密切相关的代码放在设备驱动程序中 每个设备驱动程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器 用来存放向设备发送的命令和参数。设备驱 动程序负责释放这些命令,并监督它们正确 执行 ·一般,设备驱动程序的任务是接收来自与设 备无关的上层软件的抽象请求,并执行这个 请求
• 与设备密切相关的代码放在设备驱动程序中, 每个设备驱动程序处理一种设备类型 • 每一个控制器都设有一个或多个设备寄存器, 用来存放向设备发送的命令和参数。设备驱 动程序负责释放这些命令,并监督它们正确 执行 • 一般,设备驱动程序的任务是接收来自与设 备无关的上层软件的抽象请求,并执行这个 请求 4. 设备驱动程序
4.设备驱动程序续) 在设备驱动程序的进程释放一条 或多条命令后,系统有两种处理方 式,多数情况下,执行设备驱动程 序的进程必须等待命令完成,这样 ,在命令开始执行后,它阻塞自已 ,直到中断处理时将它解除阻塞为 止。而在其它情况下,命令执行不 必延迟就很快完成
在设备驱动程序的进程释放一条 或多条命令后,系统有两种处理方 式,多数情况下,执行设备驱动程 序的进程必须等待命令完成,这样 ,在命令开始执行后,它阻塞自已 ,直到中断处理时将它解除阻塞为 止。而在其它情况下,命令执行不 必延迟就很快完成 4. 设备驱动程序(续)
5.设备独立的软件 虽然I/O软件中一部分是设 备专用的,但大部分软件是与 设备无关的。设备驱动程序与 设备独立软件之间的确切界限 是依赖于具体系统的
虽然I/O软件中一部分是设 备专用的,但大部分软件是与 设备无关的。设备驱动程序与 设备独立软件之间的确切界限 是依赖于具体系统的 5. 设备独立的软件