همزمانی: بن بست و گرسنگی

Slides:



Advertisements
Similar presentations
1 Concurrency: Deadlock and Starvation Chapter 6.
Advertisements

DEADLOCK. Contents  Principles of deadlock  Deadlock prevention  Deadlock detection.
Chapter 7: Deadlocks.
Lecture 11 “Banker ’ s algorithm”.  Multiple instances.  Each process must a priori knowledge claim maximum use.  When a process requests a resource.
Deadlocks CS 3100 Deadlocks1. The Deadlock Problem A set of blocked processes each holding a resource and waiting to acquire a resource held by another.
1 Wednesday, June 28, 2006 Command, n.: Statement presented by a human and accepted by a computer in such a manner as to make the human feel that he is.
02/19/2008CSCI 315 Operating Systems Design1 Deadlock Notice: The slides for this lecture have been largely based on those accompanying the textbook Operating.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 7: Deadlocks.
What we will cover…  The Deadlock Problem  System Model  Deadlock Characterization  Methods for Handling Deadlocks  Deadlock Prevention  Deadlock.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Deadlocks.
System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention, Avoidance, and Detection Recovering from Deadlock Combined Approach.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks Modified.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks.
Cosc 4740 Chapter 6, Part 4 Deadlocks. The Deadlock Problem A set of blocked processes each holding a resource and waiting to acquire a resource held.
CHAPTER 8: DEADLOCKS System Model Deadlock Characterization
Operating Systems (CS 340 D) Princess Nora University Faculty of Computer & Information Systems Computer science Department.
CS6502 Operating Systems - Dr. J. Garrido Deadlock – Part 2 (Lecture 7a) CS5002 Operating Systems Dr. Jose M. Garrido.
 The Deadlock Problem  System Model  Deadlock Characterization  Methods for Handling Deadlocks  Deadlock Prevention  Deadlock Avoidance  Deadlock.
Chapter 7: Deadlocks. 7.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 7: Deadlocks System Model Deadlock Characterization Methods.
Deadlocks Dec 11, 2007 CPE Operating Systems
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Lecture 7 Operating Systems.
Operating Systems Unit VI Deadlocks and Protection Department of Computer Science Engineering and Information Technology.
Chap 7 Deadlocks. Chapter Objectives To develop a description of deadlocks, which prevent sets of concurrent processes from completing their tasks To.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 6 Deadlocks Slide 1 Chapter 6 Deadlocks.
Deadlock A deadlock is a situation wherein two or more competing actions are waiting for the other to finish, and thus neither ever does. Example : “When.
Deadlocks CPE Operating Systems
Deadlock. Examples You can't get a job without experience; you can't get experience without a job. A set of blocked processes each holding a resource.
Chapter 7: Deadlocks. The Deadlock Problem System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 7: Deadlocks.
Module 6: Deadlocks Reading: Chapter 7 Objective:
Thursday, February 23, 2012 Chapter 6 homework questions?
Chapter 7: Deadlocks.
OPERATING SYSTEM CONCEPTS AND PRACTISE
Auburn University COMP 3500 Introduction to Operating Systems Resource Allocation Graphs Handling Deadlocks Dr. Xiao.
Chapter 7: Deadlocks.
Operating System Concepts
Outline Objective for today: Formal treatment of deadlock. Bring Zax
ICS Principles of Operating Systems
Deadlock Management.
G.Anuradha Ref:- Galvin
Chapter 7: Deadlocks.
ICS 143 Principles of Operating Systems
CS 143A – Winter 2013 Quiz 2 Solutions.
Chapter 7 Deadlocks.
اسلایدهای فصل هفتم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف
Deadlocks Definition A set of processes is in a Deadlock state when every process in the set is waiting for an event that can only be caused by another.
Chapter 7: Deadlocks.
Chapter 3 Deadlocks 3.1. Resource 3.2. Introduction to deadlocks
Deadlock B.Ramamurthy CSE421 1/11/2019 B.Ramamurthy.
Lecture 6: Deadlocks, Deadlock Risk Management
G.Anuradha Ref:- Galvin
Chapter 7: Deadlocks.
Outline Deadlocks, dead lock prevention, avoidance.
Deadlock Prevention Restrain the ways request can be made.
Deadlock B.Ramamurthy CSE421 2/23/2019 B.Ramamurthy.
Chapter 7: Deadlocks.
Deadlock B.Ramamurthy CSE421 4/23/2019 B.Ramamurthy.
OPERATING SYSTEMS DEADLOCKS.
Deadlock B.Ramamurthy CSE421 5/1/2019 B.Ramamurthy.
CSCI 315 Operating Systems Design
Chapter 7: Deadlocks.
Banker’s Algorithm Anawil
Chapter 7: Deadlocks.
Chapter 8: Deadlocks Deadlock Characterization
OPERATING SYSTEM CONCEPTS
Deadlock B.Ramamurthy CSE421 8/28/2019 B.Ramamurthy.
Deadlock B.Ramamurthy CSE421 9/3/2019 B.Ramamurthy.
Presentation transcript:

همزمانی: بن بست و گرسنگی فصل ششم: همزمانی: بن بست و گرسنگی

مباحث این فصل: اصول بن بست پیشگیری از بن بست اجتناب از بن بست کشف بن بست یک راهبرد مجتمع برای بن بست سؤالات دوره ای

بن بست: بن بست را به صورت مسدود بودن دائمی مجموعه ای از فرایندها، که برای منابع سیستم رقابت میکنند یا با یکدیگر در ارتباط هستند. تعریف میکنند . برای بن بست راه حل کارآمدی وجود ندارد. تمام بن بست ها با نیازهای متضاد دو فرایند یا بیشتر، برای منابع همراه هستند.

مثالی از بن بست: یک مثال بن بست، ترافیک است.در رانندگی قانون این است که هر خودرو باید تسلیم خودروی سمت راست باشد.در این صورت در حالت زیر چه رخ میدهد؟

انواع منابع: منابع نقش تعیین کننده ای در بن بست دارند. منابع به دو دسته تقسیم میشوند: منابع قابل استفاده مجدد منابع مصرف شدنی یا غیر قابل استفاده مجدد

منابع قابل استفاده مجدد: منابعی هستند که در هر لحظه از زمان تنها توسط یک فرایند قابل استفاده اند و استفاده از آنها موجب به پایان رسیدن آنها نمیشود(بدون آسیب دیدن آزاد میشوند) فرایند ها منابع را بدست می آورند و سپس آنها را برای استفاده مجدد توسط سایر فرایند ها آزاد میکنند. پردازنده، کانالهای I/O، حافظه اصلی و ثانوی، دستگاه ها و ساختمان داده هایی مثل پرونده ها، پایگاه های داده و راهنماها از این دسته اند. بن بست زمانی رخ میدهد که یک فرایند منابع را نگه دارد و منبع دیگری درخواست کند.

منابع مصرف شدنی: این منابع تولید میشوند و از بین میروند وقفه ها، علامتها، پیامها و اطلاعات بافر I/O از این نمونه اند. کشف بن بستهای حاصل از این منابع بسیار مشکل است و ممکن است ترکیب نادری از حوادث آنها را ایجاد کند.

شرایط لازم برای ایجاد بن بست: انحصار متقابل(Mutual Exclusion): در هر لحظه تنها یک فرایند میتواند از یک منبع استفاده کند. گرفتن و منتظر ماندن(Hold and Wait): هنگام درخواست منبع جدید فرایند منابع قبلی تخصیص یافته را آزاد نمیکند. قبضه نکردن یا نبود پس گیری(No Preemption): منابع به زور قابل پسگیری نیستند.

شرایط لازم برای ایجاد بن بست: انتظار مدور(Circular Wait): زنجیر بسته ای از فرایند ها وجود دارد، بطوریکه هر یک حداقل یک منبع مورد نیاز فرایند بعد در زنجیره را نگه دارد.

