操作系统习题
第四章
2.可采用哪几种方式将程序装入内存?它们分别适用于何种场合?
- 绝对装入方式,只适用于单道程序环境。
- 可重定位装入方式,适用于多道程序环境。
- 动态运行时装入方式,用于多道程序环境;不允许程序运行时在内存中移位置。
3.何谓静态链接?静态链接时需要解决两个什么问题?
静态链接是指在程序运行前,先将各 目标模块 及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
静态链接需解决以下两个问题:
(1)对相对地址进行修改:在由编译产生的目标模块中,使用的都是相对地址,起始地址为0,每个模块中的地址都是相对于起始地址计算的。在链接成一个装入模块后,起始地址变为L而其他地址也要做处相应的改变(L+M)
(2)变换外部调用符号:将每个模块中用的外部调用符号也都变换为相对地址。
5. 何谓运行时动态链接?运行时动态链接方式有何优点?
运行时动态链接是指对某些目标模块的链接,是在程序执行中需要该 目标模块 时,才对它进行的链接。
许多情况下,应用程序在运行时,每次要运行的模块可能是不相同的,但由于事先无法清楚的知道本次要运行哪些模块,所以只能将所有可能运行的模块全部装入内存,并在装入时连接在一起。但在运行时动态链接过程中,在执行过程中都未用到的目标模块都不会被调入内存和链接,这样不仅能加快程序的装入过程,而且可以大大节省内存空间。
7. 为什么要引入动态重定位?如何实现?
答:在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位。
具体实现方法是在系统中增加一个重定位寄存器,用来装入程序在内存中的起始地址,程序执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加之和,从而实现动态重定位。
11. 令buddy’s(x)为大小为2^k、地址为x的块的伙伴系统地址,试写出buddys(x)的通用表达式。
答:当x MOD 2 ^ (k + 1) = 0 时, buddyk (x)=x+2 ^ k,当x MOD 2 ^ (k + 1) = 2 ^ k 时, buddyk(x) = x - 2^k
12. 分区存储管理中常用哪些分配策略?比较它们的优缺点。
分区存储管理中的常用分配策略:
| 分配策略 | 首次适应算法 | 循环首次适应算法 | 最佳适应算法 | 最坏适应算法 |
|---|---|---|---|---|
| 优点 | 保留了高址部分的大空闲区,有利于后来的大型作业分配 | 内存空闲分区分布均匀,减少了查找系统开销 | 每次分配给文件的都是最适合该文件大小的分区 | 剩下空闲区不太小,产生碎片几率小,对中小型文件分配分区操作有 利 |
| 缺点 | 低址部分不断被划分,留下许多难以利用的小空闲区,每次查找都从低址开始增加了系统开销 | 缺乏大空闲分区, 导致不能装入大型作业 | 内存中留下许多难以利用的小空闲区 | 存储器中缺三大空闲区,对大型文件分区分配不利 |
13. 为什么要引入对换?对换可分为哪几种类型?
一方面,在内存中的某些进程由于事件尚未发生而被阻塞运行,但它却占用大量的内存空间,甚至有时出现内存中的所有进程都被阻塞,而无可运行之进程。迫使CPU停下来等待的情况。
另一方面,又有着许多作业,因为内存的空间不足,一直驻留在外存上,而不能进入内存运行,这显然是对系统资源的浪费,使得系统吞吐量下降。
而对换把内存中哲时不能运行的进程或者暂时不用的程序和数据换出到外存上,以便腾出足够的内存空间,再把己具备运行条件的进程或进程所需要的程序和数据换入内存
对换能有效改善内存利用率
对换可以分为 整体对换 和 页面(分段)对换 两种。
15. 为实现对换,系统应具备哪几方面的功能?
答:系统应具备三方面功能:对换空间管理,进程换出,进程换入。
18. 什么是页面?什么是物理块?页面的大小应如何确定?
①页面:分页存储管理将进程的逻辑地址空间分成若干个页,并为各页加以编号。
②物理块:把内存的物理地址空间分成若干个块,并为各块加以编号。
③页面大小应选择适中,且页面大小应该是2的幂,通常为1KB~8KB。
19. 什么是页表?页表的作用是什么?
页表:是一种特殊的数据结构,记录着页面和页框的对应关系。
页表的作用:是内存非连续分区分配的基础,实现从逻辑地址转化成物理地址。
20. 为实现分页存储管理,需要哪些硬件支持?
答:动态重定位技术、虛拟存储技术、多道程序设计技术。
21. 在分页系统中是如何实现地址变换的?
在分页系统中,利用地址变换机构实现从逻辑地址到物理地址的转换,通过页表来实现从页号到物理块号的变换,将逻辑地址中的页号转换为内存中的物理块号。
22. 具有快表时是如何实现地址变换的?
在CPU给出有效地址后,由地址变换机构自动将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号比较,若找到匹配页号,表示要访问的页表项在快表中。可直接从快表读出该页对应物理块号,送到物理地址奇存器中。如快表中没有对应页表项,则再访问内存页表,找到后,把从页表项中读出物理块号送地址寄存器;同时修改快表,将此页表项存入快表。但若寄存器己满,则os必须找到合适的页表项换出。
23. 较详细地说明引入分段存储管理是为了满足用户哪几方面的需要。
- 方便编程。用户通常把自己的作业按照逻辑关系划分为若干段,每段都从 0 编址,并有自己名字和长度。因此,希望要访问的逻辑地址是由段名和段内偏移量决定。
- 信息共享。在实现对程序和数据的共享时,是以信息逻辑单位为基础。分页系统中的页是存放信息的物理单位,无完整意义,不便于共享;段是信息的逻辑单位。为了实现段的共享,希望存储管理能与用户程序分段的组织方式相适应。
- 信息保护。对信息的逻辑单位进行保护,分段能更有效方便地实现信息保护功能。
- 动态增长。在实际应用中,有些段特别是数据段,在使用过程中会不断增长,事先又无法确切知道增长多少。分段存储管理方式能较好解决这个问题。
- 动态链接。运行时先将主程序对应的目标程序装入内存井启动运行,运行过程中又需要调用某段时,才将该段调入内存链接。所以动态链接也要求以段作为管理单位。