当前位置:  技术问答>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只要领会精神就行了,没必要抠字眼。

|
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

|

向上向下这个和机器有关,至于栈顶与栈底如何规定,这个和操作系统有关,属于进程空间的布置。查查资料就很清晰了,没啥困惑的地方

|

你说的是C,C是不允许你控制栈的,也没有提供任何机制。唯一的办法是在C代码文件里写汇编。但至于栈向上向下,这是CPU规定的。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • lkd中关于抢占的讲解,有一点没有看明白
  • lkd,ulk,ldd,《完全注释(剖析)》,《情景分析》这几本书该按什么顺序看?
  • 看LKD时遇到的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3