<>按资源分配方式可将外部设备分为几类?各有什么特点?

* 独占设备:该类设备要以用户或作业为单位分配,在该用户未退出系统之前,或该作业未运 行结束之前,此设备不能作其他分配。
* 共享设备:多个进程可以“同时”从这些设备上存取信息。
* 虚拟设备:通过 SPOOLing 技术把原来的独占设备改造成能为若干用户共享的设备,以提高设 备的利用率。
<>简述操作系统设备管理的主要任务

操作系统的设备管理是对计算机 I/O 系统的管理,其主要任务是:

* 实现对 I/O 设备的分配和回收;
* 启动 I/O 设备;
* 控制 I/O 设备与 CPU 或主存之间交换数据;
* 实现对磁盘的调度:
* 处理设备的中断;
* 实现虚拟设备等。
<>I/O控制可以用哪几种方式实现?各有何优缺点。(2018年961填空题考点)

I/O 控制方式有4种,即程序 I/O 方式、中断控制方式、DMA 控制方式和通道 控制方式。它们各自的优缺点叙述如下:

* 程序I/O方式:
* 优点是控制简单,也不需要很多硬件的支持。
* 但CPU和外部设备之间只能串行工作,且CPU的大部分时间处于循环测试状态,这使得CPU的利用率大大降低。
* CPU在一段时间内只能和一台外部设备交换信息,因而不能实现设备之间的并行工作。
* 程序直接控制方式依靠测试设备状态标志来控制数据的传送,因此无法发现和处理因设备或其他硬件产生的错误。
* 程序直接控制的方式只适用于那些CPU执行速度较慢,且外部设备较少的系统。
* 中断控制方式:
* 优点是能实现CPU与设备、设备与设备之间的并行操作,CPU的利用率较程序直接控制方式大大提高。
* I/O控制器的数据缓冲寄存器通常较小,且数据缓冲寄存器装满数据后将会发生中断,因此一次数据传输过程中中断次数较多,耗费了大量的CPU时间。
* 如果系统中配置的外部设备较多,且都以中断方式进行控制,则会消耗大量CPU时间,甚至CPU来不及处理数据造成数据丢失。
* DMA控制方式:
*
与中断控制方式相比,DMA控制方式的优点是在一批数据传送完成后中断CPU,从而大大减少CPU进行中断处理的次数。并且DMA控制方式下的数据传输是在DMA控制器的控制下完成的,在数据传输过程中无需CPU的参与。
* 但是DMA控制方式也有一些局限,如外部设备的管理和某些操作仍由CPU控制,且多个DMA控制器的使用也不经济。
* 通道控制方式:
* 通道是一个专管输入输出工作的处理器。
* 在通道控制方式下,CPU只需要发出I/O指令,通道就能完成相应的I/O操作,并在I/O操作结束时,向CPU发出中断信号。
* CPU仅在I/O操作开始和结束时花极短的时间处理与I/O操作有关的事宜,其余时间都与通道并行工作,此外一个通道可以控制多个设备。
* 但是通道价格较高,从经济的角度出发不宜使用过多。
<>简述中断控制方式下,CPU与I/O设备之间数据传输的步骤

* 在某个进程需要数据时,发出指令启动输入输出设备准备数据。
* 进程发出指令启动设备之后,该进程放弃处理器,等待相关 I/O 操作完成。此时进程调度程序会调度其他就绪进程使用处理器。
* I/O 操作完成时,输入输出设备控制器通过中断请求线向处理器发出中断信号,CPU
收到中断信号之后,转向预先设计好的中断处理程序,对数据传送工作进行相应的处理。
* 到了数据的进程,转入就绪状态。在随后的某个时刻,进程调度程序会选中该进程继续工作。
在以上处理 I/O 操作的过程中,中断处理程序和设备处理程序两者一起完成对中断请求的处理,但
两者工作方式不同,前者必须关中断运行或以高优先级方式运行,后者可以开中断运行或以低优先级方 式运行。

<>简述 DMA 控制方式的技术特征。

* DMA 有两个技术特征,首先是直接传送,其次是块传送。
* 所谓直接传送,即在内存与 I/O 设备间传送一个数据块的过程中,不需要 CPU 的任何中间干涉,只 需要 CPU
在过程开始时向设备发出“传送块数据”的命令,然后通过中断来得知过程是否结束和下次操 作是否准备就绪。
<>什么是DMA控制方式?它与中断控制方式的主要区别是什么?

