什么是操作系统中的共享内存?


共享内存系统是进程间通信的基本模型。在共享内存系统中,协作进程通过建立共享内存区域在地址空间区域进行通信。

共享内存的概念基于最快的进程间通信。

如果进程想要发起通信并且有一些数据要共享,则在其地址空间中建立共享内存区域。之后,另一个进程想要进行通信并尝试读取共享数据,则必须附加到发起进程的共享地址空间。

让我们逐步了解共享内存系统的运行状况。

工作原理

在共享内存系统中,协作进程进行通信以相互交换数据。因此,协作进程在其内存中建立一个共享区域。进程通过读取和写入进程共享段中的数据来共享数据。

让我们考虑两个进程来讨论它。下图显示了该图 -

设两个协作进程为 P1 和 P2。两个进程 P1 和 P2 都有它们不同的地址空间。现在假设 P1 想要与 P2 共享一些数据。

因此,P1 和 P2 将必须执行以下步骤 -

步骤 1 - 进程 P1 有一些数据要与进程 P2 共享。首先,P1 采取主动权并在其自己的地址空间中建立一个共享内存区域,并将要共享的数据或信息存储在其共享内存区域中。

步骤 2 - 现在,P2 需要存储在 P1 共享段中的信息。因此,进程 P2 需要附加到 P1 的共享地址空间。现在,P2 可以从那里读取数据。

步骤 3 - 两个进程可以通过读取和写入进程共享段中的数据来交换信息。

优点

共享内存的优点如下 -

  • 共享内存是一种更快的进程间通信系统。

  • 它允许协作进程同时访问相同的数据片段。

  • 它加快了系统的计算能力,并将长任务划分为较小的子任务,并可以并行执行。

  • 在共享内存系统中实现了模块化。

  • 用户可以同时执行多个任务。

更新于:2021-11-30

17K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告