文档介绍:I/O软件原理
I/O软件的设计目标和原则
I/O中断处理程序
设备驱动程序
与硬件无关的操作系统I/O软件
用户空间的I/O软件
I/O软件的设计目标和原则
I/O软件总体设计目标:
高效率。
通用性。
I/O软件总体设计要考虑的问题:
设备无关性。
出错处理。
同步(阻塞)—异步(中断驱动)传输。
独占性外围设备和共享性外围设备。
I/O软件组织成四个层次
•  I/O中断处理程序。
• 设备驱动程序。
•与设备无关的操作系统I/O软件。
•用户层I/O软件。
I/O中断处理程序
I/O中断的类型和功能
•通知用户程序I/O操作沿链推进程度
•通知用户程序I/O操作正常结束
•通知用户程序发现的I/O操作异常
•通知程序外围设备上重要的异步信号
I/O中断的处理原则
操作正常结束处理
操作发生故障或特殊事件的中断处理
人为要求而产生的中断处理
外围设备的异步信号处理
设备驱动程序(1)
设备驱动程序包括与设备相关的代码,其工作是:
把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行,如设备名转化为端口地址、逻辑记录转化为物理记录、逻辑操作转化为物理操作等。
设备驱动程序从与设备无关的软件中接收抽象的I/O请求,一条典型的请求是读第n块。
设备驱动程序(2)
如果请求到来时驱动程序空闲,则立即执行。如果它正在处理另一条请求,它将该请求挂在等待队列中。
设备驱动程序主要功能:
1 )设备初始化,
2 )执行设备驱动例程,
3 )执行中断处理例程。
与硬件无关的操作系统I/O软件(1)
设备无关软件完成的功能:
      •对设备驱动程序的统一接口
      •设备命名
      •设备保护
      •提供独立于设备的块大小
      •缓冲区管理
      •块设备的存储分配
      •独占性外围设备的分配和释放
      •错误报告
与硬件无关的操作系统I/O软件(2)
文件和I/O设备的命名方式
设备文件名、inode、系统调用
如何保护对设备的未授权访问
I/O指令、文件rwx保护机制
屏蔽不同磁盘扇区大小并向高层软件提供统一大小的逻辑块
块设备和字符设备需要缓冲技术 4
设备分配和状态跟踪
错误处理多数由驱动程序完成
用户空间的I/O软件
库函数实现的 I/O系统调用
I/O系统调用通常先是库函数调用
count=write(fd,buffer,nbytes);
非库函数实现的 I/O系统调用
spooling系统
I/O系统各层软件及其功能
用户进程
进行I/O调用;格式化I/O;SPOOLING
设备无关软件
命名;保护;阻塞;缓冲;分配
设备驱动程序
建立设备寄存器;检查状态
硬件
执行I/O操作
中断处理程序
当I/O结束时,唤醒驱动程序
层次
I/O应答
I/O功能
I/O请求