【操作系统】设备管理

I/O设备的基本概念和分类



I/O控制器

  • 一个I/O控制器可能会对应多个设备;
  • 数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。
  • 有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编址


🌟I/O控制方式🌟

用什么样的方式来控制I/O设备的数据读/写








I/O软件层次结构


  • 理解并记住I/O软件各个层次之间的顺序,要能够推理判断某个处理应该是在哪个层次完成的,最常考的是设备独立性软件、设备驱动程序这两层
  • 只需理解一个特点即可:直接涉及到硬件具体细节、且与中断无关的操作肯定是在设备驱动程序层完成的没有涉及硬件的、对各种设备都需要进行的管理工作都是在设备独立性软件层完成的
  • 设备独立性软件 = 设备无关性软件

逻辑设备表的作用 建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序。

I/O应用程序接口 & 设备驱动程序接口



  • 阻塞I/O:应用程序发出I/O系统调用,进程需转为阻塞态等待
  • eg:字符设备接口——从键盘读一个字符 get,如C语言中的scanf函数。
  • 非阻塞I/O:应用程序发出I/O系统调用,系统调用可迅速返回,进程无需阻塞等待
  • eg:块设备接口——往磁盘写数据 write
  • 设备驱动程序接口:操作系统规定好设备驱动程序的接口标准,各厂商必须按要求开发设备驱动程序,形成统一标准的设备驱动程序接口
  • 不同的操作系统,对设备驱动程序接口的标准各不相同。设备厂商必须根据操作系统的接口要求,开发相应的设备驱动程序,设备才能被使用

I/O核心子系统


  • 操作系统需要实现文件保护功能,不同的用户对各个文件有不同的访问权限(如:只读、读和写等)。
  • UNIX系统中,设备被看做是一种特殊的文件,每个设备也会有对应的FCB。当用户请求访问某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限,以此实现“设备保护”的功能。

假脱机技术(SPOOLing技术)






  • 虽然系统中只有一个台打印机,但每个进程提出打印请求时,系统都会为在输出井中为其分配一个存储区(相当于分配了一个逻辑设备),使每个用户进程都觉得自己在独占一台打印机,从而实现对打印机的共享。
  • SPOOLing 技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备。

设备的分配与回收

设备的 固有属性 可分为三种:独占设备、共享设备、虚拟设备。
  1. 独占设备——一个时段只能分配给一个进程(如打印机)
  2. 共享设备——可同时分配给多个进程使用(如磁盘),各进程往往是宏观上同时共享使用设备,而微观上交替使用。
  3. 虚拟设备——采用 SPOOLing 技术将独占设备改造成虚拟的共享设备,可同时分配给多个进程使用(如采用 SPOOLing 技术实现的共享打印机)

  • 静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源破坏了“请求和保持”条件,不会发生死锁
  • 动态分配:进程运行过程中动态申请设备资源








缓冲区管理


💜单缓冲



结论:采用单缓冲策略,处理一块数据平均耗时 Max(C, T)+M

💖双缓冲


结论:采用双缓冲策略,处理一个数据块的平均耗时为 Max (T, C+M)

  • 若两个相互通信的机器设置双缓冲区,则同一时刻可以实现双向的数据传输
  • 注:管道通信中的“管道”其实就是缓冲区。要实现数据的双向传输,必须设置两个管道

💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩💩

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SaN-V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值