Anatomy of a Program in Memory 在一个多任务OS中,每个进程都运行在它自己的内存沙箱中.这个沙箱就是虚拟地址空间,在32位下就是一块容量为4GB的内存地址.内核将这些虚拟地址按页表(page table)映射为物理内存,并交由CPU访问.每个进程有自己的页表集,但有一点要注意.虚拟地址一旦被启用,就会应用到机器上所有运行的程序上,也包括内核自己.因此虚拟地址空间必须为内核预留一部分(否则就没办法和内核交互了): 给内核预留那么多空间,并不是说内核真的使用了那么多物理…
一.管道 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: A. 管道是半双工的,数据只能向一个方向流动: B. 需要双工通信时,需要建立起两个管道: C. 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程): D. 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中. 匿名管道的创建:该函数创建的管道的两端处于一个进程中间,在实际应用中没有太大意义;因此,一…