操作系统之内存管理:1、内存管理基础知识(指令工作原理、地址转化、程序运行过程)
1、內存管理基礎知識(指令工作原理、地址轉化、程序運行過程)
- 思維導圖
- 什么是內存?
- 指令的工作原理
- 裝入模塊的三種實現
- 絕對裝入
- 可重定位裝入
- 動態重定位
- 程序的運行過程
- 鏈接的三種方式
思維導圖
什么是內存?
內存:可存放數據,程序執行前需要放到內存中才能被CPU處理
內存的作用:主要是為了解決硬盤與CPU速度不匹配的問題
問題:
當多個程序并發執行時,如何區分各個程序的數據存放位置呢?
解決:
給內存的存儲單元編址。
問題:
具體怎么編址呢?
解決:
可按字節編址:每一個存儲單元大小為1字節;
也可按字編址:由機器字長決定,若機器字長為64位,每一個存儲單元就是64個2進制位(8字節)
也可按半字編址
指令的工作原理
1、現在有一條指令:x=x+1
2、經過編譯之后會翻譯成3條機器指令(如圖)
3、當程序運行時,會將程序裝入內存,創建進程;產生程序段和數據段
4、然后根據機器指令中的地址找到對應的內存地址取出或者放入數據
上圖中,我們從地址為79的存儲單元取出數據10放入地址為3的寄存器,然后執行加一操作,然后將地址為3的寄存器中的數據在放回到地址為79的內存中。
問題:當程序經過編譯后裝入模塊時產生的地址為邏輯地址,例如:當機器指令中存放10的地址為79但是程序在內存中的存儲開始地址為100,這樣的話如果沒有相應措施本應該存儲到179地址的數據會存儲到79位置上,這是很危險的,所以我們需要對邏輯地址和物理地址進行轉化
裝入模塊的三種實現
絕對裝入
可重定位裝入
裝入后可執行文件中的地址都被修改為了物理地址,地址變換在裝入時一次性完成
動態重定位
在裝入后通過重定位寄存器和邏輯地址計算數據存放地址,即使程序移動后,也可以通過再次計算得到新的物理地址
程序的運行過程
程序從編程到運行的過程:
1、編輯
2、編譯:生成目標模塊
3、鏈接:生成裝入模塊,即可執行文件
4、裝入
鏈接的三種方式
1、靜態鏈接:將目標模塊整合成一塊,一起裝入
2、裝入時動態鏈接:將目標模塊以獨立的模塊全部裝入
3、運行時動態鏈接:在裝入時將用到的模塊裝入,沒有用到的模塊則不裝入
總結
以上是生活随笔為你收集整理的操作系统之内存管理:1、内存管理基础知识(指令工作原理、地址转化、程序运行过程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统之进程管理:2、进程的状态以及状
- 下一篇: 操作系统之计算机系统概述:4、操作系统的