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

【Linux】(1)—进程概念-③Linux进程概念与PCB

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Linux进程概念与PCB

前言


提示:以下是本篇文章正文内容,下面案例可供参考

什么是进程?

进程可以理解为"正在执行的程序",它是程序的一次动态执行过程。与静态的程序不同,进程具有生命周期,会经历创建、运行、等待和终止等不同阶段。

从内核角度看,进程是分配系统资源(CPU时间、内存等)的实体。操作系统通过进程来管理和调度程序的执行,使多个程序能够"同时"运行(并发执行)。

进程控制块(PCB)

操作系统要管理进程,首先需要描述进程。Linux内核通过一个称为进程控制块(Process Control Block, PCB)的数据结构来记录进程的所有信息。在Linux中,PCB的具体实现是task_struct结构体。

task_struct结构体

task_struct是Linux内核中非常复杂的一个数据结构,定义在include/linux/sched.h头文件中。它包含了管理一个进程所需的全部信息,会被装载到内存(RAM)中。

task_struct的主要内容包括:

  1. 标识符(PID):唯一标识进程的ID,用于区分不同进程

  2. 状态:记录进程当前状态(运行、睡眠、停止等)

  3. 优先级:进程调度的优先级

  4. 程序计数器:下一条要执行的指令地址

  5. 内存指针:指向程序代码和进程相关数据的指针

  6. 上下文数据:进程执行时CPU寄存器的数据

  7. I/O状态信息:进程使用的I/O设备和文件列表

  8. 记账信息:CPU使用时间、时钟数等统计信息

进程的组织方式

Linux内核中所有运行的进程都以task_struct链表的形式存在。内核维护着一个进程链表,每个task_struct都包含指向链表前驱和后继的指针:

c

复制

下载

struct task_struct {//...struct list_head tasks;  // 进程链表//...
};

这种组织方式使得内核能够高效地遍历和管理所有进程。此外,Linux还使用红黑树等数据结构来加速进程查找。

进程状态

在Linux内核中,进程可能处于以下几种主要状态:

  • R (Running):进程正在运行或在运行队列中等待

  • S (Sleeping):可中断的睡眠状态,等待事件完成

  • D (Disk sleep):不可中断的睡眠状态,通常等待I/O操作

  • T (Stopped):进程被信号暂停执行

  • Z (Zombie):僵尸进程,已终止但未被父进程回收

  • X (Dead):进程完全终止,等待被清除

这些状态定义在内核源代码的task_state_array数组中:

c

复制

下载

static const char *const task_state_array[] = {"R (running)",        /* 0 */"S (sleeping)",       /* 1 */"D (disk sleep)",     /* 2 */"T (stopped)",        /* 4 */"t (tracing stop)",   /* 8 */"X (dead)",           /* 16 */"Z (zombie)",         /* 32 */
};

相关文章:

  • 2025推客系统小程序开发:独立部署源码交付,高性价比裂变增长引擎
  • 什么是系统调用
  • iVX 如何用 VL 中间语言构建程范式闭环?
  • 【速通RAG实战:进阶】16、AI生成思维导图全技术解析
  • 视频监控管理平台EasyCVR安防监控小知识:视频监控AI智能分析的常见部署方式有哪些?
  • RISC-V PMA、PMP机制深入分析
  • 基于qt5和stk10开发的互联调试
  • leetcode235.二叉搜索树的最近公共祖先:迭代法利用有序性高效寻根
  • 责任链模式:构建灵活可扩展的请求处理体系(Java 实现详解)
  • 数据结构 - 树相关计算题
  • Java中float和double的区别与用法解析
  • 通义灵码2.5——基于MCP实现我的12306火车票智能查询小助手
  • Selenium 测试框架 - Kotlin
  • RFID综合项目实训 | 基于C#的一卡通管理系统
  • 开疆智能Profinet转Profibus网关连接EC-CM-P1 PROFIBUS DP从站通讯模块配置案例
  • 计算机操作系统(十四)互斥锁,信号量机制与整型信号量
  • DTO、VO、DO、BO、PO 的概念与核心区别
  • 算法题(158):牛栏预定
  • 64、【OS】【Nuttx】任务休眠与唤醒:clock_nanosleep
  • ByteBuddy入门:静态方法增强实战
  • 如何建设一个彩票网站/软件培训机构有哪些?哪个比较好
  • 宁乡网站开发公司推荐/seo薪资水平
  • 沙市做网站weisword/企业管理培训课程费用
  • 网站后台改/品牌网络营销推广方案策划
  • 中小企业建站平台/网络营销工作内容和职责
  • 什么网站做推广农产品比较好/株洲seo推广