ذاكرة مشتركة

الذاكرة المشتركة هي ذاكرة يمكن لعدة برمجيات الوصول إليها في نفس الوقت بغية التواصل فيما بينها أو تفادي تكرار النسخ. البرمجيات قد تشتغل في أوساط مختلفة كأن تعمل على معالج واحد أو عدة معالجات. كما أن استعمال الذاكرة للتواصل يمكن أن يكون داخل برنامج واحد يدير عدة خيوط.

 في العتاد 
في عتاد الحواسيب، يشار بالذاكرة المشتركة إلى الذاكرة العشوائية التي يمكن لوحدات معالجة عدة الوصول إليها في نظام حاسوبي متعدد المعالجات.
نظام ذاكرة مشتركة سهل التطبيق لحد ما، ما دام أن كل المعالجات تشترك رؤية واحدة للبيانات كما أن التواصل فيما بينها سيكون سريع بسرعة الوصول للذاكرة، وبذلك تعد وسيلة فعالة في تمرير البيانات بين العمليات،

المشكلة الرئيسية مع الذاكرة المشتركة هو أن المعالجات تريد الوصول بسرعة عالية للذاكرة فتلجأ لاستعمال مخازن ذاكرة الأمر الذي ينتج عنه مشكلتين فرعيتين :
 الاتصالات بين المعالجات والذاكرة تصبح عنق الزجاجة. الحواسيب بذاكرة مشتركة لا تتناسب جيدا. فمعظمها يملك ما يقارب العشر معالجات.
 مصداقية مخزن الذاكرة : في حال إذا قام معالج أو عملية بتعديل الذاكرة، فيجب أن يمس التغيير كل المعالجات الأخرى التي تحتفظ بنفس البيانات المعدلة وإلا فإن البيانات ستكون مختلفة حسب مخازن المعالجات. ويمكن لبرتوكولات مصداقية التخزين منح كفاءة عالية في الوصول للبيانات المشتركة وقد تصل بوضع الكفاءة إلى عنق الزجاجة.

كبدائل للذاكرة المشتركة ترشح الذاكرة الموزعة والذاكرة المشتركة الموزعة. لكليهما مجموعة من المشاكل المماثلة.

 في البرمجيات 
بالنسبة للبرمجيات، الذاكرة المشتركة هي:
 وسيلة للاتصالات بين العمليات (inter-process communication) أي طريقة لتبادل البيانات بين البرمجيات الجاري تنفيذها. كل عملية تستخدم مساحة من الذاكرة بحيث يمكن لعمليات أخرى الوصول إليها أو
 وسيلة للحفاظ على مساحة من الذاكرة بتوجيه كل محاولة للوصول إليها إلى ما يكون عادة نسخ من البيانات، باستعمال خريطة ذاكرة افتراضية أو سند واضح للبرمجية المعنية. وهو الأمر الأكثر استعمال في المكتبات البرمجية المشتركة.

 مراجع 

 وصلات خارجية 
 Shared Memory Allocation
 Shared Memory Interface
 Shared Memory Library FAQ by Márcio Serolli Pinho
 Shared Memory Block FIFO Pipe Implementation Library
 Article "IPC:Shared Memory" by Dave Marshall
 shared memory facility from the Single UNIX® Specification
 shm_open - POSIX
 shmop - documentation from SunOS 5.9
 CreateSharedMemory function from Win32-SDK
 Functions in PHP-API
 Paper "A C++ Pooled, Shared Memory Allocator For The Standard Template Library" by Marc Ronell
 Citations from CiteSeer
 Linux Shared Memory Allocation with example 

تصنيف:اتصال بين العمليات
تصنيف:إدارة الذاكرة
تصنيف:معمارية الحوسبة الموزعة
تصنيف:حوسبة متزامنة
تصنيف:حوسبة متوازية
تصنيف:معمارية الحاسوب