* DMA控制方式即直接存储器访问方式,其实现思想是外部设备在硬件支持下直接与内存交换成批数据而无须CPU干预。
* 在 DMA 控制器中,除了包含状态寄存器和数据寄存器之外,还包含传送字节计数器、内存地址寄存器等。
*
在进行数据存取时,先由CPU向控制器发送启动指令,然后在DMA控制器的控制下不断挪用CPU的工作周期,在设备和内存之间直接交换数据,直到一批数据全部传送完成时才中断
CPU。
* 批量数据的传送由计数器逐个计数,并由内存地址寄存器确定所要访问的内存地址。
DMA 控制方式与中断控制方式的主要区别如下:

* 中断控制方式在每个数据传送完成后中断 CPU,而 DMA 控制方式则是在所要求传送的一批数据 全部传送结束时中断 CPU。
* 中断控制方式的数据传送是在中断处理时由CPU控制完成,而DMA控制方式则是在DMA控制器的控制下完成。不过,在DMA
控制方式中,数据传送的方向、存放数据的内存始址及传送数据的长度等仍然由CPU控制
<>DMA控制方式与通道控制方式有什么不同?

* 在 DMA 控制方式中,DMA 控制器控制下的设备和主存之间可以成批地进行数据交换而不用CPU干预,这样既减轻了CPU
的负担,也大大提高了I/0数据传送的速度。
* 通道控制方式与DMA控制方式类似,也是一种以内存为中心实现设备与内存直接交换数据的控制方式。
* 在通道控制方式中,CPU只须发出启动指令,指出通道相应的操作和I/O设备,该指令就可以启动通道并使该通道从内存中调出相应的通道程序执行。
* 与DMA控制方式相比,通道控制方式所需的CPU干预更少,并且一个通道可以控制多台设备,从而进一步减轻了CPU的负担。
<>为什么要在设备管理中引入缓冲技术?

缓冲技术是用来在两种不同速度的设备之间传输信息时平滑传输的常用手段。 在操作系统的设备管理中,引入缓冲技术的主要原因可归结为以下几点。

* 缓和 CPU 与 I/O 设备间速度不匹配的矛盾。
一般情况下,程序的运行过程是时而进行计算,时而进行输入或输出。以打印机输出为例,如果没有缓冲,则程序在输出时,必然由于打印机的速度跟不上而 使 CPU
停下来等待;然而在计算阶段,打印机又无事可做。如果设置一个缓冲区,程序可以将待输出的数据先输出到缓冲区中,然后继续执行;而打印机则可以从缓冲区中取出数据慢慢打印。
* 有效减少 I/O 的次数。

例如,假定设备只用一位二进制数接收从系统外传来的数据,则设备每接收到一位二进制数就要中断CPU一次,如果数据通信速率为9.6Kb/s,则中断CPU的频率也为9.6kHz,即每100μs就要中断CPU一次,若设置一个具有8位的缓冲寄存器,则可使
CPU 被中断的次数降低为前者的 1/8。
* 提高CPU和I/O设备之间的并行性。
由于在 CPU 和设备之间引入了缓冲区,CPU 可以从缓冲区中读取或向缓冲区写入信息,相应的设备也可以向缓冲区写入或从缓冲区读取信息。在 CPU
工作的同时,设备也能进行输入输出操作,这样 CPU 和 I/0 设备、设备与设备之间就可以并行工作。
<>什么是缓冲池?设计一个数据结构来管理缓冲池。

缓冲池中的 3 个缓冲队列如下:

* 空缓冲队列:由系统中的空闲缓冲区组成。
* 输入队列:由装满输入数据的缓冲区组成,输入设备已经将这些缓冲区中装满了数据,等待CPU处理。
* 输出队列:由装满输出数据的缓冲区组成,这些数据等待输出数据输出。
缓冲池中的四类工作缓冲区如下:

* 收容输入工作缓冲区:用于收容来自输入设备的数据
* 提取输入工作缓冲区:供CPU从中提取数据进行计算
* 提取输出工作缓冲区:用于收容 CPU 要输出的计算结果。
* 收容输出工作缓冲区:供输出设备从中提取数据进行输出。
当输入设备需要输入数据时,便从空缓冲队列的队首摘下一个空缓冲区,把它作为收容输入工作缓 冲区,然后把数据输入其中,装满后再将它挂到输入队列队尾。
当 CPU 需要处理输入数据时,便从输入队列取得一个缓冲区,作为提取输入工作缓冲区,CPU 从中提取数据,数据用完后再将它挂到空缓冲队列队尾。
当 CPU 需要输出结果时,便从空缓冲队列的队首取得一个空缓冲区,作为收容输出工作缓冲区,当 其中装满输出数据后,再将它挂到输出队列队尾。
当输出设备需要输出结果时,由输出进程从输出队列中取得一个装满输出数据的缓冲区,作为提取 输出工作缓冲区,当数据提取完后,再将它挂到空缓冲队列的末尾。
如此周而复始不停地工作,任何进程都可以使用缓冲池中的缓冲区。

