杭杭州紫金港培训学校(紫金港专升本)
在职研究生计算机学科专业基础考前辅导第三章 操作系统第 21 节 / 共 32 节约 28 分钟报名学员看全文

进程、线程与进程间通信

掌握进程的概念、PCB、五种状态及其转换、进程的创建与控制原语,线程的概念与用户级、内核级线程的实现;掌握共享内存、消息传递、管道、信号四种进程间通信方式的特点。

本节考点:进程的状态与转换线程的实现进程间通信信号

本节导读

「进程管理」是操作系统内容最多的一章,本课分四节:这一节讲进程与线程,第 22 节讲 CPU 调度,第 23 节讲同步与互斥,第 24 节讲死锁。大纲在进程与线程下列了:基本概念、状态与转换、线程的实现(内核支持的线程、线程库支持的线程)、组织与控制、进程间通信(共享内存、消息传递、管道、信号)。其中「信号」是常见资料称 2025 年版新增的内容。

学完你应该能判断一个事件会引起进程怎样的状态变化,能数出含 fork 的程序会产生几个进程,并能比较四种进程间通信方式。

进程的概念与状态

进程是程序在一个数据集合上的一次执行过程,是系统进行资源分配和调度的独立单位(引入线程后,调度单位变成线程)。进程实体由程序段、数据段和进程控制块 PCB 组成;PCB 是进程存在的唯一标志,记录进程标识符、状态、优先级、程序计数器与寄存器现场、内存与文件等资源信息。进程具有动态性、并发性、独立性和异步性。

进程有五种状态:创建、就绪(只差 CPU)、运行、阻塞(等待某个事件,即使给它 CPU 也不能运行)、终止。三种基本状态之间的转换:

转换原因主动还是被动
就绪 → 运行被进程调度程序选中—
运行 → 就绪时间片用完,或被更高优先级的进程抢占被动
运行 → 阻塞请求资源未满足、等待 I/O 或其他事件进程主动
阻塞 → 就绪等待的事件发生(如 I/O 完成),由别的进程或中断处理程序唤醒被动

被唤醒的进程进入就绪队列,等调度程序选中才能运行。

进程的组织与控制

系统中的 PCB 按状态组织成就绪队列、各种阻塞队列(链接方式),或建立索引表(索引方式)。进程控制用原语实现,原语执行时不可被打断:创建、撤销(终止)、阻塞、唤醒、挂起、激活等。

UNIX 类系统用 fork 创建子进程:子进程得到父进程地址空间的副本,从 fork 之后的语句开始执行;fork 在父进程中返回子进程的进程号(大于 0),在子进程中返回 0,据此可以让父子进程走不同的分支。

线程

线程是进程中的一个执行流,是 CPU 调度的基本单位;进程仍是资源分配的基本单位。同一进程的线程共享进程的地址空间(代码、全局变量、堆)和打开的文件等资源,每个线程有自己的线程控制块、程序计数器、寄存器和栈。线程切换不必切换地址空间,开销比进程切换小。

比较项用户级线程(线程库支持)内核级线程(内核支持)
管理者用户空间的线程库,内核不知道线程存在内核,内核为每个线程建立 TCB
切换不进入内核,快要进入内核,较慢
一个线程阻塞时整个进程都被阻塞只有这个线程阻塞,其他线程可继续运行
多处理器同一进程的线程不能同时在多个 CPU 上运行可以并行运行

多线程模型:多对一(多个用户级线程映射到一个内核级线程)、一对一(每个用户级线程对应一个内核级线程)、多对多。

本节后面还有约 1233 字:报名学员看全文

每门课前 10 节免费看全文;从第 11 节起,完整教程要报名后由顾问在后台为你的账号开通才能看。

题库账号可以直接登录,但第 11 节起的完整教程要报名后由后台开通才能看。

学完练一练

按本节考点从本课的课后练习里抽题(每次 10 道以内),做完看解析、错题自动进错题本。第 11 节起的课后练习报名学员才能练。

本节内容由 AI 辅助编写,配图由 AI 生成,仅供备考参考;考试要求以《全国各类成人高等学校招生考试大纲(2024 年版)》及浙江省教育考试院当年公布为准。

我要提问免费报名咨询