操作系统(第五单元)

第五章 存储管理

5.1程序的装入与链接

编译
链接
目标代码+所需库函数=装入模块
装入
将装入模块装入内存,该过程也叫做地址重定位,也称地址映射

程序的装入方式
重定位:逻辑地址装换为物理地址
静态重定位
动态重定位

程序的链接方式
静态链接:对相对地址进行修改 变换外部调用符号
装入时动态链接:再装入内存时,边装入边链接。便于软件版本的更新,便于实现目标模块的共享。
运行时动态链接:运行时,用到那个模块,再链接哪个模块,用不到的模块可不装入内存。

5.2连续分配存储管理方式

操作系统的任务是将系统程序和用户程序分开。

连续分配:指为一个用户程序分配一个连续的内存空间。

单一连续分配:应用于单用户、单任务操作系统。使用基址-限长寄存器。

固定分区分配:应用于多道程序设计系统。使用分区大小相等、分区大小不等。

可变分区分配:分区的大小和个数随系统的运行而不断改变。

可变分区的处理:
动态分区分配数据结构:空闲分区表 空闲分区链

动态分区分配算法:
首次适应法:空间分区链以存储空间地址递增的次序链接
下次适应法:空间分区链以存储空间地址递增的次序连接成循环链表,为进程分配存储空间时,不是从队首开始找,而是上次找到的空闲的下一个空闲分区开始找。
最佳适应法:空闲分区链以存储空间大小递增的次序拉链。
最坏适应法:空闲分区链以存储空间大小递减的次序拉链。

动态分区的分配和回收操作
可变分区的回收:回收分区与其相邻的空闲分区合并

离散分配方式的引入
分页存储管理方式:存储管理的需要
分段存储管理方式:用户编程的需要

5.3页式存储管理

将进程的逻辑地址空间分成若干个大小相等的片,称为页面或页
内存空间分成与页大小相等的若干个存储块,称为物理块或页框
在为进程分配内存时,以块为单位,将进程中的若干页分别装入多个可以不相邻的块中。

页面大小的选择
页面的大小由机器的地址结构决定的。
页面的大小的权衡(521B~4MB)

逻辑地址:页号 页内位移

页式存储管理地址变换机构
物理地址=块号*页的大小+页位移

快表:由于页表放在内存,使得CPU存放一个数据时,要两次访问内存,为了提高速度,增设快表(高速缓存)

内存有效访问时间(EAT)
t为访问一次内存所需时间;a为命中率;y为查找快表所需时间
不用快表:EAT=t+t=2t
引入快表后:ETA=ay+(t+y)(1-a)+t=2t+y-ta

页表所需地址空间采用离散分配方式解决 (两级和多级页表)
两级页表结构:外层页号、内层页号、页内位移
反置页表

典型页式操作系统举例
一级分页:PDP_11
二级分页:VAX
三级分页:SPARC
四级分页:68030

5.4段式存储管理

(方便编程、分段共享、分段保护、动态链接、动态增长)

段表:段号、段长、基址

段式存储管理地址变换机构
当段号小于进程的总段数时,段号合法;
当段内位移小于段长时,段内地址合法。

分页和分段的区别

分页分段
页是信息的物理单位段是信息的逻辑单位
分页是系统管理的需要分段是为了更好的满足用户的需求
页的大小固定,由系统决定段的长度不固定,由用户所编写的程序决定
分页的作业地址空间时一维的,是单一的线性地址空间分段的作业地址空间时二维的,需要有端名和段内地址

段的共享与保护
页的共享要求作业地址空间的共享页必须具有相同的页号。
实现段的共享数据结构:共享进程计数、存取控制、段号。

分段的分配与回收
段的保护:存取控制、段表保护、保护环(编号越高,权限越低)
保护环:
内核是0级、系统调用是1级、库函数是2级、用户程序是3级

5.5段页式存储管理

分页系统:提高内存利用率,解决外部碎片问题。
分段系统:满足用户编程需要,解决段的共享、动态链接等问题。

段页式存储管理逻辑地址:段号、段内页号、页内位移

段页式地址变换机构
段表始址找段表,页表始址找页表。
段号大于段表长度时,产生越界中断。
状态为不在内存,产生段中断。
页号大于页表长度,产生越界中断。

三次访问内存
第一次找段表、第二次找页表、第三次找实际的存储地址。

段页式存储管理系统举例
MULTICS Intel 80386

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值