操作系统原理与应用模块4ppt课件.ppt
《操作系统原理与应用模块4ppt课件.ppt》由会员分享,可在线阅读,更多相关《操作系统原理与应用模块4ppt课件.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录目录存储管理存储管理 学习目标学习目标学习目标学习目标地址的静态重定位和动态重定位。地址的静态重定位和动态重定位。几种不同的存储管理方案。几种不同的存储管理方案。存储共享和存储保护。存储共享和存储保护。Windows和和Linux操作系统的存储器管理。操作系统的存储器管理。目录目录4.1 存储器管理基本知识存储器管理基本知识 内存空间的分配和回收内存空间的分配和回收 在多道程序设计环境下,往往有多个程序同时存放在内存中,在多道程序设计环境下,往往有多个程序同时存放在内存中,必须对内存进行有效地分配,使有限的内存空间能够容纳尽可能多必须对内存进行有效地分配,使有限的内存空间能够容纳尽可能多的
2、进程。内存分配的主要任务是采用一定的数据结构,按照一定的的进程。内存分配的主要任务是采用一定的数据结构,按照一定的算法为每一道程序分配内存空间,并记录内存空间的使用情况和作算法为每一道程序分配内存空间,并记录内存空间的使用情况和作业的分配情况。当程序运行结束后,其所占用的内存空间必须归还业的分配情况。当程序运行结束后,其所占用的内存空间必须归还给操作系统,即回收内存空间。给操作系统,即回收内存空间。4.1.1 存储器管理的功能存储器管理的功能 地址转换地址转换是指将用户程序的逻辑地址转换为运行时能由机器直接寻址的是指将用户程序的逻辑地址转换为运行时能由机器直接寻址的物理地址的过程,也称为地址映
3、射(即程序装入)。物理地址的过程,也称为地址映射(即程序装入)。目录目录4.1.1 存储器管理的功能存储器管理的功能 内存空间的共享与保护内存空间的共享与保护 在多道程序设计的系统中,内存中允许同时装入多个作业,这在多道程序设计的系统中,内存中允许同时装入多个作业,这些作业在执行时可能要调用共同的程序或数据,这就是内存的共些作业在执行时可能要调用共同的程序或数据,这就是内存的共享。享。在内存分配和共享时,为了保证进入内存的每个程序都在自在内存分配和共享时,为了保证进入内存的每个程序都在自己的空间内运行,互不干扰,必须解决各存储区内的信息如何保己的空间内运行,互不干扰,必须解决各存储区内的信息如
4、何保护的问题。存储保护的工作一般由硬件和软件配合实现。护的问题。存储保护的工作一般由硬件和软件配合实现。内存空间的扩充内存空间的扩充 由于内存空间有限,有的作业太大而无法调入内存运行,因此需由于内存空间有限,有的作业太大而无法调入内存运行,因此需要借助于覆盖、交换和虚拟存储技术,为用户提供比内存大的地址要借助于覆盖、交换和虚拟存储技术,为用户提供比内存大的地址空间,使用户编写程序时不必考虑内存的实际容量,使计算机系统空间,使用户编写程序时不必考虑内存的实际容量,使计算机系统似乎有一个比实际内存容量大得多的内存空间,从而保证大作业和似乎有一个比实际内存容量大得多的内存空间,从而保证大作业和多道作
5、业的正常运行。多道作业的正常运行。目录目录4.1.2 程序的装入程序的装入目录目录4.1.2 程序的装入程序的装入绝对装入方式绝对装入方式可重定位装入方式可重定位装入方式动态运行时装入方式动态运行时装入方式 由装入程序根据由装入程序根据装入模块中的地址装入模块中的地址将程序和数据装入将程序和数据装入内存。程序中所使内存。程序中所使用的绝对地址,既用的绝对地址,既可在编译或汇编时可在编译或汇编时给出,也可由程序给出,也可由程序员直接赋予。员直接赋予。又称静态重定位装又称静态重定位装入,装入程序根据入,装入程序根据内存当前的实际使内存当前的实际使用情况,将装入模用情况,将装入模块装入到内存适当块装
6、入到内存适当的地方,地址变换的地方,地址变换在装入时一次完成。在装入时一次完成。又称动态重定位装入,又称动态重定位装入,在把装入模块装入内在把装入模块装入内存后,并不立即把装存后,并不立即把装入模块中的相对地址入模块中的相对地址转换为绝对地址,而转换为绝对地址,而是把这种地址转换推是把这种地址转换推迟到程序真正要执行迟到程序真正要执行时才进行。时才进行。程序装入内存的方式程序装入内存的方式目录目录4.1.3 程序的链接程序的链接静态链接静态链接 静态链接是指事先进行静态链接是指事先进行链接,以后不再拆开。在链接,以后不再拆开。在将几个目标模块装配成一将几个目标模块装配成一个装入模块时,需解决以
7、个装入模块时,需解决以下两个问题:对相对地址下两个问题:对相对地址进行修改和变换外部调用进行修改和变换外部调用符号。符号。目录目录4.1.3 程序的链接程序的链接用用户户源程序源程序经编译经编译后所得到的目后所得到的目标标模模块块,是在装入内存,是在装入内存时时,边边装入装入边链边链接的,即在装入一个目接的,即在装入一个目标标模模块时块时,若,若发发生一个外部模生一个外部模块调块调用,用,将引起装入程序去将引起装入程序去寻寻找相找相应应的外部目的外部目标标模模块块,并将它装入内存,且修,并将它装入内存,且修改目改目标标模模块块中的相中的相对对地址。装入地址。装入时动态链时动态链接方式有以下接方
8、式有以下优优点:点:(1)便于修改和更新。)便于修改和更新。(2)便于)便于实现对实现对目目标标模模块块的共享。操作系的共享。操作系统统能能够够将一个目将一个目标标模模块块链链接到几个接到几个应应用模用模块块,即,即实现实现多个多个应应用程序用程序对该对该模模块块的共享。的共享。装入装入时动态链接接目录目录4.1.3 程序的链接程序的链接运运行行时动态链接接 运行运行时动态链时动态链接方式是接方式是对对装入装入时链时链接方式的一种改接方式的一种改进进。这这种种链链接方式是将接方式是将对对某些模某些模块块的的链链接推接推迟迟到到执执行行时时才才执执行,也就是行,也就是说说,在程序,在程序执执行行
9、过过程中,当程中,当发现发现一个被一个被调调用模用模块块尚未装入内存尚未装入内存时时,立即由操作系,立即由操作系统统去找到去找到该该模模块块并将其装入内存,把它并将其装入内存,把它链链接接到到调调用模用模块块上。凡在上。凡在执执行行过过程中未被用到的目程中未被用到的目标标模模块块,都不会,都不会被被调调入内存和被入内存和被链链接到装入模接到装入模块块上,上,这样这样不不仅仅可加快程序的装可加快程序的装入入过过程,而且可以程,而且可以节节省大量的内存空省大量的内存空间间。目录目录4.2 连续分配方式连续分配方式4.2.1 单一连续分配方式单一连续分配方式 采用单一连续分配方式时,内存被分成系统区
10、和用户区采用单一连续分配方式时,内存被分成系统区和用户区两个区域:系统区仅供操作系统使用,存放操作系统常驻内两个区域:系统区仅供操作系统使用,存放操作系统常驻内存的代码和数据,通常设置在内存的低段;用户区供用户使存的代码和数据,通常设置在内存的低段;用户区供用户使用,它是除系统区以外的全部内存区域,任何时刻内存储器用,它是除系统区以外的全部内存区域,任何时刻内存储器中最多只有一个作业存在。所以单一连续分配存储管理只适中最多只有一个作业存在。所以单一连续分配存储管理只适用于单用户单任务操作系统。单一连续分配主要采用静态分用于单用户单任务操作系统。单一连续分配主要采用静态分配方式,即作业一旦进入内
11、存,就要等到该作业执行完后才配方式,即作业一旦进入内存,就要等到该作业执行完后才释放内存。如果作业要求的内存空间大于用户区可用空间,释放内存。如果作业要求的内存空间大于用户区可用空间,系统会有出错信息使得该作业无法装入内存。系统会有出错信息使得该作业无法装入内存。目录目录4.2.1 单一连续分配单一连续分配单单一一连连续续分分配配算算法法示示意意图图目录目录4.2.2 固定分区分配固定分区分配固定分区管理的基本思想是把内存空间划分成若干个固定大小固定分区管理的基本思想是把内存空间划分成若干个固定大小的连续存储区,称为分区。在处理作业之前,存储器就已经被划的连续存储区,称为分区。在处理作业之前,
12、存储器就已经被划分成若干个分区,分区的大小和分区总数可以由操作员或操作系分成若干个分区,分区的大小和分区总数可以由操作员或操作系统在系统初始时建立,每个分区的大小可以相同,也可以不同。统在系统初始时建立,每个分区的大小可以相同,也可以不同。但是一旦划分好分区后,内存储器中分区的个数就固定了,每个但是一旦划分好分区后,内存储器中分区的个数就固定了,每个分区的大小固定不变,且每个分区只能容纳一个作业。这相当于分区的大小固定不变,且每个分区只能容纳一个作业。这相当于把物理上的一个大内存划分成了若干个逻辑上的小内存。把物理上的一个大内存划分成了若干个逻辑上的小内存。目录目录4.2.2 固定分区分配固定
13、分区分配 为了管理内存空间的分配和回收,系统必须设置一张为了管理内存空间的分配和回收,系统必须设置一张“内存分配表内存分配表”以记录各个分区的使用情况。其内容包括分以记录各个分区的使用情况。其内容包括分区号、分区大小、起始地址和状态(是否分配)。当要装区号、分区大小、起始地址和状态(是否分配)。当要装入程序时,首先在内存分配表中查找一个大小满足要求,入程序时,首先在内存分配表中查找一个大小满足要求,且状态为且状态为“未分配未分配”的分区。若能找到,则把第一个满足的分区。若能找到,则把第一个满足要求的分区分配给该程序,并把分区状态置为要求的分区分配给该程序,并把分区状态置为“已分配已分配”。目录
14、目录4.2.2 固定分区分配固定分区分配固固定定分分区区分分配配算算法法目录目录4.2.2 固定分区分配固定分区分配固定分区分配的主要优点是解决了多个作业共享内存空固定分区分配的主要优点是解决了多个作业共享内存空间的问题,支持多道程序设计,容易实现。间的问题,支持多道程序设计,容易实现。固定分区分配的主要缺点如下:固定分区分配的主要缺点如下:(1 1)不能充分利用内存空间。)不能充分利用内存空间。(2 2)由于分区大小事先已经决定,因此限制了可装入程序)由于分区大小事先已经决定,因此限制了可装入程序的大小。的大小。(3 3)分区数目固定,限制了可同时执行的作业数目。)分区数目固定,限制了可同时
15、执行的作业数目。目录目录4.2.3 动态分区分配动态分区分配采用动态分区管理的内存,系统启动时,整个内存除操作系采用动态分区管理的内存,系统启动时,整个内存除操作系统所占用的区域外,其余空间为一个完整的大空闲区。当有作统所占用的区域外,其余空间为一个完整的大空闲区。当有作业要装入内存运行时,系统从空闲区分配一块大小与作业要求业要装入内存运行时,系统从空闲区分配一块大小与作业要求空间相同的区域,该区域就变成了已分配区域,也就是建立了空间相同的区域,该区域就变成了已分配区域,也就是建立了一个分区。若还有作业要求装入,则继续将空闲分区分配给各一个分区。若还有作业要求装入,则继续将空闲分区分配给各个作
16、业,即在内存中建立了若干个与作业大小相同的分区。某个作业,即在内存中建立了若干个与作业大小相同的分区。某一作业运行结束后,系统回收其所占的内存空间。系统运行一一作业运行结束后,系统回收其所占的内存空间。系统运行一段时间后,随着一系列的内存分配和回收,使内存空间被划分段时间后,随着一系列的内存分配和回收,使内存空间被划分为已分配区域和空闲区域相间的若干个区域。为已分配区域和空闲区域相间的若干个区域。目录目录动态分区分配算法首次适应算法首次适应算法首次适应算法首次适应算法最佳适应算法最佳适应算法最佳适应算法最佳适应算法最坏适应算法最坏适应算法最坏适应算法最坏适应算法也叫最先适应算法。这种算法是在每
17、次分配分区也叫最先适应算法。这种算法是在每次分配分区时,操作系统顺序查找空闲分区表,把最先能够时,操作系统顺序查找空闲分区表,把最先能够满足要求的空闲分区进行分割,这个空闲分区的满足要求的空闲分区进行分割,这个空闲分区的一部分分配给作业,另一部分仍为空闲区。一部分分配给作业,另一部分仍为空闲区。为一个作业选择分区时总是寻找其大小最接近于作业为一个作业选择分区时总是寻找其大小最接近于作业要求的内存分区,即每次作业分配时,总是产生最小要求的内存分区,即每次作业分配时,总是产生最小的自由块。最佳适应算法要求空闲分区按长度从小到的自由块。最佳适应算法要求空闲分区按长度从小到大顺序链接,每次分配时,总是
18、从空闲分区的首部开大顺序链接,每次分配时,总是从空闲分区的首部开始查找,找到第一个满足要求的空闲分区进行分配,始查找,找到第一个满足要求的空闲分区进行分配,该空闲分区必然是大小最接近的、最佳的。该空闲分区必然是大小最接近的、最佳的。与最佳适应算法相反,空闲分区按长度从大到小顺序链与最佳适应算法相反,空闲分区按长度从大到小顺序链接,空闲分区表中的第一个空闲分区总是最大的。该算接,空闲分区表中的第一个空闲分区总是最大的。该算法在为作业分配内存空间时,总是寻找最大的空闲块,法在为作业分配内存空间时,总是寻找最大的空闲块,每次分配时,只要看第一个空闲分区是否能满足要求,每次分配时,只要看第一个空闲分区
19、是否能满足要求,若能,则分配,若不能,则不予分配。若能,则分配,若不能,则不予分配。目录目录4.2.3 动态分区分配动态分区分配 用户作业执行结束时,系统要回收已使用完毕的分区,将其记录用户作业执行结束时,系统要回收已使用完毕的分区,将其记录在空闲分区表中,记录时应考虑回收分区是否和系统中的空闲分区相在空闲分区表中,记录时应考虑回收分区是否和系统中的空闲分区相邻,若相邻,则把回收分区合并到相邻空闲分区中,否则把回收分区邻,若相邻,则把回收分区合并到相邻空闲分区中,否则把回收分区作为一个空闲分区记录在空闲分区表中作为一个空闲分区记录在空闲分区表中目录目录4.2.3 动态分区分配动态分区分配动态分
20、区分配的优点是分区大小不固定,管理方动态分区分配的优点是分区大小不固定,管理方动态分区分配的优点是分区大小不固定,管理方动态分区分配的优点是分区大小不固定,管理方式比较灵活;缺点是由于分区是动态划分的,系式比较灵活;缺点是由于分区是动态划分的,系式比较灵活;缺点是由于分区是动态划分的,系式比较灵活;缺点是由于分区是动态划分的,系统工作一段时间后,会产生大量的容量较小的空统工作一段时间后,会产生大量的容量较小的空统工作一段时间后,会产生大量的容量较小的空统工作一段时间后,会产生大量的容量较小的空闲分区,由于这些空闲分区太小以致于无法装入闲分区,由于这些空闲分区太小以致于无法装入闲分区,由于这些空
21、闲分区太小以致于无法装入闲分区,由于这些空闲分区太小以致于无法装入任何作业,因而降低了系统的效率。任何作业,因而降低了系统的效率。任何作业,因而降低了系统的效率。任何作业,因而降低了系统的效率。目录目录4.2.4 动态重定位分区分配动态重定位分区分配移动所有已分配的分区,使之成为一个连续的区域,从而把碎片移动所有已分配的分区,使之成为一个连续的区域,从而把碎片集中成一个较大的空闲分区,这个移动的过程称为集中成一个较大的空闲分区,这个移动的过程称为“紧凑紧凑”或或“聚拢聚拢”,为了保证移动后的作业正常执行,必须采用动态重定位,为了保证移动后的作业正常执行,必须采用动态重定位技术,即用新的起始地址
22、替换重定位寄存器中原来的地址。技术,即用新的起始地址替换重定位寄存器中原来的地址。基本思想基本思想紧凑的紧凑的时机时机动态重定位分区分配消除了碎片,提高了内存利用率,但需要动态重定位分区分配消除了碎片,提高了内存利用率,但需要硬件支持,从而增加了计算成本,降低了计算机的速度。硬件支持,从而增加了计算成本,降低了计算机的速度。优缺点优缺点紧凑的时机有两种选择:一个是立即聚拢,指当某个分区内的作紧凑的时机有两种选择:一个是立即聚拢,指当某个分区内的作业一完成,就立即聚拢;另一个是需要时聚拢,即当为某个作业业一完成,就立即聚拢;另一个是需要时聚拢,即当为某个作业分配内存空间时,内存中没有足够大的分区
23、容纳该作业,但各个分配内存空间时,内存中没有足够大的分区容纳该作业,但各个空闲分区容量总和能满足该作业需求,这时才进行聚拢。空闲分区容量总和能满足该作业需求,这时才进行聚拢。目录目录4.2.5 覆盖和对换覆盖和对换覆盖,就是一个进程覆盖,就是一个进程的若干个程序段,或的若干个程序段,或几个进程的某些部分几个进程的某些部分共享同一内存空间。共享同一内存空间。覆盖技术通过覆盖结覆盖技术通过覆盖结构来实现,覆盖结构构来实现,覆盖结构如图所示。如图所示。目录目录4.2.5 覆盖和对换覆盖和对换 对换是指将内存中暂时不运行的进程调出内存,存对换是指将内存中暂时不运行的进程调出内存,存放在外存的交换区中,
24、以便腾出足够的内存空间装入新放在外存的交换区中,以便腾出足够的内存空间装入新程序,或把已具备运行条件的进程调入内存并让其执行程序,或把已具备运行条件的进程调入内存并让其执行的一种内存扩充技术。与覆盖技术相比,对换不要求程的一种内存扩充技术。与覆盖技术相比,对换不要求程序员给出程序段之间的覆盖结构,主要是在作业或进程序员给出程序段之间的覆盖结构,主要是在作业或进程之间进行,而覆盖主要在同一作业或进程内进行。之间进行,而覆盖主要在同一作业或进程内进行。对换技术提高了内存空间的利用率,但在交换时需对换技术提高了内存空间的利用率,但在交换时需要花费大量的要花费大量的CPU时间,因此,应尽量减少交换的次
25、数时间,因此,应尽量减少交换的次数和信息量,在内存空间不够时再进行内外存的对换。和信息量,在内存空间不够时再进行内外存的对换。目录目录4.3 基本分页存储管方式基本分页存储管方式l基本分页存储管理方式,要求作业全部装入内存后才能运行。分页存储管理在装基本分页存储管理方式,要求作业全部装入内存后才能运行。分页存储管理在装入程序时将内存空间划分成等长的若干区域,每个区域称为一个物理页面,有时入程序时将内存空间划分成等长的若干区域,每个区域称为一个物理页面,有时也称内存块或块,内存的所有物理块从也称内存块或块,内存的所有物理块从0开始依次编号,称为物理页号或内存块开始依次编号,称为物理页号或内存块号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 应用 模块 ppt 课件
限制150内