گراف تخصیص منابع: گراف تخصیص منابع یک گراف جهت دار است که نحوه تخصیص منابع به فرایند ها را در هر لحظه از زمان نشان میدهد. برای تشخیص بن بست باید گراف تخصیص منابع را بعد از هر درخواست، هر تخصیص، یا هر ترخیص به روز کرد. در گراف ، منابع را با و فرایند را با نشان میدهیم. وجود چرخه در گراف بیانگر بروز بن بست است. P S P S فرایند P در انتظار منبع S است فرایند P منبع S را در اختیار دارد

پیشگیری از بن بست: جلوگیری از بن بست با نقض کردن یکی از شرایط 4 گانه لازم برای بن بست انجام میشود: انحصار متقابل: این شرط را نمیتوان رد کرد، چرا که بعضی از منابع ذاتاً انحصاری هستند. مثلاً یک چاپگر تنها میتواند به یک فرایند پاسخ دهد یا نوشتن بر روی یک بانک اطلاعاتی تنها توسط یک فرایند انجام میشود.

پیشگیری از بن بست: نقض نگهداشت و انتظار: میتوان فرایند ها را ملزم ساخت که اختصاص منابع تنها زمانی انجام شود که تمام منابع مورد نیاز فرایند آزاد باشد و حتی اگر یک منبع آماده نبود هیچ اختصاصی انجام نشود. معایب این روش: انتظار طولانی فرایند برای تکمیل منابعش بیکار ماندن یک منبع به مدت طولانی عدم پیش بینی منابع مورد نیاز در آینده

پیشگیری از بن بست: نقض شرط نبود پس گیری پاسخ به درخواست منبع جدید در صورت آزاد شدن منابع قبلی قبضه کردن فرایند با اولویت پایینتر: زمانی که یک فرایند نیاز به منبعی دارد که فرایند دیگری آنرا نگه داشته است، سیستم عامل آنرا قبضه کرده و منابعش را آزاد میکند. در فرایند های اولویت بندی شده استفاده میشود. حالت منبع باید براحتی قابل ذخیره باشد تا بعدها بازیابی شود.

پیشگیری از بن بست: نقض شرط انتظار مدور: مرتب کردن منابع به صورت خطی:به هر منبع یک شاخص نسبت داده میشود. در این صورت فرایند میتواند ابتدا منبع Ri و سپس منبع Rj را درخواست کند اگر i<j معایب این روش: کند شدن فرایندها رد کردن غیر ضروری دسترسی به منابع

اجتناب از بن بست: در این استراتژی سعی در پیش بینی آینده داریم و تلاش میکنیم به دو صورت مانع از بروز بن بست شویم: عدم شروع فرایندی که ممکن است درخواست هایش موجب بن بست شود. عدم پاسخ به درخواست فرایندی برای منبع که این تخصیص موجب بن بست میشود.

اجتناب از بن بست: عدم شروع فرایند: سیستمی از n فرایند و m نوع مختلف از منابع را در نظر بگیرید. بردارها و ماتریسهای زیر را تعریف میکنیم: آرایه R[i] آرایه Available[i] : تعداد منابع موجود هر یک از منابع را نشان می دهد. ماتریس دو بعدی Allocation[i][j]: تعداد هر یک از انواع منابع در اختیار فعلی هر یک ار فرآیندها آرایه max[i][j]: حداکثر نیاز فرآیند i به منبع j ماتریس دوبعدی Need[i][j]: نیاز باقی مانده هر یک از فرآیند ها از منابع برای تکمیل کار خود

اجتناب از بن بست: تعداد منابع کل اولیه از منبع نوع i Resource={R1,R2,R3,…,Rm} R[i]= تعداد منابع کل اولیه از منبع نوع i Available={A1,A2,A3,…,Am} A[i]= تعداد منابع آزاد از منبع نوع i C11 C12 … C1m C21 C22 … C2m : : : : Cn1 Cn2 … Cnm فرایند i حداکثر k تا منبع نوع j نیاز دارد Max= max[i][j]=k A11 A12 … A1m A21 A22 … A2m : : : : An1 An2 … Anm به فرایند i، k تا منبع نوع j تخصیص یافته Allocation= A[i][j]=k

