
Memory Management in Nachos
6.1
Copyright 2002-2012 by 张鸿烈
Nachos中的用户内存管理
操作系统课程设计-6

Copyright 2002-2012 by 张鸿烈
6.2
Memory Management in Nachos
内存管理实验分析
我们前面提已经提到每个用户程序有一个
地址空间。当进程运行时这个空间至少有
一部分驻留在计算机的内存。这一部分讨
论在单一的物理空间中怎样实现多个并发
进程的内存地址空间。我们仍采用
Nachos系统来说明怎样实现由MIPS模拟
机模拟的MIPS物理内存。

Copyright 2002-2012 by 张鸿烈
6.3
Memory Management in Nachos Memory Management in Nachos
从程序空间到物理空间
为了在计算机上运行一个应用程序,我们
应当进行一些什么工作呢?主要涉及到三
个步骤:
编译和转换源代码到它的目标代码
连接程序将所有的标代码模块链接成一个
单一的可执行模块,即众所周知的可装入
模块。
装入程序将可装入模块装入计算机内存。

Copyright 2002-2012 by 张鸿烈
6.4
Memory Management in Nachos Memory Management in Nachos
模块的分段
每个模块都有属于它的正文段,初始的数据段,符号
表和重定位信息。链接程序的任务是合并所有的模块
为一个带有各个目标模块的交叉引用和未解决的库引
用的单一的可装入模块。这就要求改变每一个目标模
块内部的地址引用,解决它们之间的外部引用来重新
定位目标模块。
装入模块提供程序的逻辑地址空间。这个地址空间的
开始地址是0,并且模块所有的地址都参考这个开始的
0地址。
在程序运行之前,所有的逻辑地址空间都需要变换为
物理地址空间。这一变换通常都由硬件的内存管理部
件MMU完成。操作系统可以由改变重定位寄存器的值
来重定位程序的装入模块到内存不同的段上。

Copyright 2002-2012 by 张鸿烈
6.5
Memory Management in Nachos Memory Management in Nachos
内存管理机制
有四种逻辑地址到物理地址的变换机制:
连续内存分配方式 Contiguous Allocation
页式内存分配方式 Paging
段式内存分配方式 Segmentation
段页式内存分配方式 Segmentation with Paging
基本的Nachos系统是采用页式内存分配方式管
理用户内存空间的