news 2026/4/16 19:56:00

系统编程-进程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
系统编程-进程

一、进程的定义与PCB

定义:进程时一个程序执行的过程,回去分配内存资源,cpu资源。

PCB:是一个结构体,系统用于描述正在运行的进程所有相关信息

PCB包含: 1.pid //进程ID 2.path //进程对应的程序路径 3.umask 0002 //文件权限掩码 4.int fd[1024] //文件描述符数组

二、进程与程序的区别

对比维度程序(program)进程(process)
本质属性静态实体动态实体
存在形式存储在硬盘中内存中运行的实体
生命周期永久存在(除非主动删除)临时存在(创建、调度、运行、消亡)
状态变化无状态支持并发运行
资源占用不占用cpu,内存等资源

占用cpu、内存等资源

资源竞争无资源竞争进程间会竞争cpu、内存

三、进程的分类:

1、交互式进程 进程运行后需要用户的输入,在给出对应的输出
2、批处理进程 shell脚本 批量执行命令
3、 守护进程 进程会自动运行,默认不需要输入,处于休眠状态。等到特定条件满足。自己开始运行。(更新进程,杀毒软件)

四、linux进程状态切换图

五、进程的调度

1.Linux 系统中有多个需运行的任务(进程),但 CPU 仅有一个,因此需合理安排下一时刻运行的进程。
2.常见调度算法:时间片轮转、短任务优先、进程优先级、完全公平调度算法(CFS)。
3.宏观并行:一个时间段中,每个进程都在运行;微观串行:时间某一刻,只有一个进程在运行。
4.进程上下文切换:a.out 的 CPU 时间片耗尽时,需运行 b.out。a.out 需把自身状态信息(PCB、硬件寄存器、PC、内存相关数据)缓存到硬盘,释放内存后,b.out 将缓存的自身数据读入内存,开始运行。

六、相关命令

ps aux //显示所有的进程相关的信息 top //linux中的任务管理器 kill //发信号 kill -9 pid //关闭指定pid的进程 kill -9 a.out //关闭多个 a.out

七、相关函数

1.创建子进程函数

pid_t fork() //创建一个子进程

特性:1.一次调用、会返回两次。

2.子进程和父进程谁先运行,顺序不确定,变量不共享。

3.子进复制父进程的0到3g空间和父进程内核中的PCB,但pid号不同。

返回值:int类型数字。

在父进程中,成功返回值>0;

失败,返回-1;

在子进程中,成功返回0;

2.获得pid相关函数

getpid pit_t getpid(void); //获得pid编号
getppid parent //获得调用该函数进程的父进程的pid编号 pid_t getppid(void)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:53:16

Vita3K终极安装指南:轻松玩转PS Vita游戏

Vita3K终极安装指南:轻松玩转PS Vita游戏 【免费下载链接】Vita3K Experimental PlayStation Vita emulator 项目地址: https://gitcode.com/gh_mirrors/vi/Vita3K Vita3K是一款免费开源的PlayStation Vita模拟器,让你能够在PC上体验PS Vita游戏的…

作者头像 李华
网站建设 2026/4/16 1:59:23

26护士资格证报名照要求 制作+审核流程

宝子们!26护士资格考试报名已经开始啦,最容易卡壳的就是照片上传这一步,学姐我整理了超详细的照片要求上传流程,手把手教你搞定💪📷 照片硬性要求 ▫️尺寸:295413px(1寸彩色标准证件…

作者头像 李华
网站建设 2026/4/16 14:11:01

Window环境下使用Jenkins搭建Android自动打包

下载Jenkins 官网下载:Jenkins download and deployment LTS 版本是长期支持版本,主要针对生产环境使用。它提供了长期稳定的技术支持,保证软件稳定性和安全性。在 LTS 版本中,重要的问题得到了修复,并且可以更好地保证兼容性。 普通版本是每两周发布一次的版本,不提供…

作者头像 李华
网站建设 2026/4/16 12:14:26

5大iTerm2主题美化技巧:从入门到精通的终端个性化指南

5大iTerm2主题美化技巧:从入门到精通的终端个性化指南 【免费下载链接】iTerm2 iTerm2 is a terminal emulator for Mac OS X that does amazing things. 项目地址: https://gitcode.com/gh_mirrors/it/iTerm2 iTerm2作为Mac系统上功能最强大的终端模拟器&am…

作者头像 李华
网站建设 2026/4/16 15:26:21

模型对接失败?Dify私有化适配避坑指南,90%的人都忽略了这3点

第一章:模型对接失败?Dify私有化适配避坑指南的核心问题在部署 Dify 实现大模型私有化集成时,常因环境配置与接口协议不匹配导致模型对接失败。最常见的问题集中在网络隔离、认证机制和模型服务暴露方式三个方面。网络策略配置不当 私有化部署…

作者头像 李华
网站建设 2026/4/16 14:11:36

Symfony 8微服务架构适配全解析(服务拆分与通信机制深度揭秘)

第一章:Symfony 8微服务架构演进与核心理念Symfony 8标志着PHP企业级开发在微服务领域的又一次重要跃迁。该版本在保持传统MVC结构灵活性的同时,深度整合了领域驱动设计(DDD)与容器化部署的最佳实践,使开发者能够更高效…

作者头像 李华