操作系统全家桶:传送门
一、操作系统引述:https://blog.csdn.net/diviner_s/article/details/108829327
二、处理器管理:https://blog.csdn.net/diviner_s/article/details/108940809
三、存储器管理:https://blog.csdn.net/diviner_s/article/details/112245241
四、设备管理:https://blog.csdn.net/diviner_s/article/details/112250905
五、文件管理:https://blog.csdn.net/diviner_s/article/details/112253441
六、用户接口:https://blog.csdn.net/diviner_s/article/details/112255959
一、设备管理基本功能
外设管理:是指计算机系统中除了CPU和内存以外的所有输入、输出设备的管理。
主要功能包括:缓冲管理、设备分配与回收、设备处理和虚拟设备。
除了进行实际I/O操作的设备外,也包括:设备控制器、DMA控制器、中断控制器、通道。
早期,计算机设计者没有将CPU的执行与I/O操作分开,甚至大多数人认为,输入输出与计算的时间应该是同一数量级。
后来,他们意识到,CPU要比I/O操作速度高几个数量级。于是,硬件和软件设计师开始寻找一种技术:CPU计算可以不用等待I/O操作而持续执行。
二、操作系统设备管理的3个目标
三、I/O设备说明
四、设备的分类
现代计算机系统总是配有各种类型的外部设备,除了显示器、键盘、打印机、磁带、磁盘外,又出现了光盘、绘图仪、图形数字化仪、鼠标器、激光打印机、声音输入输出设备等,种类繁多,可以从不同的角度对它们进行分类。
1、按设备从属关系分为两种:
3、按设备上数据组织和信息交换单位分为两种:
4、按设备共享属性和资源分配分为三种:
一、输入输出系统的结构
通常把输入输出系统的结构分成两大类:总线(串行)输入输出系统和主机(并行)输入输出系统。
1、总线(串行)输入输出系统:总线(串行)输入输出系统一般采用总线作为连接方式完成输入输出,如下图所示。
小型机:总线I/O系统结构
2、主机(并行)输入输出系统:当主机所配置的输入输出设备较多时,特别是配有较多的高速外设时,采用总线输入输出系统结构会加重CPU与总线的负担。因此,在这样的输入输出系统中不宜采用单总线结构,而是增加一级输入输出通道,用来代替CPU与各设备控制器进行通信,实现对控制器的控制。
二、设备控制器
1、设备控制器的概念
2、设备控制器的功能:接收CPU命令,控制I/O设备工作,解放CPU。
3、存储器映像I/O:为了实现与主机通信,每个控制器都有几个寄存器(控制寄存器、状态寄存器、数据寄存器),除控制寄存器外,很多设备还有数据缓冲区。系统为每个寄存器分配一个I/O端口号,把所有寄存器映像到存储器空间–存储器映像I/O,实现按地址访问。
4、设备控制器的结构
5、设备控制器的组成
三、输入输出通道
1、输入输出通道的概念
2、输入输出通道的分类
设备管理的主要任务之一是控制设备和内存或CPU之间的数据传送。数据传送控制方式是指CPU何时、怎样去驱动外设,如何控制外设与主机之间的数据传递。
选择和衡量控制方式的原则:
1)效率高,不出错;
2)开销小,所需的控制程序少;
3)使得I/O设备尽量忙,而CPU等待时间少。
常用数据传送控制方式有4种:
1)程序直接控制方式;
2)中断控制方式;
3)DMA方式;
4)通道控制方式。
在这四种方式中,CPU的工作过程完全不同,所需的硬件支持也不同。
一、程序直接控制方式(循环测试I/O方式)
1、基本原理:早期计算机使用,这种方式的控制者是用户进程,由用户进程来直接控制内存或CPU和外围设备之间的信息传送。
2、工作过程:
3、程序直接控制方式处理流程图:
4、程序直接控制方式的缺点:程序直接控制方式虽然控制简单,也不需要多少硬件支持,但明显地存在下述缺点:
程序直接控制方式只适用于CPU速度较慢,而且外围设备较少的系统,主要用于早期无中断的计算机系统。
二、中断控制方式
1、基本原理:
6、中断控制方式的缺点:中断控制方式下,CPU的利用率大大提高且能支持多道程序和设备的并行操作,但仍然存在着许多问题:
三、DMA(直接存储器存取)控制方式
1、基本原理:
2、控制器结构:
5、DMA控制方式处理流程图:
6、DMA方式与中断控制方式的主要区别:
7、DMA方式的局限性:
四、通道控制方式
1、基本原理:
2、通道连接控制结构:
3、I/O通道作用:
4、工作过程:
5、通道和DMA控制器的区别:
一、设备分配的数据结构(设备信息描述)
为了实现设备、控制器、通道资源的分配与回收,系统需要记录有关的信息。通常设备管理要建立以下数据结构,以实施有效的管理。
1、设备控制表(DCT)
2、控制器控制表(COCT)
3、通道控制表(CHCT)
4、系统设备表(SDT)
SDT、DCT、COCT及CHCT如图所示:
二、设备分配程序(三步)
1、查找系统设备表,找到设备的设备控制表,确认设备是否可以分配,并完成分配。
2、通过设备控制表中的控制器控制表指针找到设备连接的控制器的控制器控制表,确认设备控制器是否可以分配,并完成分配。
3、如果有通道,再通过控制器控制表中的通道控制表指针找到设备控制器连接的通道的通道控制表,确认通道是否可以分配,并完成分配。
显然,一个进程只有获得了通道(有通道结构)、控制器和所需设备三者之后,才具备了进行I/O操作的物理条件。
三、设备分配考虑的因素
1、设备的使用性质(固有属性)
2、系统采用的设备分配算法
3、设备分配应防止死锁发生
4、设备独立性:
四、设备分配程序的改进
上述设备分配程序的问题:进程以物理设备名提出I/O请求,采用单通路I/O系统结构,容易产生“瓶颈”现象。可以从两方面对基本的设备分配程序加以改进,以使独占设备的分配程序具有更强的灵活性,并提高分配的成功率。
1、增加设备的独立性:进程使用逻辑设备名请求I/O,这样,系统首先从SDT中找出第一个该类设备的DCT。若该设备忙,又查找第二个该类设备的DCT,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上;而只要有一个该类设备可用,系统便进一步计算分配该类设备的安全性。
2、考虑多通路情况:为了防止在I/O系统中出现“瓶颈”现象(通道不足),通常都采用多通路的I/O系统结构。此时对控制器和通道的分配同样要经过几次反复,即若设备(控制器)所连接的第一个控制器(通道)忙时,应查看其所连接的第二个控制器(通道),仅当所有的控制器(通道)都忙时,此次的控制器(通道)分配才算失败,才把进程挂在控制器(通道)的等待队列上。而只要有一个控制器(通道)可用,系统便可将它分配给进程。
I/O软件系统的层次:
一、中断处理程序
1、中断及中断源的概念
2、中断分类
3、中断优先级
4、中断处理过程
5、中断屏蔽
二、设备驱动程序
1、设备驱动程序的基本概念:
2、设备驱动程序的主要任务:
3、设备驱动程序在系统中的逻辑位置:
4、设备驱动程序的功能:
5、设备处理方式:
6、设备驱动程序的特点:
7、设备驱动程序的处理过程:
8、有关标准设备的设备驱动程序:
9、驱动程序的类别:
10、一些驱动程序网站或来源:
三、与设备无关的操作系统I/O软件
1、设备驱动程序的统一接口
2、缓冲技术
1)缓冲技术的引入:中断和通道的引入为CPU与外设之间的并行操作提供了可能性,但CPU与外部设备之间速度的不匹配,以及外部设备频繁地中断CPU的运行,仍会降低CPU的使用效率。
2)缓冲的主要目的:
① 缓解CPU与I/O设备间速度不匹配的矛盾。
② 提高它们之间的并行性。
③ 减少对CPU的中断次数,放宽CPU对中断响应时间的要求。
3)缓冲区的设置
缓冲区可以由硬件(缓冲寄存器)实现,也称为硬缓冲。硬缓冲区通常设在设备中,如设在硬盘中。
缓冲区也可以由软件实现,即在内存空间中开辟专门用于数据传输过程中暂存数据的区域,也成为软缓冲。
以下主要介绍软缓冲区。
4)缓冲的种类
① 单缓冲:只有一个缓冲区(单个与单向)。
在单缓冲情况下,输入时通道先将数据送入缓冲区,CPU从缓冲区取数据处理。通道再送入后续数据,如此反复直到输入完成。输出情形正好相反。
由于缓冲区属于互斥区,所以单缓冲并不能明显改善CPU与外部设备的并行性。
② 双缓冲:两个缓冲区(双向)
在双缓冲情况下,分别设置输入缓冲区和输出缓冲区,CPU和通道可以分别访问两个缓冲区,即:在CPU访问一个缓冲区的同时,通道可以访问另一个缓冲区。
双缓冲只是一种说明设备和设备、CPU和设备并行操作的简单模型,并不能用于实际系统中的操作。这因为计算机系统中的外围设备较多,另外双缓冲也很难匹配设备和处理机的处理速度。现代计算机系统一般使用多缓冲或缓冲池结构。
双缓冲工作示例:
③ 多缓冲:是把多个缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构。常组织成循环队列的结构,也称为循环缓冲。
④ 缓冲池:把多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构
缓冲首部:包括设备号、设备上的数据块号(块设备时)、互斥标识位以及缓冲队列连接指针和缓冲区号等。
缓冲队列:系统把各缓冲区按使用状况连成三种队列:
工作缓冲区:系统(或用户进程)从这三种队列中申请和取出缓冲区,并用得到的缓冲区进行存数、取数操作,在存数、取数操作结束后,再将缓冲区放入相应的队列。这些缓冲区被称为工作缓冲区。在缓冲池中,有四种工作缓冲区,它们是:
缓冲操作:系统对缓冲区的使用分为四种操作:
3、出错报告:根据错误产生的原因,可把I/O错误分为两类:
4、分配和释放独占设备
5、提供与设备无关的块大小
四、用户级I/O软件
多数I/O软件都在操作系统中,用户空间中也有一小部分。通常,它们以库函数形式出现,用户可以通过系统调用使用。
用户空间中另一个重要的I/O软件是SPOOLing系统。
1、虚拟设备分配
2、SPOOLing技术基本概念
3、SPOOLing系统的组成
4、SPOOLing系统的使用(共享打印机)
5、SPOOLing系统的使用(共享打印机)说明:
6、SPOOLing系统的特点
补充:一些设备接口技术
1、USB设备管理
2、IEEE1394(Firewire)
3、PNP与热插拔