首页 > 编程学习 > 操作系统学习笔记(V):设备管理

操作系统学习笔记(V):设备管理

发布时间:2022/12/3 14:20:30

目录

1 设备

1.1 设备的概念

1.2 设备的分类

2 I/O控制器

2.1 I/O控制器

1.定义

2.功能

3.组成

2.2 I/O控制方式

1.程序直接控制方式

2.中断驱动方式

3.DMA方式

4.通道控制方式

5.对比

2.3 I/O软件层次结构

1.用户层软件

2.设备独立性软件

3.设备驱动程序

4.中断处理程序

3 I/O核心子系统

3.1 I/O核心子系统

1.定义

2.I/O调度

3.设备保护

3.2 假脱机技术

1.定义

2.组成

3.共享打印机原理

3.3 设备的分配与回收

1.设备分配要素

2.静态与动态分配

3.数据结构

4.设备分配步骤

5.优化

3.4 缓冲区管理

1.缓冲区定义

2.作用

3.单缓冲

4.双缓冲

5.区别

6.循环缓冲区

7.缓冲池


1 设备

1.1 设备的概念

I/O设备:计算机输入与输出设备

1.2 设备的分类

按使用特性:人机交互类、存储设备、网络通信设备

按传输速率:低速、中速、高速

按信息交换的单位:块设备(磁盘)、字符设备(键鼠)

2 I/O控制器

2.1 I/O控制器

1.定义

设备包括机械部件与电子部件,电子部件即I/O控制器,又称设备控制器。

2.功能

接受和识别CPU发出的命令:利用控制寄存器,存放CPU命令和参数

向CPU报告设备状态:状态寄存器读取I/O设备状态

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

地址识别:类似内存的地址

3.组成

一个I/O控制器可能对应多个设备,因此数据寄存器、控制寄存器、状态寄存器可能有多个,寄存器需要编址(包括内存映像:将I/O寄存器占用内存地址的一部分;寄存器独立编址:I/O专用地址)

2.2 I/O控制方式

1.程序直接控制方式

·完成一次读写操作的流程

·CPU干预频率

CPU需要在I/O操作开始前、完成后,及等待过程中不断地进行轮询检查。

·数据传送单位

每次读或写一个字

·数据流向

 ·优点:实现简单;缺点:CPU只能进行串行工作,长期处于忙等状态,利用率低

2.中断驱动方式

·完成一次读写操作的流程

引入中断机制。由于1/o设备速度很慢,因此在CPu发出读/写命令后,可将等待l/o的进程阻塞,先切换到别的进程执行。当I/o完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU从I/o控制器读一个字的数据传送到CPu寄存器,再写入主存。接着,CPu恢复等待I/o的进程(或其他进程)的运行环境,然后继续执行。

CPU在每个指令周期末尾检查中断

·CPU干预频率

每次V/o操作开始之前、完成之后需要CPU介入。

·数据传送单位

每次读/写一个字 

·数据流向

 

 ·优点:CPU和IO可以并行工作,提示CPU利用率;缺点:频繁的中断消耗CPU时间

3.DMA方式

直接存储器存取。数据传送以块为单位,数据无需流向CPU

·DMA控制器

·完成一次读写操作的流程

·CPU干预频率

仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。

·数据传送单位

每次读/写一个或多个块(注意:每次读写的只能是连续的多个块,且这些块读入内存后在内存中也必须是连续的)

·数据流向

 

 ·优点:提升数据传输速度与CPU工作效率;缺点:CPU每发出一条I/o指令,只能读/写一个或多个连续的数据块,不能读取离散数据块。

4.通道控制方式

通道可以识别并执行一系列通道指令

·完成一次读写操作的流程

·CPU干预频率

极低,通道会根据CPU的指示执行相应的通道程序,只有完成一组数据块的读/写后才需要发出中断信号,请求CPU干预。

·数据传送单位

每次读/写一组数据块

·数据流向

 ·优点:资源利用率进一步提高;缺点:需要专门的硬件支持

5.对比

2.3 I/O软件层次结构

1.用户层软件

提供了与用户交互的接口,将用户请求翻译成格式化的I/O请求,通过系统调用请求操作系统内核的服务

2.设备独立性软件

又称设备无关性软件,向上次提供统一的调用接口;实现设备的保护;差错处理;设备的分配与回收;数据缓冲区管理;建立逻辑设备名与物理设备名的映射关系,根据设备类型选择调用相应的驱动程序。

3.设备驱动程序

主要负责对硬件设备的具体控制,将上层发出的一系列命令(如read/write)转化成特定设备“能听得懂”的一系列操作。包括设置设备寄存器;检查设备状态等。

4.中断处理程序

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

中断处理程序可以直接与硬件对接

3 I/O核心子系统

3.1 I/O核心子系统

1.定义

设备独立性软件、设备驱动程序与中断处理程序属于操作系统的内核部分,即I/O核心子系统。

2.I/O调度

用某种算法确定一个好的顺序来处理各个I/O请求。

3.设备保护

将设备看做特殊文件,每个设备有相应的FCB

3.2 假脱机技术

1.定义

脱机:脱离主机的控制进行的输入/输出操作

假脱机:SPOOLing技术,用软件方式模拟脱机技术

2.组成

3.共享打印机原理

SPOOLing 技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备。

3.3 设备的分配与回收

1.设备分配要素

2.静态与动态分配

静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源
动态分配:进程运行过程中动态申请设备资源


3.数据结构

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

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

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

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

4.设备分配步骤

5.优化

缺点:
①用户编程时必须使用“物理设备名”,底层细节对用户不透明,不方便编程
②若换了一个物理设备,则程序无法运行
③若进程请求的物理设备正在忙碌,则即使系统中还有同类型的设备,进程也必须阻塞等待
改进:                                                                                                                                                建立逻辑设备名与物理设备名的映射机制,用户编程时只需提供逻辑设备名

3.4 缓冲区管理

1.缓冲区定义

缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可利用内存作为缓冲区。
使用硬件作为缓冲区的成本较高,容量也较小,一般仅用在对速度要求非常高的场合(如存储器管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放页表项的副本)
一般情况下,使用内存作为缓冲区

2.作用

3.单缓冲

假设某用户进程请求某种块设备读入若干块的数据。若采用单缓冲的策略,操作系统会在主存中为其分配一个缓冲区。
当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。

处理一块数据平均耗时Max(C,T) + M

4.双缓冲

假设某用户进程请求某种块设备读入若干块的数据。操作系统会在主存中为其分配两个缓冲区。

处理一个数据块的平均耗时为Max (T, C+M)

5.区别

双机通信时若使用单缓冲,同一时刻只能进行单向数据传输;若使用双缓冲,同一时刻可以进行双向数据传输。

6.循环缓冲区

将多个大小相等的缓冲区链接成一个循环队列

 

7.缓冲池

缓冲池由系统中共用的缓冲区组成,分为空缓冲队列、装满输入数据的缓冲队列、装满输出数据的缓冲队列。 

 另外,根据一个缓冲区在实际运算中扮演的功能不同,又设置了四种工作缓冲区:用于收容输入数据的工作缓冲区(hin)、用于提取输入数据的工作缓冲区(sin)、用于收容输出数据的工作缓冲区( hout) 、用于提取输出数据的工作缓冲区(sout)

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号