**
C语言指针——漫谈计算机存储
**
1.cpu
pc:即程序计数器指像主存中的某条机器语言 (即含有该条指令的地址)
ALU:算术/逻辑单元,由与门和或门构成,主要进行二位元的计算,如加减乘(没有除)
寄存器,容量越小速度越快
主存储器:即内存,也叫主存,用来存放程序或程序处理的数据
2. helloworld 的生成与显示
源文件编译->可执行文件(在磁盘上面)->(运行)通过磁盘到达磁盘控制器->通过I/O总线到达I/O桥—>通过系统总线到达总线接口到寄存器->通过ALU进行处理—>反馈给寄存器—>I/O桥->显示器->显示出“helloworld”
虚拟内存到物理内存的转换
cpu产生虚拟地址->mmu(内存管理控制单元)运算物理地址->主存
3. 虚拟内存结构
(1)内核虚拟内存(也就是所谓的内核态)
与进程相关的结构体(例如页表,task和mm结构,内核栈)
每个进程私有(每个进程都不相同)
物理内存
内核代码数据
(2)进程虚拟内存(也就是所谓的用户态)
用户栈
共享库的内存映射区域
运行时堆(通过malloc动态分配)
未初始化的数据(.bss)
已初始化的数据(.data)
代码(.text)