内存治理的概念

发布时间:2020-06-19 03:31:58 作者:yuw2016
来源:网络 阅读:189

内存治理(Memory Management)是操作零碎设计中最主要和最复杂的内容之一。固然盘算机硬件不断在飞速开展,内存容量也在不时增加,然则依然弗成能将一切用户过程和零碎所需求的全体程序和数据放入主存中,所以操作零碎必需将内存空间停止合理地划分和无效地震态分派。操作零碎对内存的划分和静态分派,就是内存治理的概念。
无效的内存治理在多道程序设计中十分主要,不只便利用户运用存储器、进步内存应用率,还可以经过虚拟技巧从逻辑上扩大存储器。
内存治理的功用有:


在停止详细的内存治理之前,需求理解过程运转的根本道理和请求。

程序装入和链接

创立过程起首要将程序和数据装入内存。将用户源程序变为可在内存中履行的程序,平日需求以下几个步调:


这三步进程如图3-1所示。

内存治理的概念
图3-1  对用户程序的处置步调


程序的链接有以下三种方法:


内存的装入模块在装入内存时,异样有以下三种方法:
1) 相对装入。在编译时,假如晓得程序将驻留在内存的某个地位,编译程序将发生相对地址的目的代码。相对装入程序依照装入模块中的地址,将程序和数据装入内存。因为程序中的逻辑地址与实践内存地址完整相反,故不需对程序和数据的地址停止修正。
相对装入方法只实用于单道程序情况。别的,程序中所运用的相对地址,可在编译或汇编时给出,也可由程序员直接付与。而平日状况下在程序中釆用的是符号地址,编译或汇编时再转换为相对地址。
2) 可重定位装入。在多道程序情况下,多个目的模块的肇端地址平日多是从0开端,程序中的其他地址多是绝对于肇端地址的,此时应釆用可重定位装入方法。依据内存的以后状况,将装入模块装入到内存的恰当地位。装入时对目的程序中指令和数据的修正进程称为重定位,地址变换平日是在装入时一次完成的,所以又称为静态重定位,如图3-2(a) 所示。

内存治理的概念
图3-2  重定向类型


静态重定位的特色是在一个功课装入内存时,必需分派其请求的全体内存空间,假如没有足够的内存,就不克不及装入该功课。此外,功课一旦进入内存后,在全部运转时期不克不及在内存中挪动,也不克不及再请求内存空间。
3) 静态运转古装入,也称为静态重定位,程序在内存中假如发作挪动,就需求釆用静态的装入方法。装入程序在把装入模块装入内存后,并不立刻把装入模块中的绝对地址转换为相对地址,而是把这种地址转换推延到程序真正要履行时才停止。因而,装入内存后的一切地址均为绝对地址。这种方法需求一个重定位存放器的支撑,如图3-2(b)所示。
静态重定位的特色是可以将程序分派到不延续的存储区中;在程序运转之前可以只装入它的局部代码即可投入运转,然后在程序运转时期,依据需求静态请求分派内存;便于程序段的共享,可以向用户供给一个比存储空间大得多的地址空间。

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

编译后,每一个目的模块多是从0号单位开端编址,称为该目的模块的绝对地址(或逻辑地址)。当链接程序将各个模块链接成一个完好的可履行目的程序时,链接程序次序顺次按各个模块的绝对地址组成一致的从0号单位开端编址的逻辑地址空间。用户程序和程序员只需晓得逻辑地址,而内存治理的详细机制则是完整通明的,它们只要零碎编程人员才会触及。分歧过程可以有相反的逻辑地址,由于这些相反的逻辑地址可以映射到主存的分歧地位。
物理地址空间是指内存中物理单位的聚集,它是地址转换的最终地址,过程在运转时履行指令和拜访数据最初都要经过物理地址从主存中存取。当装入程序将可履行代码装入内存时,必需经过地址转换将逻辑地址转换成物理地址,这个进程称为地址重定位。

内存维护

内存分派前,需求维护操作零碎不受用户过程的影响,同时维护用户过程不受其他用户过程的影响。经过釆用重定位存放器和界地址存放器来完成这种维护。重定位存放器含最小的物理地址值,界地址存放器含逻辑地址值。每一个逻辑地址值必需小于界地址存放器;内存治理机构静态地将逻辑地址与界地址存放器停止比拟,假如未发作地址越界,则加上重定位存放器的值后映射成物理地址,再送交内存单位,如图3-3所示。
当CPU调剂程序选择过程履行时,差遣程序会初始化重定位存放器和界地址存放器。每个逻辑地址都需求与这两个存放器停止查对,以包管操作零碎和其他用户程序及数据不被该过程的运转所影响。

内存治理的概念
图3-3  重定位和界地址存放器的硬件支撑


推荐阅读:
  1. 恳求分页治理方法完成虚拟内存
  2. 虚拟内存的概念、特点以及虚拟内存的完成

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

程序员 存储器 memory

上一篇:Duilib中的消息泵和虚拟窗口

下一篇:C语言小游戏设计报告

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》