西电李航 操作系统课程笔记 day11 IO software&layer


同步和异步:关注消息通信机制.发出调用后,同步等待调用返回结果,异步则不等待结果,被调用者通过他的方式通知调用者
阻塞与非阻塞:关注等待调用结果时的状态.发出调用等待结果时,阻塞式会挂起直到得到结果,非阻塞不会挂起

Principles of IO software

IO软件目标

设备独立性(device independence)

程序可对任意IO设备访问,无需事先指定

统一命名(uniform naming)

为实现设备独立性

文件或设备的名字都应是简单的字符串或整数(所有文件和IO设备都采用相同的方式寻址)

错误处理(error handling)

错误应尽可能在接近硬件的层面处理(控制器->设备驱动程序->高层软件)

同步(synchronous)异步(asynchronous)传输

同步即阻塞式,异步即中断驱动式

IO设备如果是同步的程序更易编写,所以操作系统将实际上是中断驱动的操作为用户提供为阻塞式(某些性能要求的程序可用异步)

缓冲(buffering)

数据离开一个设备后不能直接存放到目的地

某些实时约束(音频设备)设备需要不间断的输入,所以将数据预先防止到输出缓冲区中防止缓冲区欠载

共享设备和独占设备

某些IO设备可同时让多个用户使用(磁盘),某些则必须独占(磁带机)

独占设备引入各种问题,如死锁

三种实现IO的手段

程序控制IO(programmed IO)

即让CPU做全部工作

打印字符串:

  1. 用户进程发出系统调用获得IO设备,如果设备被占用就系统调用失败返回错误代码,或阻塞直到设备可用.
  2. 然后操作系统将字符串缓冲区复制到内核中一个数组里,如果设备可用就将字符发送给设备的数据寄存器
  3. 操作系统查看设备是否就绪接收下一个字符(一般是由设备的另一个寄存器表明状态),然后继续忙等待发送

缺点:

  • IO会占用全部CPU时间(因为忙等待)(所以常用于嵌入式系统)
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值