当前位置: 技术问答>linux和unix
读《LKD》的一点疑问
来源: 互联网 发布时间:2016-07-04
本文导语: P18 第三章 3.11中“由于现在用slab”分配器动态生成task_struct,所以只需在栈底(对于向下增长的栈来说)或栈顶(对于向上增长的栈来说)创建一个新的结构struct thread_info 我不明白,栈底与栈顶难道与增长方式有关...
P18 第三章 3.11中“由于现在用slab”分配器动态生成task_struct,所以只需在栈底(对于向下增长的栈来说)或栈顶(对于向上增长的栈来说)创建一个新的结构struct thread_info
我不明白,栈底与栈顶难道与增长方式有关系?难道不是添加或者删除元素的叫栈顶,另一端叫栈底吗?_
我不明白,栈底与栈顶难道与增长方式有关系?难道不是添加或者删除元素的叫栈顶,另一端叫栈底吗?_
|
栈基本上都是向下开辟空间的把,目前没见过向上开辟空间的栈
地址减小就是开辟空间,就是向下
栈底就是初始化栈的时候的地址
栈顶是开辟的最后那个空间的地址
没有别的解释,没有歧义
地址减小就是开辟空间,就是向下
栈底就是初始化栈的时候的地址
栈顶是开辟的最后那个空间的地址
没有别的解释,没有歧义
|
CPU架构不同,栈的增长方式有的是减小,有的是增加,但我一直认为增加的那个地方叫栈顶。
我觉得LZ只要领会精神就行了,没必要抠字眼。
我觉得LZ只要领会精神就行了,没必要抠字眼。
|
So on Intel processors, stacks grow down. Whenever I’m writing calls stacks that’s the way I draw them – the caller is on top, the callee is on the bottom. But other machines have stacks that grow UP, not DOWN. For example, the Decsystem-20’s stack grows up (I first learned assembly language programming on the Dec-20 – it’s still my favorite instruction set). So the fact that my stacks grow down is clearly not related to the language I first learned. On the other hand, I spent many years writing exclusively in x86 assembly (from 1984 to 1989, more or less), so it may be that that’s what I’m familiar with.
--转自http://blogs.msdn.com/larryosterman/archive/2004/08/19/217297.aspx
--转自http://blogs.msdn.com/larryosterman/archive/2004/08/19/217297.aspx
|
向上向下这个和机器有关,至于栈顶与栈底如何规定,这个和操作系统有关,属于进程空间的布置。查查资料就很清晰了,没啥困惑的地方
|
你说的是C,C是不允许你控制栈的,也没有提供任何机制。唯一的办法是在C代码文件里写汇编。但至于栈向上向下,这是CPU规定的。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。