看似简单又难说清的内存具体分配问题。
我知道进程会被windows 系统分配代码区,数据区,STACK区,HEAP区,也知道他们的增长,我现在想知道:这些区是在内存的什么范围内分配的,也就是在哪个地址范围,每个进程都从这个范围内分别分配代码区,数据区,STACK区,HEAP区吗?STACK区分配时是给每个进程都预留相同的大小吗?比如2M,那样如果没有用完怎么办?大家都先预留2M,那分完了,而进程的这个空间又没都用完不是浪费吗?HEAP也是一样的,是不是有一个范围专门分给HEAP,也 就是申请堆只能在这个范围不能在别的范围,还是可以遍历整个空间了,请详细的说说,另外给我推荐几本详细介绍这些知识的书,一般的操作系统的书没有具体谈这些,谢谢。