1、为什么需要进程间同步
生产者消费者问题
上述过程,若并发执行就会出现缓冲区数据出错
哲学家进餐问题
“哲学家进餐问题中会发生极端情况,所有哲学家都饿死,也就是所有进程都陷入等待状态”
进程间同步解决生产者消费者、哲学家进餐问题
“生产者消费者问题”以及“哲学家进程问题”的根源问题是:彼此相互之间没有通信。若生产者通知消费者我已经完成一件产品生产
,哲学家向旁边的哲学家说我要进餐了你们别拿我的筷子
,那么就不会发生上述的缓冲区数据错误以及哲学家全部饿死的情况。
因此需要进程间的同步。
进程间同步的根源需求:
1、对竞争资源在多个进程间进行使用次序的协调(比如先让第一个哲学家吃,再让第二个哲学家吃);
2、使得并发执行的多个进程之间可以有效使用资源和相互合作;
2、进程间同步的原则
临界资源:
临界资源指的是一些虽作为共享资源却又无法同时被多个线程共同访问的共享资源。
当有进程在使用临界资源时,其他进程必须依据操作系统的同步机制等待占用进程释放该共享资源才可重新竞争使用共享资源。
进程间同步的四原则:
1、空闲让进:资源无占用,允许使用
临界资源无占用,操作系统应该允许某进程使用临界资源
2、忙则等待:资源有占用,请求进程等待
如果有进程占用了临界资源,此时要防止其他要使用资源的进程继续使用资源,应该让其他进程等待,等占用进程释放,其他进程才可继续使用
3、有限等待:保证有限等待时间能够使用资源
保证等待进程在有限时间内能够使用资源,避免进程僵死
4、让权等待:等待时,进程需要让出CPU
当外面需要等待的进程等待时,等待进程应该让出CPU
进程间同步方法:
1、消息队列
2、共享存储
3、信号量
3、线程同步
多个线程并发使用进程资源时,也会发生生产者消费者问题,所以进程内多线程也需要同步。文章来源:https://www.toymoban.com/news/detail-425436.html
线程同步方法:
1、使用互斥量(保证多线程能够互斥的使用临界资源的锁)
2、读写锁(应对多读少写,或者多写少读的情况发明的锁)
3、自旋锁
4、条件变量文章来源地址https://www.toymoban.com/news/detail-425436.html
到了这里,关于操作系统:4、进程管理之进程同步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!