【Linux】什么是进程?

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

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

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

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

cpp 复制代码
struct task_strcut

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

}

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

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

相关推荐
哲伦贼稳妥5 分钟前
职场发展-遇到以下情况请直接准备后手吧
运维·经验分享·其他·职场和发展
带土132 分钟前
10. .out文件
linux
Exquisite.37 分钟前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql
北塔软件40 分钟前
北塔方案 | 政府行业IT运维解决方案
运维·it运维·解决方案·政务
STCNXPARM1 小时前
Linux camera之V4L2子系统详解
android·linux·camera·v4l2架构
yueyuexiaokeai11 小时前
linux kernel常用函数整理
linux·c语言
cg_ssh1 小时前
Docker 下启动 Nacos 3.1.1 单机模式
运维·docker·容器
修己xj1 小时前
使用 Docker 部署 SQL Server 并导入 .mdb 文件的完整指南
运维·docker·容器
郝亚军3 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu
Konwledging3 小时前
kernel-devel_kernel-headers_libmodules
linux