P1 P2 P3 P4 P5 2 4 4 4 3 1 0 0 0 1 2 2 5 5 4 5 5 4 4 4 5 3 0 2 2 9 6 11 5 4 3 1 0 0 1 4 3 0 2 1 7 4 6 0 0 系统中剩余可用资源的数量为(0,3,2);用安全算法进行检查可以得到安全序列{P4,P5,P3,P2,P1},所以系统是安全的,可以满足进程P4的资源请求。
(5)在第(4)题的基础上,若进程P1又有新的资源请求(0,2,0),按银行家算法进行检查,进程P1请求资源数(0,2,0)+已分配资源数量(2,1,2)小于进程P4的最大需求数量(5,5,9);另外进程P1请求资源数(0,2,0)小于剩余可用资源的数量(0,3,2);如果满足进程P1新的资源请求,进程P1新仍然需求资源数变为(3,2,7),如表所示。 进程 P1 P2 P3 P4 P5 已分配资源数量 A 2 4 4 2 3 B 1 0 0 0 1 C 2 2 5 4 4 最大资源需求量 A 5 5 4 4 4 B 5 3 0 2 2 C 9 6 11 5 4 仍然需求资源数 A 3 1 0 0 1 B 2 3 0 2 1 C 7 4 6 0 0 系统中剩余可用资源的数量为(0,1,2),已不能满足任何进程的资源需要,故系统进入不安全状态,此时不能将资源分配给进程P1。
5 存储管理
1、存储管理的基本任务是为多道程序的并发执行提供良好的存储器环境,这包括哪些方面? 存储管理的基本任务是为多道程序的并发执行提供良好的存储器环境,它包括以下几个方面:(1)能让每道程序“各得其所”,并在不受干扰的环境中运行时,还可以使用户从存储空间的分配、保护等事物中解脱出来;(2)向用户提供更大的存储空间,使更多的程序同时投入运行或使更大的程序能在小的内存中运行。(3)为用户对信息的访问、保护、共享以及程序的动态链接、动态增长提供方便;(4)能使存储器有较高的利用率。
2、页式存储管理系统是否产生碎片?如何应对此现象?
页式存储管理系统产生的碎片称为内碎片,它是指一个进程的最后一页没有占满一个存储块而被浪费的存储空间。减少内碎片的办法是减小页的大小。
3、在页式存储管理系统中页表的功能是什么?当系统的地址空间很大时会给页表的设计带来哪些新问题?
页式存储管理系统中,允许将进程的每一页离散地存储在内存的任何一个物理页面上,为保证进程的正常运行,系统建立了页表,记录了进程每一页被分配在内存的物理块号。页表的功能是实现从页号到物理块号的地址映射。
当系统的地址空间很大时,页表也会变得非常大,它将占有相当大的内存空间。例如,对于一个32位地址空间的页式系统,假设页的大小为4KB,则一个进程的页表项最大可达到1MB。如果每个页表项占4B,则页表要占用4MB的连续内存空间。为了解决这个问题可以从以下两个方面入手。(1)将页表离散存放。(2)只将页表的一部分调入内存,其余部分放在外存。
具体的实现方案是采用两级页表。对页表分页,使每个页面的大小与内存的物理块的大小一致。并为它们进行编号,将各个页面放在不同的物理块中。然后为这些离散分配的页表再建立一张页表,称为外层页表(或页目录),此时的逻辑地址可描述为:
外层页号+页号+页内位移
对于要运行的进程,将其外层页表调入内存,对所有的页表而言只需调入少量的页表,使用时如果找不到相应的页表,则产生中断,请求操作系统将需要的页表调入内存。
两级页表适应了大地址空间的需要,需要虚拟存储技术的支持,增加了地址变换的开销和管理的复杂度。此外根据需要还可以设计三级页表、四级页表等。
4、什么是动态链接?用哪种存储管理方案可以实现动态链接?
动态链接是指进程在运行时,只将进程对应的主程序段装入内存,在主程序运行过程中,当需要用到哪个子程序段和数据段时,再将这些段装入内存,并与主程序段链接上。
通常一个大的程序是由一个主程序和若干个以及一些数据段组成的。而段式存储管理方案中的段就是按用户的逻辑段自然形成的,因此可实现动态链接。
5