
Linux中进程栈与线程栈的差异
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本文探讨了在Linux操作系统下进程栈和线程栈之间的区别,深入分析它们的工作原理、存储内容及其对程序执行的影响。
本段落讨论的环境为Linux系统,并且文中提到的栈与内核栈无关。
以下是几个问题:
1. 线程栈的空间是在哪里分配的?
2. 不同线程之间的栈可以互相访问吗?
3. 使用pthread_attr_setstack函数时,为何需要指定栈大小?而进程task_struct结构体中的mm_struct *mm成员却没有定义stack_size这个属性,那么栈大小是如何保存下来的?
关于进程栈:
进程用户空间的管理体现在task_struct 结构中mm_struct *mm成员上。 mm结构包含了描述用户空间布局的信息(如图一)。 用户空间的栈从STACK_TOP开始布置,如果设置了PF_RANDOMIZE标志,则会重新随机化这个地址范围以增加安全性。
全部评论 (0)
还没有任何评论哟~


