
در مطلب قبلی در مورد بن بست ها، مسائل مربوط به آن و مزایا و معایت آنها بحث شد.
در این مطلب قصد داریم تا به ادامه بحث قبلی (بن بست در هم زمانی سیستم های عامل) بپردازیم.
ترمیم : (بعد از کشف بن بست)
– قطع تمام فرآیندهای بن بست
– برگشت هر یک از فرآیندهای بن بست به نقطه قبل از آن
– قطع پی در پی بن بست تا جایی که بن بستی وجود نداشته باشد.
– قبضه کردن منابع تا جایی که بن بستی وجود نداشته باشد.
راهبرد مجتمع برای بن بست :
– تقسیم بندی منابع در تعدادی از گروه های مختلف
– استفاده از راهبرد مرتب سازی خطی
– استفاده از مناسب ترین الگوریتم
به عنوان مثال استفاده از بهترین الگوریتم :
– فضای قابل مبادله : بلوک هایی از حافظه ثانویه برای استفاده در مبادله فرآیند
– منابع فرآیند : دستگاه های قابل تخصیص
– حافظه اصلی : حافظه قابل تخصیص به فرآیندها
– منابع داخلی : مثل کانال های ورودی و خروجی
* مسائل اصلی بن بست گرسنگی را تشریح می کند.
راهکارهای هم زمانی در unix :
– لوله ها :
یکی از مهم ترین کمک های unix به ایجاد و توسعه سیستم های عامل است.
بر اساس مدل تولید کننده و مصرف کننده با هم ارتباط برقرار می کند.
صف خروجی به ترتیب ورودی است. دو نوع لوله بی نام و با نام وجود دارد.
– پیام ها :
بلوکی از متن به همراه یک نوع است.
از فراخوان سیستمی msgsnd و msgrcv برای فرآیندهای درگیر در تبادل پیام استفاده می کنند.
– حافظه مشترک :
سریعترین شکل ارتباطی بین فرآیندهاست.
بلوکی از حافظه مجازی است که توسط فرآیندهای متعدد، مورد اشتراک قرار می گیرد.
– راهنماها :
از اولیه های wait و signal است.
عملیات متعددی به صورت هم زمان اجرا میشود. یک راهنما شامل عناصر زیر است:
1- مقدار جاری راهنما
2- شناسه
3- تعداد فرآیندهای منتظر مقدار راهنما از مقدار جاری آنها بزرگ تر باشد.
4- تعدا فرآیندهای منتظر، مقدار راهنمای آنها صفر باشد.
– علائم :
یک راهکار نرم افزاری است که از بروز یک حادثه نا به هنگام خبر میدهد.
اولیه های همگام سازی نخ در solaris :
– قفل های انحصار متقابل : از پیشرفت یک نخ جلوگیری میکند.
– راهنماها : راهنماهای شمارنده کلاسیک را ارائه میدهد.
– قفل های چند خواننده و یک نویسنده :
اجازه میدهد نخ های متعدد هم زمان به شیئی که تحت حفاظت است، فقط دسترسی خواندنی داشته باشد.
– متغیر های شرط : برای انتظار تا برقراری شرط خاص
راهکارهای هم زمانی در windows NT :
– فرآیند : احضار یک برنامه
– نخ : موجودیت قابل اجرا
– پرونده : نمونه پرونده باز
– ورودی میز کار : یک میانگیر صفحه نمایش متنی
– اعلام تغییر پرونده : تغییر سیستم پرونده
– Mutex (انخصار متقابل)
– راهنما : شمارنده تعدا نخ های برنامه را تنظیم میکند.
– حادثه : یک حادثه سیستمی اتفاق افتاده است.
– زمان سنج قابل انتظار : شمارنده برای ثبت گذشت زمان
سعی کردیم مبحث بن بست در سیستم های عامل را در دو بخش بررسی کنیم.
ما را از انتقادات و پیشنهادات خود مطلع سازید.
این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست بهروزرسانیهای سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال میشیم به ما اطلاع بدهید.