操作系统Windows与Linux5存储管理.ppt

上传人:b****1 文档编号:1724590 上传时间:2022-10-23 格式:PPT 页数:214 大小:3.09MB
下载 相关 举报
操作系统Windows与Linux5存储管理.ppt_第1页
第1页 / 共214页
操作系统Windows与Linux5存储管理.ppt_第2页
第2页 / 共214页
操作系统Windows与Linux5存储管理.ppt_第3页
第3页 / 共214页
操作系统Windows与Linux5存储管理.ppt_第4页
第4页 / 共214页
操作系统Windows与Linux5存储管理.ppt_第5页
第5页 / 共214页
点击查看更多>>
下载资源
资源描述

操作系统Windows与Linux5存储管理.ppt

《操作系统Windows与Linux5存储管理.ppt》由会员分享,可在线阅读,更多相关《操作系统Windows与Linux5存储管理.ppt(214页珍藏版)》请在冰豆网上搜索。

操作系统Windows与Linux5存储管理.ppt

2022/10/23,存储管理,1,第5章存储管理,存储管理是对主存(又称内存)的管理。

内存:

处理机可以直接存取指令和数据的存储器,是进程得以运行的重要物质基础,是计算机中的一种宝贵而紧俏的资源。

近年,随着硬件技术和生产水平的迅速发展,内存的成本迅速下降,容量一直不断扩大,仍不能满足各种软件对存储空间急剧增长的需求。

对内存的有效管理和有效使用,是现代操作系统十分重要的问题。

2022/10/23,存储管理,2,第5章存储管理,本章要点:

5.1存储管理的基本概念5.2连续分配方式5.3离散分配方式5.4虚拟存储器5.5案例:

Linux存储管理5.6例题分析5.7本章小结,2022/10/23,存储管理,3,5.1存储管理的基本概念,知识点:

5.1.1存储管理的功能5.1.2存储器管理方式5.1.3地址重定位,返回,2022/10/23,存储管理,4,5.1.1存储管理的功能,内存资源不足:

单道程序阶段,已经意识到存储资源不足,开始研究如何从逻辑上扩充内存空间。

多道程序出现后,这个问题更为突出,且提出如何使每道程序都能在不受干扰的环境中运行,并能尽量提高存储器的利用率。

为对主存进行有效的管理,存储管理应具有以下功能:

内存的分配和回收:

为每道程序分配内存空间,由操作系统完成主存储器空间的分配和管理,使程序员摆脱程序设计的麻烦,提高编程效率;回收系统或用户释放的存储区。

提高存储器的利用率:

分配内存空间时,尽量减少不可用的存储空间(“零头”),允许正在运行程序申请附加内存空间,使多道程序能动态地共享主存。

2022/10/23,存储管理,5,地址映射:

把进程地址空间中使用的逻辑地址变换成存储空间中的物理地址的过程。

目标程序限定的地址范围称该程序的地址空间,是程序访问信息时用到的一系列地址单元的集合,地址空间中的地址是逻辑地址。

内存空间是内存中物理地址的集合。

两者不一致。

地址映射一般需要硬件或软件的配合。

存储保护:

确保进入主存的每道程序都在自己的内存空间运行,互不干扰。

既要防止一道程序由于错误破坏其他程序,也要防止破坏系统程序。

保护一般由硬件和软件配合完成。

扩充主存容量:

借助虚拟存储技术或其他自动覆盖技术,为用户提供比主存空间大的地址空间,实现扩充主存容量的目的。

“提高存储器的利用率”和“更好地满足用户需求”,是存储管理方式不断发展的推动力。

返回,5.1.1存储管理的功能,2022/10/23,存储管理,6,5.1.2存储器管理方式,一般有以下几种分配方式:

1.连续分配方式为一个系统或用户程序分配一个连续的空间。

有以下两种方式:

单一连续分配方式单道程序的一种存储管理方式,内存中仅驻留一道程序,整个用户区为一个用户独占。

不适用于多道程序。

分区分配方式可用于多道程序设计的较简单的存储管理方式。

把内存划分为若干分区,操作系统占用一个分区,其余每个分区容纳一个进程。

分区分配方式可以进一步分为两种:

固定分区分配:

将内存用户区划分为若干个固定大小的区域,每个区域中驻留一道程序;动态分区分配:

根据用户程序大小,动态地对内存进行划分,各分区大小不定,内存划分为多个分区,数目可变。

2022/10/23,存储管理,7,2.离散分配方式为减少连续分配产生的碎片,提高存储器的利用率,引入离散分配方式。

