学习笔记(12):2020软考软件设计师--基础知识实战培训视频-操作系统--设备管理(一)...

立即学习:https://edu.csdn.net/course/play/7883/161192?utm_source=blogtoedu

3.4 设备管理

计算机系统的一个重要组成部分是I/O系统.

I/O系统包括:

  • 输入\输出设备(鼠标,键盘,音箱)
  • 存储功能的设备(磁盘)
  • 设备控制器(显卡,声卡)

一.设备管理的概念

设备管理程序提供下述功能

  • 提供和进程管理系统的接口
  • 进行设备分配
  • 实现设备和设备之间\设备和CPU之间的并行操作
  • 进行缓冲区管理

二.I/O控制方式

(1) 程序I/O方式

(2) 中断控制I/O方式

(3) 直接存储器访问(DMA)方式

(4) I/O通道控制方式

  • 字节多路通道
  • 选择通道
  • 成组多路通道

三.缓冲管理

(1) 单缓冲

(2) 多缓冲

(3) 循环缓冲

(4) 缓冲池(Buffer Pool)

引入缓冲区的主要原因归结为以下几点;

  • 缓和CPU和I/O设备间速度不匹配的矛盾.
  • 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
  • 提高CPU和I/O设备之间的并行性.

(1) 单缓冲(Single Buffer)

在单缓冲情况下,每当用户进程发出一I/O请求时,OS便在主存中为之分配一缓冲区.

在字符设备输入时,缓冲区用于暂存用户输入的一行数据,在输入期间,用户进程被挂起以等待数据输入完毕;在输出时,用户进程将一行数据输入到缓冲区后,继续执行处理.当用户进程已有第二行数据输出时,如果第一行数据尚未被提取完毕,则此时用户进程应阻塞.

(2) 双缓冲(Double Buffer)

为了加快输入和输出速度,提高设备利用率,人们又引入了双缓冲区机制,也称为缓冲对换(Buffer Swapping).在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区.此时OS可以从第一缓冲区移出数据,并送入用户进程.

(3) 循环缓冲区

循环缓冲有多个大小相同的缓冲区,缓冲区有三种类型:

  • 用于装输入数据的空缓冲区R
  • 已装满数据的缓冲区G
  • 计算进程正在使用的现行工作缓冲区C

(4) 缓冲池

对于既可输入又可输出的公用缓冲池,至少应含三种类型缓冲区:

  1. 空缓冲区;
  2. 装满输入数据的缓冲区;
  3. 装满输出数据的缓冲区;

四.设备的分配

1.设备分配原则

  • 静态分配(一次性全分配,不会发生死锁)
  • 动态分配(按需分配,分配不当可能造成死锁)

2.设备分配策略

  • 先请求先分配
  • 优先级高者先分配
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章