- 论坛徽章:
- 3
|
回复 10# tc1989tc
你的进程有4G(实际上只有3G,包括1G的kernel linear address)的linear address。但实际上进程不会使用这么多的, 相当于你理论上很多资产(整个国家的都是你的),但不是所有的资产你都可以使用.你实际只有部分申请且被批准的资产才是你这可以使用的资产(也就是进程linear address space)。
这些资产又分为不动产, 什么流动资金之类的(memory region). 单位一般不会一毛两毛算, 直接用一匝两匝算.(page)
不过你还得注意, 你的这些资产都不是你手头上所有的. 是属于国家的(physical memory)。当你需要使用的时候, 你得向国家申请.
国家根据你的需要往某个银行,建立一个你的户头(page和page frame的映射),这时你才可以真正的当家做主人..
用户空间(process' linear address)不连续, 但因为进程能使用的Memory region是一个链表(doubly circle list?). 当它访问的linear address所在的memory region不存在的时候, 内核就会执行相应的操作.(page fault exception handler 那一章有讲到)。进程被干掉,segment fault,core dump之类的,.
所以我感觉理解这些东西, 要从两个角度, 进程的角度(伪上帝模式)和内核的角度(上帝之眼模式)有所区分,还需要有层次观.
个人愚见.....有错莫怪 |
|