لینک دانلود و خرید پایین توضیحات
دسته بندی : پاورپوینت
نوع فایل : .ppt ( قابل ویرایش و آماده پرینت )
تعداد اسلاید : 51 اسلاید
قسمتی از متن .ppt :
هماهنگی پردازه ها (Process Synchronization)
فهرست:
پیش زمینه
مساله ناحیه بحرانی
راه حل پترسون
سخت افزار همزمان سازی
سمافور
مسائل کلاسیک همزمان سازی
مانیتور
اهداف
تعریف ناحیه بحرانی
ارائه راه حل های سخت افزاری و نرم افزاری جهت رفع مشکل ناحیه بحرانی
پیش زمینه
دسترسی همزمان به داده های مشترک ممکن است باعث شود که ناسازگاری داده به وجود آید.
سازگاری داده نیازمند مکانیزمی برای اطمینان از اجرای صحیح فرآیندهای همکار است.
فرض کنید می خواهیم راه حلی برای مسئله تولید کننده – مصرف کننده فراهم کنیم به طوری که از تمام ظرفیت بافر استفاده شود. یک راه حل این است که یک شمارنده از نوع عدد صحیح با مقدار اولیه صفر استفاده کنیم که میزان موجودی بافر را مشخص کند. هر بار که یک داده به بافر اضافه می شود، این شمارنده یک واحد افزایش پیدا می کند و هر بار که یک داده از بافر حذف می شود، یک واحد از شمارنده کاسته می شود.
شرایط رقابتی (Race Condition)
counter++ می تواند به صورت زیر پیاده سازی شود:
counter- - می تواند به صورت زیر پیاده سازی شود:
فرض کنید مقدار اولیه counter برابر 5 باشد و دو دستور بالا همزمان اجرا شوند. یک حالت ممکن است:
S0: producer execute register1 = counter {register1 = 5}
S1: producer execute register1 = register1 + 1 {register1 = 6}
S2: consumer execute register2 = counter {register2 = 5}
S3: consumer execute register2 = register2 - 1 {register2 = 4}
S4: producer execute counter = register1 {counter = 6 }
S5: consumer execute counter = register2 {counter = 4}
مسئله ناحیه بحرانی
فرض کنید یک سیستم دارای n فرآیند بصورت {p0, p1, … pn-1} باشد.
کد مربوط به هر فرآیند دارای قسمتی به نام ناحیه بحرانی می باشد.
فرآیند ها ممکن است اقدام به تغییر متغیرهای سراسری ویا به روزرسانی جدول ها و یا نوشتن فایل کنند.
هنگامی که یک فرآیند در حال اجرا در ناحیه بحرانی است، به هیج فرآیند دیگری نباید اجازه داد که به ناحیه بحرانی اش وارد شود.
هدف این است که یک سری پروتکل (قرارداد) را طوری طراحی کنیم که فرآیند ها به کمک آنها با هم همکاری داشته باشند
هر فرآیند باید در قسمتی به نام ناحیه ورودی درخواست مجوز برای ورود به ناحیه بحرانی دهد.
ممکن است پس از اتمام ناحیه بحرانی کدی به نام ناحیه خروجی را اجرا کند
و در ادامه بخش باقیمانده کد را اجرا کند