当前位置: 首页 > news >正文

网站建设网络合同网站打开出现建设中

网站建设网络合同,网站打开出现建设中,网页版梦幻西游五行斗法,盐城z做网站接前一篇文章:Linux内核进程管理子系统有什么第五十六回 —— 进程主结构详解(52) 本文内容参考: Linux内核进程管理专题报告_linux rseq-CSDN博客 《趣谈Linux操作系统 核心原理篇:第三部分 进程管理》—— 刘超 《…

接前一篇文章:Linux内核进程管理子系统有什么第五十六回 —— 进程主结构详解(52)

本文内容参考:

Linux内核进程管理专题报告_linux rseq-CSDN博客

《趣谈Linux操作系统 核心原理篇:第三部分 进程管理》—— 刘超

《图解Linux内核 基于6.x》 —— 姜亚华 机械工业出版社

特此致谢!

进程管理核心结构 —— task_struct

11. stack和thread_info

一目了然,包括以下两个:

#ifdef CONFIG_THREAD_INFO_IN_TASK/** For reasons of header soup (see current_thread_info()), this* must be the first element of task_struct.*/struct thread_info		thread_info;
#endif
……void				*stack;

这两个字段的描述如下:

字段类型描述
thread_infostruct thread_info内核态堆栈共用体
stackvoid *进程的内核栈

(1)struct thread_info thread_info

上一回对于struct thread_info thread_info进行了部分介绍,由于其历史演变过程较为复杂曲折,本回继续对它进行讲解。

旧版本内核中,thread_info对象存在于内核栈中。也就是说,对于每个进程,Linux都将thread_info与进程的内核态堆栈存放在一起,在一个单独为进程分配的内存区域中。这块内存区域通常是8192字节(占两个页框),起始地址必须是8192的整数倍(内核栈默认情况下大小为8KB,8KB的开始(低地址)存放的是thread_info对象)。

由于这个内存区域同时保存了thread_info和stack,因此这两个数据结构被定义在了一个共用体(union thread_union)中,由alloc_thread_info_node函数分配内存空间(该函数在此新版Linux内核中已经没有了,取而代之的是alloc_task_struct_node函数和alloc_thread_stack_node函数)。

union thread_union的定义也在include/linux/sched.h中,如下:

union thread_union {
#ifndef CONFIG_ARCH_TASK_STRUCT_ON_STACKstruct task_struct task;
#endif
#ifndef CONFIG_THREAD_INFO_IN_TASKstruct thread_info thread_info;
#endifunsigned long stack[THREAD_SIZE/sizeof(long)];
};

而在新版本的内核中,在CONFIG_THREAD_INFO_IN_TASK为真的情况下,thread_info变成了struct task_struct的一个字段:

在x86平台上,该宏(CONFIG_THREAD_INFO_IN_TASK)默认为真。因此实际上,x86平台上已经将thread_info的作用弱化了。这也和上一回所讲的“在更新版本的内核中,struct thread_info中也并不是都(显式)地通过成员指向task_struct结构实例了”相对应起来了。

至此,对于struct thread_info thread_info的讲解就暂告一段落了,下一回开始讲解void *stack字段。

http://www.dtcms.com/a/483083.html

相关文章:

  • 办公用品网站模板建英文网站
  • 【编号28】中国九大流域范围-shp
  • FITC-SH的化学特性及其在分子标记与表面偶联中的实验应用
  • BITFIELD命令详解
  • 无锡模板网站设计公司无锡网站建设seo
  • ⸢ 柒-Ⅳ⸥⤳ 可信纵深防御建设方案:信任链构建可信策略
  • 德阳中恒网站建设杭州网站建设品牌
  • 如何做网站系统阿里云购买网站空间
  • 广州网站建设公司哪家服务好qq网页版登录官网登录入口
  • Docker(二) 容器技术发展史
  • MacOS本地数据库搭建
  • C语言--指针
  • 怎么打开域名网站长春网站排名
  • 做美容美发的网站有哪些天津市招标投标公共服务平台
  • SpringBoot基于工厂模式的多类型缓存设计
  • Redis中渐进式命令scan详解与使用
  • 江苏省建设厅网站 投诉wordpress页面写文章
  • Redis-主从复制和哨兵模式
  • 推荐一下做年会视频的网站做网站的上市公司
  • 淘宝网站建设论文河北城乡建设学校官方网站
  • 结构一次函数的图像
  • 1032 挖掘机技术哪家强
  • 程序员培训出来到底有没有用徐州seo计费管理
  • git status时发现有未提交的事件提交发现Git 锁文件冲突的问题解决办法
  • 使用 NNCF 量化模型(Python篇)
  • php网站怎么做自适应智慧团建登录入口官方网站
  • 建网站需要什么资质河北智能网站建设
  • 高职示范校建设网站个人网站工商备案
  • 面试-上海电力大学研一的学习经验
  • 理查德西尔斯做的网站做网站发房源综合语录