《操作系统设计与实现》(第三版)第三章 输入/输出系统 重要概念汇总

1. I/O设备

1.1分类

块设备(block device)和字符设备(character device)

①块设备:用于存储信息,信息存取的基本单位是数据块,如磁盘和磁带等。这类设备可寻址

②字符设备发送/接收的是字符流,而不考虑任何块结构。字符设备无法编址,也不存在任何寻址操作,打印机、网络接口、鼠标以及大多数与磁盘不同的设备均可被视为字符设备

——这种分类不完美,有些设备就符合这种分类:如时钟,无法寻址,也不产生/接收字符流,但时钟的全部功能就是按照预先定义的实践间隔发出中断。

1.2设备控制器

  I/O设备通常由一个机械部件和一个电子部件组成。电子部件称为设备控制器(device controller)或适配器(adapter),机械部件则是设备本身。

之所以区分控制器和设备本身,是因为操作系统大多与控制器打交道,而非设备本身

1.3内存映射I/O

CPU如何与控制寄存器和设备的数据缓冲器进行通信?

①每个控制寄存器被分配一个I/O端口号,是用一条专门的I/O指令

这种方案中,内存和I/O的地址空间是不同的(独立的I/O和内存空间)

                                                    

I/O寄存器是内存地址空间的一部分,这种方案称为内存映射I/O每个控制寄存器被分配唯一的内存地址,并且不会有内存分配这一地址。通常分配给控制寄存器的地址位于地址空间的顶端。

2. 中断

2.1忙等待定义

  CPU可以执行一个循环,一直测试状态标志位,直到设备准备好接收/提供新数据。这种方法称为轮询检测(polling)或者忙等待(busy waiting)

2.1中断发生时操作系统的内部发生哪些变化?(简答)

1. 硬件压栈程序计数器等。

2. 硬件按中断向量下载新的程序计数器。

3. 汇编语言程序存储寄存器值。

4. 汇编语言程序设置新的栈。

5. C语言中断服务例程运行。

6. 消息传递代码对等待的就绪任务进行标识。

7. 调度器决定哪个进程是下一个将运行的进程。

8. C程序段返回汇编代码。

9. 汇编语言程序开始运行当前进程。

3. 直接存储器存取(Direct Memory Access)

不管DMA控制器物理上处于什么地方,它都独立于CPU访问系统总线。它包含一些可以被CPU读写的寄存器。控制寄存器指定使用的I/O端口、传输方向、传输单位以及在一次冲突传送中要传送的字节数。

3.1DMA工作原理

①外设可通过DMA控制器向CPU发出DMA请求

②CPU响应DMA请求,系统转变为DMA工作方式,并把总线控制权交给DMA控制器

③由DMA控制器发送存储器地址,并举鼎传送数据块的长度

④执行DMA传送

⑤DMA操作结束,并把总线控制权还给CPU

3.2 DMA为什么需要一个内部缓冲区

①通过内部缓冲区,磁盘控制器能在开始传送之前验证校验和,如果和是错误的,将发出一个错误的信号,并且不传送到内存;

②一旦磁盘传输开始,从磁盘读出的位流以恒定的速率到达,而不管控制器是否已准备接收它们

4. I/O软件的原理

4.1 I/O设计目标

①与具体I/O设备无关

②采用统一命名方式

③应对错误进行处理

④采用缓冲技术

⑤实现I/O设备的分配和释放

⑥提供合理的I/O控制方式

4.2 I/O应用接口的四个层次(考点)

                  

4.2.1 每层完成的功能及各层的关系(考点)                                          

(1) 用户层I/O软件,实现与用户交互的接口,用户可直接调用该层所提供的、与IO操作有关的库函数对设备进行操作。

(2) 设备独立性软件,用于实现用户程序与设备驱动器的统接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。

(3) 设备驱动程序,与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。

(4)中断处理程序,用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完毕再恢复被中断进程的现场后,返回到被中断的进程。

5. CPU与外设之间传递数据的方式(考点)

5.1程序查询方式                                            

就是由用户进程直接控制内存或CPU和外围设备之间的信息传送。这种方式控制者都是用户进程。

5.1.1过程                                                             

在早期计算机系统中,由于无中断机构,处理机对I/O设备的控制采用程序查询的方式/忙等待方式。

5.1.2优缺点                                                             

优点:实现非常简单

缺点:CPU的利用率相当低,在循环测试中浪费了大量的CPU处理时间

5.2程序中断方式                                                       

要求CPU和设备之间有相应的中断请求线,且要求在状态寄存器中有中断允许位

5.2.1过程                                                             

①需要数据的进程通过CPU向相应的设备控制器发出一条I/O命令,CPU立即返回继续执行原来的任务。该进程放弃处理机等待输入完成

②设备控制器按照该命令的要求去控制指定的I/O设备读数据,此时CPU与I/O设备并行操作

③输入完成时,I/O控制器通过中断请求线向CPU发出中断信号。CPU在接收到中断信号之后,转向设备中断处理程序。设备中断处理程序将输入数据寄存器中的数据传送到某一特定内存单元中,以便供要求输入的进程使用。同时把等待输入完成的那个进程唤醒,在返回到被中断的进程继续执行

④在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从约定的内存单元中去数据做进一步处理

5.2.2优缺点                                                              

优点:与程序查询方式相比,大大提高CPU的利用率

缺点:若每台设备每输入/输出一个数据都要求中断CPU,这样在一次数据传送过程中,中断发生次数较多,从而耗去大量的CPU处理时间

5.3DMA控制方式                                                               

5.3.1过程                                                              

