操作系统之内存管理
本篇博客是看了李治军教授哈工大的操作系统网课做的笔记,原课程视频地址:https://mooc.study.163.com/course/1000003007?tid=2403044006&trace_c_p_k2=2ca81044d5094af1a1f084ae07ee86e0#/info
系列文章地址:
哈工大操作系统笔记(1)操作系统基础
哈工大操作系统笔记(2)进程与线程
哈工大操作系统笔记(3)内存管理
哈工大操作系统笔记(4)外设与文件系统
本节思维导图:
14.内存使用与分段
内存使用
重定位:修改程序中的地址,使之成为相对地址。
在运行每条指令的时候才完成重定位,相对编译时重定位,这样更灵活,而且也不会出现在操作系统中切换线程的时候产生的地址更换的问题(载入程序时候重定位会发生这样的问题)。这时候每次运行程序都需要地址的翻译,例如程序说明要100的地址(逻辑地址),计算机就会给他基地址+100的物理地址。程序的基地址存放在PCB中
分段
每个程序都是由若干部分(段)组成的,每个段有自己的特点,例如main函数只用来读就可以,堆,栈用来存储。考虑内存的使用的时候需要分段的概念,将每个段分开存储,所以具体数据的逻辑地址为<段号:段内偏移>。PCB中需要放每一个段的基地址。