模拟卷 操作系统 协议数据单元页表 解答题
第 46 题

在一个分页存储管理系统中,地址空间分页(每页 1K),物理空间分块,设主存总量为 256KB,描述主存分配情况的位示意图如下右图所示(0 表示未分配,1 表示已分配),此时作业调度程序选中一个长为 5.2KB 的作业投入内存。试问:

(1)为该作业分配内存后(分配内存时,首先分配低地址的内存空间),请填写该作业的页表内容。

(2)页式存储管理有无内存碎片存在?若有,会存在哪种内存碎片?为该作业分配内存后,会产生内存碎片吗?如果产生,大小为多少?

(3)假设一个 64MB 内存容量的计算机,采用页式存储管理(页面大小为 4K),内存分配采用位示图方式管理,请问位示图将占用多大的内存?

协议数据单元 页表

[tag_link]

【解析】 (1) 位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况,其值为“0”时,表示对应盘块空闲;为“1”时,表示已分配,地址空间分页,每页为 1K,则对应盘块大小也为 1K,主存总容量为 256KB,则可分成 256 个盘块,长 5.2K 的作业需要占用 6 页空间。假设页号与物理块号都是从 0 开始,则根据位示图,可得到页表内容。页表内容如下:

页号块号
021
127
228
329
434
535

(2) 页式存储管理中有内存碎片的存在,会存在内部碎片,为该作业分配内存后,会产生内存碎片,因为此作业大小为 5.2K,占 6 页,前 5 页满,最后一页只占了 0.2K 的空间,则内存碎片的大小为 1K - 0.2K = 0.8K。

(3) 64MB 内存,一页大小为 4K,则共可分成 64KB × 1K / 4K = 16K 个物理盘块,在位示图中每一个盘块占 1 位,则共占 16Kbit 空间,因为 1B = 8bit,所以此位示图共占 16Kbit / 8 = 2KB 的内存。

注意,这里的 16Kbit 中的 K = 1024,因为是从 64KB × 1K / 4K = 16K 中得到的 K。而如果要占 16kbit (k = 1000) 的空间时,换算成内存空间应当注意 k 到 K 的转换,即 (16bit / 8) × (k / K) = 2B × (1000 / 1024) ≈ 1.95KB。考试中符号 k 取值应为 1000 还是 1024 一定要看清楚,否则单位转换的时候容易造成错误。