操作系统讲义下-剪辑版

操作系统讲义下-剪辑版

ID:41069979

大小:299.50 KB

页数:22页

时间:2019-08-15

操作系统讲义下-剪辑版_第1页
操作系统讲义下-剪辑版_第2页
操作系统讲义下-剪辑版_第3页
操作系统讲义下-剪辑版_第4页
操作系统讲义下-剪辑版_第5页
资源描述:

《操作系统讲义下-剪辑版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第四章存储器管理主要知识点:计算机系统中的存储器可以分为两种:内存储器和辅助存储器。前者可被CPU直接访问,后者不能。一、程序的装入和链接图4.1源程序执行过程将一个用户源程序变为一个可在内存中执行的程序,通常要经过编译、链接和装入几个步骤:(1)编译。由编译程序将用户源代码编译成若干个目标模块。(2)链接。由链接程序将编译后形成的目标模块以及它们所需要的库函数,链接在一起,形成一个装入模块。(3)装入。由装入程序将装入模块装入主存的过程。如图4.21.程序的装入程序的装入就是把程序装入内存空间,采用三种方式(1)绝对装入方式:是由装入程序根据装入模块中

2、的地址,将程序和数据装入内存。程序中的逻辑地址与实现装入的物理地址相同,装入时无需地址转换。(适于单道环境)①逻辑地址:用户的每一条程序指令要访问的数据都有一个对应的地址,这个地址被称为逻辑地址。由于它是相对于0的地址,因此又被称为相对地址。②物理地址:内存中的实际地址被称为物理地址。由于它并不和任何相对地址相关,因此,物理地址又称为绝对地址。(2)可重定位方式:是由装入程序根据内存当前的实际使用情况,将装入模块装入到内存适当的地方。①重定位:将程序中的逻辑地址改为实际物理地址称为重定位,也称为地址变换过程。②静态重定位方式:是指地址转换工作是在程序装入

3、内存时由装配程序完成的。装配程序根据将要装入内存的起始地址,对程序模块中有关的地址部分进行调整和修改。一旦确定下来之后不再改变,即静态地址重定位是在程序执行之前完成的地址转换。物理地址=逻辑地址+程序存放在内存的起始地址优点:无需硬件支持,容易实现。缺点:程序经地址重定位后不能再移动,程序在内存空间只能连续存储,程序很难被若干个用户所共享(3)动态运行时装入方式:动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序要真正执行时才进行。动态重定位方式:是指地址转换工作是在程序执行期间由硬件

4、变换机构动态实现地址转换的。适于多道环境,允许程序移动,但是需要特殊硬件支持(重定位寄存器)。物理地址=逻辑地址+重定位寄存器的内容2.程序的链接链接程序的功能是将经过编译或汇编后所得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块。实现链接的方法有三种:(1)静态链接:事先进行链接,以后不再拆开的链接方式(2)装入时动态链接:用户源程序经编译后所得到的目标模块,是在装入内存时,边装入边链接的。(3)运行时动态链接:某些目标模块的链接,是在程序执行中需要该(目标)模块时,才对它进行链接。(加快程序的装入过程,提高内存利用率)二、连续分配方

5、式连续分配方式是指为一个用户程序分配一个连续的内存空间。1.单一连续分配只能用于单用户,单任务的操作系统。把内存分为系统区和用户区两部分,系统区给OS使用,通常在低址部分;用户区给用户使用。在主存中仅驻留一道程序,整个用户区为一用户独占。当用户作业空间大于用户区时,该作业不能装入。2.固定分区分配将内存中的用户空间划分为若干个固定大小的区域,每个分区中只装入一道作业,一个作业也只能装入一个分区中,这样可以装入多个作业,使它们并发执行。当有一个空闲分区时,便可从外存的后备队列中,选择一个适当大小的作业装入该分区;当该作业运行完时,又可从后备队列中选择另一个

6、作业装入该分区(分区大小可以相同也可以不同)。要求把作业全部装入主存,且装入一个连续的存储空间。当分区较大作业较小时,仍然浪费许多主存空间(产生内部碎片),并且分区总数固定,限制了并发执行的作业数目。3.动态分区分配动态分区存储管理方式是在作业要求装入主存时,根据作业的大小动态地划分分区,适应作业的要求。分区的大小和数目都是不一定的。由于实施动态分区存储管理时,分区的划分是按照进入作业的尺寸进行的,因此在这个分区里不会出现内部碎片。动态分区存储管理消灭了内部碎片,不会出现由于内部碎片而引起的存储浪费现象。动态分区存储管理方式必须解决三个问题:(1)分区分

7、配中所用的数据结构。为了实现分区分配,系统中必须配置相应的数据结构,用来记录内存的使用情况。比如空闲分区的情况,为作业分配内存空间提供依据。常用的有空闲分区表和空闲分区链。P108(2)分区的分配算法P108(注意!)。①首次适应分配算法(FF)。要求空闲区按首址递增的次序组织空闲区表(队列)。当进程申请大小为SIZE的内存时,系统从空闲区链的链首开始查询,直到首次找到等于或大于SIZE的空闲区。从该区中划出大小为SIZE的分区分配给进程,余下的部分仍作为一个空闲区留在空闲区链中,但要修改其首址和大小。若找不到满足要求的,则分配失败,返回。算法是尽可能地

8、利用低地址空间,从而保证高地址空间有较大的空闲区。缺点是容易产生过多的小地址碎片

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

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

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