进程间共享内存会存在生产者消费者问题吗?
来源:7-8 进程同步之共享内存

慕UI1199501
2019-10-28
老师之前在讲线程同步时,着重强调了线程同步出现的生产者和消费者问题。之前在6-5“进程管理之进程同步”里老师有提到过:当多进程同时竞争临界资源时,系统会对多进程的使用次序进行协调。
在本节课进程共享内存,共享的内存算是临界资源吗?我的理解是共享内存不算临界资源,而且共同访问内存是我们要刻意实现的一个目标。这种模式和生产者与消费者模式的区别在哪里?
写回答
1回答
-
这是一个不错的问题,有一定的思考,也有自己的理解。
进程间共享内存一样存在生产者消费者问题。
我们说临界资源是相互竞争使用的一种资源,需要加锁以防止并发情况下一致性的问题。
这里共享内存实际上是一种共享资源,当多进程去使用共享内存的时候,是不安全的,如果并发访问,也会导致各种问题,这样的模型本质上和生产者消费者模型是一致的,所以我们使用共享内存的时候,如果面临苛刻的环境,一般也会使用额外的资源去解决同步的问题,但这不妨碍共享内存也是进程通信的一种常见方式,特别是当需要通信的数据量比较大的时候,共享内存拥有广阔的应用场景。
00
相似问题