当前位置:文档之家› 操作系统存储器管理

操作系统存储器管理


10
缺页故障的处理-页面替换
页表项的设计(图4-11) 最优页面替换算法 NRU(最近未被使用)算法 LRU(最久未被使用)算法
FIFO算法 第二次机会页面替换算法 时钟替换算法
软件模拟:NFU,老化算法
11
分段与分页技术结合-Pentium
设计目标:
满足不同操作系统的内存管理策略 支持纯分页、纯分段、段页式管理 兼容286处理器
如何Review代码
了解数据结构 明确处理流程 广度优先与深度优先阅读代码
15
Minix内存管理原理
核心思想:动态分区思想的多道共享内存方
式,进程占有内存直至运行结束 实现策略:内存管理与系统内核相互分开 主要功能:进程生成、内存分配、程序调用 实现手段:消息驱动的处理机制 基础结构:进程表和内存空洞表 缺陷:内零头(以块为单位)和外零头(动 态分区造成)
22
Minix内存管理相关数据结构
块定义(Click):包括针对不同CPU芯片所定义的块大小,

位于2957行(include/minix/const.h)中。 全局变量mem:由系统Kernel定义,位于5024行 (src/kernel/glo.h)中。 mem_map:内存管理结构的定义,位于3188行 (include/minix/type.h)中。 mproc:内存管理进程表的定义,位于16226行 (src/mm/mproc.h)中。 hole:内存管理空洞表的定义,位于18823行 (src/mm/alloc.c)中。
为进程动态分配内存,将进程动态调入内存
分类
基于交换技术
将进程完整的调入内存,运行一段时间后,调出内存。
基于虚拟存储器
进程只需要比程序空间小的内存就可以正常运行。
6
交互技Байду номын сангаас的动态内存管理
动态分区,多道程序共享 内存空洞:未被使用的内存空间 内存分配:需要数量 + 额外扩充 管理方法:
基于位图的内存管理(图4-5) 基于链表的内存管理 • 管理思路 • 搜索方法
18
Minix内存管理原理
信号处理机制
信号是进程间通信的一种方式 信号处理机制涉及系统的多个方面 信号处理的三个阶段 • 准备阶段 • 响应阶段 • 恢复阶段 内存管理提供的支持
19
内容提要
存储管理概述 内存管理方案
静态内存管理 动态内存管理
Minix内存管理原理 Minix内存管理实现
3
内存管理方案
静态内存管理
单道程序独占存储器 固定分区多道程序共享存储器
动态内存管理
基于交换技术的内存管理 基于虚拟存储器的内存管理
4
静态内存管理
设计思想
为应用程序一次分配足够的内存,不需要动 态的内存分配
单道程序独占内存 固定分区多道程序共享
重定位与保护
5
动态内存管理
设计思想
实现描述
LDT与GDT 段的选择符与描述符 线性地址计算
12
分页与分段的设计问题
内零头与外零头 分页系统的工作集模型 分页系统的局部与全局分配策略
13
内容提要
存储管理概述 内存管理方案
静态内存管理 动态内存管理
Minix内存管理原理 Minix内存管理实现
14
Minix内存管理原理
16
Minix内存管理原理
内存分配
引发内存分配:fork与Exec 内存分配布局 • I、D空间相结合。 • I、D空间相互独立。 程序如何调入内存? 如何实现数据段的动态增长?
17
Minix内存管理原理
内存释放
释放机制:记录进程占用内存空间,并将 其插入内存空洞表。 释放方式: • I、D空间相互结合的进程 • I、D空间相互独立的进程
7
虚拟存储的动态内存管理
目的:保持容量大于内存的程序能够正
常运行。 虚地址的概念与操作:MMU单元 页与页框的概念 分页技术与分段技术
分页技术:一维虚拟存储管理 分段技术:二维虚拟存储管理
8
分页技术
页表管理:将Page映射为Frame 处理流程(图4-9) 关键问题:
解决办法
20
Minix内存管理实现
系统调用:fork 命令执行:Exec Kill进程与 系统退出
系统内核
内存初 始化 进程表 初始化 系统任 务启动 进程调 度开始
内存管理
初始化 系统调用 支持 内存分配 与回收 系统管理 支持
进程表
内存空 洞表
21
Minix内存管理功能定义
基本的内存分配/释放/整理功能 进程生成与终止管理(fork/wait/exit) 程序调用的管理(exec) 信号机制的管理
23
内存管理基本功能函数
mem_init
Kernel 实现的mem_init函数 MM实现的mem_init函数
内存空洞链表的管理
hole:记录内存空洞的基本数据结构 hole_head:指向空洞链表头的指针 free_slot:记录第一个可用的空洞结构
24
内存管理基本功能函数
Hole数组
如何处理缺页故障? 页表空间 地址映射的速度 多级页表(图4-10) TLB 逆向页表:将Frame映射为Page
9
分段技术
二维虚拟存储管理:针对程序逻辑实体 与分页技术的差别
优点:
页是定长的,段是不定长的 页针对物理内存,段针对逻辑程序 分页好比为HTML,分段好比为XML 提高动态内存管理的效率 方便的实现程序链接,编译效率更高 方便实现内存共享 方便实现数据与进程的保护
0 …… 127 NIL_HOLE hole_head
Hole数组
0
……
127
NIL_HOLE
初始状态
free_slot hole_head
Hole数组
0
……
127
插入内存空洞
NIL_HOLE
free_slot
hole_head
Hole数组
0
……
127
内存空洞列表
NIL_HOLE hole_head free_slot
内容提要
存储管理概述 内存管理方案
静态内存管理 动态内存管理
Minix内存管理原理 Minix内存管理实现
1
存储管理概述
存储器的作用
为什么需要存储管理?
2
内容提要
存储管理概述 内存管理方案
静态内存管理 动态内存管理
Minix内存管理原理 Minix内存管理实现
相关主题