<>何为虚拟设备?实现虚拟设备的主要条件是什么?并说明 SPOOLing 系统是如何实现虚拟设备的

* 虚拟设备是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。
*
实现虚拟设备时,必须要有硬件的中断装置和通道技术作支撑,使CPU与各种I/0设备之间可以并行工作。操作系统采用多道程序设计技术,合理分配处理器,实现联机的I/O设备同时操作。
* SPOOLing
系统主要由输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程三部分组成。当要运行用户程序时,由输入进程将用户要求的程序和数据预先从输入设备经由输入缓冲区送到输入井,当程序运行需要输入数据时,直接从输入井将数据读入内存。当用户程序要求输出数据时,
由输出进程先将数据从内存送到输出井,待输出设备空闲时,再将输出井中的数据经由输出缓冲区送到输出设备上。
由于磁盘是共享设备,输入井及输出井是磁盘上的两个存储区域,因此多个用户进程可以共享使用输入井及输出井,这样,就将独占型设备改造成了可共享使用的虚拟设备。
*
以打印机为例进行说明,当用户进程请求打印输出时,操作系统同意为进程打印,但并不真正把打印机分配给该用户进程,而是为进程在磁盘上的输出井中分配一个空闲区域,并将要打印的数据送入其中,同时还为用户进程申请一张用户请求打印表,将用户的打印要求填入其中,再将该请求打印表挂在请求打印队列上。如果还有进程要求打印输出,系统仍可以接受该请求,也为进程完成上述操作。如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据
从输出井传送到内存的输出缓冲区,再由打印机进行打印。打印完成后,输出进程再查看请求打印队列
中是否有请求打印表,若有,则再取出第一张请求打印表,并根据其中的打印要求进行打印,如此重复,
直至请求打印队列空为止,输出进程会将自己阻塞起来,直到下次有打印请求时才被唤醒。
<>独占型设备利用率低的原因何在?虚拟技术为何能提高独占型设备的利用率?简述输入型和输 出型虚拟设备各是如何实现的。

* 用户直接使用独占型设备的方式,是在申请命令与释放命令之间,进程将一直占用所申请到的独占型设备。这种设备使用方式有如下两个主要缺点:
* 由于独占型设备速度较慢,进程在执行使用命令时,需要花费较长时间等待 I/0 传输完成,因而影响进程推进速度
* 由于在各个使用命令之间可能有与该设备无关的操作(如计算、操作其他设备等),进程在占有该设备的期间不一定一直使用该设备,因而降低了设备的利用率。
* 为克服上述缺点,引入了虚拟设备。利用共享型设备实现的数量较多、速度较快的独占型设
备称为虚拟设备。其基本思想是在独占型设备与内存进程之间加入一个共享型设备作为过渡,因为共享 型设备速度很快,所以进程 I/O
传输所需等待时间较短,提高了进程推进速度。另外由于信息在独占型
设备与共享型设备之间的传输是连续进行的,即独占型设备在被占用期间一直被使用,因而提高了设备资源的利用率。
* 输入型虚拟设备实现:对输入型虚拟设备来说,信息的流向是由独占型设备到共享型设备,
再由共享型设备到进程空间。假定用于输入的独占型设备为读卡机,用于实现虚拟设备的共享型设备是
磁盘,对于进程所发出的申请命令、使用命令及释放命令,系统所需完成的工作如下:
* 申请:分配一台虚拟设备(磁盘盘区),分配一台实设备(读卡机),将信息由实设备(读卡机) 连续地传输到虚拟设备(盘区),释放实设备(读卡机)。
* 使用:将信息由虚拟设备(磁盘盘区)传输到进程空间。
* 释放:收回虚拟设备(磁盘盘区)。
* 输出型虚拟设备实现:对输出型虚拟设备来说,信息的流向是由进程空间到共享型设备,再由共享
型设备到独占型设备。假定用于输出的独占型设备为打印机,用于实现虚拟设备的共享型设备是磁盘,
对于进程所发出的申请命令、使用命令及释放命令,系统需要完成的工作如下:
* 申请:分配一台虚拟设备(磁盘盘区)。
使用:将信息由进程空间传输到虚拟设备(磁盘盘区)。
* 释放:分配一台实设备(打印机),信息全部由虚拟设备传输到实设备(打印机),收回实设备 (打印机),收回虚拟设备(磁盘盘区)。

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信