【Linux】什么是进程?

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

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

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

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

cpp 复制代码
struct task_strcut

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

}

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

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

相关推荐
Cat_Rocky12 分钟前
keepalived简单配置
linux·运维·服务器
开开心心就好18 分钟前
一键扫描电脑重复文件的实用工具
linux·运维·服务器·随机森林·智能手机·excel·启发式算法
charlie11451419118 分钟前
AwesomeQt:最小的Qt6系列迷你版本教程发布!
linux·c++·qt·c
2301_8163743328 分钟前
Nginx下构建PC站点
java·运维·nginx
Run_Teenage34 分钟前
Linux:线程互斥,线程锁
运维·开发语言·jvm
DigitalOcean1 小时前
DigitalOcean VPC 网络故障排查 Runbook 实战指南
运维·服务器
Damon小智1 小时前
腾讯云轻量服务器部署 OpenClaw + QClaw 全流程实践:打造随时在线的个人 AI 助手
服务器·云计算·腾讯云
嵌入式×边缘AI:打怪升级日志1 小时前
Tina SDK Linux Kernel 基本使用(实战篇:为开发板添加用户按键驱动支持)
linux·运维·服务器
日取其半万世不竭1 小时前
Excalidraw 自建部署指南:白板协作工具完全私有化
服务器·网络·数据库
瞎折腾啥啊1 小时前
VCPKG详细使用教程
linux·c++·cmake·cmakelists