操作系统原理第3章-存储管理.ppt

操作系统原理第3章-存储管理.ppt

ID:56373052

大小:637.50 KB

页数:211页

时间:2020-06-14

操作系统原理第3章-存储管理.ppt_第1页
操作系统原理第3章-存储管理.ppt_第2页
操作系统原理第3章-存储管理.ppt_第3页
操作系统原理第3章-存储管理.ppt_第4页
操作系统原理第3章-存储管理.ppt_第5页
资源描述:

《操作系统原理第3章-存储管理.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、第三章存储管理1计算机存储器分类外存UserOS内存计算机系统工作中心2本章要点存储管理任务:分配、映射、保护、共享内存划分与分配技术:静态、动态程序装入技术简单存储管理技术虚拟存储管理技术33.1存储管理的任务存储分配地址映射存储保护(MemoryProtection)存储共享(MemorySharing)4存储分配基本任务:管理内存空间的分配与回收(1)分配基本内存空间(2)增加新的内存空间--动态申请或释放内存空间(3)回收内存空间5用于内存管理的数据结构如:位视图、空闲页框表等。记载哪些内存被分配给

2、那个进程,哪些内存空间是空闲的信息。若系统采用虚拟存储管理技术,还需要登记进程的程序和数据中,哪些部分还在内存,哪些部分尚在外存等信息。这些数据结构自身需要占用一定的内存空间,也需要系统花费额外的时间进行维护。6存储分配步骤首先,根据系统的内存分配算法,在空闲的内存分区中寻找到一块满足进程需要的内存空间,将其分配给进程。然后,更新进程的资源分配清单、内存分配情况清单等数据结构。7内存的回收更新相应的数据结构,将回收的内存空间标识为“空闲可用”。?该内存空间是否可以被回收?被其他进程共享?属于相应的进程?与相

3、邻的空闲空间进行合并8地址映射逻辑地址,或相对地址:一般从0开始编址物理地址,或绝对地址:标识内存中的每个存储单元。进程控制块程序数据栈进程控制信息程序入口点地址值增加进程映像分支指令访问数据当前栈顶图3.1进程执行时的寻址9?逻辑地址高级语言或汇编语言使用符号地址:变量名或标号源程序经过编译、链接以后,其中的符号地址就会变成数字式的逻辑地址。编译/链接程序会自动计算每一个变量或标号所对应的逻辑地址是多少。10静态映射:静态重定位地址映射:程序装入内存以后,由操作系统将逻辑地址逻辑地址+起始地址,得到实际

4、的物理地址。重定位(Relocation):对目标程序中的指令和数据地址进行修改的过程。静态映射实现简单。地址变换只在程序装入是一次完成,程序运行时不再改变。但不适合多道程序系统:不允许系统执行内存的碎片整理;无法实现虚拟存储。11动态映射:动态重定位定义:操作系统将程序装入内存以后,并不立即把目标程序中的逻辑地址转换为物理地址,而是在处理机执行每一条指令时进行地址转换。复杂、费时为了系统效率,处理机中设置了专门的高速硬件,自动完成地址转换,这样的硬件被称作地址管理部件,如下图。12CPU中的地址管理部件C

5、PU地址管理部件程序指令逻辑地址物理地址地址总线图3.2CPU中的地址管理部件工作示意图13存储保护防止地址越界,防止操作越权。地址越界:进程访问不属于自己的地址空间,或进程在运行时所产生的物理地址超越其自身的地址空间范围。--可能侵犯其他用户进程空间,也可能侵犯操作系统的存储空间操作越权:进程对共享存储区的操作违反了系统规定的权限14存储保护的实现存储保护只能在进程执行过程中动态地进行,不能在运行前一次性静态完成。若采用动态映射动态计算物理地址,可能计算出错误地址;若采用静态映射,进程执行过程中也可能出错

6、,从而导致地址越界或操作越权。为提高系统效率,存储保护的主要工作必须由高速的专用硬件完成:在地址管理部件中。15存储共享为了进程通信和节约内存空间,两个或多个进程共用内存中相同的分区,即他们的物理空间有相交的部分。可以共享进程的代码,也可以共享进程数据。一般地,进程之间共享代码的目的主要是为了节约存储空间,共享数据的目的主要是为了实现进程间相互通信。16存储共享示意图PCB3数据代码PCB2代码数据PCB1数据代码进程1进程2进程3图3.3进程之间共享代码和数据17存储共享实现通信的模式通过存储共享完成通信

7、的过程:一个进程将数据写入共享存储区,另一个进程从共享存储区中读出数据。18共享代码程序可重入:设计程序时,逻辑上将程序代码区和数据区分开。代码区不包含运行程序时需要改变的数据,被处理的数据都放在独立的数据区。这样,进程执行过程中就不会改变代码部分的任何内容。数据区是单独的一个段、堆栈式动态申请的分区,或通过参数传递。19共享代码—实现过程创建新进程时,不需要为该进程的代码部分另外申请内存空间,只需将该进程PCB中的进程代码空间的地址指向已有的代码空间地址。进程的数据区,要么等到操作系统为其分配相应存储空间

8、以后,将数据区地址填写在PCB中;要么由进程运行时向操作系统动态申请。20共享代码—实质可以将进程的代码视为处理数据的一组规则或公式,这一组规则或公式存储在内存中的某个分区。进程的执行:利用这一组规则或公式来完成数据的运算。多个进程共享代码:多个进程需要使用同一组规则或公式处理不同的数据。PCB:告诉进程其所需的规则或公式以及需要处理的数据存储在哪里,进程的进度等信息。21共享代码—高级语言程序编程对于高级程序的

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

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

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