【Linux】什么是进程?

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

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

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

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

cpp 复制代码
struct task_strcut

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

}

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

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

相关推荐
智能运维指南5 小时前
代码管理软件如何融入 DevOps 工具链?全链路联通的 5 个关键点
运维·devops·信创适配·嘉为蓝鲸
充电zcx5 小时前
Linux:4:开发工具详解
linux·运维·服务器
gongfeng30009 小时前
福州企业级AI自动化获客解决方案品牌梳理与适用场景分析
运维·人工智能·自动化·g-claw ai员工
码农客栈9 小时前
linux 交叉编译tslib
linux
鱼月半9 小时前
两台电脑直连网络不通怎么办?
linux·网络协议
光电笑映10 小时前
网络通信基础:从协议分层到 Socket 编程预备
linux·运维·服务器·网络
酸菜。10 小时前
dw_apb_gpio总结
linux
wunaiqiezixin11 小时前
MIT 6.S081 file system 实验篇(lab9):Large files (moderate)
linux·unix·os·xv6·mit6.s081
GeW11 小时前
RHCE 考试通过率提升:核心考点、实验环境与排错技巧
linux
微小冷11 小时前
用Mermaid画时序图
运维·流程图·时序图·mermaid·生命线