مروری بر روشهای IPC در لینوکس و تست SharedMemory
بحث IPC یا Inter-Process Communication به روشهایی گفته میشود که از طریق آن دو پروسه میتوانند با یکدیگر اطلاعاتی رد و بدل کرده یا یک رخداد را به اطلاع هم برسانند. برای انجام اینکار متدهای متنوعی در لینوکس وجود دارد که قبلا نیز در مورد Signal پستی منتشر کرده بودم و جزئیات آنرا نمایش داده بودم.
یکی دیگر از روشهای تبادل اطلاعات بین دو پروسه، استفاده از حافظهی مشترک است که در آن فضایی در RAM در نظر گرفته شده و در فضای آدرس مجازی دو پروسه نگاشت میشود که پروسهها در آن اطلاعات مشترک خود را قرار دهند.
برای استفاده از حافظهی مشترک در لینوکس، با استفاده از shm_open درخواست ایجاد فضای مشترک را داده و پس از دریافت یک File Descriptor به کمک mmap حافظهی مورد نیاز را از کرنل لینوکس دریافت میکنیم.
نکتهای که باید به آن توجه کنیم این است که نوشتن چند پروسه به صورت همزمان درفضای مشترک، میتواند ناسازگاری داده ایجاد کند که با استفاده از Semaphore یا روشهای دیگر Synchronization بر اساس نیاز، باید بین پروسهها هماهنگی ایجاد نمود.
در این ویدئو، پس از مرور کوتاهی بر روشهای مختلف IPC به بررسی عمیقتر روش Shared Memory پرداخته و یک کد ساده برای تست آن میزنیم.
لینک ویدئو در یوتیوب:
https://youtu.be/exhJs3RDnN8
لینک ویدئو در آپارات:
https://aparat.com/v/gskav3t
#ShortLinuxInternals #linux #internals #programming #processes #ipc #sharedmemory
بحث IPC یا Inter-Process Communication به روشهایی گفته میشود که از طریق آن دو پروسه میتوانند با یکدیگر اطلاعاتی رد و بدل کرده یا یک رخداد را به اطلاع هم برسانند. برای انجام اینکار متدهای متنوعی در لینوکس وجود دارد که قبلا نیز در مورد Signal پستی منتشر کرده بودم و جزئیات آنرا نمایش داده بودم.
یکی دیگر از روشهای تبادل اطلاعات بین دو پروسه، استفاده از حافظهی مشترک است که در آن فضایی در RAM در نظر گرفته شده و در فضای آدرس مجازی دو پروسه نگاشت میشود که پروسهها در آن اطلاعات مشترک خود را قرار دهند.
برای استفاده از حافظهی مشترک در لینوکس، با استفاده از shm_open درخواست ایجاد فضای مشترک را داده و پس از دریافت یک File Descriptor به کمک mmap حافظهی مورد نیاز را از کرنل لینوکس دریافت میکنیم.
نکتهای که باید به آن توجه کنیم این است که نوشتن چند پروسه به صورت همزمان درفضای مشترک، میتواند ناسازگاری داده ایجاد کند که با استفاده از Semaphore یا روشهای دیگر Synchronization بر اساس نیاز، باید بین پروسهها هماهنگی ایجاد نمود.
در این ویدئو، پس از مرور کوتاهی بر روشهای مختلف IPC به بررسی عمیقتر روش Shared Memory پرداخته و یک کد ساده برای تست آن میزنیم.
لینک ویدئو در یوتیوب:
https://youtu.be/exhJs3RDnN8
لینک ویدئو در آپارات:
https://aparat.com/v/gskav3t
#ShortLinuxInternals #linux #internals #programming #processes #ipc #sharedmemory
YouTube
IPC and Shared Memory in Linux [PER]
بحث IPC یا Inter-Process Communication به روشهایی گفته میشود که از طریق آن دو پروسه میتوانند با یکدیگر اطلاعاتی رد و بدل کرده یا یک رخداد را به اطلاع هم برسانند. برای انجام اینکار متدهای متنوعی در لینوکس وجود دارد که قبلا نیز در مورد Signal پستی منتشر…
❤12👍3