根据死锁四个条件分析,判断是否死锁现象。请添加新的规则,以保证不再出现死锁。 10、在哲学家就餐问题中,对哲学家Pi(i=0,1,2,3,4)有循环进程Si:
Pi做学问;
Pi取左手边的筷子和右手边的筷子; Pi就餐;
Pi将两根筷子分别放回原处。
问:(1)说明该系统是个会死锁的系统;
(2)请分别用死锁预防、死锁避免、死锁检测与恢复改造系统。
11、假定某计算机系统有R1设备3台,R2设备4台,它们被P1,P2,P3,P4这4个进程所共享,且已知这四个进程均以下面所示的顺序使用现有设备:申请R1→申请R2→申请R1→释放R1→释放R2→释放R1。(1)该系统运行过程中是否会有产生死锁的可能?为什么?(提示:有,因为满足产生死锁的四个必要条件)(2)如果有可能,举例说明,并画出表示该死锁状态的进程资源图。 12、关于安全状态的说法,判断:
(1)系统处于不安全状态一定会发生死锁。 (2)系统处于不安全状态可能发生死锁。 (3)不安全状态是死锁状态的一个特例。 (4)系统处于安全状态时也可能发生死锁。 13、判断:参与死锁的所有进程都占有资源。 14、化简下图,并判断是否为死锁状态?
21
P1R1R2R3P2R4P3 15、银行家算法是通过破坏死锁四个必要条件中的()来避免死锁的。
16、设系统中仅有一类资源共3个,系统有3个进程共享该资源,每个进程至少请求一个资源,若他们所需要的资源最大量总和是X,则发生死锁的必要条件是:()
第四章 存储器管理
1、计算机系统是如何保护操作系统不受破坏,各用户程序之间也相互不被破坏呢?
提示:在内存划分用户空间和系统空间,用界限寄存器记录系统空间的下届;用户空间也划分成多个空间,不同用户的程序在内存的地址不可交错。
2、在下列存储管理方案中,一个作业在内存中一定是连续存放的有()。(选项:单一连续分配;固定分区分配;可变分区分配;段式;可重定位分区分配;页式;段页式)
3、要保证一个程序在主存中被改变了存放位置后仍能正确执行,则对主存空间应采用()。(选项:静态重定位;动态重定位;动态分配;静态分配) 4、试给出几种存储保护方法,并说明各适用何种场合? (1)界限寄存器法:适用于分区存储管理;(2)锁钥相配法:适用于分页和分区存储管理;(3)设置存取权限法:适用于分段存储管理。 5、存储保护是否可以完全由软件实现?为什么?
答:存储保护的主要任务是确保每道程序都只能在自己的存储区域内访问,因此对每次内存访问都要进行越界检查。如果越界检查完全由软件实现,则会降低程序的执行速度,因此越界检查通常由硬件实现,而发现越界后的处理需要与软件配合来完成。所以存储保护功能是由软硬件协同完成的。
6、下面关于重定位的说法,判断: (1)绝对地址是内存空间的地址编号。
(2)用户程序中使用的从0地址开始的地址编号是逻辑地址。 (3)动态重定位中装入内存的作业仍保持原来的逻辑地址。 (4)静态重定位中,地址转换工作是在作业装入过程中完成的。
7、内存利用率不高主要表现在哪些方面?可通过哪些途径来提高内存利用率?
答:内存利用率不过主要表现在:(1)内存中存在大量的、分散的、难以利用的碎片;(2)暂时或长期不能运行的程序和数据占据了大量内存空间;(3)当作业较大时内存只能装入少量作业,当它们被阻塞时将使CPU空闲,从而也会降低内存利用率;(4)内存中存在大量重复的拷贝。提高内存利用率的途径:(1)改连续分配为离散分配,减少内存碎片;(2)增加对换机制,将那些暂时不用的程序和数据换出到外存;(3)采用虚拟存储技术,是更多的作业装入内存;(4)引入动态装入和链接机制,尽量避免装入本次运行中不用的程
22
序;(5)引入存储器共享机制,减少内存中的重复拷贝。
8、可重入代码:又称为“纯代码”,是一种允许多个进程同时访问的代码,在执行过程中不允许有任何改变。
9、从供选择的答案中选出与下列叙述关系最密切的存储管理方法。
(1)支持多道程序设计,算法简单,但存储器碎片多;(2)能消除碎片,但用于存储器紧缩处理的时间长;(3)克服了碎片多和紧缩处理时间长的缺点,支持多道程序设计,但不支持虚拟存储;(4)支持虚拟存储,但不能以自然的方式提供存储器的贡献和存取保护机制;(5)运行动态链接和装入,能消除碎片,支持虚拟存储。
选择:A 段页式; B 基本分页; C请求分页式;D 可重定位式;E固定分区;F单一连续分配。
10、下面关于存储器管理功能的论述,判断:(2,5)
(1)即使在多道程序设计环境下,用户也能设计用内存物理地址直接访问内存的程序。 (2)内存分配最基本的任务是为每道程序分配内存空间,其他追求的主要目标是提高存储空间的利用率。
(3)为了提高内存保护的灵活性,内存保护通常由软件实现。 (4)交换技术已不是现代操作系统中常用的一种技术。
(5)地址映射是指将程序空间中的逻辑地址变为内存空间的物理地址。 (6)虚拟存储器能在物理上扩充内存容量。 11、碎片最严重的存储管理方式是()
(1)固定分区;(2)可变分区;(3)分页;(4)分段。
12、某程序在逻辑地址100处有一条指令LOAD 1,500,而500单元内存放数据51888.假设程序被分配到内存起始地址5000单元时,试用图示意,采用下述各种方式下的该指令及数据地址的物理地址及相应的地址变换过程。 (1)静态重定位。
(2)采用重定位寄存器实现动态重定位。
(3)采用页表映像方式,假定页面大小为100B,其页面各页存放到50、51、52、?59物理块上。
13、在分页、分段和段页式存储管理中,当访问一条指令时,需要访问内存几次?各做什么操作?
4.3 连续分配
1、有一个系统其内存容量为1024KB,有8个作业同时到达,各作业需要的内存量何运行时间如表所示:
作业编号 1 2 需要内存量(KB) 140 80 运行时间(s) 3 1 23
3 4 5 6 7 8 100 60 50 30 15 20 3 2 1 3 2 3 假定系统初启时,将内存1024KB按作业的编号顺序分给各道作业,并假定是多CPU下,分配到内存的作业都可以立即运行。问:(1)1s后,内存空白区按首次适应何最佳适应算法的链接方式链接,将如何链接?(2)2s后,其内存空白区按上述两种算法如何链接?(3)在(2)后,此时有一个作业9要求进入内存,它需要内存量为12KB,按上述两种算法,将把哪一块空白区分给它?
2、在某多道程序系统中,供用户使用的内存空间为100KB,磁带机2台,打印机1台。系统采用可变式分区分配方式管理内存,对磁带机和打印机采用静态分配方式,并假设输入、输出操作的时间忽略不计。现有一作业序列如表所示: 作业号 1 2 3 4 5 到达时间 8:00 8:20 8:20 8:30 8:35 要求计算时间(min) 25 10 20 20 15 要求内存(KB) 15 30 60 20 10 申请磁带机数 1 1 1 1 申请打印机数 1 1 1 假设作业调度采用先来先服务算法,优先分配内存的低地址区域且不准移动已在内存中的作业,问:作业的调度顺序是什么?平均周转时间是多少?作业全部执行结束的时间是什么? 3、unix中,关于交换进程的叙述,正确的有()。(选项:(1)交换进程用于实现虚拟存储系统;(2)换出进程时,注意不换出正被共享的正文段;(3)当对换区有就绪进程且内存有足够空间时,则立即把它换入内存;(4)为了换进一个进程而必须换出别的进程时,总是先换出睡眠态进程)
4、以下有关可变分区管理的说法中,判断:
(1)可变分区管理常采用的内存分配算法包括最先适应、最佳适应和最坏使用算法。 (2)最先适应算法实现简单,但碎片过多使内存空间利用率降低。 (3)最佳适应算法是最好的算法,但后到的较大作业很难得到满足。
(4)最差适应算法总是挑选最大的空闲区用于分割,使得剩下的分区仍可使用。 5、在某系统中采用基址、限长寄存器的方法来保护存储信息,判断是否越界的判别式为()。 6、假定存储器空闲块有如下结构:
350B250B500B 请构造一串内存请求序列,首次适应分配算法能满足该请求序列,而最佳适应分配算法则不能。
7、在固定分区管理中,为了提高内存的利用率,可采用如下技术(1,2)
(1)按经常出现的作业大小来划分分区。(2)按作业对内存空间的需求量组成多个作业请求队列。(3)不同作业请求队列中的作业可以申请相同的分区。(4)大作业可以申请多个分区。
8、可变分区存储管理采用的地址转换公式是(3)
24