西安理工大学《操作系统Operating System》第5章存储管理1.ppt
文本预览下载声明
第六章 存储器管理
概述
分区存储管理
段式存储管理
页式存储管理
段页式存储管理
交换技术与覆盖技术
虚拟存储
本章知识点及重点
存储器管理的主要功能
地址映射和重定位
存储器的分区管理
分页管理和分段管理
页存储管理的地址转换
虚拟存储器的概念
请求分页存储管理的实现
缺页中断和缺页率
页面置换算法
页帧的分配
6.1存储管理的目标
从用户的角度出发
用户程序在使用内存时,要求方便、高效和安全;
从系统的角度出发
要提高资源的利用率,即提高内存的利用率。内存容量在增长,但应用程序的大小也在增长。
6.1.1存储管理的功能
(1)内存的分配和管理
记录内存的使用情况
——设置相应的内存分配表
(内存分配回收的依据)
划分内存空间
静态或动态,等长或不等长
内存的分配和回收
6.1.1存储管理的功能
(2)存储共享
两个或多个进程共用内存中相同区域
目的:
节省内存空间,提高内存利用率
实现进程通信(数据共享)
共享内容:
代码共享,要求代码为纯代码
数据共享
6.1.1存储管理的功能
(3)存储保护
为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区域,避免各道程序间相互干扰,特别是当一道程序发生错误时,不致于影响其他程序的运行
通常由硬件完成保护功能,由软件辅助实现
6.1.1存储管理的功能
保护过程防止地址越界
每个进程都有自己独立的进程空间,如果一个进程在运行时所产生的地址在其地址空间之外,则发生地址越界。即当程序要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生地址越界中断,由操作系统进行相应处理
一般由硬件提供一对寄存器:
基址寄存器:存放起始地址
限长寄存器:存放长度
(或 上界寄存器/下界寄存器)
6.1.1存储管理的功能
保护过程防止操作越权
对于允许多个进程共享的存储区域,每个进程都有自己的访问权限。如果一个进程对共享区域的访问违反了权限规定,则发生操作越权
即读写保护
6.1.1存储管理的功能
(4)扩充内存容量
通过虚拟存储技术实现
用户在编制程序时,不应该受内存容量限制,所以要采用一定技术来“扩充”内存的容量,使用户得到比实际内存容量大的多的内存空间
具体实现是在硬件支持下,软硬件相互协作,将内存和外存结合起来统一使用
6.1.1存储管理的功能
(5)地址映射或重定位
逻辑地址(相对地址,虚地址)
物理地址(绝对地址,实地址)
地址映射
地址映射
Load A 200
3556
。
。
1200
物理地址空间
Load A data1
data1 3556
源程序
Load A 200
3556
0
100
200
编译
连接
逻辑地址空间
BA=1000
6.1.1存储管理的功能
6.1.1存储管理的功能
逻辑地址(相对地址,虚地址)
用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址
不能用逻辑地址在内存中读取信息
物理地址(绝对地址,实地址)
内存中存储单元的地址,可直接寻址
6.1.1存储管理的功能
地址转换
为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射
原因: 当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时,是按物理地址进行的,所以要进行地址转换
6.1.2用户程序的主要处理过程
源代码
库
可装入
模块
目标模块
编译
链接
装入
内存
在多道程序的环境下,把一个用户的源程序变成可以的内存执行的程序,需要如下步骤:
6.1.2用户程序的主要处理过程
编译:通过编译程序把用户的源代码编译成若干个变成处理机能识别的二进制代码,即目标模块(Object Module)。
链接:把目标代码和所需的库函数连接起来形成可装入的模块(Load Module)。
静态链接:静态链接是指为了程序正确执行,在装入之前,由链接装配程序把各目标模块及它们所需的库函数,链接成一个完整的装配模块,在程序执行前都装入内存并且以后不再拆开。静态链接的缺点是花费时间,浪费空间
动态链接:可以把链接推迟到装入时或执行时进行
6.1.2用户程序的主要处理过程
装入由装入程
显示全部