os存储管理

是计算机系统中最重要的资源之一。因为任何程序和数据及各种控制用的数据结构 都必须占有一定的存储空间,因此,存储管理直接影响系统性能。

由内存和外存组成。内存是由系统实际提供的存储单元(常指字节)组成的一个连

续地址空间,处理器可直接存取。外存(辅存)是指软盘、、光盘和磁带等一些外部存储 部件,常用来存放暂不执行的程序和数据。处理器不能直接访问外存,需通过启动 1/0 (Input/Output ,输入/输出)设备才能进行内存、外存交换,其访问速度慢,但价格便宜,常用 做内存的后援设备。

内存大小由系统硬件决定,存储容量受到实际存储单元的限制。虚拟(简称虚存) 不考虑实际内存的大小和数据存取的实际地址,只考虑相互有关的数据之间的相对位置,其容 量由计算机地址的位数决定。

系统中内存的使用一般分成两部分,-部分为系统空间,存放本身及相关的系统 程序:另一部分为用户空间,存放用户的程序和数据。

存储管理主要是指对内的管理,负责对内存的分配和回收、内存的保护和内存的扩 充。存储管理的目的是尽量提高内存的使用效率。

1. 地址重定位 在存储管理中,有一个地址重定位的。一般来说,用户的目标程序地址是相对地址,

指令中的地址是相对首地址而定的,在程序执行之前首地址通常设为零。这个相对地址称为逻

辑地址,它不是内存中的物理地址。物理地址是内存中各存储单元的编号,是存储单元的真实地址,可以寻址并且实际存在。为了保证程序指令执行时能够正确地访问到预定的单元,需要

将逻辑地址通过一种地址转换机制变换成物理地址,这一过程就称为“地址重定位”,也称为地 址映射或地址映象。

重定位方法有两种:静态重定位和动态重定位。 静态重定位的地址转换是在程序运行之前完成的,一般由连接装入程序在程序装入主存的

过程中实现逻辑地址到物理地址的转换。程序被装入主存后,不能再在主存中移动,因而采用

这种重定位方式,不能实现虚拟存储器。

动态重定位是在程序装入主存后,在指令执行阶段完成对该指令中的逻辑地址到物理地址 的转换。它的实现由硬件地址变换机构完成,因此系统对硬件要求的支持多,但装入主存中的 程序可以根据系统当前的需求在主存中上、下移动或在内、外存中调进、调出,是实现虚拟存储器必须采用的一种重定位方法。目前的计算机系统大部分采用这种重定位方式。

2. 存储管理的功能 在多道程序系统中,多个程序同时驻留内存。那么,该如何有效地利用内存,如何让需要

较大运行空间的作业运行,如何保护与共享内存呢?为了提高存储资源的利用率,存储管理应

具有以下功能:

Cl )分配与回收。内存分配方法有两种:静态分配和动态分配。静态分配是指在目标模块 装入内存时即取得所需空间,直至完成不再变动:动态分配则允许进程在运行过程中动态申请 内存空间。采用动态分配方法的系统中,常配合使用合并自由区的方法,使一个连续的空区尽可能大。

(2 )存储扩充。提供虚拟存储器,使计算机系统似乎有一个比实际内存储器容量大的内存 空间。需考虑放置策略、调入策略和掏汰策略。

(3 )共享与保护。共享指共享系统在内存中的程序和数据。由于多道程序共享内存,每个

程序都应有它单独的内存区域,各自运行,互不干扰。

3. 单一连续区管理 在单道程序系统中,内存区域的用户空间全部为-个作业或进程占用。单一连续分配方法

主要用于早期单道批处理系统及 20 世纪 80 年代的个人计算机系统。单一连续分配方法主要采

用静态分配方法。为降低成本和减小复杂度,常不对内存进行保护,因而会引起冲突,使系统

瘫痪。

4. 分区存储管理 分区存储管理包括固定分区和可变分区。其基本思想是把内存划分成若干个连续区域,每

个分区装入一个作业运行。要求作业二次性装入内存,且分区内部地址必须连续。

( 1) 固定分区管理。固定分区分配方法是把内存空间固定地划分为若干个大小不等的区域,

clip_image002

分区号

大小( KBl

起址( KB)

状态

 

12

20

己分配

2

32

32

L:'. 分配

3

64

64

己分配

4

128

128

己分配

5

256

 

256

自由

         

划分的原则由系统决定。系统使用分区表描述分区情况,如图 1-7 所示。分区-一旦划分结束, 在整个执行过程中每个分区的长度和内存的总分区个数保持不变。

24KB

32KB

64KB

128KB

作业 l 作业 2

作业 3

作业 4

256KB

图 1-7 固定分医表

分区号

大小 CKB)

起址 CKB)

状态

 

64

64

