【操作系统原理】03-进程管理之进程同步

一、为什么需要进程间同步?

有一群生产者进程在生产产品,并将这些产品提供给消费者进程进行消费,生产者进程和消费者
进程可以并发执行,在两者之间设置了一个具有n可缓冲区的缓冲池,生产者进程需要将所生产
的产品放到一个缓冲区中,消费者进程可以从缓冲区取走产品消费。
在这里插入图片描述
单两者并发执行时就可能出差错

有五个哲学家,他们的生活方式是交替地进行思考和进餐,哲学家们共同使用一张圆桌,分别坐
在周围的五张椅子上,在圆桌上有五个碗和五支筷子。平时哲学家们只进行思考,饥饿时则试图
取靠近他们的左、右两支筷子,只有两支筷子都被他拿到的时候就能进餐,进餐完毕之后,放下
左右筷子继续思考。

在这里插入图片描述
需要进程间的同步

◆ 根源问题是:彼此相互之间没有通信
◆ “如果生产者通知消费者我已经完成一件生产”
◆ “哲学家向旁边哲学家说我要进餐了”

二、进程间同步的原则

对竞争资源在多进程间进行使用次序的协调

使得并发执行的多个进程之间可以有效使用资源和相互合作

◆ 空闲让进:资源无占用,允许使用
◆ 忙则等待:资源有占用,请求进程等待
◆ 有限等待:保证有限等待时间能够使用资源
◆ 让权等待:等待时,进程需要让出CPU

-----临界资源

临界资源指的是一些虽作为共享资源却又无法同时被多个线程共同访问的共享资源。当有进程在使用临界资源时,其他进程必须依据操作系统的同步机制等待占用进程释放该共享资源才可重新竞争使用共享资源。

-----方法

◆ 消息队列
◆ 共享存储
◆ 信号量

三、线程同步

当多个线程并发使用进程资源时,进程内多线程也需要同步

-----方法

◆ 互斥量
◆ 读写锁
◆ 自旋锁
◆ 条件变量

发布了178 篇原创文章 · 获赞 11 · 访问量 3702

猜你喜欢

转载自blog.csdn.net/ange2000561/article/details/105300596