2.进程基础知识
-
进程管理逻辑图
进程的发展
引入进程的原因
为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述
(影响:使多个程序能够并发执行)进程的定义
- 进程是程序的一次执行
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
- 在引入了进程实体的概念后,我们可以把传统OS中的进程定义为"进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位"
引入进程后造成的问题
- 如何细分状态?如何控制状态间的转变?
- 多进程环境下,如何调度进程?
- 同步与互斥问题
- 死锁问题
进程的特征
- 动态性(最基本特征):状态转换
- 并发性:多个进程在一段时间内同时运行
- 独立性:独立运行、独立获得资源、独立调度
- 异步性:按照各自的不可预知的速度向前推进
- 结构性:程序段、数据段和PCB构成进程实体
进程间通信
- 低级通信:PV操作
- 高级通信:共享存储、消息传递、管道通信
进程与程序的区别
-
程序是静态的,进程是动态的
-
进程是程序的一次执行过程
-
进程和程序不是一一对应,一个程序可对应多个进程(浏览器多开网页),一个进程可对应多个程序(UI进程渲染QQ、360)
程序 进程 静态的:有序代码的集合,是永久的,对应着文件、可复制 动态的:程序的执行,有生命期、临时的,是一个状态变化的过程 组成:代码集合 组成:程序、数据和PCB 不支持并发 支持并发 不能作为独立单位参与运行 具有独立性 通过多次执行,一个程序可对应多个进程 通过调用,一个进程可包括多个程序 进程的组成
程序段+数据段+PCB(进程控制块 Process Control Block)
- PCB是进程存在的唯一标志
进程的状态转换 (便于OS监控、调度)
三种基本状态:就绪、执行、阻塞
引入创建和终止状态后,进程的状态转换图:
引入挂起状态:
-
原因:
- 终端用户的请求
- 父进程请求
- 负荷调节的需要
- 操作系统的需要
-
具有挂起状态的进程状态及转换图:
进程间通信(IPC —— Inter-Process Communication)

- 剪切板——共享存储
- 消息缓冲队列——直接消息传递
线程
- 引入线程后,进程是资源分配的基本单位,,线程是CPU调度和分派的基本单位
- 线程是轻量级进程
- 线程是进程的一个运行实体
- 线程没有独立的地址空间(内存空间)
- 线程是由进程创建的
- 一个进程可以拥有多个线程
- 线程的动态的,具有就绪,执行和阻塞三个基本状态
- 线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源
本文来自博客园,作者:风雨zzm,转载请注明原文链接:https://www.cnblogs.com/zzmxj/p/17878771.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)