叮用

2

128

128

可用

3

·..

··.

空闲

4

·..

...

空闲

5

·

..

·..

空闲

         

(2 )可变分区管理。可变分区分配方法是把内存空间接用户要求动态地划分成若干个分区, 如图 1-8 所示。这样就解决了固定分区分配方法中的小作业占据大分区后产生碎片的浪费。 可变分区分配方法初始时只有→个分区,随后,分配程序将这个分区依次分给作业或进程。

分区号

大小 CKBJ

起址( KB)

状态

 

8

20

已分配

2

16

28

己分配

3

·..

··.

空闲

4

128

128

己分配

5

·..

·..

空闲

a )己分配民表 bl 已分自己区表

国 1-8 可变分区表 希赛教育专家提示:每种存储组织方案都包含一定程度的浪费。在可变分区分配

系统中,内存中的作业在开始装入和归还自由区之前,内存浪费并不明显,但这些自

由区可以被其他作业使用。随着进程的执行,剩余的自由区域会变得更小。因此在可变分区分配系统中,也存在着存储器浪费。

在可变分区分配系统中,当一个作业完成时,能够检测到被释放的存储区是否与其他自由 存储区域(自由区)相邻接。如果与其他自由存储区邻接,可以在自由存储区表记录上新增加 一个自由区,豆豆新的自由区与相邻接的现存自由区合并的单一自由区。

合并相邻接的自由区以形成单个更大的自由区叫做合并。用合并自由区的方法,重新获得 最大可能连续的存储块。即使合并了自由区,仍会发现分布在主存各处的破碎的自由区在主存 中占据了相当数量的空间。有时,虽然自由区的总和大于新作业所耍的存储区,而此时却没有 单个的自由区足够装下这个作业。

存储拼接技术也称碎片收集,包括移动存储器的所有被占用区域到主存的某一端。这样留 下单独的大的存储自由区,来代替在可变分区多道程序设计中常见的许多小自由区。

当所有可利用的自由存储区连续时,一个正等待着的作业能够调入运行,因为它的存储需 求能被拼接形成的单个自由区所满足。

存储分配算法用来决定输入的程序和数据应该放到主存中的什么地方。常使用的三种算法

是:

( I)最佳适应算法。 j在择最小的足够装入的可利用自由区。对许多人来说,最佳适应看起

米是最直观且吸引人的算法。

(2 )首次适应算法。从主存低地址开始选择第一个足够装入的可利用的自由区。首次适应 也具有直观吸引力,此算法可以快速做出分配决定。

(3 )最差适应算法。最差适应说的是,把一个程序放入主存中最大的自由区。这种方法吸 引人的屈因恨简单,在大自由区中放入程序后,剩下的自由区经常也很大,于是也能装下一个 较大的新程序。

上述芝种方法都把用户作、.JJ; 完全地连续存放在一个存储区域中。为了能在较小的内存空间 中运行较大的作业,常采用内存交换技术。所谓内存交换技术,是指将作业不需要或暂时不需 要的部分移到辅存, it 出内存空间以调入需要的部分,交换到辅存的部分也可以再次被调入。 实际上这是用辅存作为缓忡, iJ用户程序在较小的存储空间中,通过不断地换出作业而运行较 大的作业。

5. 页式存储管理 在可变分区分配方案中,内存中放置的程序常采用首次适应、最佳适应、最差适应算法实

现,但运行的程序需存放在一个连续的分区中。

分页的基本思想是把程序的逻辑空间和内存的物理空间按照、同样的大小划分成若干页面, 以页面为单位进行分配。在页式存储管理中,系统中虚地址是一个有序对(页号,位移)。系 统为每一个进程建立一个页表,其内容包括进程的逻辑页号与物理页号的对应关系、状态等。

页式系统的动态地址转换是这样进行的:当进程运行时,其页表的首地址已在系统的动态 地址转换机构中的基本地址寄存器中。执行的指令访问虚存地址 Cp. d )时,首先根据页号 p 查页表,由状态可知,这个页是否已经调入内存。若己调入内存,则得到该页的内存位置 p', 然后,与页内相对位移 d 组合,得到物理地址 r。如果该页尚未调入内存,则产生缺页中断, 以装入所需的页。如图 1-9 所示。

页式虚拟存储管理是在页式存储管理的基础上实现虚拟存储器的。首先把作业信息作为副

本存放在磁盘上,作业执行时,把作业信息的部分页面装入内存储器,作业执行时若所访问的 页面己在内存中,则按页式存储管理方式进行地址转换,得到欲访问的内存绝对地址,若欲访 问的页面不在内存中,则产生一个“缺页中断”,由把当前所需的页面装入内存储器 中。

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《os存储管理
本文地址:https://www.zhiletu.com/archives-5429.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微