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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

山丘i   2020-03-19 我要评论
### 1. 从计算机如何工作开始 ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214722324-447911126.png) 首先让程序进入内存 ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214733885-1652819302.png) **重定位:修改程序中的地址(是相对地址)** ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214745924-133291620.png) **程序载入后还需要移动** ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214753934-56351523.png) **重定位的最合适时机---运行时重定位** ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214806993-1810204773.png) 首先在内存中找一段空闲的内存,然后把这段空闲内存的地址找到例如起始地址1000,然后把这个1000赋给PCB,因为创建了进程自然就有了PCB,这个起始地址就作为基地址,然后PC置好初始地址开始执行。 把程序放到找到的空闲内存中,每次执行都有进行地址翻译 思路如下: ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214815674-220875350.png) **当进行交换时** ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214823487-1750412302.png) ### 2. 引入分段 是将整个程序一起载入内存中吗?不是 程序员眼中的程序 ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214908774-679084504.png) **每一个段都有一个基址** ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214916335-603539407.png) **GDT+LDT** 操作系统这个表放在GDT里,而每个进程有自己的LDT表(进程段表,在PCB中) 此时转换的时候不是整个程序,而是程序中对应的段进行转换 ![](https://img2020.cnblogs.com/blog/1212924/202003/1212924-20200319214923316-276978317.png)

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们