操作系统设备管理

2022-09-15 From 程序之心 By 丁仪

概述

设备是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作,所以常称为外部设备(简称外设)。在计算机系统中,将负责管理设备和输入/输出的机构称为I/O系统。因此,I/O系统由设备、控制器、通道(具有通道的计算机系统)、总线和I/O软件组成。

设备的分类:

  • 按数据组织分类:块设备、字符设备。
  • 按照设备功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备。
  • 资源分配角度分类:独占设备、共享设备和虚拟设备。
  • 数据传输速率分类:低速设备、中速设备、高速设备。

设备管理的任务是保证在多道程序环境下,当多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成I/O设备与主存之间的数据交换。

设备管理的主要功能是动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口及设备的访问和控制。

I/O软件

I/O设备管理软件的所有层次及每一层功能如下:

  • 用户进程:进行I/O调用、格式化I/O、Spooling(外围设备联机操作)
  • 设备无关软件:命名、保护、阻塞、缓冲、分配
  • 设备驱动程序:置设备寄存器、检查状态
  • 中断处理程序:当I/O结束时唤醒驱动程序
  • 硬件:执行I/O操作

当用户程序试图读一个硬盘文件时,需要通过操作系统实现这一操作。与设备无关软件检查高速缓存中有无要读的数据块,若没有,则调用设备驱动程序,向I/O硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次I/O请求。用户进程在得到了所需的硬盘文件内容之后继续运行。

SPOOLING技术

SPOOLING (外围设备联机操作)系统的组成如图所示。该技术利用了专门的外围控制机将低速 I/O 设备上的数据传送到高速设备上,或者相反。但是当引入多道程序后,完全可以利用其中的一道程序来模拟脱机输入时的外围控制机的功能,把低速的 I/O 设备上的数据传送到高速磁盘上;再利用另一道程序来模拟脱机输出时外围控制机的功能,把高速磁盘上的数据传送到低速的 I/O 设备上。这样便可以在主机的控制下实现脱机输入、输出的功能。此时的外围操作与 CPU 对数据的处理同时进行。

采用假脱机技术,可以将低速的独占设备改造成一种可共享的设备,而且一台物理设备可以对应若干台虚拟的同类设备。SPOOLING 系统必须有高速、大容量并且可随机存取的外存(例如,磁盘或磁鼓)支持。引入SPOOLING技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共用这一台设备,只需要将命令发出,数据就会排队存储在缓冲区中,实现了物理外设的共享,使得每个进程都感觉在使用设备,这就是物理设备的虚拟化。

本文来源:程序之心,转载请注明出处!

君子曰:学不可以已。
《深入理解计算机系统(原书第3版)》

主要介绍了计算机系统的基本概念,包括最底层的内存中的数据表示、流水线指令的构成、虚拟存储器、编译系统、动态加载库,以及用户应用等。书中提供了大量实际操作,可以帮助读者更好地理解程序执行的方式,改进程序的执行效率。此书以程序员的视角全面讲解了计算机系统,深入浅出地介绍了处理器、编译器、操作系统和网络环境,是这一领域的权威之作。

发表感想

© 2016 - 2024 chengxuzhixin.com All Rights Reserved.

浙ICP备2021034854号-1    浙公网安备 33011002016107号