几个linux问题,不懂,求赐教
时间:2010-07-22
来源:互联网
本帖最后由 gqbfree 于 2010-07-22 15:26 编辑
有几个问题不懂,请大家帮忙解答。查了很多资料,但前篇一律,中间很多疑点只能靠自己理解,怕有误:
(1)内核线性映射是896M,而且对应的物理地址已经确定,是0-896M。 那么用户进程空间分配地址的时候是不是优先考虑大于896M的物理地址页面?
(2)有没有大侠帮忙把一个进程可能有的vm_area_struct结构对应的段列举一下,比如堆栈对应一个vm_area_struct(是不是只对应一个?)堆对应一个,代码段对应一个,还有mmap啥的 等等。还有malloc时,是否有新的vm_area_struct生成呢?还是扩展堆对应的vm结构?
(3)发生缺页异常时,如果需要从磁盘上把相应的内容读进内存,那么如何定位需要读入哪些内容?我知道vm_area_struct结构里有对应文件的句柄和offsize,需要把整个都读进来吗?还是只读一个页面?如何确定读多少?
(4)能不能提供以下情形: 只有preem_disable能实现,而信号量无法实现的情形。(premm_disable主要用在哪里)
(5)帮忙确认一下我自己理解的观点是否正确:
1. 用户空间 切 内核空间,压当前的用户空间的ss,sp入内核栈,然后取值TSS中的ss0/sp0赋给SS,ESP,完成切换; 然后把返回值cs/eip和其它一些现场寄存器压入内核栈(即pt_regs)。(很多资料都写先赋值SS,SP,然后压用户空间的ss,sp入内核栈, 我疑问此时的ss/sp从哪里来啊,还有pt_regs是不是只是用来存储用户空间时寄存器内容的?有没有情况是对内核现场存储?)
2. 我认为的TSS是这样的:linux没有按照X86设计,采用了一个CPU使用一个的方式。这样只要变换里面的SS,SP,就可以完成进程的堆栈切换。而其它寄存器现场信息,在task_struct->thread_info里存储。(请补充和批判) TSS和thread_info的关系,和寄存器的关系是什么?
请帮忙列出tread_info全部作用,谢谢;
有几个问题不懂,请大家帮忙解答。查了很多资料,但前篇一律,中间很多疑点只能靠自己理解,怕有误:
(1)内核线性映射是896M,而且对应的物理地址已经确定,是0-896M。 那么用户进程空间分配地址的时候是不是优先考虑大于896M的物理地址页面?
(2)有没有大侠帮忙把一个进程可能有的vm_area_struct结构对应的段列举一下,比如堆栈对应一个vm_area_struct(是不是只对应一个?)堆对应一个,代码段对应一个,还有mmap啥的 等等。还有malloc时,是否有新的vm_area_struct生成呢?还是扩展堆对应的vm结构?
(3)发生缺页异常时,如果需要从磁盘上把相应的内容读进内存,那么如何定位需要读入哪些内容?我知道vm_area_struct结构里有对应文件的句柄和offsize,需要把整个都读进来吗?还是只读一个页面?如何确定读多少?
(4)能不能提供以下情形: 只有preem_disable能实现,而信号量无法实现的情形。(premm_disable主要用在哪里)
(5)帮忙确认一下我自己理解的观点是否正确:
1. 用户空间 切 内核空间,压当前的用户空间的ss,sp入内核栈,然后取值TSS中的ss0/sp0赋给SS,ESP,完成切换; 然后把返回值cs/eip和其它一些现场寄存器压入内核栈(即pt_regs)。(很多资料都写先赋值SS,SP,然后压用户空间的ss,sp入内核栈, 我疑问此时的ss/sp从哪里来啊,还有pt_regs是不是只是用来存储用户空间时寄存器内容的?有没有情况是对内核现场存储?)
2. 我认为的TSS是这样的:linux没有按照X86设计,采用了一个CPU使用一个的方式。这样只要变换里面的SS,SP,就可以完成进程的堆栈切换。而其它寄存器现场信息,在task_struct->thread_info里存储。(请补充和批判) TSS和thread_info的关系,和寄存器的关系是什么?
请帮忙列出tread_info全部作用,谢谢;
作者: gqbfree 发布时间: 2010-07-22
(1)内核线性映射是896M,而且对应的物理地址已经确定,是0-896M。 那么用户进程空间分配地址的时候是不是优先考虑大于896M的物理地址页面?
这个不是用户进程决定的,是内核决定的
而且一般是NORMAL ZONE范围的(低于896M)
这个不是用户进程决定的,是内核决定的
而且一般是NORMAL ZONE范围的(低于896M)
作者: openspace 发布时间: 2010-07-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28