首页 > 其他 > 详细

操作系统-内存使用与分段

时间:2020-03-19 22:20:06      阅读:60      评论:0      收藏:0      [点我收藏+]

1. 从计算机如何工作开始

技术分享图片

首先让程序进入内存
技术分享图片

重定位:修改程序中的地址(是相对地址)

技术分享图片

程序载入后还需要移动

技术分享图片

重定位的最合适时机---运行时重定位

技术分享图片

首先在内存中找一段空闲的内存,然后把这段空闲内存的地址找到例如起始地址1000,然后把这个1000赋给PCB,因为创建了进程自然就有了PCB,这个起始地址就作为基地址,然后PC置好初始地址开始执行。

把程序放到找到的空闲内存中,每次执行都有进行地址翻译

基地址+偏移量
思路如下:

技术分享图片

当进行交换时

技术分享图片

2. 引入分段

是将整个程序一起载入内存中吗?不是

程序员眼中的程序

技术分享图片

每一个段都有一个基址

技术分享图片

GDT+LDT

操作系统这个表放在GDT里,而每个进程有自己的LDT表(进程段表,在PCB中)

此时转换的时候不是整个程序,而是程序中对应的段进行转换

技术分享图片

操作系统-内存使用与分段

原文:https://www.cnblogs.com/mengd/p/12527493.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!