首页 > 其他分享 >操作系统-设备管理

操作系统-设备管理

时间:2022-12-13 22:22:49浏览次数:48  
标签:控制器 操作系统 管理 寄存器 缓冲区 数据 CPU 设备

UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作

 

按使用特性分类

  1. 人机交互类外部设备:数据传输速度慢

  2. 存储设备:数据传输速度快

  3. 网络通信设备:数据传输速度中等

按传输速率分类

  1. 低速设备

  2. 中速设备

  3. 高速设备

按信息交换的单位分类

  1. 块设备:可寻址,传输速率较高

  2. 字符设备:不可寻址,传输速率较低,一般使用中断驱动方式运行

 

5.1 I/O控制器

I/O设备由机械部件电子部件(I/O控制器、设备控制器)组成

 

I/O控制器的功能

CPU和机械部件的中介

  • 接受和识别CPU发出的命令:会设置控制寄存器

  • 向CPU报告设备的状态:状态寄存器

  • 数据交换:数据寄存器,暂存数据

  • 地址识别:CPU提供各寄存器的地址

I/O控制器的组成

 

 

一个I/O控制器可能会对应多个设备,因此数据、状态、控制寄存器也有多个,需要对应编址

  1. 内存映射I/O:控制器中的寄存器与内存地址统一编址

  2. 寄存器独立编址:控制器中的寄存器使用单独的地址

    缺点:需要设置专门的指令来实现对控制器的操作,不仅要指明寄存器的地址,还要指明控制器的编号

 

5.2 I/O控制方式

程序直接控制方式

 

 

关键字:轮询

  1. CPU干预的频率:很频繁,I/O操作开始之前、完成之后需要CPU介入,并且在等待I/O完成的过程中CPU需要不断地轮询检查

  2. 数据传送的单位:每次读/写一个字

  3. 数据流向:

    读操作:I/O设备 -> CPU(寄存器) -> 内存

    写操作:内存 -> CPU(寄存器) -> I/O设备

  4. 优点:实现简单

    缺点:CPU和I/O设备只能串行工作,CPU需要一直轮询检查,长期处于“忙等”状态,CPU利用率低

 

中断驱动方式

 

 

  1. 数据传送的单位:每次读/写一个字

  2. 优点:CPU和I/O设备可并行工作

    缺点:每次只传送一个字,中断可能会比较频繁,消耗较多地CPU时间

     

DMA方式

直接存储器存取,主要用于块设备的I/O控制

  1. 数据的传送单位是“块”

  2. 不经过CPU

  3. 仅在传送一个或多个数据块开始或结束时,才需要CPU干预(中断信号)

DMA控制器

 

 

DMA控制器读写也是一个字一个字读写的

  1. 数据传送的单位:每次读/写一个或多个块(每次读写只能是连续的多个块,且这些块读入内存后在内存中也必须是连续的)

  2. CPU干预的频率:仅在开始和结束时需要CPU干预

  3. 数据的流向:不需要经过CPU

  4. 缺点:CPU每发出一条I/O指令,只能读/写一个或多个连续的数据块

 

通道控制方式

通道:一种硬件,可以理解为“弱鸡版的CPU”,只能识别较少的指令,与CPU共享内存

 

 

  1. CPU干预的频率:开始结束时才请求CPU干预

  2. 数据传送的单位:每次读/写一组数据块

  3. 数据的流向:在通道的控制下进行

 

 

 

5.3 I/O软件层次结构

 

 

用户层软件

  1. 提供库函数,实现了与用户交互的接口

  2. 将用户请求翻译成格式化的I/O请求,并通过“系统调用”请求操作系统内核的服务

设备独立性软件

与设备的硬件特性无关的功能几乎都在这一层实现

  1. 向上层提供统一的调用接口(如read/write系统调用)

  2. 设备的保护:类似于文件保护,设备被看作一种特殊的文件

  3. 差错处理:对设备的错误进行处理

  4. 设备的分配与回收

  5. 数据缓冲区管理

  6. 建立逻辑设备名物理设备名的映射关系;根据设备类型选择调用相应的驱动程序;通过逻辑设备表(LUT),并记录每个物理设备的驱动程序的入口地址

设备驱动程序

主要负责对硬件的具体控制,将上层发出的一系列命令转化为特定设备“能听得懂”的一系列操作

不同设备的内部硬件特性不同,这些特性只有厂家才知道,因此厂家必须提供与设备相应的驱动程序;驱动程序一般会以一个独立进程的方式存在

中断处理程序

当I/O任务完成时,I/O控制器会发送一个中断信号,系统会根据中断信号类型找到相应的中断处理程序并执行

硬件

执行I/O操作

 

I/O核心子系统

假脱机技术(SPOOLing技术):用户层软件

I/O调度、设备保护、设备分配与回收、缓冲区管理:设备独立性软件

 

假脱机技术

使用软件模拟脱机技术

 

 

 

 

 

设备的分配与回收

设备分配时应考虑的因素

  1. 设备的固有属性:独占设备、共享设备、虚拟设备

  2. 设备分配算法

  3. 设备分配中的安全性

    安全分配方式:为进程分配一个设备后就将进程阻塞,本次I/O完成后才将进程唤醒;破环请求和保持条件,不会死锁

    不安全分配方式:进程发出I/O请求后,系统为其分配I/O设备,进程可继续执行,之后还可以发出新的I/O请求,只有某个I/O请求得不到满足时才将进程阻塞;一个进程可以同时使用多个设备

 

静态分配:进程运行前分配完所有的资源

动态分配

 

设备分配管理中的数据结构

设备控制表(DCT):系统为每个设备配置一张DCT,用于记录设备情况

 

 

控制器控制表(COCT):每个设备控制器都会对应一张COCT,操作系统根据COCT的信息对控制器进行操作和管理

 

 

通道控制表(CHCT):每个通道对应一张CHCT,操作系统根据CHCT的信息对通道进行操作和管理

 

 

系统设备表(SDT):记录系统中全部设备的情况,每个设备对应一个表目

 

 

 

设备分配的步骤

 

 

改进

 

 

 

缓冲区管理

硬件(速度高,成本高)或内存的一个存储区域

 

缓冲区的作用

  1. 缓和CPU和I/O设备之间速度不匹配的矛盾

  2. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制

  3. 解决数据粒度不匹配的问题:输出进程每次可以生成一块数据

  4. 提高CPU和I/O设备的并行性

 

单缓冲

操作系统在主存中为其分配一个缓冲区(没有特别说明,一般一个块)

缓冲区非空时不能存,充满之后才能取;工作区未空也不能存

 

 

 

 

 

双缓冲

 

 

 

 

 

使用单/双缓冲在通信时的区别

两台机器之间通信时,可以配置两个缓冲区用于数据的发送和接受

 

循环缓冲区

橙色表示已充满数据缓冲区,绿色表示空

 

 

缓冲池

 

 

 

标签:控制器,操作系统,管理,寄存器,缓冲区,数据,CPU,设备
From: https://www.cnblogs.com/eecsCodeStar/p/16980843.html

相关文章