用户程序的逻辑地址由段号和段内地址两部分组成:段号,段内地址
③内存分配:系统以段为单位进行内存分配,为每一个逻辑段分配一个连续的内存区 (物理段)。逻辑上连续的段在内存不一定连续存放。(2分) 然后,从实现方法上考虑:
④建立段表(2分)
系统为每个用户程序建立一张段表,用于记录用户程序的逻辑段与内存物理段之间的对应关系,包括逻辑段号,物理段首地址和物理段长度三项内容。用户程序有多少逻辑段,该段表里就登记多少行,且按逻辑段的顺序排列。段表存放在内存系统区里。
⑤建立空闲区表(6分)
系统中设立一张内存空闲区表,记录内存中空闲区域情况,用于为段分配和回收内存。系统在寻找空闲区时可采用以下三种分配算法。
①首先适应算法
根据申请,在空闲区表中选取第一个满足申请长度的空闲区。此算法简单,可以快速做出分配决定。
②最佳适应算法
根据申请,在空闲区表中选择能满足申请长度的最小空闲区。此算法最节约空间,因为 它尽量不分割大的空闲区。其缺点是可能会形成很多很小的空闲区域,称作碎片。
③最坏适应算法
根据申请,在空闲区表中选择能满足申请要求的最大的空闲区。该算法的出发点是:在大空头区中装人信息后,分割剩下的空闲区相对也大,还能用于装入新的信息。该算法的优点是可以避免形成碎片;缺点是分割大的空闲区后,再遇到较大的申请时,无法满足的可能性较大。
4.
目前,大多数计算机系统都支持虚拟页式地址转换机制。试回答下列问题:
(1).页式存储管理方案中,用户地址空间怎样划分?内存地址空间怎样划分?内存分配过程是怎样的?(10分)
(2).页表应设计哪些数据项,每个数据项的作用是什么?(10分)
(3).页式存储管理方案中,地址映射机制需要哪种寄存器的支持?为了加快地址映射速度,需要采取什么措施?该措施的作用是什么?(10分)
答案:
页式存储管理将内存空间按照逻辑页面大小划分成等长的若干区域,每个区域为一个内存块。(2分)内存的所有内存块从0开始编号。(1分)