news 2026/2/12 8:38:20

系统编程之进程

作者头像

张小明

前端开发工程师

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

一,定义

进程是一个程序执行的过程,会去分配内存资源,cpu的资源。

1.PCB是一个结构体,process control block。系统用于描述正在运行的进程的相关(所有)信息。

2.pcb常见内容

PID,进程标识符

当前工作路径 chdir

umask 0002

进程打开的文件列表 文件IO中有提到

信号相关设置 处理异步io,

用户id,组id

3.进程的资源限制

打开文件的个数1024 ,栈的大小8M

二,进程和程序的区别

1.程序:静态

存储在硬盘中代码,数据的集合

进程:动态

程序执行的过程,包括进程的创建、调度、消亡

.c ----> a.out-----> process(pid)

1)程序是永存,进程是暂时的

2)进程有程序状态的变化,程序没有

3)进程可以并发,程序无并发

4)进程与进程会存在竞争计算机的资源

5)一个程序可以运行多次,变成多个进程

一个进程可以运行一个或多个程序

2.虚拟内存

1.基于隔离性。在多进程中,a进程不能访问b进程的内存空间。

2.安全性(权限管理),linux也是运行在内存上的。所以需要通过权限控制,访问内核(linux系统)。

不是任意随意访问内核。

3.进程的内存空间


4.进程的分类

(1)交互式进程 进程运行后需要用户的输入,在给出对应的输出

(2)批处理进程 shell脚本 批量执行命令

(3)守护进程 进程会自动运行,默认不需要输入,处于休眠状态。等到特定条件满足。自己开始

运行。(更新进程,杀毒软件)

三,状态切换图

在操作系统中,在一个时间段内同时运行多个任务的能力。

操作系统的进程状态切换图

linux的进程状态切换图

四,系统的调度

在linux系统中,需要运行的任务(进程)有多个,每个都想运行。但是CPU,只有一个。所以就需要

linux 合理安排下一时刻,那个进程运行。

常见调度算法: 时间片轮转 ,短任务优先,进程优先级。 完全公平调度算法(CFS)。

宏观并行,在一个时间段中,每个进程都在运行。 微观串行,在时间的某一刻, 只有一个进程在

运行。

进程上下文切换 ,当a.out 的cpu的时间片耗尽是,就需要运行b。out。 a.out需要把自己的状态信

息(pcb,硬件上一些寄存器,PC. 内存相关数据)缓存到硬盘上。当a.out把内存释放出来后,b.out就

可以把自己前进缓存在硬盘的数据,读入内存。然后开始运行。

命令:
ps aux 显式所有的进程相关信息
top linux 中的任务管理器
kill 发信号
kill -9 pid 关闭指定pid的进程
killall -9 a.out 关闭多个a.out
相关函数

pid_t fork() 创建一个子进程。 一次调用,会返回两次。 子进程先运行和是父进程先进程,顺序不确定。变量不共享。 子进程复制父进程的0到3g空间和父进程内核中的PCB,但pid号不同。 功能:通过该函数可以从当前进程中克隆一个同名新进程。 克隆的进程称为子进程,原有的进程称为 父进程。 fork成功后,父子进程使用相同的代码段。父子进程开始运行的地方有所差异。 子进程是父进程的完全拷贝。 子进程的执行过程是从fork函数之后执行。 子进程与父进程具有相同的代码逻辑。 返回值:int 类型的数字。 在父进程中:成功 返回值是子进程的pid号 >0 失败 返回-1; 在子进程中:成功 返回值 0

fork成功后,父子进程使用相同的代码段。父子进程开始运行的地方有所差异。

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

Java新手必看:System类为什么会出现安全警告?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个交互式Java学习应用,包含:1. System类常见警告的动画演示 2. 可修改的代码沙盒环境 3. 实时错误检测 4. 逐步修复指导 5. 知识测验功能。要求使用Ja…

作者头像 李华
网站建设 2026/2/10 13:09:45

基于springboot的大学生实习就业管理系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…

作者头像 李华
网站建设 2026/2/7 13:47:18

AXI-A7.4.1 Overview

AXI原子事务的四种形式在SoC中的设计实现 一、四种原子事务的设计示例 1. AtomicStore(原子存储) 规则解释: 操作流程:管理器(如CPU)发送地址、控制信息和单个数据值(1/2/4/8字节)以及要执行的原子操作。从属设备(如内存控制器)使用发送的数据和地址处的当前值作为…

作者头像 李华
网站建设 2026/2/7 21:32:29

V型翅片与六边形蜂窝翅片的散热性能差异

🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字 📱个人微信:yanshanYH 211、985硕士,职场15年 从事结构设计、热设计、售前、产品设…

作者头像 李华
网站建设 2026/2/7 22:25:55

以太网温湿度传感器五重告警方式如何协同工作?

五重告警机制在以太网温湿度传感器中并非孤立运行,而是通过分层响应、多端触达、智能联动的方式协同工作,形成一套高效、可靠、全覆盖的环境风险预警体系。以下是其具体协同逻辑:1. 本地声光报警 —— 第一时间现场警示当温湿度超出设定阈值或…

作者头像 李华
网站建设 2026/2/11 9:15:05

COMSOL介电金属多层膜结构宽谱吸收器:文献复现与吸收特性研究

COMSOL介电金属多层膜结构宽谱吸收器。 该模型为文献复现,研究宽谱和窄谱吸收最近在研究COMSOL介电金属多层膜结构宽谱吸收器,这可是个很有意思的课题。先来说说这个模型,它是基于文献复现的,主要目的是研究宽谱和窄谱吸收情况。 …

作者头像 李华