دانلود با لینک مستقیم و پر سرعت .
پاورپوینت سیستم عامل در 30 اسلاید شامل بخش های زیر می باشد:
Interprocess Communication
Process
(Disabling interrupts) غیر فعال نمودن وقفه ها
(Lock Variables) استفاده از متغیرهای قفل
(Strict Alternation) تناوب قطعی
دستورالعمل TSL (Test and Set Lock)
خوابیدن و بیدار کردن (Sleep and Wakeup )
سمافورها (Semaphores)
Monitor ها
Message Passing
حل مساله Producer-Consumer با استفاده از Message Passing
Interprocess Communication
اغلب نیاز است که یک پردازش با پردازشهای دیگر بتواند ارتباط داشته باشد . به عنوان مثال Shell Pipeline یا پوسته سیستم عامل بصورت پردازشهای متوالی پیاده سازی شده است . خروجی Process اول باید به Process دوم داده شود و . . . .
بنابراین نیاز است که پردازشها بتوانند با یک روش دارای ساختار مناسب با هم Communicate داشته باشند . حالا می خواهیم به برخی موضوعات مربوط به این ارتباط میان پردازشی Interprocess Communication (IPC) بپردازیم .
چند موضوع باید بحث شود :
1- چگونه یک Process می تواند اطلاعاتی را به Process دیگر انتقال دهد ؟
2- چگونه مطمئن شویم دو یا چند پروسس مزاحم همدیگر نمیشوند. مثلا هر دو نمی خواهند در یک فضای حافظه بنویسند.
3- وقتی پردازشها وابستگیهایی نسبت به هم دارند، دنباله صحیح پروسسها چگونه است.
Process i
.
.
.
next_free_slot = in
sd[next_free_slot]=filename i
in = next_free_slot +1
.
.
.
علت رخ دادن اشکال در مثال بالا این است که پروسس B استفاده از یکی از متغیرهای مشترک را زمانی شروع می کند که پروسس A هنوز کارش را با آن متغیر مشترک تمام نکرده است .
انتخاب Primitive (عمل اولیه) مناسب برای دستیابی به Mutual Exclusion یک موضوع مهم طراحی در هر سیستم عاملی است و موضوعی است که بطور دقیق با جزئیات به آن می پردازیم .
مسئله اجتناب از شرایط مسابقه بطور انتزاعی می تواند مطرح شود .
- برخی زمانها Process مشغول Computing (محاسبات) داخلی خودش و کارهای دیگری است که به شرایط مسابقه منجر نمی شود .
-برخی زمانهایک پردازش ممکن است در حال دستیابی به فایل یا حافظه مشترک یا کارهای بحرانی دیگری باشد که منجر به شرایط مسابقه می شود .
تعریف : بخشی از برنامه که طی آن Shared Memory (حافظه مشترک) مورد دستیابی قرار می گیرد Critical region (ناحیه بحرانی) یا Critical Section (بخش بحرانی) نامیده می شود .
اگر بتوانیم کاری کنیم که هیچ دو پردازشی همزمان در بخشهای بحرانی خود نباشند میتوانیم از شرایط مسابقه جلوگیری کنیم .