سیستم عامل
درس متنی
جلسه 7 بنبست، شرایط بروز بنبست،
بازگرداندن سیستم به وضعیت قبلی (Rollback): سیستم به یک نقطه بازگردانده میشود که در آن بنبست رخ نداده بود. این کار با استفاده از Checkpoint ها انجام میشود.
خلاصه نکات کلیدی
بنبست زمانی رخ میدهد که فرآیندها به طور متقابل منتظر منابع یکدیگر باشند.
چهار شرط اساسی برای بنبست: انحصار متقابل، نگه داشتن و انتظار، عدم پیشدستی، و انتظار چرخشی.
روشهای اجتناب (مانند الگوریتم بانکدار) قبل از تخصیص منابع، وضعیت امن را بررسی میکنند.
روشهای جلوگیری با حذف یکی از شروط چهارگانه، از وقوع بنبست ممانعت میکنند.
روشهای تشخیص پس از وقوع بنبست، آن را شناسایی میکنند (مثلاً با گراف تخصیص منابع).
روشهای بازیابی پس از تشخیص بنبست، سیستم را از این وضعیت خارج میکنند (مانند خاتمه فرآیند یا Rollback).
مقدمه: بنبست چیست؟
- تیتر: تعریف بنبست و مفهوم آن در سیستمهای عامل
- توضیح: بنبست وضعیتی در سیستمهای کامپیوتری است که در آن مجموعهای از فرآیندها (Processes) در انتظار منابعی هستند که توسط فرآیندهای دیگر در همان مجموعه گرفته شدهاند. این وضعیت منجر به توقف کامل اجرای فرآیندها و عدم پیشرفت سیستم میشود.
۲. شرایط لازم برای بروز بنبست (Coffman Conditions)
- تیتر: چهار شرط اساسی برای وقوع بنبست
- توضیح: برای اینکه بنبست رخ دهد، باید هر چهار شرط زیر به طور همزمان برقرار باشند:
- انحصار متقابل (Mutual Exclusion): حداقل یک منبع باید به صورت غیرقابل اشتراک (non-sharable) باشد، یعنی در یک لحظه فقط یک فرآیند میتواند از آن استفاده کند.
- نگه داشتن و انتظار (Hold and Wait): فرآیندی حداقل یک منبع را در اختیار دارد و منتظر منابع دیگری است که توسط فرآیندهای دیگر نگهداری میشوند.
- عدم پیشدستی (No Preemption): منابع نمیتوانند به اجبار از فرآیندی گرفته شوند؛ تنها راه آزادسازی منبع، خاتمه داوطلبانه فرآیند توسط خود آن است.
- انتظار چرخشی (Circular Wait): مجموعهای از فرآیندها {P0, P1, …, Pn} وجود دارند به طوری که P0 منتظر منبعی است که توسط P1 نگهداری میشود، P1 منتظر منبعی است که توسط P2 نگهداری میشود، …، Pn منتظر منبعی است که توسط P0 نگهداری میشود.
۳. روشهای اجتناب از بنبست (Deadlock Avoidance)
- تیتر: استراتژیهای پیشگیرانه برای جلوگیری از ورود سیستم به وضعیت بنبست
- توضیح: در این روشها، سیستم قبل از تخصیص منابع، وضعیت امن (Safe State) بودن سیستم را بررسی میکند. اگر تخصیص منبع منجر به وضعیت ناامن شود، درخواست تخصیص رد میشود.
- الگوریتم تخصیص امن (Banker’s Algorithm): این الگوریتم با داشتن اطلاعات حداکثر منابع مورد نیاز هر فرآیند، وضعیت امن را تشخیص داده و از وقوع بنبست جلوگیری میکند.
۴. روشهای جلوگیری از بروز بنبست (Deadlock Prevention)
- تیتر: راهکارهای قطع یکی از شرایط چهارگانه بنبست
- توضیح: این روشها با حذف یکی از شروط لازم برای بنبست، از وقوع آن جلوگیری میکنند.
- حذف انحصار متقابل: این شرط معمولاً قابل حذف نیست، مگر در مواردی که منابع به صورت اشتراکی قابل استفاده باشند (مانند فایلهای خواندنی).
- حذف نگه داشتن و انتظار:
- روش اول: فرآیندها باید تمام منابع مورد نیاز خود را به صورت یکجا درخواست کنند. اگر تمام منابع در دسترس نباشند، هیچ منبعی تخصیص داده نمیشود.
- روش دوم: فرآیندها فقط در صورتی میتوانند منبعی را درخواست کنند که هیچ منبع دیگری در اختیار نداشته باشند.
- حذف عدم پیشدستی: در این روش، سیستم اجازه میدهد منابع از فرآیندها گرفته شوند (Preempt). اگر فرآیندی منتظر منبعی باشد که توسط فرآیند دیگری نگهداری میشود، و آن فرآیند منابع دیگری دارد، سیستم میتواند آن منابع را گرفته و به فرآیند منتظر بدهد.
- حذف انتظار چرخشی: با تعیین یک ترتیب کلی برای درخواست منابع و الزام فرآیندها به رعایت این ترتیب، از ایجاد چرخه انتظار جلوگیری میشود.
۵. روشهای تشخیص بنبست (Deadlock Detection)
- تیتر: شناسایی وضعیت بنبست پس از وقوع آن
- توضیح: در این روشها، سیستم به طور دورهای وضعیت منابع و فرآیندها را بررسی میکند تا بنبست را تشخیص دهد. پس از تشخیص، باید مکانیزمی برای بازیابی از بنبست پیادهسازی شود.
- الگوریتم تشخیص بنبست: با استفاده از گراف تخصیص منابع (Resource Allocation Graph)، بنبست تشخیص داده میشود. وجود چرخه در گراف، نشاندهنده بنبست است.
۶. روشهای بازیابی از بنبست (Deadlock Recovery)
- تیتر: راهکارهای خارج کردن سیستم از وضعیت بنبست
- توضیح: پس از تشخیص بنبست، یکی از روشهای زیر برای بازیابی به کار گرفته میشود:
- خاتمه دادن به یک یا چند فرآیند:
- خاتمه دادن به تمام فرآیندهای درگیر در بنبست: سادهترین راه، اما با اتلاف زیاد کار.
- خاتمه دادن به یک فرآیند در هر بار: انتخاب فرآیندی که کمترین هزینه را دارد (مثلاً کمترین اولویت، کمترین منابع تخصیص یافته، کمترین میزان کار انجام شده).
- بازگرداندن سیستم به وضعیت قبلی (Rollback): سیستم به یک نقطه بازگردانده میشود که در آن بنبست رخ نداده بود. این کار با استفاده از Checkpoint ها انجام میشود.
خلاصه نکات کلیدی
- بنبست زمانی رخ میدهد که فرآیندها به طور متقابل منتظر منابع یکدیگر باشند.
- چهار شرط اساسی برای بنبست: انحصار متقابل، نگه داشتن و انتظار، عدم پیشدستی، و انتظار چرخشی.
- روشهای اجتناب (مانند الگوریتم بانکدار) قبل از تخصیص منابع، وضعیت امن را بررسی میکنند.
- روشهای جلوگیری با حذف یکی از شروط چهارگانه، از وقوع بنبست ممانعت میکنند.
- روشهای تشخیص پس از وقوع بنبست، آن را شناسایی میکنند (مثلاً با گراف تخصیص منابع).
- روشهای بازیابی پس از تشخیص بنبست، سیستم را از این وضعیت خارج میکنند (مانند خاتمه فرآیند یا Rollback).
دروس متنی
#1
جلسه 1 وظایف سیستمعامل، انواع سیستم عامل
#2
جلسه 2 تعریف برنامه، پردازش، کار، وظیفه، حالات پردازش
#3
جلسه 3 انواع زمان بندي (انحصاري و غیر انحصاري)، الگوریتم هاي زمان بندي ،(Round Robin ،FCFS (MLFQ ،MLQ،Priority ،HRN ،SRT ،SJF -
#4
جلسه 4 الگوریتمهاي تخصیص حافظه (Fit ،Best Fit ،Next Fit ،Fisrt Fit )
#5
جلسه 5 روشهاي تخصیص فضا در دیسک پیوسته و ناپیوسته مزایا و معایب
#6
جلسه 6تعریف صفحه و الگوریتمهاي جایگزیني صفحه
#7
جلسه 7 بنبست، شرایط بروز بنبست،
مشاهده دروس کامل
بررسی صفحه یادگیری دوره