Linux 学习之路 -- 进程篇 2 -- 进程简介

一、简单介绍

在我们写完程序后,由编译器形成二进制的文件,而这个文件在磁盘中存放,磁盘在外设中,如果我们要执行程序,就必需要把程序加载到内存。我们可以打开任务管理器,就可以发现我们的电脑会运行很多的程序,那这么多程序,操作系统肯定就需要进行对这些程序管理。操作系统该如何对这些程序进行管理呢? 根据先描述,再组织的过程进行建模,我们就可以用一个结构体对程序进行管理。这里结构体里面包括"状态、优先级、标识符等等",当我们把进程加载到内存后,我们就可以在内存中创建一个结构体,用来描述程序,而这个结构体就叫PCB(process ctrl block,进程控制块,在Linux中称为task_struct),我们再把结构体用指针链接起来,这样操作系统就可以通过PCB对程序进行管理。

这里我们就可以把进程这样描述: 进程 = 内核数据结构 + 可执行的程序。

2.粗略的了解

这里我们可以通过一个用一个runqueue 结构体来对进程进行管理,里面用一个PCB指针来指向内存中的PCB,CPU就可以通过runqueue 来找到对应对内存中PCB,再通过PCB来找到对应的可执行程序,然后就能运行程序。所以未来我们的对进程的管理就是PCB的管理,跟可执行程序每半毛钱关系。

那PCB中包含了什么东西呢?下面用张图来解释

后面我将一一解释task_struct 中的内容

希望本文能对各位读者有些许帮助,如果文中有不当之处,还望各位大佬指正,谢谢!!!

相关推荐
GEO从入门到精通4 小时前
课程怎么选?2026年GEO学习资源全梳理
学习
优化Henry5 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
xiaomu001235 小时前
高湿环境床垫湿度管理技术框架:湿度阈值、排湿结构与材料选型
经验分享·学习·学习方法
zhangrelay6 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
probex_6 小时前
学习笔记:知识图谱是什么,在测试里能干什么
笔记·学习·知识图谱
每天题库9 小时前
危险货物道路运输从业资格证题库刷题重点与错题梳理
学习·安全·考试·题库·考证
m4Rk_9 小时前
【论文阅读】Agent 记忆机制(86):Skill-Pro——用 Non-Parametric PPO 将交互经验演化为可复用技能
论文阅读·人工智能·学习·开源·github
AOI小白新手上路9 小时前
从 Keil 调试视角看 51 指针,到 Cortex-M 内存映射访问寄存器 · 学习笔记
笔记·学习
Joe_Wang510 小时前
【从0到1学习JVM · 15】对象在堆里来回倒腾,究竟怎样才会进老年代?
java·jvm·学习·垃圾回收
软件开发技术深度爱好者11 小时前
中学生学习工具:多学科自学启导者(轻量版)实现
学习·ai·技术实践