【Linux】什么是进程?

一个正在执行的程序,我们称之为进程。

然后我们来顺着一条线来思考。

操作系统底层是用C语言编写的,而我们的进程,它会有各种属性,那么各种属性就可以用一个结构体来对进程的各个属性进行描述,然后这个结构体里面,肯定会存在一个指针,指向了我的进程加载在内存对应的代码和数据,而这个描述进程的结构体我们就称之为PCB。

而在Linux里,这个进程的PCB是用一个叫task_struct的结构体描述的

cpp 复制代码
struct task_strcut

{
        进程的ID
        进程的状态
        .........

}

而我们的操作系统肯定不会只是管理一个进程,它肯定要管理很多的进程,那么肯定要有一种特定的数据结构来对进程进行管理,Linux里面,是使用双向链表的形式进行管理,其实就是在task_struct里面添加一个前驱指针和后继指针就可以将它们关联起来。

所以,进程 = 进程PCB + 代码和数据。

相关推荐
绿虫光伏运维8 分钟前
光伏监控运维系统哪家靠谱?
运维·光伏管理·光伏运维
小手指动起来21 分钟前
重装系统教程(微PE+无捆绑+驱动完美修复)
服务器·开源软件
木雷坞34 分钟前
Docker Hub、GHCR、Quay 混在一起后,镜像源要分开测
运维·docker
Evan_ZGYF丶42 分钟前
【开发工具】【perf】Linux下性能分析工具(perf)的使用
linux·嵌入式·开发工具·perf
LT10157974441 小时前
2026年物流RPA选型指南:物流供应链自动化场景适配
运维·自动化·rpa
AC赳赳老秦1 小时前
OpenClaw任务复盘自动化:统计每日完成工作、遗留问题,优化工作节奏
java·大数据·linux·运维·服务器·数据库·openclaw
雾岛心情1 小时前
【小铭邮箱】小铭邮箱工具箱公司版本导入VCF文件
运维·工具·exchage·o365·小铭邮件工具箱(公司版)
kaoa0001 小时前
Linux入门攻坚——79、XEN虚拟化-2
linux·运维·开发语言
AOwhisky1 小时前
学习自测(MySQL系列第一期、第二期)
linux·运维·数据库·学习·mysql·云计算
Kyrie_Li2 小时前
Kafka-基础知识总结
运维·分布式·kafka