(4)逻辑地址30000:
页号=30000/4096=7
页内地址=30000MOD4096=1328
用页号3查找页表,发现越界,发出越界中断信号,终止程序运行。
10. 在一分段系统中,某个已装入内存的作业的段表如表3-4所示。计算下列逻辑地址所对应的物理地址:(0,311),(1,120),(2,230),(4,800)。
参考答案:(1)逻辑地址(0,311) 使用段号0查找段表,找到对应的表项后,用段内地址311与段长进行比较,没有越界,计算物理地址=段始址+段内地址=2100+311=2411 (2)逻辑地址(1,120)
使用段号1查找段表,找到对应的表项后,用段内地址120与段长进行比较,没有越界,计算物理地址=段始址+段内地址=3500+120=3620 (3)逻辑地址(2,230)
使用段号2查找段表,找到对应的表项后,用段内地址230与段长进行比较,发现越界,发出越界中断信号,终止程序运行。 (2)逻辑地址(4,800)
使用段号4查找段表,找到对应的表项后,用段内地址800与段长进行比较,没
有越界,计算物理地址=段始址+段内地址=5400+800=6200
11. 简述段页式系统的地址变换过程。
参考答案:为实现地址转换,系统设置了一个段表寄存器,用于存放当前执行进程的段表始址和段表长度。进行地址转换时,首先检查段号是否超出段表长度,如果是,产生越界中断;否则,使用段号检索段表,找到对应的段表项后,从中得到该段的页表始址和页表长度,再检查页号是否超出页表长度,如果是,产生越界中断;否则,使用页号检索页表,找到对应的页表项后,从中得到该页对应的物理块号,再与页内地址一起组成物理地址。
12. 什么叫虚拟存储器?它有哪些特征?
参考答案:所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。从用户角度看,该系统所具有的内存容量比实际内存容量大得多,但这只是用户的一种感觉,是虚的,故而得名虚拟存储器。 虚拟存储器的特征有:虚拟扩充、部分装入、多次对换。
13. 在请求分页系统中,页表应包括哪些数据项?每项的作用是什么?
参考答案:在请求分页系统中,页表应包括:页号、物理块号、状态位、访问位、修改位、外存地址。其中“状态位”表示该页是否在内存;“访问位”表示该页调入内存后是否被访问过以及被访问的情况;“修改位”表示该页调入内存后是否被修改过;“外存地址”指出该页在外存上的地址,通常是盘块号。
14. 在请求分页系统中,常用的页面置换算法有哪些?各有何特点? 参考答案:在请求分页系统中,常用的页面置换算法及其特点描述如下:
(1) 先进现出(FIFO)页面置换算法:这是一种最简单的置换算法,它总是淘汰最
先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法虽
然实现容易,但由于没有考虑页面调入内存后被访问的情况,使其性能较差,故很少单独使用。
(2) 最近最久未使用(LRU)置换算法:LRU置换算法是根据页面调入内存后的使
用情况来选择淘汰页的,即它总是选择最近一段时间内最长时间没有被访问的页面予以淘汰。LRU置换算法考虑了页面调入内存后的使用情况,具有较好的性能,但要快速的找出最近最久未被使用的页面,却要花费巨大的系统开销,往往需要较多的硬件支持,因此在实际系统中往往使用其近似算法。
(3) 最近未使用(NUR)置换算法:该算法又被称为Clock置换算法,是LRU算法
的近似算法。它总是选择最近一段时间内未被访问的页面予以淘汰。
(4) 最少使用(LFU)置换算法:该算法是LRU算法的近似算法。它选择过去一段
时间里被访问次数最少的页面予以淘汰。
15. 在一个请求分页系统中,内存容量为1MB,被划分为256块,每块为4KB。有一作业,其页表如表3-5所示。(1)计算逻辑地址9016所对应的物理地址;(2)对逻辑地址12300,试给出其物理地址的转换过程。
参考答案:(1)逻辑地址9016: 页号=9016/4096=2
页内地址=9016MOD4096=824
用页号2查找页表,找到对应的块号为33,则物理地址为:
物理地址=块号×页面大小+页内地址=33×4096+824=135992
(2)逻辑地址12300:
页号=12300/4096=3
页内地址=12300MOD4096=12
用页号3查找页表,发现该页还在内存,发生缺页中断,等把页面调进内存后
再重新进行地址转换工作。
16. 在一个请求分页系统中,假设一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,若分配给该作业的物理块数为4,假设当前没有任何页面在内存,分别采用FIFO和LRU页面置换算法,试计算在运行过程中发生的缺页次数和缺页率,并比较所得结果。
参考答案:(1)采用FIFO页面置换算法: 访问4 页面 缺页 是 内 存 块 4 换页 3 是 4 3 2 是 4 3 2 1 是 4 3 2 1 4 否 4 3 2 1 3 否 4 3 2 1 5 是 5 3 2 1 4 4 是 5 4 2 1 3 3 是 5 4 3 1 2 2 是 5 4 3 2 1 1 是 1 4 3 2 5 5 是 1 5 3 2 4 缺页次数是:10次,缺页率=缺页次数/访问次数=10/12=83.3% (2)采用LRU页面置换算法:
访问4 页面 缺页 是 内 存 块 4 换页 3 是 4 3 2 是 4 3 2 1 是 4 3 2 1 4 否 4 3 2 1 3 否 4 3 2 1 5 是 4 3 5 1 2 4 否 4 3 5 1 3 否 4 3 5 1 2 是 4 3 5 2 1 1 是 4 3 1 2 5 5 是 5 3 1 2 4 缺页次数是:8次,缺页率=缺页次数/访问次数=8/12=66.7%
17. 提高内存利用率的途径有哪些? 参考答案:提高内存利用率的途径有: (1)改连续分配方式为离散分配方式; (2)增加对换和覆盖机制; (3)引入动态链接机制; (4)引入虚拟存储器机制; (5)引入存储器共享机制。
第四章习题
1.设备管理的主要功能是什么?
参考答案:设备管理的主要功能是:设备分配、缓冲管理、设备处理。
2. 按工作特性可把设备分为哪几种类型?按设备的共享属性可把设备分为哪几种类型?
参考答案:按工作特性可把设备分为存储设备和I/O设备,按设备的共享属性可把设备分为独享设备、共享设备和虚拟设备。
3. 什么是设备独立性?引入设备独立性有什么好处?
参考答案:用户在编程时使用的设备与程序运行时实际使用的设备无关,称为“设备独立性”,设备独立性能提高系统进行设备分配时的适应性和灵活性。
4. 设备控制器的主要功能有哪些?
参考答案:作为CPU与设备间的接口,设备控制器通常具有如下功能:①接收和识别由CPU发来的各种命令,并对这些命令进行译码;②实现CPU与控制器、控制器与设备之间的数据交换和数据缓冲;③将设备和控制器当前所处的状态提供给CPU;④实现CPU和设备之间的通信控制,进行端口地址译码。
5. I/O控制方式有哪几种?各有什么特点? 参考答案:I/O控制方式包括:
(1) 程序直接控制方式,用于早期没有中断硬件技术的系统中,其缺点是CPU与
设备完全串行工作,而设备的速度远低于CPU,致使CPU大部分时间处于等待状态,严重降低了CPU的利用率。
(2) 中断驱动控制方式,它使CPU和设备可以并行工作,显著提高了CPU的利
(3)
(4)
用率,至今仍然是字符设备的I/O控制方式。
DMA方式,主要用于块设备的I/O控制。该方式的最大特点是数据传送直接在设备与内存之间进行,整块数据的传送是由DMA控制器完成的,仅在数据传送开始和结束时才需CPU干预,较之中断驱动控制方式,进一步减少了CPU对I/O操作的干预。
通道控制方式,通道控制方式与DMA方式类似,也是一种以内存为中心,实现设备与内存直接进行数据交换的控制方式。与DMA方式相比,CPU对I/O控制的干预更少,从而进一步减轻了CPU的负担。
6. 简述独占设备的分配过程。
参考答案:独占设备分配一般分为三个步骤:分配设备、分配控制器、分配通道。 (1)分配设备。根据进程所请求的设备类型,检索系统设备表,找到第一个该类设备的控制表,从其“状态”字段可知设备忙闲情况。若设备忙,则查找第二个该类设备的控制表,仅当所有该类设备都忙时,才把进程插入该类设备的等待队列上。只要有一个该类设备空闲,就可以分配给进程。
(2)分配控制器。当系统把设备分配给进程后,从该设备的控制表中找到与此设备相连的控制器的控制表,从其“状态”字段可知该控制器是否忙碌。若控制器忙,将该进程插入控制器等待队列;否则,将该控制器分配给进程。
(3)分配通道。当把控制器分配给进程后,从该控制器的控制表中找到与其相连的通道的控制表,从其“状态”字段可知该通道是否忙碌。若通道忙,将进程插入通道等待队列;否则将该通道分配给进程。
当进程分配到设备、控制器和通道后,就可以进行数据传输工作了。
7. 简述设备驱动程序的特点和功能。 参考答案:设备驱动程序最大的特点是与硬件特性紧密相关,它包括了所有与设备相关的代码,因而其中的部分代码必须用汇编语言编写。每个设备驱动程序只处理一种设备,或者一类紧密相关的设备,因而对不同类型的设备应配置不同的驱动程序。例如,可以为相同的多个终端配置一个驱动程序。但有时即使是同一类型的设备,由于其生产厂家不同,也可能不完全兼容,此时也必须为它们配置不同的驱动程序。另外,驱动程序与设备所采用的I/O控制方式紧密相关,如常用的中断驱动方式和DMA方式的驱动程序就明显不同。
设备驱动程序的主要功能是从与设备无关的软件中接收抽象的请求并执行,具体包括以下几个方面:①将接收到的抽象要求转化为具体要求;②检查用户I/O请求的合法性,了解设备的状态,传递有关参数,设置设备的工作方式;③发出I/O命令,启动分配到的I/O设备,完成指定的I/O操作;④及时响应由控制器或通道发来的中断请求,并调用相应的中断处理程序进行中断处理;⑤对于设置有通道的计算机系统,驱动程序还应能根据用户的I/O请求,自动地构成通道程序。
8. 为什么要引入缓冲?简述缓冲池的实现机制。 参考答案:引入缓冲的主要目的是:
(1)缓和CPU与I/O设备间速度不匹配的矛盾,提高它们之间的并行性。 (2)减少对CPU的中断频率,放宽CPU对中断响应时间的限制。 缓冲池的实现机制:
缓冲池由多个缓冲区组成,这些缓冲区可供多个进程共享,既能用于输入,也能用于输出。为管理方便,将所有缓冲区组织成三个队列:①空缓冲队列:由空缓冲区组成;②输入
队列:由装满输入数据的缓冲区组成;③输出队列:由装满输出数据的缓冲区组成。
各进程在使用缓冲池中的缓冲区时,通常有下面四种情况:①当输入进程需要输入数据时,便从空缓冲队列的队首摘下一空缓冲区,把数据输入其中,装满后将其挂到输入队列末尾。②当计算进程需要输入数据进行计算时,便从输入队列取得一个缓冲区,从中提取数据进行计算,数据用完后再将其挂到空缓冲队列末尾。③当计算进程需要输出数据时,便从空缓冲队列的队首摘下一个空缓冲区,将数据输出到其中,当缓冲区装满输出数据后,再将它挂到输出队列末尾。④当输出进程要输出时,便从输出队列取得一个装满输出数据的缓冲区,输出其中的数据,数据输出完后,再将其挂到空缓冲队列末尾。
9. 什么是设备虚拟技术?以共享打印机的实现为例,说明SPOOLing系统是如何实现设备虚拟的?
参考答案:为提高独占设备的利用率和系统效率,人们使用共享设备来模拟独占设备,将独占设备改造成共享设备,这种技术称为设备虚拟技术。
共享打印机是SPOOLing技术的典型应用。当用户进程请求打印输出时,SPOOLing系统为其做两件事:①由“输出井写”程序将用户进程要打印的数据存放到输出井中;②为用户进程申请一张空白的请求打印表,并填入用户的打印要求,然后将其挂到请求打印队列上。如果还有其他用户进程请求打印输出,系统仍可接收该请求,同样为该进程做上述两件事。
如果打印机空闲,缓输出程序就从请求打印队列的队首取出一张请求打印表,根据表中的打印要求从输出井中取出待打印数据,由打印机进行打印。重复上述过程,直到请求打印队列为空,缓输出程序就阻塞等待新的打印请求。
10. 简述SPOOLing系统的组成。 参考答案:
SPOOLing系统包括输入井和输出井、预输入程序和缓输出程序、井管理程序几个部分,如图4-6所示。
输入设备输出设备预输入程序作业执行缓输出程序主机系统输出井磁盘输入井
图4-6 SPOOLing系统的组成
(1)输入井和输出井。这是在磁盘上开辟的两个大的存储区,输入井用于预先存放从I/O设备输入的各作业的全部信息,输出井用于暂时存放各运行作业的输出信息。
(2)预输入程序和缓输出程序。预输入程序的任务是预先把作业的全部信息输入到磁盘上的输入井中保存,作业执行时只需从输入井中读入相关信息,而不必启动输入设备。缓输出程序的任务是启动输出设备对输出井中等待输出的作业信息进行输出。
(3)井管理程序。它又分为“输入井读”和“输出井写”两个程序。当要求读信息时,由输入井读程序从输入井中找出作业所需信息并传送给作业;当作业要求输出信息时,由输出井写程序把输出信息存放到输出井中。
11. 磁盘访问时间包括哪三个部分?
参考答案:磁盘访问时间包括以下三个部分:
(1)寻道时间Ts:是指把磁头从当前位置移动到指定磁道所需要的时间,它是影响磁盘数据传输率的重要参数,与磁头移过的磁道数量成正比,一般磁盘为5~15ms。