[工学]操作系统概论-3存储器管理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]操作系统概论-3存储器管理

操作系统概论 第三章 存储管理 主要内容   3.1 计算机系统中的存储器 3.2 重定位   3.3 单用户连续存储管理   3.4 固定分区存储管理   3.5 可变分区存储管理   3.6 页式虚拟存储管理 3.1 计算机系统中的存储器 存储器  storage, memmory 能接收数据和保存数据、而且能根据命令提供这些数据的装置 3.1 计算机系统中的存储器 存储器分成三个层次 3.1 计算机系统中的存储器 存储管理的功能 对主存储器中的用户区域进行管理,包括: (1)地址转换 (地址映射、地址重定位) 把程序的逻辑地址变换为存储器的物理地址的过程 。地址转换的方式有静态重定位和动态重定位。 (2)主存空间的分配与回收 为多个程序分配内存空间,各程序在规定的那一部分内存空间里运行。程序运行完毕时,回收相应的内存空间。 (3)主存空间的共享与保护 对OS以及各用户的信息提供保护措施。 (4)主存空间的的扩充(提供虚拟存储技术) 使用户程序的大小和结构不受主存容量和结构的限制,即使在用户程序比实际主存容量还要大的情况下,程序也能正确运行。 存储器管理的基本目的是:①充分发挥内存的利用率;②为用户使用存储器提供方便。 3.2重定位 内存的物理组织 物理地址: 把内存分成若干个大小相等的存储单元,每个单元给一个编号,这个编号称为内存地址(物理地址、绝对地址、实地址),存储单元占8位,称作字节(byte)。 物理地址空间: 物理地址的集合称为物理地址空间(主存地址空间),它是一个一维的线性空间。 3.2重定位 程序的逻辑结构 程序地址:用户编制程序时所用的地址(或称相对地址、逻辑地址 、虚地址)。源程序经过汇编或编译后再经过链接形成程序的装配模块形式,即转换为相对地址编址形式,它是以0为基址顺序进行编址的。 程序地址空间(相对地址空间、逻辑地址空间、虚地址空间):是逻辑地址的集合,它的编址总是从0开始的,可以是一维线性空间,也可以是多维空间。 3.2重定位 程序的逻辑结构 物理存储器的结构是个一维的线性空间,容量是有限的。 用户程序结构: 一维空间 一个用户程序就是一个程序,并且程序和数据是不分离的; 二维空间 程序由主程序和若干个子程序(或函数)组成,并且程序 与数据是分离的; n维空间 即一个大型程序,由一个主模块和多个子模块组成,其中 ,各子模块又由主程序和子程序(或函数)组成。 用户程序的大小,可能比内存容量小,也可能比内存容量大,有时候要大得多。 3.2重定位 程序的装入和链接 ?? 在多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一件事,就是要将程序和数据装入内存。如何将一个用户源程序变为一个可在内存中执行的程序?通常要经过以下几步: (1)编译  由编译程序(Compiler)将用户源代码编译成若干个目标模块(Object Module); (2)链接  由链接程序(Linker)将编译后形成的目标模块以及它们所需要的库函数,链接在一起,形成一个装入模块(Load Module); (3)装入  由装入程序(Loader)将装入模块装入内存。 3.2重定位 程序的链接 根据链接时间的不同,可把链接分成如下三种: 1. 静态链接(static-linking) 2.装入时动态链接(dynamic-linking) 3. 运行时动态链接(dynamic-linking) 3.2重定位 程序的链接 1. 静态链接(static-linking) 静态链接是在程序运行之前,先将目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开。 这种方式形成的一个完整的装入模块又称为可执行文件。 3.2重定位 程序的链接 2.装入时动态链接(dynamic-linking)    将编译后所得的一组目标模块,在装入内存时边装入边进行链接。即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找出相应的外部目标模块,并将它装入内存,以及修改目标模块中的相对地址。    通常被链接的共享代码称为动态链接库(DLL, Dynamic-Link Library)或共享库(shared library)。 3.2重定位 程序的链接 3.运行时动态链接(dynamic-linking)    将对某些模块的链接推迟到运行时才执行。即在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。    凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上。 3.2重定位 程序的链接 动态链接的优

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档