前言
以<深入理解计算机系统>(以下称“本书”)内容为基础,对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定
引入
接续上一帖
物理和虚拟寻址
1>物理寻址
CPU访问内存的最自然方式就是使用物理地址,我们把这种方式称为物理寻址(黑体字是原话),本书P560页有个示意图,访问地址4开始的4字节字.假设地址4的物理地址是0x12345678,那么用汇编语言是这样写的:
//汇编代码
movel 0x12345678,%eax //传递4字节数据进CPU寄存器%eax,假设是32位系统
早期的PC使用物理寻址,而且诸如数字信号处理器、嵌入式微控制器以及Cray超级计算机这样的系统仍然继续使用这种寻址方式.(黑体字是原话)
----解读:物理寻址在超级计算机中仍然使用,说明他可能并不需要执行多任务.
2>虚拟寻址
使用虚拟寻址,CPU通过生成一个虚拟地址(Virtual Address,VA)来访问主存,这个虚拟地址在被送到内存之前先转换成适当的物理地址.地址翻译需要CPU硬件和操作系统之间的紧密合作.CPU芯片上叫做内存管理单元MMU (黑体字是原话)
----解读:CPU由向物理地址要数据转而向虚拟地址要数据.虚拟地址由MMU翻译成物理地址,两者之间存在对应关系.见本书P560
回顾CPU的工作过程:
1)CPU以进程为单位执行代码,代码编译后是机器指令
2)机器指令在操作数据,指令本身也是数据.数据以地址形式存在.
3)CPU向存储索要数据,并将处理好的数据