操作系统--课堂问答笔记23--习题答案

课堂笔记学习视频来自 操作系统
说明:其他”课堂问答笔记“也在”操作系统“专栏

【5-4、5-5】 

1、环形缓冲区的三个指针的作用

答:理解环形缓冲区的一些概念和原理:

1) 多个缓冲区。在环形缓冲中包括多个缓冲区,其每个缓冲区的大小相同。作为输入的多缓冲区可分为三种类型:用于装输入数据的空缓冲区R、已装满数据的缓冲区G以及计算进程正在使用的现行工作缓冲区C,如图所示:

 

2)对应3种缓冲区有3个指针:用于指示计算进程下一个可用缓冲区G的指针Nextg、指示输入进程下次可用的空缓冲区R的指针Nexti、指示计算进程正在使用的缓冲区C的指针Current(当前)。也就是:指针Nextg:指向下一个取数据的缓冲区,指针Nexti:指向下一个放数据的缓冲区,指针Current:目前正在用的缓冲区(可能是正在放数据,也可能是取数据)

3)环形缓冲区的使用:

Getbuf过程——使用(可能是取数据也可能是放数据)缓冲区数据:当计算进程要使用缓冲区中的数据时,可调用Getbuf过程。该过程将由指针Nextg所指示的缓冲区提供给进程使用,相应地,须把它改为现行工作缓冲区,并令Current指针指向该缓冲区的第一个单元,同时将Nextg移向下一个G缓冲区。类似地,每当输入进程要使用空缓冲区来装入数据时,也调用Getbuf过程,由该过程将指针 Nexti所指示的缓冲区提供给输入进程使用,同时将Nexti指针移向个 R缓冲区。

Releasebuf过程——释放缓冲区数据:当计算进程把C缓冲区中的数据提取完毕时,便调用Releasebuf过程,将缓冲区C释放。此时,把该缓冲区由当前(现行)工作缓冲区C改为空缓冲区R。 类似地,当输入进程把缓冲区装满时,也应调用Releasebuf过程,将该缓冲区释放,并改为G缓冲区。

 

2、分析缓冲池四种工作方式

答:缓冲池工作方式见下图:

 

缓冲池设置了四种工作缓冲区:用于收容输入数据的工作缓冲区(hin),用于提取输入数据的工作缓冲区(sin),用于收容输出数据的工作缓冲区(hout)、用于提取数据的工作缓冲区(sout)。

将缓冲池中具有相同类型的缓冲区链接成一个队列,于是可形成以下三个队列:空白缓冲队列emq;输入队列inq;输出队列outq。

1) 收容输入:当输入进程请求输入数据时,就会从空缓冲队列emq中取出队头的缓冲区,把它作为“收容输入数据的工作缓冲区(hin)”,装满数据后将缓冲区挂到输入队列inq的队尾。

2) 提取输入:计算进程如果想要取得一块输入数据,从输入队列inq队头取得一块满的输入缓冲区,把它作为“提取输入数据的工作缓冲区(sin)”,缓冲区的数据被读空后挂到空缓冲区队列emq末尾。

3) 收容输出:计算进程想要将准备好的数据装入缓冲区,从空缓冲队列emq中取出队头的缓冲区,把它作为“收容输出数据的工作缓冲区hout”,装满数据后挂到输出队列的队尾outq。

4) 提取输出:输出进程请求输出数据,从输出队列outq取出队头缓冲区,把它作为“提取输出数据的工作缓冲区sout”,当数据被读空后挂到空缓冲队列emq。

 

3、设备分配用到的数据结构及其作用

答:在用于设备分配的数据结构中,记录了对设备或控制器进行控制所需的信息。在进行设备分配时需要如下的数据结构。

1) 设备控制表DCT

系统为每一个设备都配置了一张设备控制表,用于记录每一个设备的情况:

 

2) 控制器控制表(COCT)。系统为每一个设备控制器都设置了用于记录控制器情况的控制器控制表:

 

3) 通道控制表(CHCT)。每个通道都有一张通道控制表:

 

4) 系统设备表(SDT)。这是系统范围的数据结构,记录了系统中全部设备的情况,每个设备占一个表目,其中包括有设备类型、设备标识符、设备控制表及设备驱动程序的入口等项:

 

以上表目中的内容可以不必记住,各表名称和作用先记住一下。

 

4、设备分配时应考虑的因素

答:系统在分配设备时,应考虑如下几个因素:

1) 设备的固有属性

设备的固有属性可分成三种,对它们应采取不同的分配策略:

(1) 独占设备的分配策略。

(2) 共享设备的分配策略。

(3) 虚拟设备的分配策略,虚拟设备属于可共享的设备,可以将它同时分配给多个进程使用。

2) 设备分配算法

对设备分配的算法,通常只采用以下两种分配算法:

(1) 先来先服务。(2)优先级高者优先。

3) 设备分配中的安全性

从进程运行的安全性上考虑,设备分配有以下两种方式:

(1)安全分配方式。(2)不安全分配方式。

 

5、如何理解设备独立性

答:设备独立性,也称为设备无关性。其基本含义是:应用程序中所用的设备,不局限于使用某个具体的物理设备。

计算机的外部设备很多,同种类型的设备又有不同厂家、不同型号的产品百。这些产品总会有些细微的差别。这就给应用程序的编写带来很大的困难,因为一个应用程序不可能顾及到所有硬件的兼容性。为此,操作系统将具体的硬件设备同整个系统隔离开来,对硬件的具体操作、与硬件有关的兼容性问题等统统由设备驱动程序来解决,同时操作系统向应用程序提供统一的操作设备的方法,应用程序只需要按套路调用操作系统提供的功能即可,无须关心实际的设备是什么,这就是设备独立性(无关性)。这样,每增添或改动一个系统上的硬件,只需要安装相应的驱动程序即可。

为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章