①当进程要求设备输入一批数据时,CPU将准备存放输入数据的内存始址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传送自己计数器,另外还要将中断位和启动位置1,以启动设备开始进行数据输入并允许中断

②发出数据请求进程进入等待状态,进程调度程序调度其他进程占据CPU

③输入设备不断地挪用CPU工作周期,将数据寄存器中的数据源源不断地写入内存,直到要求的字节全部传送完毕

④DMA控制器在传送字节数完成时通过中断请求线发出中断信号,CPU收到中断信号后转入中断处理程序,唤醒等待输入完成的进程,并返回到被中断程序

⑤在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从制定的内存单元中取走数据并做进一步处理。

5.3.2与中断控制的主要区别                                                              

DMA控制和中断控制的主要区别:终端控制方式在每个数据传送完成后中断CPU,而DMA控制方式则是在所要求传送的一批数据全部传送结束时中断CPU;中断控制方式的数据传送是在中断处理时由CPU控制完成的,而DMA控制方式则是在DMA控制器的控制下完成的。

5.3.2优缺点                                                              

优点:数据传输的基本单位是数据块,所传送的数据是从设备直接送入内存,或者相反;尽在传送一个/多个数据块开始和结束时,才需要CPU的干预,成倍地减少了CPU对/O的干预,进一步提高了CPU与I/O设备的并行操作程度

缺点:数据传送的方向、存放数据的内存始址及传送数据的长度都是CPU控制,占用一定CPU时间;每台设备需要一个DMA控制器,当设备增加时,多个DMA控制器的使用不经济

5.4通道控制方式                                           

I/O通道是指专门用于负责输入/输出工作的处理及,独立于CPU,有自己的指令系统。通道程序放在主存中,通过执行通道程序对设备控制器进行控制,由设备控制器控制设备进行I/O操作

5.4.1分类                                                              

 分类:字节多路通道、数组选择通道、数据多路通道

5.4.2过程                                                              

①当进程要求输入数据时,CPU发出启动指令指名要进行的I/O操作、所使用的设备号和对应通道

②对应通道接收到CPU发来的启动指令后,把存放在内存中的通道程序读出,并执行通道程序,控制设备将数据传送到内存中指定的区域

③若数据传送结束,则想CPU发出中断请求信号。CPU收到中断信号后转至中断处理程序,唤醒等待输入完成的进程,并返回到被中断程序

④在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从制定的内存单元中取走数据并做进一步处理。

5.4.3区别                                                              

   ①I/O通道与一般处理机的区别:I/O通道的指令类型单一,没有自己的内存,通道所执行的I/O通道程序是放在主机的内存中的,也就是说通道与CPU共享内存

   ②I,O通道与DMA控制方式的区别:DMA控制方式需要CPU来控制传输的数据块大小、传输的内存位置,而通道控制方式中这些信息是由通道控制的。另外,每个DMA控制器对应一台设备与内存传送数据,而一个通道可以控制多台设备与内存的数据交换。

5.4.4优缺点                                                             

优点:与DMA控制方式相比,通道所需要的CPU干预更少,可以实现CPU、通道、I/O设备三者的并行操作,更有效地提高了整个系统的资源利用率

缺点:通道的费用较高

6. 适配器(考点)

适配器简称接口,它将外围设备同某种计算机连接起来,使它们在一起可以正常工作。通过适配器可以实现高速CPU与低速外设之间工作速度上的匹配和同步,并完成计算机和外设之间的所有数据传送和控制。

7. 缓冲(考点)

7.1引入缓冲的目的

·解决缓和CPU和I/O设备速度不匹配的锚段

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

·提高CPU和I/O设备之间的并行性

7.2分类                                                   

根据系统设置的缓冲区个数不同,可分为单缓冲、双缓冲、环形缓冲和缓冲池

7.2.1缓冲池                                                              

缓冲池由多个缓冲区组成,缓冲池中的缓冲区是系统公用资源,可供多个进程共享,既能用于输入,又能用于输出(多进程的同步)

8. SPOOLING(考点)

8.1SPOOLING系统组成                                                   

①输入井和输出井(在磁盘上开辟出来的两个存储区域)

②输入缓冲区和输出缓冲区(在内存中开辟出来的两个存储区域)

③输入进程和输出进程(输入进程模拟脱机输入时的外围控制机,输出进程模拟脱机输出时的外围控制机)

8.2特点                                                              

①提高了I/O速度,从低速I/O设备的I/O操作变为输入井/输出井的操作,像脱机一样,缓和了CPU与低速I/O设备速度不匹配的矛盾

②将独占设备改为共享设备,在输入井和输出井中,为进程分配一个存储区和建立一个I/O申请表

③实现了虚拟设备功能,多个进程同时使用一独享设备,对于每个进程而言,都认为自己独占这一设备

9. 端口地址(考点)

在微机系统中,每个端口分配有唯一的地址码,称之为端口地址。

10. 死锁(考点)

如果一个进程集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的实践,那么该组进程是死锁的

10.1死锁的条件                                                       

四个必要条件:

互斥条件:每以资源要么被分配给了一个进程,要么就是可用的

占有和等待条件:已分配到了一些资源的进程可以请求新的资源

不可抢占条件:已分配给一个进程的资源只能被占有它的进程显示地释放

环路等待条件:死锁发生时,系统中必然有一条由两个/两个以上的进程组成的环路

10.2死锁预防方法                                                       

条件

方法

互斥

一切都使用假脱机技术

占有和等待

在开始时请求所有资源

不可抢占

抢占资源

环路等待

对资源按数值编号

发布了50 篇原创文章 · 获赞 46 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41949328/article/details/104305018