3.2内存管理相关的概念,及实现内存空间扩充的技术

一,内存空间的分配和回收

二,内存空间的扩充(实现虚拟性)

三,地址转换(操作系统负责实现逻辑地址到物理地址的转换)

1,绝对装入:编译器负责地址转换(单道程序阶段,无操作系统)

2,可重定位装入:装入程序负责地址转换(早期多道批处理阶段)

3,动态重定位装入:运行时才进行地址转换(现代操作系统)

四,存储保护(保证各个进程在自己的内存空间内运行,不会越界访问)

两种方式:

1,设置上下限寄存器,一旦越界就抛出越界异常

2,利用重定位寄存器,界地址寄存器进行判断。

五,实现内存空间扩充的技术

1,覆盖技术:

思想:将查询分为多个模块,常用的模块常驻在内存,不常用的模块在需要时才从外存调入内存。内存中分为一个“固定区”和几个“覆盖区”,需要常驻内存的段放在“固定区”,调入后就不再调出(除非运行结束),不常用的模块,放在覆盖区中,需要用的时候调入内存,用不到时调出内存

一个固定区:存放最活跃的程序段,固定区的程序在运行过程中不会调入调出内存

诺干个覆盖区:不可能同时被访问的程序段可共享一个覆盖区,覆盖区中的程序段在运行过程中会根据需要调入调出内存

缺点:必须有程序员声明覆盖结构,操作系统完成自动覆盖,因此对用户不透明,增加了用户的编程负担

2,交换技术:

思想:内存紧张时,换出某些进程腾出内存空间,再换入某些进程,磁盘分为文件区和对换区,换出进程放在对换区。

  • 磁盘区通常分为文件区和对换区两部分。文件区主要用于存放文件,蛀牙追求存储空间的利用率,因此对文件区空间管理采用离散分配方式;对换区空间占磁盘空间很小的部分,被换出的进程数据就存放在对换区。由于对换的速度直接影响到操作系统的整体速度,因此对换区空间管理主要追求换入换出速度,因此通常采用连续分配方式。总之,对换区的I/O速度比文件区的更快
  • 交换通常在许多进程运行过程中并且内存还吃紧时进行,二系统负荷降低就暂停,例如在许多进程运行时经常发生缺页,就进行交换。
  • 可以优先换出阻塞进程,优先级低的进程,为防止优先级低的进程在调入内存后很快被换出,优时还会考虑进程在内存的驻留时间。

3,两种技术的区别:

覆盖是在同一个程序或进程中的,交换是在不同进程或作业间的

猜你喜欢

转载自blog.csdn.net/weixin_44841312/article/details/106873511