汤小丹操作系统第四版第四章课件

上传人:今*** 文档编号:109954555 上传时间:2019-10-28 格式:PPT 页数:126 大小:1.12MB
返回 下载 相关 举报
汤小丹操作系统第四版第四章课件_第1页
第1页 / 共126页
汤小丹操作系统第四版第四章课件_第2页
第2页 / 共126页
汤小丹操作系统第四版第四章课件_第3页
第3页 / 共126页
汤小丹操作系统第四版第四章课件_第4页
第4页 / 共126页
汤小丹操作系统第四版第四章课件_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《汤小丹操作系统第四版第四章课件》由会员分享,可在线阅读,更多相关《汤小丹操作系统第四版第四章课件(126页珍藏版)》请在金锄头文库上搜索。

1、,第四章 存 储 器 管 理,4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配存储管理方式 4.4 对换(Swapping) 4.5 分页存储管理方式 4.6 分段存储管理方式 习题,4.1 存储器的层次结构 在计算机执行时,几乎每一条指令都涉及对存储器的访问,因此要求对存储器的访问速度能跟得上处理机的运行速度。或者说,存储器的速度必须非常快,能与处理机的速度相匹配,否则会明显地影响到处理机的运行。此外还要求存储器具有非常大的容量,而且存储器的价格还应很便宜。,4.1.1 多层结构的存储器系统 1. 存储器的多层结构 对于通用计算机而言,存储层次至少应具有三级:最高层为CP

2、U寄存器,中间为主存,最底层是辅存。在较高档的计算机中,还可以根据具体的功能细分为寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质等6层。如图4-1所示。,图4-1 计算机系统存储层次示意,在存储器层次中,层次越高(越靠近CPU),存储介质的访问速度越快,价格也越高,相对所配置的存储容量也越小。其中,寄存器,高速缓存、主存储器和磁盘缓存均属于操作系统存储管理的管辖范畴,掉电后它们中存储的信息不再存在。而底层的固定磁盘和可移动存储介质则属于设备管理的管辖范畴,它们存储的信息将被长期保存。,2. 可执行存储器 在计算机系统的存储层次中,寄存器和主存储器又被称为可执行存储器。对于存放于

3、其中的信息,与存放于辅存中的信息相比较而言,计算机所采用的访问机制是不同的,所需耗费的时间也是不同的。进程可以在很少的时钟周期内使用一条load或store指令对可执行存储器进行访问。但对辅存的访问则需要通过I/O设备实现,因此,在访问中将涉及到中断、设备驱动程序以及物理设备的运行,所需耗费的时间远远高于访问可执行存储器的时间,一般相差3个数量级甚至更多。,注意:操作系统的存储管理负责对可执行存储器的分配、回收,以及提供在存储层次间数据移动的管理机制,例如主存与磁盘缓存、高速缓存与主存间的数据移动等。而设备和文件管理则根据用户的需求,提供对辅存的管理机制。,4.1.2 主存储器与寄存器 1.

4、主存储器 主存储器简称内存或主存,是计算机系统中的主要部件,用于保存进程运行时的程序和数据,也称可执行存储器。由于主存储器访问速度远低于CPU执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。,2. 寄存器 寄存器具有与处理机相同的速度,故对寄存器的访问速度最快,完全能与CPU协调工作,但价格却十分昂贵,因此容量不可能做得很大。,4.1.3 高速缓存和磁盘缓存 1. 高速缓存 高速缓存是现代计算机结构中的一个重要部件,它是介于寄存器和存储器之间的存储器,主要用于备份主存中较常用的数据,以减少处理机对主存储器的访问次数,这样可大幅度地提高程序执行速度。高速缓存容量远大于寄存器

5、,而比内存约小两到三个数量级左右,从几十KB到几MB,访问速度快于主存储器。 为了缓和内存与处理机速度之间的矛盾,许多地方设置了高速缓存。,2. 磁盘缓存 由于目前磁盘的I/O速度远低于对主存的访问速度,为了缓和两者之间在速度上的不匹配,而设置了磁盘缓存,主要用于暂时存放频繁使用的一部分磁盘数据和信息,以减少访问磁盘的次数。但磁盘缓存与高速缓存不同,它本身并不是一种实际存在的存储器,而是利用主存中的部分存储空间暂时存放从磁盘中读出(或写入)的信息。主存也可以看作是辅存的高速缓存,因为,辅存中的数据必须复制到主存方能使用,反之,数据也必须先存在主存中,才能输出到辅存。,Primary stora

6、ge is used for temporarily storing programs and data while processing is occurring.Remember,however,that primary storage is volatile-whatever was in it will disappear when the power goes off.Long-term,semi-permanent data storage is referred to as secondary storage. Secondary storage is recorded magn

7、etically and does not disappear when the power goes off.Disk and magetic tapes are examples of secondary storage media that can hold programs and data permanently,ready to be called into the CPUs memory when needed,A CPU has three componts:the control unit,the arithmetic-logic unit,and main memory o

8、r primary storage. Primary storage,or main memory,holds instructions and data needed for processing.Computer main memory is typically on computer chips that are volatile,which means that data held there disappears when the computer is turned off or loses power. A small number of micros use magnetic

