(略)
8. 在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?
a. 回收区与插入点的前一个分区相邻接,此时可将回收区与插入点的前一分区合并,不再为回收分区分 配新表项,而只修改前邻接分区的大小;
b. 回收分区与插入点的后一分区相邻接,此时合并两区,然后用回收区的首址作为新空闲区的首址,大- 小为两者之和;
c. 回收区同时与插入点的前后两个分区邻接,此时将三个分区合并,使用前邻接分区的首址,大小为三 区之和,取消后邻接分区的表项;
d. 回收区没有邻接空闲分区,则应为回收区单独建立一个新表项,填写回收区的首址和大小,并根据其 首址,插入到空闲链中的适当位置.
9. 在系统中引入对换后带有哪些好处? 能将内存中暂时不运行的进程或暂时不用的程序和数据,换到外存上,以腾出足够的内存空间,把已具备 运行条件的进程或进程所需的程序和数据换入内存,从而大大地提高了内存的利用率.
10 为实现对换,系统应具备哪几方面功能? a. 对对换空间的管理; b. 进程的换出; c. 进程的换入.
11 在以进程为单位进行对换时,每次是否都将整个进程换出?为什么? a. 以进程为单位进行对换时,每次都将整个进程换出; b. 目的为了解决内存紧张的问题,提高内存的利用率.
12 为实现分页存储管理,需要哪些硬件支持?你认为以 Intel 8086,MC68000, Intel 80286 为芯片的微机,是否适合于实现分页管理?(有待讨论)
13 请较详细地说明,引入分页存储管理(估计印错了,是分段存储管理)是为了满足用户哪几方面的需要? a. 方便了编程; b. 实现了分段共享; c. 实现了分段保护; d. 实现了动态链接; e. 实现了动态增长.
14 在具有快表的段页式存储管理方式中,如何实现地址变换? 首先,必须配置一段表寄存器,在其中存放段表始址和段长 TL. 进行地址变换时,先利用段号 S,与段长
TL 进行比较,若 S
15 为什么说分段系统较之分页系统更易于实现信息共享和保护?
a. 对于分页系统,每个页面是分散存储的,为了实现信息共享和保护,则页面之间需要一一对应起来, 为此需要建立大量的页表项;
b. 而对于分段系统,每个段都从 0 开始编址,并采用一段连续的地址空间,这样在实现共享和保护时,
只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应起来即可. 16 分页和分段有何区别?
a. 分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是它们的共同点; b. 对于它们的不同点有三,第一,从功能上看,页是信息的物理单位,分页是为实现离散分配方式,以 消减内存的外零头,提高内存的利用率,即满足系统管理的需要,而不是用户的需要;而段是信息的逻辑 单位,它含有一组其意义相对完整的信息,目的是为了能更好地满足用户的需要; c. 页的大小固定且由系统确定,而段的长度却不固定,决定于用户所编写的程序; d. 分页的作业地址空间是一维的,而分段的作业地址空间是二维的. 17 试全面比较连续分配和离散分配方式.
a. 连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式和分区式分配方式, 前者将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式, 但只能用于单用户单任务的操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单的 多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;动态分区是根据进程 的实际需要,动态地为之分配连续的内存空间,常用三种分配算法: 首次适应算法 FF,该法容易留下许多 难以利用的小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中的空闲分区分布均匀,但 会致使缺少大的空闲分区;最佳适应算法,该算法也易留下许多难以利用的小空闲区;
b. 离散分配方式基于将一个进程直接分散地分配到许多不相邻的分区中的思想,分为分页式存储管理, 分段存储管理和段页式存储管理. 分页式存储管理旨在提高内存利用率,满足系统管理的需要,分段式存 储管理则旨在满足用户(程序员)的需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理 则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又 能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较 有效的存储管理方式;
c. 综上可见,连续分配方式和离散分配方式各有各自的特点,应根据实际情况加以改进和利用.
第六章
1. 在请求分页系统中,其页表项中包含那些数据项? 它们的作用是什么?
a. 在请求分页系统中,其页表项中包含的数据项有页号,物理块号,状态位 P,访问字段 A,修改位 M 和 ---外存地址;
b. 其中状态位 P 指示该页是否调入内存,供程序访问时参考;
c. 访问字段 A 用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问,提供给置换算 法选择换出页面时参考;
d. 修改位 M 表示该页在调入内存后是否被修改过;
e. 外存地址用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用. 2. 一个计算机系统的虚拟存储器,其最大容量和实际容量分别由什么决定? a. 最大容量由内存和外存之和决定; b. 实际容量由内存决定.
3. 虚拟存贮器有那些特征? 其中最本质的特征是什么?
a. 虚拟存储器具有离散性,多次性,对换性和虚拟性的特征;
b. 其中最本质的特征是离散性,在此基础上又形成了多次性和对换性,所表现出来的最重要的特征是虚
拟性.
4. 实现虚拟存储器要那些硬件支持?
a. 对于为实现请求分页存储管理方式的系统,除了需要一台具有一定容量的内存及外存的计算机外,还 需要有页表机制,缺页中断机构以及地址变换机构;
b. 对于为实现请求分段存储管理方式的系统,除了需要一台具有一定容量的内存及外存的计算机外,还 需要有段表机制,缺段中断机构以及地址变换机构;
5. 在实现虚拟存储器时的几个关键技术是什么? (有待讨论)
6. 在请求分页系统中,页表应包括那些数据项?每项的作用是什么? (同第一题)
7. 在请求分页系统中,应从何处将所需页面调入内存?
a. 在进行地址变换时,首先去检索快表,试图从中找出所要访问的页,若找到,便修改页表项中的访问 位,对于写指令,还须将修改位置 1,然后利用页表项中给出的物理块号和页内地址,形成物理地址; b. 如果在快表中未找到该页的页表项,则应再到内存中去查找页表,再从找到的页表项中的状态位来了 解该页是否已调入内存,如果该页已调入内存,应将此页的页表项写入快表,当快表已满时,应先调出按 某种算法所确定的页的页表项,然后再写入该页的页表项;
c. 如果该页尚未调入内存,这时便应产生缺页中断,请求 OS 从外存中把该页调入内存;
d. 外存分为文件区和对换区,若系统有足够的对换区空间,可在进程运行前,将与该进程有关的文件拷 贝到对换区,需要时从对换区调入;
e. 若系统缺少足够的对换区空间,则凡是不会被修改的文件,可直接从文件区调入,需换出时可不必写 入外存,但对于可能被修改的部分,在将它们换出时,便须调到对换区,以后需要时再从对换区调入. 8. 在请求分页系统中,常采用哪几种页面置换算法? a. 最佳置换算法; b. 先进先出算法;
c. 最近最久未使用 LRU 置换算法; d. Clock 置换算法;
e. 此外,还有最少使用置换算法和页面缓冲算法.
9. 某虚拟存储器的用户空间共有 32 个页面,每页 1KB,主存 16KB. 假定某时刻为用户的第 0,1,2,3 页分别分配的物理块号为 5,10,4,7,试将虚拟地址 0A5C 和 093C 变换为物理地址.
a. 将 0A5C 变换为 2 进制为: 0000,1010,0101,1100,由于页面大小为 1KB 约为 2 的 10 次方,所以 0A5C 的 页号为 2,对应的物理块号为:4,所以虚拟地址 0A5C 的物理地址为 125C;
b. 将 093C 变换为 2 进制为: 0000,1001,0011,1100,页号也为 2,对应的物理块号也为 4,此时虚拟地址 093C 的物理地址为 113C.
10 在请求分页系统中,通常采用那种页面分配方式?为什么? a. 在请求分页系统中,有固定和可变分配两种分配方式;
b. 采用固定分配方式是基于进程的类型(交互型)或根据程序员,系统管理员的建议,为每个进程分配一 固定页数的内存空间,在整个运行期间不再改变;
c. 采用可变分配方式有全局置换和局部置换两种,前者易于实现,后者效率高.
11 在一个请求分页系统中,采用 LRU 页面置换算法时,假如一个作业的页面走向为 4,3,2,1,4,3, 5,4,3,2,1,5,当分配给该作业的物理块数 M 分别为 3 和 4 时,试计算访问过程中所发生的缺页次数 和缺页率?比较所得结果?
a. 当分配给该作业的物理块数 M 为 3 时,所发生的缺页率为 7,缺页率为: 7/12=0.583; b. 当分配给该作业的物理块数 M 为 4 时,所发生的缺页率为 4,缺页率为: 4/12=0.333. 12 在置换算法中,LRU 和 LFU 哪个更常用?为什么?
a. LRU 与 LFU 置换算法的页面的访问图完全相同,即使用的硬件是相同的; b. 但是 LFU 并不能真正访问反映出页面的使用情况. 13 实现 LRU 算法所需的硬件支持是什么?
a. 寄存器,用于记录某进程在内存中各页的使用情况; b. 栈,用于保存当前使用的各个页面的页面号. 14 试说明改进型 Clock 置换算法的基本原理.
a. 因为对于修改过的页面在换出时所付出的开销将比未被修改过的页面的开销大,所以在改进型 Clock 算法中,出了须考虑到页面的使用情况外,还须再增加一个置换代价这一因素;
b. 在选择页面作为淘汰页面时,把同时满足未使用过和未被修改作为首选淘汰页面. 15 什么是抖动? 产生抖动的原因是什么?
a. 抖动(Thrashing)就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或数 据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页调出, 而此时被换出的页很快又要被访问,因而又需将它调入,如此频繁更换页面,以致花费大量的时间,我们 称这种现象为\抖动\
b. 产生抖动的原因是由于 CPU 的利用率和多道程序度的对立统一矛盾关系引起的,为了提高 CPU 利用率, 可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致 CPU 的利用率下降,而系统 的调度程序又会为了提高 CPU 利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于\抖动\状态.
16 试说明请求分段系统中的缺页中断处理过程? (见 P185 图 6-12) 17 如何实现分段共享?
a. 可在每个进程的段表中,用相应的表项来指向共享段在内存中起始地址;
b. 配置相应的数据结构作为共享段表,可在段表项中设置共享进程计数 Count,每调用一次该共享段, Count 指增 1,每当一个进程释放一个共享段时,Count 执行减 1 操作,若减为 0,则由系统回收该共享段 的物理内存,以及取消在共享段表中该段所对应的表项; c. 对于一个共享段,应给不同的进程以不同的存取权限; d. 不同的进程可以使用不同的段号去共享该段. 18 Intel 80386 芯片可支持哪几种方式的存储管理? a. 不分段也不分页的存储管理方式; b. 分页不分段的存储管理方式; c. 分段不分页的存储管理方式; d. 分段分页存储管理方式.
19 试说明 80386 的分段地址变换机构的工作原理. a. 采用段寄存器和虚地址结构;
b. 在分段部件中,地址变换是将逻辑地址变换为线性地址,然后送分页部件中.(具体见 P191) 20 试说明 80386 的两级分页地址变换机构的原理. (见 P193)
21 可通过哪些途径来提高内存利用率? (有待讨论,该题可以看成是对本章的本质内容的全面概括和总结)
第十三章
1. UNIX 系统有哪些基本特征? a. 开放性;
b. 多用户,多任务环境; c. 功能强大,实现高效; d. 提供了丰富的网络功能.
2. UNIX 系统核心分成哪两大部分?各包含哪些功能?
a. UNIX 系统核心分为进程控制子系统部分和文件子系统部分;
b. 进程控制子系统包含进程控制,进程通信,存贮器管理和进程调度功能;文件子系统包含文件管理, 高速缓冲机制和设备驱动程序的功能.
3. UNIX 系统中的 PCB 含哪几部分?并用图来说明它们之间的关系. a. UNIX 系统中的 PCB 含四部分:进程表项,U 区,进程区表和系统区表项; b. 图见 P396.
4. 进程映象含哪几部分?其中系统级上下文的动态部分的作用是什么?
a. 进程映象(Process Image)包含三部分:用户级上下文,寄存器上下文和系统级上下文;
b. 系统级上下文的动态部分包含核心栈和若干层寄存器上下文,它的作用是当因中断或系统调用而进入 核心态时,核心把一个寄存器上下文压入核心栈,退出系统调用时,核心又将弹出一个寄存器上下文,在 进行上下文切换时,核心将压入老进程的上下文层,而弹出新进程的上下文层. 5. 在 UNIX 系统中,用于进程控制的系统调用有哪些(主要的)?它们的主要功能是什么? a. fork,用于创建一个新进程; b. exec,改变进程的原有代码; c. exit,实现进程的自我终止;
d. wait,将调用进程挂起,等待子进程终止; e. getpid,获取进程标志符; f. nice,改变进程的优先级.
6. 为创建一个新进程,需做哪些工作? a. 为新进程分配一进程表项和进程标志符; b. 检查同时运行的进程数目;