首页 > 其他 > 详细

操作系统_内存管理_基本分页

时间:2021-01-04 14:49:09      阅读:45      评论:0      收藏:0      [点我收藏+]

内存管理章节围绕分页机制展开,通过分页管理方式在物理内存大小基础上提高内存的利用率。再进一步引入请求分页管理方式(虚拟内存),使得内存脱离物理大小的限制,从而提高处理器的利用率。

 

需要思考以下问题:

为什么要进行内存管理?

页式管理中每个页表项大小的下限怎么决定

多级页表解决了什么问题,又会带来什么问题?

在学习经典的管理方法时,注意比较,本节给出的内存管理是循序渐进的,后一种方法会解决前一种方法的不足,着重掌握页式管理。

内存管理的基本原理和要求

操作系统必须对内存空间进行合理的划分和有效的动态分配。

有效的内存管理不仅方便用户使用存储器,提高内存利用率,还可以通过虚拟技术从逻辑上扩充存储器。

在进行具体的内存管理之前,需要了解一下进程运行的原理

1.程序装入和链接

创建进程首先需要把程序和数据装入内存,将用户的源程序变为可在内存中执行的程序,通常需要以下的步骤

1编译

2链接

3装入

程序的链接有以下的三种方式

静态链接:在程序运行前,先将各目标模块及它需要的库函数链接成一个完整的可执行程序,以后不再拆开

装入时动态链接

将用户源程序编译后得到的一组目标模块,在装入内存时,采用边装入边链接的方式。

运行时动态链接:

对某些目标模块的链接,是在程序执行中需要该目标模块时才进行。优点是便于修改和更新,便于实现目标模块的共享

 

内存的装入模块装入内存同样有以下三种方式

1绝对装入

在编译时,若知道程序驻留在内存的某个位置,则编译程序将产生绝对地址的目标代码。

2可重定位装入

在多道程序环境下,多个目标模块的起始地址通常从0开始,程序的其他地址都是相对于始址的。此时应采用可重定位装入方式,根据内存当前情况,将装入模块装入内存的适当位置。

 

装入时对目标程序中的指令和数据的修改过程叫做重定位。

地址变换通常是装入时一次性完成的,所以又称为静态重定位。

静态重定位的特点是,一个作业装入内存时,必须给它分配要求的全部内存空间,若没有,则不能装入。作业一旦进入内存,整个运行期间都不能在内存中移动,也不能在申请内存空间。

3动态运行时装入

程序在内存中若发生移动,则需要采取动态的装入地址。装入程序把装入模块装入内存后,并不立即把装入模块的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行,因此装入内存后的所有地址均为相对地址。需要一个重定位寄存器的支持。

 

特点如下:可以吧程序分配到不连续的存储区,在程序运行前只装入它的部分代码即可投入运行。在程序运行期间,根据需要动态申请分配内存,便于程序段的共享,可以给用户提供一个比存储空间大得多的地址空间。

 

2逻辑地址空与物理地址空间

编译后,每一目标模块都从0号单元开始编址,是该目标模块的相对地址。

当链接程序将各个模块链接成一个完整的可执行目标程序时,链接程序顺序依次按各个模块的相对地址构成统一的从0号单元开始编址的逻辑地址空间。

不同进程可以有相同的逻辑地址,这些相同的逻辑地址可以映射到主存的不同位置。

 

物理地址指的是内存中物理单元的集合,它是地址转换的最终地址,进程在运行时执行指令和访问数据,最终都是要通过物理地址从主存中存取。

 

当装入程序将可执行代码装入内存时,必须通过地址转换将逻辑地址转换为物理地址,这个过程叫做地址重定位。

 

 

3内存保护

内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。

内存保护可采取以下两种方式

1 CPU中设置一对上下限寄存器,存放用户作业在主存中的下限和上限地址,每当cpu要访问一个地址时,分别和两个寄存器的值相比,判断有无越界

2 采用重定位寄存器和界地址寄存器来实现这种保护。

重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址的最大值。每个逻辑地址值必须小于界地址寄存器。内存管理机构动态地将逻辑地址和界地址寄存器进行比较,如果没发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元。

 

Cpu调度程序选择进程执行时,派遣程序会初始化重定位寄存器和界地址寄存器。每一个逻辑地址都需要和这两个寄存器进行核对,以保证操作系统和其他用户程序不被该进程运行影响。

 

注意两个寄存器区别:界地址寄存器是比较,重定位是+

操作系统_内存管理_基本分页

原文:https://www.cnblogs.com/yizhizhangBlog/p/14229057.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!