当前位置: 技术问答>linux和unix
关于linux的栈的三个问题
来源: 互联网 发布时间:2016-07-03
本文导语: 1,栈是逻辑意义上连续的空间吗?我个人觉得应该是的。 2,栈是物理意义上连续的空间吗?内核栈和进程栈也许不一样。 3,栈是编译器分配的还是内核分配的?我感觉像是内核在分配,求证一下。 | ...
1,栈是逻辑意义上连续的空间吗?我个人觉得应该是的。
2,栈是物理意义上连续的空间吗?内核栈和进程栈也许不一样。
3,栈是编译器分配的还是内核分配的?我感觉像是内核在分配,求证一下。
2,栈是物理意义上连续的空间吗?内核栈和进程栈也许不一样。
3,栈是编译器分配的还是内核分配的?我感觉像是内核在分配,求证一下。
|
1.线性地址是连续的,物理上不一定
2.内核栈是连续的,和task公用两页,进程栈物理上不连续
3.内核在分配,编译器只管生成push之类的语句
2.内核栈是连续的,和task公用两页,进程栈物理上不连续
3.内核在分配,编译器只管生成push之类的语句
|
内核线程有自己的栈
MMU分配栈应该是通过陷入内核空间去完成的吧
欢迎拍砖!
MMU分配栈应该是通过陷入内核空间去完成的吧
欢迎拍砖!
|
内核线程当然有自己的栈, MMU在kernel初始化的时候就做了,所以内核使用的也是虚拟地址。
|
只要MMU开启了,被cpu访问的地址都是虚拟地址!