地址空间&地址生成
地址空间
-
物理地址空间:硬件支持的地址空间(主存和硬盘)
-
逻辑地址空间:一个运行的程序所拥有的内存范围,是一个线性的地址空间。
注意
-
由操作系统将逻辑地址空间映射为物理地址空间。
-
操作系统要设置逻辑地址空间的基址和界限,防止程序访问不该访问的地址空间。
逻辑地址生成
-
高级语言程序通过编译转换成汇编程序。
-
汇编程序通过汇编转换成机器语言程序。
-
一个程序可能由多个机器语言程序组成,通过linker将多个程序转换成一个执行程序。
-
loader将放在硬盘中的执行程序载入到内存中,会得到一个偏移量,程序中的地址根据该便宜量进行修改。
注意:
-
以上过程不需要操作系统参与。
-
程序放到内存中之后,地址仍旧是逻辑地址。
物理地址生成
- 当CPU需要执行某条指令的时候,计算逻辑单元ALU需要该指令的内容,发出请求,提供该指令的逻辑地址。
- CPU中的内存管理单元MMU查找逻辑地址映射表中是否存在对应的物理地址。若有就下一步;若没有,就到内存中找。
- CPU中的控制器会给主存发出请求,需要某个物理地址的内容。
- 主存会将对应物理地址的内容传送给CPU。
注意
操作系统要建立逻辑地址和物理地址之间的映射。