可将一个用户程序离散地分配到内存中多个不相邻接的区域中。

5.1.2存储器管理方式,2022/10/23,存储管理,8,离散分配方式有三种:

分页存储管理:

用户程序的地址空间划分成若干个固定大小的称为“页”的区域,相应将内存空间分成若干个物理块,页和块大小相等。

可将用户程序的任一页放入内存的任一块中,实现离散分配,且内存中的碎片大小不会超过一页。

分段存储管理:

用户程序的地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。

存储分配时,以段为单位,这些段在内存中可以不相邻。

段页式存储管理:

分页和分段两种存储管理方式结合的产物,发挥两者优点,既提高存储器利用率,又能满足用户要求。

返回,5.1.2存储器管理方式,2022/10/23,存储管理,9,5.1.3地址重定位,1.重定位及相关概念用汇编语言或高级语言编写程序时,通过符号名访问某单元。

程序中由符号名组成的空间称为名空间。

一个应用程序编译后,形成若干个目标程序,目标程序再经过链接形成可装入程序,即转换为相对地址编址形式。

这些程序中地址都是以“0”为基址顺序编址。

由这些地址形成的地址范围称为地址空间,其中的地址称为逻辑地址或相对地址。

存储空间是主存中一系列存储信息的物理单元的集合,其中的地址称为物理地址或绝对地址。

即地址空间是逻辑地址的集合;存储空间是物理地址的集合。

一个是虚的概念,一个是实的物体。

一个编译好的程序保存在自己的地址空间中,需要在计算机上运行时才装入存储空间。

2022/10/23,存储管理,10,一个程序在装入时分配到的存储空间与其地址空间不一致。

程序运行时要访问的指令、数据的实际地址和地址空间中的地址不同。

若在程序装入或运行时不对有关地址部分加以修改,将导致错误的结果。

把一个相对地址空间的程序装入到物理地址空间时,由于两个空间不一致而需要进行的地址变换,称地址重定位或地址映射。

地址变换过程,把程序地址空间中使用的逻辑地址变换为存储空间中的物理地址的过程。

5.1.3地址重定位,2022/10/23,存储管理,11,根据地址变换持续的时间及采用技术的不同,可以把重定位分为静态重定位和动态重定位两类。

静态重定位程序运行前,由链接装入程序进行重定位。

即:

在程序装入主存同时,将程序中逻辑地址转换为物理地址。

特点:

无需增加硬件地址变换机构。

要求为每个程序分配一个连续的存储区;程序执行期间不移动,难以做到程序和数据的共享。

5.1.3地址重定位,2022/10/23,存储管理,12,静态重定位的实现:

操作系统为程序分配一个以某地址为起始地址的连续内存区域,重定位时,将程序中指令或操作数的逻辑地址加上该起始地址,即可得到物理地址。

例:

图5-1,程序装到从1000开始的内存区域中,物理地址为逻辑地址值加上1000。

图5-1静态重定位程序装入示例,5.1.3地址重定位,2022/10/23,存储管理,13,动态重定位程序执行过程中,每当访问指令或数据,将被访问程序或数据的逻辑地址转换为物理地址。

重定位过程在程序执行期间随指令执行逐步完成。

一种允许程序在执行过程中在内存中移动的技术,必须获得硬件地址变换机构的支持,在系统中增加一个重定位寄存器,用来装入程序在内存中的起始地址。

程序执行时,真正访问内存的地址是有效地址与重定位寄存器中的地址相加形成。

5.1.3地址重定位,2022/10/23,存储管理,14,动态重定位的原理:

图5-2。

特点:

可以将程序分配到不连续的存储区中;程序运行前,可以只装入部分代码即投入运行;程序运行期间,根据需要动态申请分配内存;为便于程序段共享,可提供一个比主存空间大得多的地址空间。

动态重定位需要附加的硬件支持,实现存储管理的软件算法比较复杂。

5.1.3地址重定位,2022/10/23,存储管理,15,图5-2动态重定位示意图,返回,5.1.3地址重定位,2022/10/23,存储管理,16,关系,地址重定位的方式+存储管理方式:

内存分配方式是紧密相关的。

2022/10/23,存储管理,17,5.2连续分配方式,知识点:

5.2.1单一连续分配5.2.2分区存储管理5.2.3覆盖与交换,返回,2022/10/23,存储管理,18,5.2.1单一连续分配,应用环境:

单一连续分配是最简单的一种存储管理方式,只能用于单用户、单任务的操作系统。

使用方法:

将内存分为两个存储区,一个存储区仅供操作系统使用(系统区),其余全部内存空间供用户使用(用户区)。

