内存模型与信息存储,我们目前编程需要认识的计算机系统最底层
一、计算机里面是什么样子的

换个角度看:


二、计算机的逻辑构造


更概括:

更进一步概括——冯诺依曼体系结构:

三、内存模型



四、内存中信息的组织与存储



计算机一般使用字节作为最小的可寻址的内存单位,而不是访问内存中单独的位。机器级程序将内存视为一个非常大的字节数组,称为虚拟内存(virtual memory)。内存的每个字节都由一个唯一的数字来标识,称为它的地址(address),所有可能地址的集合就称为虚拟地址空间(virtual address space)。顾名思义,这个虚拟地址空间只是一个展现给机器级程序的概念性映像。实际的实现(见第9章)是将动态随机访问存储器(DRAM)、闪存、磁盘存储器、特殊硬件和操作系统软件结合起来,为程序提供一个看上去统一的字节数组。在机器级程序中不包含关于数据类型的信息。指针的值(无论它指向一个整数、一个结构或是某个其他程序对象)是某个存储块的第一个字节的虚拟地址。
程序对象(program object):包括程序数据、指令和控制信息。可以用各种机制来分配和管理程序不同部分的存储。这种管理完全是在虚拟地址空间里完成的。C编译器把每个指针和类型信息联系起来,这样就可以根据指针值的类型,生成不同的机器级代码来访问存储在指针所指向位置处的值。尽管C编译器维护着这个类型信息,但是它生成的实际机器级程序并不包含关于数据类型的信息。每个程序对象可以简单地视为一个字节块,而程序本身就是一个字节序列。
四、程序运行时(进程)在内存中的分布


这基本上到了我们目前所需的最底层,再详细看看本层:



所需的最底层还不是最底层




浙公网安备 33010602011771号