首页 > 试题广场 >

下面有关共享内存,说法不正确的是?

[单选题]
下面有关共享内存,说法不正确的是?
  • 共享内存和使用信号量一样,属于进程间通信的一种方式。
  • 使用shmget函数来创建共享内存
  • 尽管每个进程都有自己的内存地址,不同的进程可以同时将同一个内存页面映射到自己的地址空间中,从而达到共享内存的目的
  • 共享内存提供了同步机制,在第一个进程结束对共享内存的写操作之前,会有自动机制可以阻止第二个进程开始对它进行读取
推荐
答案:选D
共享内存并未提供同步机制,当某一个进程对共享内存提供写操作时,并未自动的阻止另一个进程对它进行读取;
共享内存:就是允许多个进程访问同一内存空间,进程间传递和共享数据非常有效
信号量:为了防止多个进程访问共享资源而造成冲突,设置临界区域每次只让一个进程访问,信号量提供了这样一种机制,用来控制对临界区域的访问
编辑于 2014-12-30 23:25:11 回复(3)
炫头像
共享内存:顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。
特别提醒:共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取。所以我们通常需要用其他的机制来同步对共享内存的访问,例如前面说到的信号量。
参考自:http://blog.csdn.net/ljianhui/article/details/10253345
发表于 2016-01-10 14:12:26 回复(0)
共享内存并没有提供同步机制。为了防止冲突,用信号量的方式来控制访问临界区的资源!
发表于 2016-07-07 15:33:09 回复(0)
共享内存:作为一种共享资源,就是可以让大家来一起访问的。只是我们为了防止出现数据冒险,会使用一些锁机制,比如自旋锁、读写锁,还有信号量,来使得这一共享资源在有的时候(大家都是读)可以一起访问,而在写操作的时候,会互斥,只让一个写操作运行。
发表于 2020-03-16 11:11:00 回复(0)
特别提醒:共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取。所以我们通常需要用其他的机制来同步对共享内存的访问,例如前面说到的信号量。
发表于 2018-06-23 17:50:02 回复(0)
共享内存并未提供同步机制
发表于 2018-03-18 09:27:55 回复(0)
共享内存并未提供同步机制
发表于 2017-10-10 21:57:01 回复(0)
共享内存并没有提供同步机制。为了防止冲突,用信号量的方式来控制访问临界区的资源!
发表于 2017-04-20 08:52:53 回复(0)
关于A,信号量不是实现进程同步的吗,跟进程通信有什么关系?
发表于 2016-08-12 10:10:58 回复(0)
事件是什么?
发表于 2015-03-26 12:52:48 回复(0)