五、输入输出管理(三)设备独立软件

目录

3.1磁盘高速缓存与缓冲区

3.2设备分配与回收

3.3假脱机技术(SPOOLing)


3.1磁盘高速缓存与缓冲区

高速缓存(Cache)是指在内存和CPU之间增设的一个小容量高速存储器。

磁盘高速缓存(Disk Cache)是指在内存中为磁盘盘块设置一个缓冲区来保存某些盘块的副本,磁盘高速缓存未命中时需要访问磁盘。

缓冲区:位于内存区域,用来实现:

  • 缓和CPU与I/O设备间速度不匹配的矛盾。
  • 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
  • 解决基本数据单元大小(即数据粒度)不匹配的问题。(如输出进程每次可以生成一块数据,但I/O设备每次只能输入一个字符)
  • 提高CPU和I/O设备之间的并行性。

硬件缓冲器:成本高,如I/O控制器中的数据缓冲寄存器。

 五、输入输出管理(三)设备独立软件_第1张图片

 五、输入输出管理(三)设备独立软件_第2张图片

五、输入输出管理(三)设备独立软件_第3张图片

五、输入输出管理(三)设备独立软件_第4张图片

 五、输入输出管理(三)设备独立软件_第5张图片

3.2设备分配与回收

设备分配时应考虑的因素

  • 设备的固有属性:独占设备、共享设备、虚拟设备。
  • 设备的分配算法:先来先服务、优先级高者优先、短任务优先等算法。
  • 设备分配中的安全性安全分配方式:不会死锁,对于一个设备来说CPU和I/O设备只能串行工作。(即I/O阻塞方式)不安全分配方式:一个进程可同时操作多个设备,只有当I/O请求失败时才会进入阻塞态。可能会造成死锁。(非I/O阻塞方式)。
  • 静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源。(破坏了请求和保持条件,不会发生死锁)
  • 动态分配:进程运行过程中动态申请设备资源。

设备分配的数据结构

五、输入输出管理(三)设备独立软件_第6张图片

  • 设备控制表(DCT):系统为每个设备配置一张DCT,用于记录设备情况。
  • 控制器控制表(COCT)每个设备控制器都会对应一张COCT。操作系统根据COCT的信息对控制器进行操作和管理。
  • 通常控制器(CHCT)每个通道都会对应一张CHCT。操作系统根据CHCT的信息对通道进行操作和管理。
  • 系统设备表(SDT):记录了系统中全部设备的情况,每个设备对应一个表目。

 五、输入输出管理(三)设备独立软件_第7张图片

 五、输入输出管理(三)设备独立软件_第8张图片

3.3假脱机技术(SPOOLing)

五、输入输出管理(三)设备独立软件_第9张图片

 假脱机技术是用软件方式来实现脱机技术。五、输入输出管理(三)设备独立软件_第10张图片

  • 输入井、输出井:分别用来模拟脱机输入/输出时的磁盘
  • 输入缓冲区、输出缓冲区:在内存中开辟的两个缓冲区。
  • 输入进程和输出进程:分别用来模拟脱机输入/输出时的外围控制机
  • CPU需要输入数据直接输入井读入内存,需要输出的数据先从内存送到输出井。
  • 共享打印机是SPOOLing技术的实例,将独占设备改造成了共享设备(用户看来)。其实是一个虚拟设备。
  • SPOOLing系统由预输入程序井管理程序缓输出程序组成。

你可能感兴趣的:(操作系统,缓冲区)