4.5覆盖与交换技术

覆盖技术 覆盖技术是指一个程序的若干程序段,或几个程序的某些部分共享某一个存储空间。 下面举一个例子说明覆盖技术的特点,参见图4-19。 图 假设作业1的程序正文由A、B、C、D、E、F等6个程序段组。它们之间的调用关系台图4-19(a)所示。其中,程序段A只调用程序段B和C,程序B只调用程序段F,而程序段C只调用D和E。即B不会调用C,C也不会调用B。因此,程序段B和程序段C就无需同时在内存中。可按图4-19(b)分配程序段的调入。可见虽然该程序正文段所需要的内存空间是:A(20K)+B(50K)+F(30K)+C(30K)+D(20K)+E(40K)=190K,但是,在采用了覆盖技术后,只需要110K内存空间就行了。 覆盖技术打破了需要将一个程序的全部信息装入内存后程序才能运行的限制。它利用相互独立的程序段之间在内存空间的相互覆盖,逻辑上扩充了内存空间,从而在某种程度上实现了在小容量内存上运行较大程序的功能。 通常,覆盖技术主要用于系统程序的内存管理上,因为系统软件设计者容易了解系统程序的覆盖结构。 4.5.2 交换技术 在分时系统中,用户的进程比内存能容纳的数量要多,这就需要在磁盘上保存那些内存放不下的进程。在需要运行这些进程时,再将它们装入内存。 进程从内存移到磁盘,并再移回内存称为交换。 交换技术是进程在内存与外存之间的动态调度,是由操作系统控制的。 交换技术的原理并不复杂,但是在实际的操作系统中使用交换技术需要考虑很多相关的问题。主要有: (1) 换出进程的选择 (2) 交换时机的确定 (3) 交换空间的分配 (4) 换入进程换回内存时位置的确定 交换技术的缺点是,由于交换时需要花费大量的CPU时间,这将影响对用户的响应时间,因此,减汪交换的信息量是交换技术的关键问题。合理的做法是,在外存中保留每个程序的交换副本,换出时仅将执行时修改过的部分复制到外存。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值