|
发表于 2005-10-6 09:34:27
|
显示全部楼层
Post by chinaliu123
新建一个进程,它的栈怎么分配?内核栈和进程栈之间是什么关系?
新建一个进程(fork),它的栈与父进程相同,他的内存均是复制的父进程的,所以没有什么分配问题。
执行一个新进程(exec),一般它的栈从 0xc0000000开始分配,栈里面的内容有环境变量,程序名,参数等(具体可参见拙作“stack explore”(程序设计版))
内核栈与用户栈(即你所说进程栈)没有什么必然的关系,逻辑上有点关系,就是共同为一个进程服务。一个时刻,只能有一个用户栈,一个内核栈,均与当前进程相关(except kernel thread,interrupt context) |
|