操作系统学习笔记(二十四)~页框分配和颠簸+内核内存分配+虚拟内存中的其他考虑

308 阅读3分钟

「这是我参与11月更文挑战的第30天,活动详情查看:2021最后一次更文挑战

前言

Hello!小伙伴!

非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~

 

自我介绍 ଘ(੭ˊᵕˋ)੭

昵称:海轰

标签:程序猿|C++选手|学生

简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖...已保研。目前正在学习C++/Linux/Python

学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

9.4 页框分配和颠簸

1、系统"抖动"现象的发生可能是由()引起。A A.置换算法选择不当 B.交换的信息量过大 C.内存容量充足 D.请求页式管理方案

2、允许进程在所有的页框中选择一个替换页面,而不管该页框是否已分配给其他进程的置换方法是()。B A.局部置换 B.全局置换 C.进程外置换 D.进程内置换

3、下面()存储分配方法可能使系统抖动?BCD A.可变分区 B.页式 C.段式 D.段页式

4、每个进程页框的最少数量可以是1个。×

5、利用局部置换算法可以限制系统颠簸。

9.5 内核内存分配

1、Slab分配的优点包括()。BD A.可通过合并而快速地形成更大的段 B.没有因碎片而引起的内存浪费 C.可以提高内存访问的速度 D.内存请求可以快速满足

2、内核内存分配方法和用户内存分配采用一样的方法。×

解释: 在这里插入图片描述

3、在内核内存管理方案中也可以使用交换技术来扩充内存容量。×

解释: 在这里插入图片描述

4、伴系统的一个缺点是由于调整到下一个2的幂容易产生碎片。

5、伙伴系统的主要设计思想是:内存按2的整数次幂进行划分,即形成4KB,8KB等空闲块,这些空闲块组成若干空闲块链表;分配时查找链表,找到满足进程需求的最佳匹配块。

9.6 虚拟内存中的其他考虑

1、在页面选择时,需要小的页面的考量是()。D A.页表大小 B.缺页次数 C.I/O开销 D.页内碎片

解释: 在这里插入图片描述

2、有二维数组: int X[64][64]; 假设有一个进程有4个页框,每个页框大小为128个字(一个整数占用一个字)。处理数组X的进程正好可以放在一页中,而且总是占用0号页。数据会在其他3个页框中被换入或换出。数组X为按行存储(即,在内存中,X[0][0]之后是X[0][1])。下面代码中,缺页中断的总数为()。C

   for(int j = 0;j < 64;j++)

          for(int i = 0; i < 64; i++) X[i[[j] = 0;

A.32 B.1024 C.2048 D.其它都不对

解释:该程序按列访问。X数组按行存储,即每一页可存储2行(128字节);每访问一次页框就发生一次缺页中断。每访问2个数就发生一次缺页中断,则会有64*64/2 = 2048次缺页中断;

3、在分页系统中,以下提高TLB命中率的方法,可行的是()。AC A.增加TLB条目 B.采用多级页表 C.提高页面大小 D.降低页面大小

4、对于给定的虚拟内存空间,为了降低页表大小,可以增加页面大小。

5、由于每个缺页会产生大量的额外开销,为了降低缺页次数,需要较小的页。×

解释: 在这里插入图片描述