Linux0号进程,1号进程,2号进程.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Linux0号号进进程程,,1号号进进程程,,2号号进进程程

本节我们将从linux启动的第⼀个进程说起,以及后⾯第⼀个进程是如何启动1号进程,然后启动2号进程。然后系统中

有的进程关系图做个简单的介绍

⼀⼀、、0号号进进程程

0号进程,通常也被称为idle进程,或者也称为swapper进程。

0号进程是linux启动的第⼀个进程,它的task_struct的comm字段为swapper,以也称为swpper进程。

1#defineINIT_TAS_COMMswapper

当系统中有的进程起来后,0号进程也就蜕化为idle进程,当⼀个core上没有任务可运⾏时就会去运⾏idle进程。⼀旦

运⾏idle进程则此core就可以进⼊低功耗模式了,在ARM上就是WFI。

我们本节重点关注是0号进程是如何启动的。在linux内核中为0号进程专门定义了⼀个静态的task_struct的结构,称为

init_task。

1/*

2*Setupthefirsttasktable,touchatyourownrisk!.Base=0,

3*limit=0x1fffff(=2MB)

4*/

5structtask_structinit_task

6={

7#ifdefCONFIG_THREAD_INFO_IN_TAS

8.thread_info=INIT_THREAD_INFO(init_task),

9.stack_refcount=ATOMIC_INIT(1),

10#endif

11.state=0,

12.stack=init_stack,

13.usage=ATOMIC_INIT(2),

14.flags=PF_THREAD,

15.prio=MAX_PRIO-20,

16.static_prio=MAX_PRIO-20,

17.normal_prio=MAX_PRIO-20,

18.policy=SCHED_NORMAL,

19.cpus_allowed=CPU_MAS_ALL,

20.nr_cpus_allowed=NR_CPUS,

21.mm=NULL,

22.active_mm=init_mm,

23.tasks=LIST_HEAD_INIT(init_task.tasks),

24.ptraced=LIST_HEAD_INIT(init_task.ptraced),

25.ptrace_entry=LIST_HEAD_INIT(init_task.ptrace_entry),

26.real_parent=init_task,

27.parent=init_task,

28.children=LIST_HEAD_INIT(init_task.children),

29.sibling=LIST_HEAD_INIT(init_task.sibling),

30.group_leader=init_task,

31RCU_POINTER_INITIALIZER(real_cred,init_cred),

32RCU_POINTER_INITIALIZER(cred,init_cred),

33.comm=INIT_TAS_COMM,

34.thread=INIT_THREAD,

35.fs=init_fs,

36.files=init_files,

37.signal

文档评论(0)

友情 + 关注
实名认证
内容提供者

好文件大家都可以分享

1亿VIP精品文档

相关文档