操作系统——存储器管理习题和笔记

摘自:计算机操作系统第四版

何谓静态链接?静态链接时需要解决两个什么问题?

在程序运行之前,先将各目标模块及它们所需的库函数连接成一个完整的装配模块,以后不再拆开。这种事先进行连接的方式称为静态链接方式。在静态链接方式时,每个应用模块都必须含有其目标模块的拷贝,无法实现对目标模块的共享。

需要解决的问题:对相对地址进行修改,和变换外部调用符号。

静态链接最大缺点是生成可执行文件太大,需要更多的系统资源,在装入内存时也会消耗更多时间。

何谓装入时动态链接?装入时动态链接方式有何优点?

这是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。即在装入一个目标模块时,若发生外部调用事件,将引起装入程序去找出相应的外部目标模块,并且将它装入内存。

优点:便于修改和更新,便于实现对目标模块的共享,可以将一个目标模块连接到几个应用模块上。

何谓运行时动态链接?运行时动态链接方式有何优点?

在许多情况下,应用程序在运行时,每次要运行的模块可能是不相同的。但是事先不知道本次需要运行哪些模块,只能将所有可能运行到的模块全部装入内存,并在装入时全部链接到一起,这显然是低效的,因为往往有部分目标模块根本就不运行。

运行时动态链接是,将对某些模块的链接推迟到程序执行时才进行。在执行过程中,当发现一个被调用模块尚未装入内存,立即由OS去找该模块,并将之装入内存,将其链接到调用模块上。

优点:可以加快程序的装入速度,而且可以节省大量的内存空间。

为什么要引入动态重定位?如何实现?

在动态运行时转入的方式中,作业装入内存后的所有地址仍然都是相对逻辑地址。而将相对地址转换为绝对(物理)地址的工作被推迟到程序指令要真正执行时进行。为使地址的转换不会影响到指令的执行速度,必须有硬件地址变换机构的支持,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。

地址变换过程是在程序执行期间,随着对每条指令或数据的访问自动进行的,故称为动态重定位。当系统对内存进行了“紧凑”,而使若干程序从内存的某处移至另一处时,不需对程序做任何修改,只要用该程序在内存的新起始地址去置换原来的起始地址即可。

另外,动态重定位分区分配算法与动态分区分配算法基本上相同,差别仅在于:在这种分配算法中,增加了紧凑的功能。(紧凑是指将内存中的所有作业进行移动,使其相邻接,用于解决外部碎片)

什么是对换技术?

对换,指的是把内存中暂时不能运行的进程或者暂时不用的数据和程序换出到外存上,以便腾出足够的内存空间,再把已具有运行条件的进程或进程所需要的程序和数据换入内存。

为什么要引入对换?对换可分为哪几种类型?

一方面,在内存中的某些进程由于事件尚未发生而被阻塞运行,但它却占用大量的内存空间,甚至有时出现内存中的所有进程都被阻塞,而无可运行之进程。迫使CPU停下来等待的情况。

另一方面,又有着许多作业,因为内存的空间不足,一直驻留在外存上,而不能进入内存运行,这显然是对系统资源的浪费,使得系统吞吐量下降。

对换可以分为进程对换(整体对换)和页面(分段)对换两种。

为了实现进程对换,系统必须实现三方面的功能:对对换空间的管理、进程的换出和进程的换入。

对文件管理区的目标和对对换空间管理的目标有何不同?

在具有对换功能的OS中,通常把磁盘分为文件区和对换区两部分。

对文件管理区的主要目标是提高文件存储空间的利用率,然后才是提高对文件的访问速度。因此,对文件区的管理采用离散分配方式。

对换空间中,用于存放从内存中换出的进程,由于这些进程在对换区中驻留的时间是短暂的,而对换空间操作的频率很高,故对对换空间的管理的主要目标是提高进程换入和换出的速度。因此,对对换空间的管理采取连续分配方式,较少考虑外存中的碎片问题。

在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?

在对进程换出时,只能换出非共享的程序和数据段,而对于那些共享的程序和数据段,只要还有进程需要它,就不能换出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值