اجتناب از بن بست: 3 نکته بدیهی است: تعداد منابع، یا تخصیص داده شده اند یا موجودند. هیچ فرایندی نمیتواند بیش از کل منابع سیستم درخواست کند. تعداد فرایندهای اختصاص یافته نمیتواند بیش از حداکثر نیاز فرایند باشد. بنابراین برای اجتناب از بن بست فرایند را تنها درصورتی شروع میکنیم که:

اجتناب از بن بست: عدم تخصیص منبع: به این راهبرد الگوریتم بانکداران نیز گفته میشود. حالت سیستم، تخصیص جاری منابع به فرایندها است، لذا حالت سیستم شامل دو بردار Available,Resource و دو ماتریس Max,Allocation میباشد. حالت مطمئن: حالتی است که در آن حداقل یک ترتیب از فرایندها وجود دارد که میتوانند اجرا و کامل شوند، بدون اینکه حالت بن بست ایجاد شود.

الگوریتم بانکداران: مقادیر مورد نیاز هر فرایند را بدست می آوریم.(Need) کمترین را در نظر میگیریم. اگر کمترین مقدار از مقادیر منبع باقیمانده بیشتر بود، نتیجه میگیریم که حالت ناامن است. در غیر این صورت فرایند با کمترین نیاز را حذف میکنیم و تعداد منابع تخصیص یافته آنرا را آزاد میکنیم و مراحل را دوباره تکرار میکنیم.

الگوریتم بانکداران: توجه : در حل مسائل بانکداران باید جداول و اطلاعات زیر را داشته باشیم: جدول Allocation جدول Max یا جدول Need جدول Resource یا جدول Available سپس بر حسب ورودی باید جداول زیر را بدست آوریم: جدول Need Available

الگوریتم بانکداران: Press Enter با توجه به جداول زیر بگویید آیا حالت امن است؟ این جدول بیان میکند تنها یک نوع منبع داریم. فرایند A به 6 منبع نیاز دارد و در حال حاضر 1 منبع به آن اختصاص یافته است.(برای فرایندB نیز به همین صورت) در حال حاظر از کل تعداد منابع تنها 2 منبع آزاد است.(Available=2) Availavle=2 فرایند Allocation Max A 1 6 B 5 M 2 4 S 7 Press Enter

الگوریتم بانکداران: Press Enter Availavle=2 فرایند Allocation Max Need (Need=Max-Allocation) Availavle=2 فرایند Allocation Max Need A B M S 1 6 6 - 1 5 1 5 5 - 1 4 2 4 4 - 2 2 4 7 7 - 4 3 Press Enter

الگوریتم بانکداران: پیدا کردن کوچکترین مقدارNeed: Press Enter Availavle=2 فرایند Allocation Max Need A 1 6 5 B 4 M 2 S 7 3 4 2<2(Available) Available=Available + 2 Press Enter

الگوریتم بانکداران: پیدا کردن کوچکترین مقدارNeed: Press Enter Availavle=4 فرایند Allocation Max Need A 1 6 5 B 4 M 2 S 7 3 8 3<4(Available) Available=Available + 4 Press Enter

الگوریتم بانکداران: پیدا کردن کوچکترین مقدارNeed: Press Enter Availavle=8 فرایند Allocation Max Need A 1 6 5 B 4 M 2 S 7 3 9 4<8(Available) Available=Available + 1 Press Enter

الگوریتم بانکداران پیدا کردن کوچکترین مقدارNeed: Press Enter Availavle=9 فرایند Allocation Max Need A 1 6 5 B 4 M 2 S 7 3 10 5<9(Available) Available=Available + 1 Press Enter

الگوریتم بانکداران چون توانستیم تمام فرایند ها را حذف کنیم بنابراین حالت داده شده در صورت مسأله امن است. توجه داشته باشید که در این مسأله فرض شد که تنها یک نوع منبع وجود دارد . در مثال بعدی مسأله را با انواع مختلف منابع بررسی میکنیم. Press Enter

