首页 > 代码库 > 程序员的自我修养 学习笔记(4)

程序员的自我修养 学习笔记(4)

        可执行文件只有装载到内存以后才能被CPU执行。程序就将是菜谱,CPU就像是厨师,计算机的其他硬件就像是厨具,整个炒菜的过程就是一个进程。同样的一份菜谱,不同人可以做出来不同的味道。这个类比真是巧妙。

    Linux下面,进程最大使用3G的虚拟空间

    Windows下面,进程最大使用2G的虚拟空间

 

现在计算机,配置超过4G的内存的电脑已经不是不可能了,在这种情况下,32位CPU能够访问到大于4G的空间吗?如果此空间指的是虚拟地址空间,由于32位CPU的指针只能是32位,最大寻址范围是0~4GB。如果此空间指的是实际内存空间,Intel的Pentium Pro CPU采用36位物理地址,可以访问高达64G的物理内存,这种机制叫做PAE(Physical Address Extension)。

    覆盖装入(Overlay):程序员必须手工将程序分割成若干块,然后编写一个小的辅助代码来管理这些模块何时应该驻留内存、何时应该被替换掉。

    页映射(Paging):是虚拟存储机制的一部分。

 

创建一个进程:

1. 创建一个独立的虚拟地址空间

2. 读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系

3. 将CPU的指令寄存器设置成可执行文件的入口地址,启动运行