阅读笔记---操作系统真象还原(一)

第0章:
1.随机访问:即访问内部任何一处,不需要从头开始找,只要直接给出其地址即可。

2.平坦模型:模型是相对于多段模型来说的,所以平坦模指的就是一个段。平坦模型下,用一个段就能访问硬件所支持的所有内存。

3.载入内存: 大概上分为两部分:

  • 程序被加载器(软件或硬件)加载到内存某个区域
  • CPU的cs:ip寄存器指这个程序的起始地址

第二章:
1.地址总线宽度决定了可以访问的内存的大小,例如32位宽的总线可访问的内存大小为4G,位宽决定可访问的内存的大小,即地址总线可以触及到的边界的范围。在计算机中,插在主板上的内存条需要通过地址线来访问,一些外设的内存也需要通过地址总线来访问,因此在地址总线上会提前预留出一些地址空间给这些外设的内存,剩下的留给DRAM即我们主板上的内存。

第三章:
1.在汇编语言中,$$表示的是所在的section的起始地址,$表示当前行的地址。

2.在汇编代码中语句 section ** vstart = 0xxxxx
中的vstart 是virtual start address,即虚拟起始地址的意思。这样的语句就是将某节的地址设置为vstart代表的值,默认的情况下为0。在源代码中,各个数据,指令都是按照与源文件开头的偏移地址来存放的,编译器为源代码中的数据和指令分配地址,将它们分别存放在代码段,数据段等,根据这些数据(包括指令)相对于文件开头的偏移量作为数据的地址。当运行这段代码时,加载器会按照section设定好的值或者默认值加载到指定的地址,在根据各个指令,数据的偏移地址来获得它们。

3.CPU执行指令的粗略过程:
CPU大体上可以分为控制单元、运算单元、存储单三大部分。而关于指令的执行之前的一大部分工作都是由控制单元来完成的。控制单元主要分为指令寄存器IR(instruction register)、指令译码器ID(instruction decoder)、操作控制器OC(operation conroller)组成。
当程序加载到内存中后,IP指向下一条待执行的指令地址,根据IP的值找到指令,并存放于IR,ID在对指令进行解码,在获得操作数,接着OC给执行指令的部件发信号,IP当前的值加上现在运行的指令的大小就是下一条待运行的指令的地址,于是IP指向了下一条指令。

猜你喜欢

转载自blog.csdn.net/miha_singh/article/details/79945288
今日推荐