良许Linux教程网 干货合集 Linux系统进程属性详解

Linux系统进程属性详解

Linux系统中所有运行的任务都是进程,更加准确的说,每个用户任务,每个系统管理,都可以说是一个进程, 那么进程都有那些属性呢?下面良许教程网为大家讲解一下Linux系统中进程属性。

Linux系统进程属性详解

1. 进程的四要素

  • 有一段程序代码供该程序运行。

  • 拥有专用的系统堆栈空间。

  • 拥有一个 task_struck 结构来实现进程控制块(pcb)。

  • 拥有独立的存储空间。

2. 进程的关系和分类

Linux 系统中的所有进程都是相互联系的。

Linux 内核创建了进程标号为 0 和进程标号为 1 的进程,进程标号为 1 的进程是一个初始化进程 init,Linux 中的所有进程都是由其衍生而来的,在 Shell 下执行程序启动的进程则是 Shell 进程的子进程,在用户的启动进程中可以再启动自己的子进程,这样就形成了一棵进程树,每个进程都是树中的一个节点,树的根是初始化进程 init。在这里插入图片描述进程之间的关系可以用图中的亲属关系来描述,通常包括以下几个部分。

  • p_opptr(祖先,original parent): 指向创建进程 P 的进程描述符,如果父进程不存在,则指向进程 init 的描述符。当一个 Shell 用户启动一个后台进程并从 Shell 退出时,后台进程将变成 init 的子进程。

  • p_ pptr(父进程,parent): 指向进程的父进程,值通常来说和 p_ opptr 一致,也可能不同。

  • p_ cptr (子进程,child): 指向进程年龄最小的子进程的描述符,即进程上一次创建的进程描述符。

  • p_ ysptr(弟进程,younger sibling): 指向在本进程创建之后由父进程创建的进程。

  • p_ osptr(兄进程,older sibling):指向在本进程创建之前由父进程创建的进程。

3. 进程的类型

Linux 操作系统通常包括三种不同类型的进程。

  • 交互进程:由一个 Shell 启动的进程,既可以在前台运行,也可以在后台运行。

  • 批处理进程:和终端没有联系,是一个进程序列。

  • 守护进程:Linux 系统启动时启动的进程,并在后台运行。

4. 进程的状态

进程在其生存周期内可能处于以下状态中,这些状态是互斥的,在 task_struct 结构的状态域中使用不同关键字来定义这些状态。

  • 可运行状态(TASK_RUNNING):占用处理器执行或者准备执行。

  • 可中断的等待状态(TASK_INTERRUPTIBLE):进程被挂起或者睡眠,当某些条件变成真的时候退出这种等待状态,比如:硬件中断、进程正在等待的系统资源被释放、传递一个信号等,退出等待状态之后的进程会回到 TASK_RUNNING 状态。

  • 不可中断的等待状态(TASK_ UNINTERRUPTIBLE):和可中断的等待状态类似,其差别是当接收到信号时并不能退出这个等待状态。

  • 暂停状态(TASK_STOPPING): 进程的执行被暂停,通常来说当进程接收到 SIGSTOP、SIGTTIN 或者 SIGTTOU 信号后,进入暂停状态。如果一个进程被另外一个进程监控时,任何信号都可以把这个进程置于 TASK_STOPPEN 状态。

  • 僵尸状态(TASK_ZOMBIE):进程的执行已经被终止,但是父进程还没有使用 wait 调用已返回的相应信息,此时内核不能丢弃包含在该进程中的相应数据,因为父进程还可能需要这些数据。

进程在这几种状态之间相互转化,但对于用户而言是透明的,这个切换的过程也常常被称为进程的调度。

进程是一个随执行过程不断变化的实体,进程也包含程序计数器和所有处理器寄存器的值,同时它的堆栈中存储着(如子程序)参数、返回地址以及变量之类的临时数据。当前的执行程序,或者说进程,包含着当前处理器中的活动状态。在多处理操作系统中,进程具有独立的权限与职责。如果系统中某个进程崩溃,不会影响到其余的进程。每个进程运行在各自的虚拟地址空间中,通过一定的通信机制,它们之间才能发生联系。

至此关于Linux系统中进程属性的的相关知识讲解完毕,欢迎大家在评论区留言。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部