الگوریتم بانکداران: در این حالت نیز همانند قبل عمل میکنیم. با این تفاوت که کمترین تعداد نیاز یک سطر است. بنابراین ابتدا مقدار نیاز (Need) را محاسبه میکنیم. تعداد نیاز های هر فرایند را جمع میزنیم و کمترین را انتخاب میکنیم. اگر سطر مربوط به کمترین مقدار از مقادیر منبع باقیمانده بیشتر بود، نتیجه میگیریم که حالت ناامن است. در غیر این صورت فرایند با کمترین نیاز را حذف میکنیم و تعداد منابع تخصیص یافته آنرا را آزاد میکنیم و مراحل را دوباره تکرار می کنیم.

الگوریتم بانکداران: مثال: آیا حالت زیر یک حالت امن است ؟ Press Enter Allocation فرایند R S T U A 3 1 B C D E MAX فرایند R S T U A 4 1 B 2 C D E Resource نوع تعداد R 6 S 3 T 4 U 2

الگوریتم بانکداران: مرحله اول :جدول Need را محاسبه میکنیم. Press Enter Allocation Max Need=max-Alloc فرایند R S T U + A 3 1 4 2 B C D E

الگوریتم بانکداران: جدول Available را محاسبه میکنیم. Press Enter Allocation فرایند R S T U A 3 1 B C D E + Available= Res[i] - A[+][i] نوع تعداد R S T U Resource نوع تعداد R S T U 6 6 - 5 1 3 3 - 3 4 4 - 2 2 2 5 3 2 2 2 - 2

الگوریتم بانکداران: Press Enter مقدار این سطر را با منابع باقیمانده مقایسه میکنیم با توجه به جدول Need کدام فرایند کمترین تعداد منابع را نیاز دارد؟ چون مقدار آن از منابع باقیمانده کمتر است سطر را حذف و منابع را آزاد میکنیم. عملیات را برای بقیه سطر ها نیز انجام میدهیم. Allocation Need فرایند R S T U + A 3 1 2 B 4 C D E Available نوع تعداد R S T U 1 2

معایب الگوریتم بانکداران: الگوریتم بانکداران و اجتناب از بن بست نمیتواند به طور حتم بروز بن بست را پیش بینی کند. گاهی آنرا حدس میزند و گاهی آنرا اطمینان میدهد. معایب روش اجتناب از بن بست: حداکثر منابع باید از قبل مشخص باشد. فرایند های مورد نظر باید مستقل باشند (همگام سازی نشده باشند) تعداد منابع تخصیصی باید ثابت باشد. فرایندی که منبعی را در اختیار داشته باشد نمیتواند خارج گردد

کشف بن بست: روشی است که در آن اجازه برای انجام فرایند و هر تخصیص منبع داده میشود و سیستم عامل مرتباً وجود بن بست را بررسی میکند. در راهبرد کشف بن بست به صورت زیر عمل میشود: قطع تمام فرایندهای در بن بست برگشت هر یک از فرایند های در بن بست به نقاطی که از قبل برای بررسی تعیین شده اند و شروع مجدد تمام فرایند ها قطع پیگیری فرایندهای در بن بست تا جایی که دیگر بن بست وجود نداشته باشد قبضه کردن پی در پی منابع تا جایی که دیگر بن بست وجود نداشته باشد.

کشف بن بست: برای بند های 3 و 4 معیار انتخاب میتواند یکی از موارد زیر باشد: کمترین وقت مصرفی از پردازنده تا کنون کمترین خروجی تولید شده تا کنون بیشترین زمان باقیمانده تخمینی کمترین منابع تخصیص داده شده تا کنون کمترین اولویت

راهبرد مجتمع برای بن بست: هر راهبرد بن بست مزایا و معایب مخصوص به خود را دارد شاید بهتر باشد از ترکیبی از راهبرد ها استفاده کنیم: تقسیم بندی منابع در تعدادی گروه های مختلف استفاده از راهبرد مرتب سازی خطی در داخل یک گروه از منابع استفاده از بهترین الگوریتم برای آن گروه

