操作系统第四章习题

1、什么是静态链接、装入时动态链接和运行时的动态链接?

:

1. 静态链接是在生成可执行程序的时候就把库中的内容加入到程序中。

2. 载入时动态链接是在将功能模块读入内存时把动态库中调用到的相关模块的内容载入内存。

3. 运行时动态链接是在执行程序调用到模块内容时再将动态库中的相应模块载入到内存。

 

2、简述分页系统和分段系统的异同点

答:

相似之处:两者都采用离散分配方式,且都是通过地址映射机构实现地址变换。

不同之处:1页是信息的物理单位。采用分页存储管理方式是为实现离散分配方式,以消减内存的外零头,提高内存的利用率,是系统行为,对用户不可见。分段存储管理方式中的段是信息的逻辑单位,它通常包含的是一组意义相对完整的信息,分段的目的主要在于能更好地满足用户的需要。2.页的大小固定且由系统决定。分页系统中硬件结构上把用户程序的逻辑地址划分为页号和页内地址,因而在每个系统中只能有一种大小的页面。分段系统中段的长度却不固定,决定于用户所编写的程序,通常根据信息的性质划分。3.分页的用户程序地址空间是一维的。分页是系统的行为。分段是用户的行为,用户程序的地址空间是二维的,程序员在标识一个地址时,既要给出段名,又要给出段内地址。

 

3、什么情况下需要重定位?为什么要引入重定位?

答:因为源程序经过编译产生的目标模块一般总是从0开始编址的,其中的地址都是相对于起始地址的相对地址。在将目标模块经过链接装入内存时,其分配到的内存空间的起始地址通常不为0,因此指令和数据的实际物理地址和装入模块内的相对地址是不同的,为了使程序能够正确执行,必须将相对地址转换成物理地址,即进行重定位。

为了程序能正确执行,不引起地址变换带来的问题,引入重定位能满足我们的需求。

 

4、在具有快表的段页式存储管理方式中,如何实现地址变换?

答:首先设置一段表寄存器,在其中存放段表始址和段长SL,进行地址变换时,利用段号S与段长SL进行比较,若S<SL,表示未越界,于是利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得出该段的页表始址;利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再利用块号b和页内地址来构成物理地址。

在具有快表的段页式存储管理方式中,段表和页表被放在快表内,每次访问它时,利用段号和页号去访问快表,若找到匹配项,便可以从中得到相应的物理块号,用来和业内地址一起生成物理地址;若找不到匹配项,则需3次访问内存,得到物理块号,并将其抄入快表。快表已满时,则通过适当的算法,换出最近最久没有被访问的项。

 

5、什么是对换技术?为什么要引入对换? 对换有哪些类型?

答:系统把所有的用户作业存放在磁盘上,每次只能调入一个作业进入内存,当该作业的一个时间片用完时,将它调至外存的后备队列上等待,再从后备队列上将另一个作业调入内存,这就是对换技术。

在多道环境下,一方面,在内存中的某些进程由于某事件尚未发生而被阻塞,但它却占用了大量的内存空间,甚至有时可能出现在内存中所有进程都被阻塞而迫使CPU停止下来等待的情况;另一方面,却又有着许多作业在外存上等待,因无内存而不能进入内存运行的情况。这是对系统资源的一种严重浪费,使系统的吞吐量下降。为了解决这个问题引入对换。

对换有两种类型:1.整体对换 2.页面(分段)对换。

 

6、在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?

答:

  1. 回收区前邻空闲区。将回收区与前邻空闲区合并,将前邻空闲区大小修改为两者之和。
  2. 回收区后邻空闲区。将回收区和后邻休闲区合并,将后邻空闲区始地址改为回收区始地址,大小为两者之和。
  3. 回收区前后均邻空闲区。将三个分区合并,修改前邻空闲区大小为三者之和。
  4. 回收区前后都不邻空闲区。为回收区设置空闲区表项,填入回收区始地址和大小并插入空闲区队列。
发布了14 篇原创文章 · 获赞 3 · 访问量 1395

猜你喜欢

转载自blog.csdn.net/L704198260/article/details/104188896
今日推荐