同步与互斥
| 项目 | 内容 |
|---|---|
| 来源 | 录播 |
| 章节 | 第三章-操作系统基础 |
| 标签 | 讲义 |
| 页数 | 6 |
| 总字数 | 904 |
| 原始课件 | 基础录播课/第三章-操作系统基础/同步与互斥.pdf |
本文由课件自动整理,页内文字按原始讲义阅读顺序还原;
[图]表示该位置存在图示,图示内容请对照原始课件查看。
目录
- 第 1 页 · N E W P L A N
- 第 2 页 · [图]
- 第 3 页 · 进程管理-同步与互斥
- 第 4 页 · 进程管理-信号量
- 第 5 页 · 进程管理-生产者和消费者
- 第 6 页 · T H E E N D
第 1 页 · N E W P L A N
软考高级架构师
一
段
新
征
程
第 2 页 · [图]
提示:本页以图示为主,下列文本为图中标注文字。
大纲介绍
第 3 页 · 进程管理-同步与互斥
互斥:指多个进程只能互斥地访问某个资源(即临界资源),即只有一个进程可以访问该资源,其他进程必须
等待。互斥可以防止多个进程同时访问同一个资源,从而避免数据损坏和程序崩溃。如打印机、公共厕所。
临界资源:各进程间需要以互斥方式对其进行访问的资源。
互斥信号量:对临界资源采用互斥访问,实现进程的互斥,使用互斥信号量后其他进程无法访问,其值只能
为0或1。比如厕所的门锁有两个状态:打开和关闭。当门锁打开时,表示厕所空闲,可以进入。当门锁关
闭时,表示厕所有人使用,其他人需要等待。门锁就像是互斥信号量,它表示厕所的使用状态。人就像是进
程,他们需要获取门锁才能使用厕所。
同步:指多个进程之间互相协调,以确保它们按照一定的顺序执行。同步可以防止进程之间出现竞争和冲突,
从而提高程序的正确性和效率;比如多个人一起做某件事情
同步信号量:是一种用于实现进程同步的工具。它是一个共享变量,可以用来表示资源的数量。比如餐厅里
的餐桌数量有限,当顾客来吃饭时,如果餐桌空闲,则可以直接坐下。如果餐桌都满了,则顾客需要等待,
餐桌就像是同步信号量,它表示餐桌的数量。顾客就像是进程,他们需要获取餐桌才能吃饭。
第 4 页 · 进程管理-信号量
P操作:申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态
(因为无可用资源),并将其插入阻塞队列。
V操作:释放资源,S=S+1,若S>0,代表此时资源有空余,没有阻塞的进程,则该进程继续执行;若
S<=0,代表此时线程在被阻塞,所以需要从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺
少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。
[图]
第 5 页 · 进程管理-生产者和消费者
经典问题:生产者和消费者的问题
三个信号量:互斥信号量S0(仓库独立使用权),同步信号量S1(仓库空闲位置),同步信号量S2(仓库商
品个数)。
生产者流程:
消费者流程:
生产一个商品S
P(S0)
P(S0)
P(S2)
P(S1)
取出一个商品
将商品放入仓库中
V(S1)
V(S2)
V(S0)
V(S0)
第 6 页 · T H E E N D
功不唐捐,玉汝于成!
开
启
新
征
程