خلاصه رویکرد های پیشگیری، اجتناب و کشف بن بست:

سؤال و پاسخ : ? ? ? ? ?

سؤال اول: برای منابع قابل استفاده مجدد و منابع مصرف شدنی مثالی بزنید؟ برای منابع قابل استفاده مجدد میتوان به پردازنده، کانال های ورودی خروجی، حافظه اصلی و ثانویه، دستگاه ها، و ساختمان داده هایی چون پرونده ها، پایگاه داده ها، و راهنما ها اشاره کرد. وقفه ها، سیگنالها، پیامها و اطلاعات میانگیر ورودی خروجی مثالهایی از منابع غیر قابل استفاده مجدد هستند.

سؤال دوم: سه شرط لازم برای بروز بن بست را نام ببرید؟ انحصار متقابل: در هر زمان فقط یک فرایند میتواند از منبع استفاده کند. نگهداشت و انتظار: در حالی که فرایند منبع تخصیص داده شده را نگه میدارد منتظر تخصیص منبع دیگری است. قبضه نکردن:هنگامی که فرایندی منبعی را در اختیار دارد نتوان آن را به زور باز پس گرفت.

سؤال سوم: چهار شرطی که بن بست را بوجود می آورند نام ببرید؟ سه شرط بالا بعلاوه : انتظار مدور: زنجیره بسته ای از فرایند ها وجود دارد که هر یک حداقل یک منبع مورد نیاز برای فرایند بعد در زنجیره را نگه میدارد.

سؤال چهارم: چگونه از شرط نگه داشت و انتظار میتوان پیشگیری کرد؟ با ملزم کردن فرایند به درخواست یکباره تمام منابع مورد نیاز و مسدود کردن آن تا موقعی که تمام منابع در اختیارش گذاشته شود میتوان از بروز شرط نگه داشتن و انتظار جلوگیری کرد.

سؤال پنجم: دو راه پیشگیری از شرط قبضه نکردن را نام ببرید؟ ابتدا اگر فرایندی برخی منابع را نگه داشته است درخواست های بعدیش رد میشود، فرایند باید منابعی را که در دست دارد آزاد کند سپس در صورت نیاز درخواست منبع میکند و به آن منبع دیگری داده میشود. همچنین در صورتیکه یک فرایند درخواست منبعی را دارد که توسط فرایند دیگر نگه داشته میشود، سیستم عامل ممکن است فرایند دوم را قبضه کند و منابع آن را آزاد کند.

سؤال ششم: چگونه میتوان از شرط انتظار مدور پیشگیری کرد؟ با تعریف یک ترتیب خطی از انواع منابع میتوان از بروز شرط انتظار مدور جلوگیری کرد.اگر فرایندی منبعی از نوع R را به خود اختصاص داده، در ادامه فقط منابعی را میتواند درخواست کند که (در ترتیب خطی) نوع آنها بعد از R قرار گرفته باشد.

سؤال هفتم: تفاوت بین اجتناب از بن بست، کشف بن بست و پیشگیری از بن بست چیست؟ پیشگیری از بن بست: در این راهبرد با کنترل کردن درخواست های منابع از بروز یکی از شرایط 4 گانه بروز بن بست جلوگیری میشود. میتوان به طور غیر مستقیم با پیشگیری از وقوع یکی از3 شرط لازم برای وقوع بن بست از آن پیشگیری کرد و یا به طور مستقیم از وقوع شرط چهارم (انتظار مدور) پیشگیری کرد.

سؤال هفتم: اجتناب از بن بست: این روش اجازه وقوع شرایط 3 کانه را میدهد اما در انتخابها به گونه ای عمل میکند که اطمینان حاصل کند که بن بستی رخ نمیدهد. کشف بن بست: در این روش منابع در صورت امکان به فرایند ها اختصاص می یابند، به صورت دوره ای سیستم عامل الگوریتمی را برای شناسایی شرط انتظار مدور انجام میدهد.