【Linux】什么是进程?

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

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

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

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

cpp 复制代码
struct task_strcut

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

}

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

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

相关推荐
2601_962299883 分钟前
Linux下运行Python脚本
linux·python·ubuntu·脚本·命令
wdfk_prog6 分钟前
Docker 常用语法与命令:CLI、Dockerfile 与 Compose 速查
运维·docker·容器
Zenova EdgeOS8 分钟前
Linux eBPF 工业边缘性能观测实战
linux·服务器·网络
skywalk816328 分钟前
通过下载Ubuntu ova文件在Virtual Box快速安装ubuntu
linux·运维·ubuntu·virtualbox
姚不倒32 分钟前
HAProxy 系列(四):多中间件统一 VIP 入口 — 架构模式与最佳实践
运维·中间件·架构·haproxy
wuminyu42 分钟前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
happymade43 分钟前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
斑马1391 小时前
Linux软件编程学习笔记(十一)——HTTP协议
linux·笔记·学习
做萤石二次开发的哈哈1 小时前
萤石蓝海 AIoT 一站式工作台:海康LCD会议平板接入,多端大屏运维应用一站生成
运维·物联网·电脑·萤石开放平台·会议室管理·蓝海aiot一站式工作台·otap物模型
OpenPomeloxCommunity1 小时前
Linux驱动基础(一):模块机制的设计与实现
linux