内存管理课件.ppt

内存管理课件.ppt

ID:57013011

大小:1.06 MB

页数:77页

时间:2020-07-26

内存管理课件.ppt_第1页
内存管理课件.ppt_第2页
内存管理课件.ppt_第3页
内存管理课件.ppt_第4页
内存管理课件.ppt_第5页
资源描述:

《内存管理课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CHAP9内存管理背景交换连续分区分配分页管理分段管理段页式管理背景共享管理CPU共享Memory共享(现代计算机运行的中心)内存管理物理内存管理连续分区分配分页管理分段管理虚拟内存管理页面请求段请求背景:重定位重定位:在可执行文件装入时需要解决可执行文件中地址(指令和数据)和内存地址的对应。由操作系统中的装入程序loader来完成。程序在成为进程前的准备工作编辑:形成源文件(符号地址)编译:形成目标模块(模块内符号地址解析)链接:由多个目标模块或程序库生成可执行文件(模块间符号地址解析)装入:构造PCB,形成进程(使用物理

2、地址)重定位方法:绝对装入(编译时)可重定位装入(加载时)动态装入(运行时)一个用户程序的多步骤处理1.逻辑地址、物理地址和地址映射逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。其首地址为0,其余指令中的地址都相对于首地址来编址不能用逻辑地址在内存中读取信息物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址逻辑地址、物理地址和地址映射2.绝对装入(absoluteloading)优点:

3、装入过程简单。缺点:过于依赖于硬件结构,不适于多道程序系统。在可执行文件中记录内存地址,装入时直接定位在上述(即文件中记录的地址)内存地址。3.可重定位装入(relocatableloading)优点:不需硬件支持,可以装入有限多道程序(如MSDOS中的TSR)。缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。在可执行文件中,列出各个需要重定位的地址单元和相对地址值。当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。即:装入时根据所定位的内存

4、地址去修改每个重定位地址项,添加相应偏移量。图作业装入内存时的情况4.动态装入(dynamicrun-timeloading)优点:OS可以将一个程序分散存放于不连续的内存空间,可以移动程序,有利用实现共享。能够支持程序执行中产生的地址引用,如指针变量(而不仅是生成可执行文件时的地址引用)。子程序在调用时才被加载缺点:需要硬件支持(MMU),OS实现较复杂。它是虚拟存储的基础。在可执行文件中记录虚拟地址,装入和执行时通过硬件地址变换机构,完成虚拟地址到实际内存地址的变换。背景:链接1.静态链接(static-linking)静

5、态链接是在生成可执行文件时进行的。在目标模块中记录符号地址(symbolicaddress),而在可执行文件中改写为指令直接使用的数字地址。2.动态链接(dynamic-linking)优点共享:多个进程可以共用一个DLL,节省内存,减少文件交换。部分装入:一个进程可以将多种操作分散在不同的DLL中实现,而只将当前操作相应的DLL装入内存。便于局部代码修改:即便于代码升级和代码重用;只要函数的接口参数(输入和输出)不变,则修改函数及其DLL,无需对可执行文件重新编译或链接。便于适应运行环境:调用不同的DLL,就可以适应多种使用

6、环境和提供不同功能。如:不同的显示卡只需厂商为其提供特定的DLL,而OS和应用程序不必修改。缺点:链接开销:增加了程序执行时的链接开销;管理开销:程序由多个文件组成,增加管理复杂度。在加载或运行时进行链接。通常被链接的共享代码称为动态链接库(DLL,Dynamic-LinkLibrary)或共享库(sharedlibrary)。覆盖(overlay)引入:其目标是在较小的可用内存中运行较大的程序。常用于多道程序系统,与分区存储管理配合使用。原理:一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。将程序的必要部分的

7、代码和数据常驻内存可选部分(不常用功能)在其他程序模块中实现,平时存放在外存中(覆盖文件),在需要用到时才装入到内存;不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。(即不同时用的模块可共用一个分区)注:另一种覆盖方法:(100K)A(20K)占一个分区:20K;B(50K)、D(20K)和E(40K)共用一个分区:50K;F(30K)和C(30K)共用一个分区:30K;覆盖技术缺点:编程时必须划分程序模块和确定程序模块之间的覆盖关系,增加编程复杂度。从外存装入覆盖文件,以时间延长来换取空间节省。实现:函数库(操作系

8、统对覆盖不得知),或操作系统支持返回交换(swapping)引入:多个程序并发执行,可以将暂时不能执行的程序送到外存中,从而获得空闲内存空间来装入新程序,或读入保存在外存中而目前到达就绪状态的进程。交换单位为整个进程的地址空间。常用于多道程序系统或小型分时系统中,与分区存储管

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。