从资源管理的观点来看,操作系统的管理对象是计算机系统的资源,操作系统则是管理系统资源的程序集合。
以存储管理中的段式存储管理为例,请叙述操作系统对内存的具体管理方案(包括功能、数据结构和算法)。(14分)
参考答案:首先从内存划分、程序逻辑地址划分、内存分配几方面考虑段式存储管理方案的工作原理: (l) 内存划分:内存空间被动态地划分为若干个长度不相同的区域,每个区域称作一个物理段、每个物理段在内存中有一个起始地址,称作段首址。将物理段中的所有单元从0开始依次编址,称为段内地址。(2分) (2) 逻辑地址空间划分:用户程序按逻辑上有完整意义的段来划分。称为逻辑段。例如主程序、子程序、数据等都可各成一段,每段对应于一个过程,一个程序模块或一个数据集合。将一个用户程序的所有逻辑段从0开始编号,称为段号。将一个逻辑段中的所有单元从0开始编址,称为段内地址。(2分) 用户程序的逻辑地址由段号和段内地址两部分组成:段号,段内地址 (3) 内存分配:系统以段为单位进行内存分配,为每一个逻辑段分配一个连续的内存区(物理段)。逻辑上连续的段在内存不一定连续存放。(2分) 然后,从实现方法上考虑: (4) 建立段表(2分) 系统为每个用户程序建立一张段表,用于记录用户程序的逻辑段与内存物理段之间的对应关系,包括逻辑段号,物理段首地址和物理段长度三项内容。用户程序有多少逻辑段,该段表里就登记多少行,且按逻辑段的顺序排列。段表存放在内存系统区里。 (5) 建立空闲区表(6分) 系统中设立一张内存空闲区表,记录内存中空闲区域情况,用于为段分配和回收内存。系统在寻找空闲区时可采用以下三种分配算法。 (l) 首先适应算法 根据申请,在空闲区表中选取第一个满足申请长度的空闲区。此算法简单,可以快速做出分配决定。 (2) 最佳适应算法 根据申请,在空闲区表中选择能满足申请长度的最小空闲区。此算法最节约空间,因为它尽量不分割大的空闲区。其缺点是可能会形成很多很小的空闲区域,称作碎片。 (3) 最坏适应算法 根据申请,在空闲区表中选择能满足申请要求的最大的空闲区。该算法的出发点是:在大空头区中装人信息后,分割剩下的空闲区相对也大,还能用于装入新的信息。该算法的优点是可以避免形成碎片;缺点是分割大的空闲区后,再遇到较大的申请时,无法满足的可能性较大。