9、bubbles for main memory rather than microprocessor chips;this type of memory is nonvolatile,meaning that data stored in it can be retained for some time even after the power is shut off.,4.2 程序的装入和链接 用户程序要在系统中运行,必须先将它装入内存,然后再将其转变为一个可以执行的程序,通常都要经过以下几个步骤: (1) 编译,由编译程序(Compiler)对用户源程序进行编译,形成若干个目标模块(Obj

10、ect Module); (2) 链接,由链接程序(Linker)将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的装入模块(Load Module); (3) 装入,由装入程序(Loader)将装入模块装入内存。,图4-2示出了这样的三步过程。本节将扼要阐述程序(含数据)的链接和装入过程。,图4-2 对用户程序的处理步骤,4.2.1 程序的装入 为了阐述上的方便,我们先介绍一个无需进行链接的单个目标模块的装入过程。该目标模块也就是装入模块。在将一个装入模块装入内存时,可以有如下三种装入方式: 1. 绝对装入方式(Absolute Loading Mode) 当计算机系

11、统很小,且仅能运行单道程序时,完全有可能知道程序将驻留在内存的什么位置。此时可以采用绝对装入方式。用户程序经编译后,将产生绝对地址(即物理地址)的目标代码。 优点:装入过程简单 缺点:过于依赖于硬件结构,不适于多道程序系统,2. 可重定位装入方式(Relocation Loading Mode) 绝对装入方式只能将目标模块装入到内存中事先指定的位置,这只适用于单道程序环境。而在多道程序环境下,编译程序不可能预知经编译后所得到的目标模块应放在内存的何处。因此,对于用户程序编译所形成的若干个目标模块,它们的起始地址通常都是从0开始的,程序中的其它地址也都是相对于起始地址计算的。 优点:不需要硬件支

12、持,可以装入有限多道程序 缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动,不能实现共享,图4-3 作业装入内存时的情况,3. 动态运行时的装入方式(Dynamic Run-time Loading) 可重定位装入方式可将装入模块装入到内存中任何允许的位置,故可用于多道程序环境。但该方式并不允许程序运行时在内存中移动位置。 优点:OS可以将一个程序分散放于不连续的内存空间,可以移动程序,有利于实现共享 缺点:需要硬件支持,OS实现较复杂,4.2.2 程序的链接 1. 静态链接(Static Linking)方式 在程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整的装

13、配模块,以后不再拆开。在图4-4(a)中示出了经过编译后所得到的三个目标模块A、B、C,它们的长度分别为L、M和N。在模块A中有一条语句CALL B,用于调用模块B。在模块B中有一条语句CALL C,用于调用模块C。B和C都属于外部调用符号,在将这几个目标模块装配成一个装入模块时,须解决以下两个问题: (1) 对相对地址进行修改。 (2) 变换外部调用符号。,图4-4 程序链接示意图,2. 装入时动态链接(Load-time Dynamic Linking) 这是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。即在装入一个目标模块时,若发生一个外部模块调用事

14、件,将引起装入程序去找出相应的外部目标模块,并将它装入内存,还要按照图4-4所示的方式修改目标模块中的相对地址。装入时动态链接方式有以下优点: (1) 便于修改和更新。 (2) 便于实现对目标模块的共享。,3. 运行时动态链接(Run-time Dynamic Linking) 在许多情况下,应用程序在运行时,每次要运行的模块可能是不相同的。但由于事先无法知道本次要运行哪些模块,故只能是将所有可能要运行到的模块全部都装入内存,并在装入时全部链接在一起。显然这是低效的,因为往往会有部分目标模块根本就不运行。比较典型的例子是作为错误处理用的目标模块,如果程序在整个运行过程中都不出现错误,则显然就不

15、会用到该模块。 优点:加快装入过程、节省内存空间,4.3 连续分配存储管理方式 为了将用户程序装入内存,必须为它分配一定大小的内存空间。连续分配方式是最早出现的一种存储器分配方式,曾被广泛应用于上世纪6080年代的OS中,该分配方式为一个用户程序分配一个连续的内存空间,即程序中代码或数据的逻辑地址相邻,体现在内存空间分配时物理地址的相邻。,4.3.1 单一连续分配 在单道程序环境下,当时的存储器管理方式是把内存分为系统区和用户区两部分,系统区仅提供给OS使用,它通常是放在内存的低址部分。而在用户区内存中,仅装有一道用户程序,即整个内存的用户空间由该程序独占。这样的存储器分配方式被称为单一连续分

16、配方式。,4.3.2 固定分区分配 把内存分为一些大小相等或不等的分区,每个应用进程占用一个分区。操作系统占用其中一个分区。 特点:适用于多道程序系统和分时系统,支持多个程序并发执行。 问题:可能存在内碎片 内碎片:占用分区之内未被利用的空间 外碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区),划分分区的方法 可用下述两种方法将内存的用户空间划分为若干个固定大小的分区: (1) 分区大小相等(指所有的内存分区大小相等)。 只适合于多个相同程序的并发执行,缺乏灵活性 (2) 分区大小不等。多个小分区,适量的中等分区、少量的大分区 优点:易于实现,开销小 缺点:内碎片造成浪费,分区总数固定,限制了并发执行的程序数目。,2. 内存分配 为了便于内存分配,通常将分区按其大小进行排队,并为之建立一张分区使用表,其中各表项包括每个分区的起始地址、大小及状态(是否已分配),如图4-5所示。,图4-5 固定分区使用表,固定分区分配是最

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号