Skip to Sidebar Skip to Content
اقرأ-تك اقرأ-تك
ضيفنا الكريم

  • قائمة القراءة
  • تسجيل الدخول
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©

Interprocess Communication - Shared Memory

  • Mahmoud Youssef by Mahmoud Youssef
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • •
  • 22 Jan, 2025
  • •
  • 1 min read
  • Share on X
  • Share on Facebook
  • Share on LinkedIn
  • Share on Pinterest
  • Email
Interprocess Communication - Shared Memory
  • Operating Systems
  • Computer Science
  • Backend

مقدمة

في المقال ده هنتناول كيفية تحقيق تواصل فعال بين الـ Concurrent Tasks ، وازاي نختار النوع المناسب لتطبيقاتنا، وكمان هنتعرف على نمط شائع في بناء الـ Concurrent Applications ألا وهو الـ Thread Pool.

زي ما ذكرنا في الـ Building Blocks احنا دايمًا مش بايدينا إننا نضمن إن الـ Concurrent Tasks تكون Independent عن بعضها ولكن احنا بنسعى لده ، وغالبًا ما هيكون فيه جزء في التطبيق بيعتمد على نتيجة Task تانية عشان يسلموا بعض فغالبًا التواصل بين المهام دي هيكون مهم وضروري في تنفيذ التطبيق بتاعنا.

اتكلمنا في بداية السلسلة عن الـ Building Blocks في أي Concurrent Application وهم الـ Process والـ Thread نقدر نشوفهم من هنا الأول:


أنواع التواصل

التواصل بين الـ Tasks أو المهام في أي Concurrent Program هو جوهر الموضوع لإنه لو متمش بشكل سليم فالمكاسب الناتجة من الموضوع هتكون عديمة الفايدة ، والـ OS بيوفر آليات بتسمح للـ Process والـ Threads من إنها تتواصل وتنسق بينها وبين بعض والآليات دي هي اللي بتعرف بالـ Interprocess Communication أو الـ IPC.

وفيه أكتر من نوع للـ Interprocess Communication وأكتر أنواع الـ IPC شيوعًا هم طريقتين ألا وهم الـ

  • الـ Shared Memory
  • الـ Message Passing

التواصل من خلال الـ Shared Memory

أبسط طريقة للتواصل بين المهام هي استخدام الـ Shared Memory ، وده لإنها بتسمح للمهام بإنهم يتواصلوا من بعض ويتشاركوا المعلومات من خلال الـ Virtual Address Space ويكأنهم بيقرأوا ويكتبوا في Local Variables موجودة في الـ Address Space.

فبالشكل ده أي تغييرات بتعملها Process أو Thread بتنعكس بشكل فوري على التانيين بدون تدخل الـ Operating System.

Interprocess Communication - Shared Memory

مثال من الواقع

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

فالتلاجة هنا كانت هي بمثابة الـ Shared Memory وانت وأصدقائك بمثابة المهام الي محتاجة تتواصل مع بعضها من خلال تخزين الـ Shared Data اللي هي في الحالة دي الشوكولاتة.


مزايا الـ Shared Memory

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن وتصفح كافة المقالات المميزة واستمتع بمحتوى حصري وابق على اطلاع دائم بالتحديثات المستمرة.

اشترك الآن 🚀

هل لديك حساب؟ تسجيل الدخول

في هذا المقال
اشترك الآن واكمل قراءة المقال
قناة اقرأ-تِك على التليجرام قناة اقرأ-تِك على التليجرام

اشترك الآن بنشرة اقرأ‑تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!

مقالات ذات صلة

  • Concurrency Building Blocks (Threads) 1 min read

    Concurrency Building Blocks (Threads)

    Mahmoud Youssef Mahmoud Youssef • 9 Jan, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Concurrency Building Blocks (Process) 2 min read

    Concurrency Building Blocks (Process)

    Mahmoud Youssef Mahmoud Youssef • 5 Jan, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Process Scheduling 2 min read

    Process Scheduling

    Mahmoud Youssef Mahmoud Youssef • 15 Sep, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Deadlock vs. Starvation 1 min read

    Deadlock vs. Starvation

    Mahmoud Youssef Mahmoud Youssef • 7 Jul, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Process Management 1 min read

    Process Management

    Mahmoud Youssef Mahmoud Youssef • 25 Jun, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Program vs Process vs Thread 1 min read

    Program vs Process vs Thread

    Mahmoud Youssef Mahmoud Youssef • 12 Jun, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Concurrency vs Parallelism 1 min read

    Concurrency vs Parallelism

    Mahmoud Youssef Mahmoud Youssef • 5 Jun, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How to Choose The Idea Threadpool Size 2 min read

    How to Choose The Idea Threadpool Size

    Mahmoud Youssef Mahmoud Youssef • 8 May, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©