主要采用静态分配方式,进程一旦进入内存,直到执行结束后才释放内存。

主要特点:

管理简单,只需很少软件和硬件支持,便于用户了解和使用。

优缺点:

单用户采用,内存只装入一道进程运行,各类资源利用率不高。

2022/10/23,存储管理,19,图5-3单一连续分配,返回,5.2.1单一连续分配,2022/10/23,存储管理,20,5.2.2分区存储管理,分区存储管理是满足多道程序设计的一种最简单的存储管理方法,把内存划分为若干分区,操作系统占用一个分区外,其余每个分区容纳一个进程。

1.固定分区分配特点:

内存空间划分为若干个固定大小的区域,每个区域边界不能改变。

主要划分方式:

各分区大小相等和分区的大小不等。

每个区域中驻留一道程序。

2022/10/23,存储管理,21,表5-1分区说明表,5.2.2分区存储管理,2022/10/23,存储管理,22,5.2.2分区存储管理,使用方式:

根据各分区大小排队,建立一张分区说明表(表5-1),记录分区数目及每个分区的起始地址、大小及状态(是否已分配)。

用户程序装入时,内存分配程序检索该表,找出一个能满足要求、尚未分配的分区分配,修改分区说明表中该分区表项的状态;若找不到大小足够的分区,拒绝为分配内存。

2022/10/23,存储管理,23,优缺点:

进程的大小不一定与某个分区大小相等,绝大多数已分配的分区中都有一部分存储空间被浪费。

固定分区分配管理方法主存不能得到充分利用。

图5-4固定分区分配,5.2.2分区存储管理,2022/10/23,存储管理,24,5.2.2分区存储管理,2022/10/23,存储管理,25,2.动态分区分配(可变分区分配)根据进程大小动态划分分区,使分区的大小正好适应进程需要。

各分区大小不定,内存中分区数目不定。

进程进入系统前,根据进程大小申请所需存储容量,由系统实施分配。

为了管理主存分区的分配情况,建立两张表,除分区说明表外,还有内存空闲分区表,登记内存中空闲分区的位置、大小等信息。

有进程申请内存分区时,按一定分配算法从空闲分区表(或空闲分区链)中选出一个大于等于该进程所需容量的分区分配。

若该分区大于进程所需容量,剩余的较小空白区仍留在空闲分区表中,并对空闲分区表进行相应修改。

一个进程完成后,所占用的分区释放,变成空白区,并与邻接的空白区合并。

5.2.2分区存储管理,2022/10/23,存储管理,26,2.动态分区分配例子:

5.2.2分区存储管理,2022/10/23,存储管理,27,2.动态分区分配特点:

可变式分区的存储管理方式由两个特点:

第一个特点是分区个数是可变的,且分区大小也不是固定的;第二个特点是内存中分布着个数和大小都是变化的自由分区和碎片,这些自由分区有些可能相当大,有些则相当小。

5.2.2分区存储管理,2022/10/23,存储管理,28,2.动态分区分配可变式分区存储管理所用的基本数据结构:

为实现可变分区的管理,可以采用两张表格记录内存分区的情况,其中一张表格记录已分配区的信息,另一张表格记录空闲分区的信息,如图所示。

表格中状态为“空表目”表示表示该表目中没有登记分区的信息,当需要表目来登记分区信息时,可使用状态为“空表目”的表目。

可变分区的分区管理也广泛采用空闲区链的方法。

即把每个分区的起始若干各自接分为两部分:

前一部分作为链指针,指向下一空闲区的起始地址;后一部分指出本空闲区的大小。

系统中用一固定单元作为链的头指针,指向第一空闲区的起始地址。

最后一个空闲区的链指针中存放链尾标志(如0)。

这样使用链指针把所有空闲分区链接在一起,构成一条空闲区链,如图所示。

5.2.2分区存储管理,2022/10/23,存储管理,29,2.动态分区分配可变式分区存储管理所用的基本数据结构:

5.2.2分区存储管理,分区表,空闲块链,2022/10/23,存储管理,30,常用分配算法(四种):

首次适应算法要求:

空闲分区按地址递增的次序排列。

内存分配时,从空闲分区表(或空闲分区链)首开始顺序查找,直到找到第一个能满足大小要求的空闲分区为止。

根据进程大小从该分区划出一块内存空间分配,余下空闲分区仍留在空闲分区表(或空闲分区链)中。

特点:

优先利用内存低地址部分的空闲分区,保留高地址部分的大空闲区。

低地址部

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1