十 操作系统基础之I/O管理

I/O控制方式

外围设备和内存之间的输入/输出控制方式有四种:

  • 程序直接控制方式:以字为单位,CPU轮询检查I/O设备状态,CPU与I/O设备串行工作,CPU利用率低。
  • 中断驱动方式:以字为单位,通过中断驱动。
  • DMA方式(直接存储器存取方式):以数据块为单位,在I/O设备和内存之间开辟的数据交换通路,仅在传送一个或多个数据块开始时需CPU干预,整块数据的传送在DMA的控制下完成。

  • 通道控制方式:以一组数据块为单位,实现CPU,通道,I/O设备三者并行,CPU向I/O通道发送一条I/O指令,给出所执行通道程序的首地址和要访问的I/O设备,数据传送结束时,通道向CPU发中断请求。

通道与DMA的区别:通道是专门负责输入/输出的处理机,指令单一,与CPU共享内存,DMA方式需要CPU控制传输数据块大小,传输内存位置,而通道方式中由通道控制,每个DMA控制器对应一台设备与内存传递数据,一个通道则控制多台设备与内存数据交换。

I/O层次结构

  • 用户层I/O软件:实现与用户交互接口,通过一组系统调用来获取操作系统服务。
  • 设备独立性软件:执行所有设备共有操作,向用户层提供统一接口。
  • 设备驱动程序:与硬件直接相关。
  • 中断处理程序
  • 硬件:分机械设备(设备本身)和电子设备(设备控制器)。

设备控制器:通过寄存器与CPU通信,寄存器采用两种编址方式,内存映像I/O(寄存器占用内存地址一部分)和I/O专用地址(寄存器独立编址)。

共享设备必须是可寻址,可随机访问的设备,某一时间段内共享,分配共享设备不会引起死锁,分配独占设备会。

设备映射表(DMT):建立逻辑设备与物理设备的对应关系。

高速缓存与缓冲区

  • 磁盘高速缓存

利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。(逻辑上属于磁盘,物理上是内存中的盘块。)

  1. 一种是在内存中开辟一个单独的存储空间作为磁盘高速缓存,大小固定。
  2. 一种是把为利用的内存空间作为一个缓冲池。
  • 缓冲区
  1. 单缓冲:max(C,T)+M (C处理,M取出,T冲入)
  2. 双缓冲:max(C+M,T)
  3. 循环缓冲:每个缓冲区中一个链接,指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区。(in指针:指向第一个空缓冲区,out指针指向第一个满缓冲区。)
  4. 缓冲池:由多个系统公共的缓冲区组成,3个队列(空缓冲队列,输入队列,输出队列)和4种缓冲区(用于收容输入数据的工作缓冲区,用于提取输入数据的工作缓冲区,用于收容输出数据的工作缓冲区,用于提取输出数据的工作缓冲区)

设备分配与回收

  1. 独占式使用设备
  2. 分时式共享使用设备
  3. 以SPOOLing方式(假脱机技术,以空间换时间)使用外部设备
  • 设备分配的数据结构

系统设备表(SDT)设备控制表(DCT)控制器控制表(COCT)通道提供服务的设备控制器表

  • 设备分配方式:静态分配(在作业执行前分配,用于独占设备,不会出现死锁)和动态分配(进程需要设备时分配,可能死锁,适于共享设备独占设备);安全分配方式(每当进程发出I/O请求后就阻塞,直至I/O完成后才唤醒,CPU与I/O串行工作)和不安全分配方式(当进程请求设备被另一进程占用才阻塞,可能产生死锁)。
  • 逻辑设备表(LUT):将逻辑设备名映射为物理设备名。
  • SPOOLing技术(将独占设备改造成共享设备)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值