پاورپوینت کامل خلاصه فصل ۷ سیستم عامل: هماهنگی فرآیندها ۷۶ اسلاید در PowerPoint


در حال بارگذاری
10 جولای 2025
پاورپوینت
17870
2 بازدید
۷۹,۷۰۰ تومان
خرید

توجه : این فایل به صورت فایل power point (پاور پوینت) ارائه میگردد

 پاورپوینت کامل خلاصه فصل ۷ سیستم عامل: هماهنگی فرآیندها ۷۶ اسلاید در PowerPoint دارای ۷۶ اسلاید می باشد و دارای تنظیمات کامل در PowerPoint می باشد و آماده ارائه یا چاپ است

شما با استفاده ازاین پاورپوینت میتوانید یک ارائه بسیارعالی و با شکوهی داشته باشید و همه حاضرین با اشتیاق به مطالب شما گوش خواهند داد.

لطفا نگران مطالب داخل پاورپوینت نباشید، مطالب داخل اسلاید ها بسیار ساده و قابل درک برای شما می باشد، ما عالی بودن این فایل رو تضمین می کنیم.

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل می باشد و در فایل اصلی پاورپوینت کامل خلاصه فصل ۷ سیستم عامل: هماهنگی فرآیندها ۷۶ اسلاید در PowerPoint،به هیچ وجه بهم ریختگی وجود ندارد


بخشی از مطالب داخلی اسلاید ها

پاورپوینت کامل خلاصه فصل ۷ سیستم عامل: هماهنگی فرآیندها ۷۶ اسلاید در PowerPoint

اسلاید ۴: فصل هفتم : هماهنگی فرآیندها کد مربوط به تولید کننده – مصرف کننده به صورت زیر تغییر می کند :while(1) { /* produce an item in nextproduced */ while (counter == buffersize) /* do nothing */ buffer[in] = nextproduced; in = (in+1)%buffer-size; Counter++; }while(1) { while (counter == 0) /* do nothing */nextproduced = buffer[out]; out = (out+1)%buffer-size;Counter–;/*consume the item in next consumed */}تولید کنندهمصرف کننده

اسلاید ۵: فصل هفتم : هماهنگی فرآیندها این دو روال به طور جداگانه درست عمل می کنند اما به طور همزمان ممکن است به درستی عمل نکنند مثلا اگر Counter = 5 و فرآیندهای تولیدکننده و مصرف کننده دستورات “Counter++” و “Counter–” را همزمان اجرا کنند مقدار Counter ممکن است ۴، ۵، ۶ باشد ولی مقدار درست ۵ و وقتی تولید می شود که هر کدام به طور جداگانه عمل کنند.علت رسیدن به حالت نادرست دسترسی همزمان فرآیندها به داده ی مشترک Counter است.

اسلاید ۶: فصل هفتم : هماهنگی فرآیندها حالت مسابقه ( Race Condition ) چنین وضعیتی که چندین فرآیند به طور همزمان به داده ای دسترسی دارند و نتیجه اجرا به ترتیب دستیابی فرآیندها بستگی دارد ، Rase Condition می گوییم.راه حل مقابله با Race Condition برای مقابله با حالت مسابقه باید تضمین شود که در هر زمان تنها یک فرآیند به متغیر Counter دسترسی داشته باشد که برای چنین کاری نیاز به هماهنگی فرآیندهاست.

اسلاید ۷: فصل هفتم : هماهنگی فرآیندها ۲-۷ مسئله ناحیه بحرانی سیستمی با n فرآیند { P0 , P1 , … , Pn-1 } را در نظر بگیرید. هر فرآیند بخشی کد به نام ناحیه بحرانی (Critical Section) دارد که فرآیند ممکن است در آن متغیرهای مشترک را تغییر دهد ، جدولی را بروز کند ، فایلی را بنویسد ، و …ویژگی مهم این است هنگامیکه یک فرآیند در حال اجرای ناحیه ی بحرانی خودش است ، هیچ فرآیند دیگری نباید اجازه داشته باشد ناحیه بحرانی خودش را اجرا کند. بنابراین اجرای ناحیه ی بحرانی توسط فرآیندها ، از نظر زمانی انحصار متقابل (mutually exclusive) است.

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

اسلاید ۹: فصل هفتم : هماهنگی فرآیندها راه حل مسئله ناحیه ی بحرانی باید ۳ نیازمندی را برآورده کند :Mutual exclusive : اگر فرآیند P1 در حالت اجرای ناحیه ی بحرانی اش باشد ، هیچ فرآیند دیگری نباید اجازه ی اجرای ناحیه بحرانی اش را داشته باشد.پیشروی : اگر هیچ فرآیندی در ناحیه ی بحرانی اش نباشد ولی فرآیندهایی باشند که بخواهند وارد ناحیه ی بحرانی خودشان شوند ، آنگاه فقط فرآیندهایی که در حال اجرای ناحیه ی باقیمانده خودشان نیستند می توانند برای ورود به ناحیه ی بحرانی خودشان انتخاب شوند و این اتفاق نمی تواند بطور نامحدود به تعویق بیفتد.انتظار محدود : پس از اینکه فرآیندی درخواست ورود به ناحیه ی بحرانی خود را کرد، قبل از پذیرفتن آن درخواست،تعداد دفعاتی که سایر فرآیندها می توانند وارد ناحیه ی بحرانی خود شوند ، محدود است ، یعنی آن فرآیند نمی تواند به مدت نا محدود منتظر بماند.

اسلاید ۱۰: فصل هفتم : هماهنگی فرآیندها ۱-۲-۷ راه حل های دو فرآیندی در این قسمت به الگوریتم هایی می پردازیم که در هر زمان فقط بروی دو فرآیند عمل می کنند. فرآیندها با P0 و P1 مشخص می شوند برای سهولت وقتی از Pi استفاده می کنیم برای نشان دادن فرآیند بعدی از Pj استفاده می کنیم که j==1-iساختار کلی فرآیند نمونه Pido{ ناحیه ورودیناحیه بحرانی ناحیه خروجناحیه باقیمانده}while(1);

اسلاید ۱۱: فصل هفتم : هماهنگی فرآیندها ۱-۱-۲-۷ الگوریتم ۱ اولین راه حل این است که از متغیر مشترکی به نام turn استفاده کنیم که مقدار اولیه آن ۰ است. فرآیند Pi اجازه دارد وارد ناحیه ی بحرانی خود شود turn = i اگر این راه حل تضمین می کند که در هر زمان فقط یک فرآیند وارد ناحیه ی بحرانی اش شود اما نیازمندی پیشروی را برآورده نمی کند زیرا دقیقا مشخص می کند که چه فرآیندی باید وارد ناحیه ی بحرانی خودش شود.ساختار فرآیند Pi در الگوریتم ۱do{ while (turn!=0);ناحیه بحرانی turn=j;ناحیه باقیمانده}while(1);

اسلاید ۱۲: فصل هفتم : هماهنگی فرآیندها ۲-۱-۲-۷ الگوریتم ۲مشکل الگوریتم ۱ این است که اطلاعات کافی در مورد حالت هر فرآیند نگهداری نمی کند بلکه فقط مشخص می کند کدام فرآیند اجازه ی ورود به ناحیه ی ورود به ناحیه ی بحرانی خودش را دارد که برای حل این مشکل به جای متغیر turn از آرایه زیر استفاده می شود : مقدار اولیه عناصر آرایه false است boolean flag[2] اگر flag[i] =true باشد نشان می دهد که Pi آماده ورود به ناحیه ی بحرانی اش است.

اسلاید ۱۳: فصل هفتم : هماهنگی فرآیندها هر فرآیند برای ورود به ناحیه ی بحرانی منتظر می ماند تا flag مربوط به فرآیند ناحیه ی بحرانی false شود و هر فرآیند هنگام خروج از ناحیه ی بحرانی flag مربوط به خود را false می کندساختار فرآیند Pi در الگوریتم ۲do{ falg[i]=true; While (flag[j]);ناحیه بحرانی falg[i]=false;ناحیه باقیمانده}while(1);

اسلاید ۱۴: فصل هفتم : هماهنگی فرآیندها در این روش:شرط انحصار متقابل برقرار استشرط پیشروی برقرار نیست مثال: برای تشریح مسئله فوق این دنباله را در نظر می گیریم :T0 : P0 Sets flag[0] = TrueT1 : P1 Sets flag[1] = Trueاکنون P0 و P1 در حلقه while گیر می کنند.این الگوریتم به زمانبندی دقیق دو فرآیند بستگی دارد. این دنباله می تواند در محیطی باشد که چندین فرآیند به طور همزمان در حال اجرا هستند و یا بلافاصله بعد از T0 وقفه رخ دهد و CPU از یک فرآیند به فرآیند دیگر برود.

اسلاید ۱۵: فصل هفتم : هماهنگی فرآیندها ۳-۱-۲-۷ الگوریتم ۳در این روش فرآیندها دارای دو متغیر مشترکندساختار فرآیند Pi در الگوریتم ۳do{ falg[i]=true; turn=j; While (flag[j] && turn=j );ناحیه بحرانی falg[i]=false; ناحیه باقیمانده}while(1);در آغاز flag[0] = flag[1] = false استBoolean flag[2];Int turn;

اسلاید ۱۶: فصل هفتم : هماهنگی فرآیندها فرآیند Pi برای ورود به ناحیه ی بحرانی ابتدا flag[1] را True می کند. اگر هر دو فرآیند سعی کنند همزمان وارد ناحیه ی بحرانی شوند ، turn در آن واحد می خواهد i و j شود. اما فقط یک دستور انتساب بعدی انجام می شود و مقدار قبلی از بین می رود. مقدار نهایی turn مشخص می کند کدامیک از دو فرایند ، زودتر اجازه ورود به ناحیه ی بحرانی را پیدا می کنند.

اسلاید ۱۷: فصل هفتم : هماهنگی فرآیندها این روش ویژگی های زیر را دارا می باشد :Mutually exclusive: هر فرآیند Pi وقتی می تواند وارد ناحیه ی بحرانی اش شود که یا flag[i] = false یا turn = i . اگر دو فرآیند بخواهند همزمان وارد ناحیه ی بحرانی شوند آنگاه flag[0] = flag[1] = True که بدین ترتیب P0 و P1 نمی توانند همزمان حلقه while خود را اجرا کنند چرا که مقدار turn می تواند در یک زمان ۰ یا ۱ باشد.شرط پیشرویشرط انتظار محدود

اسلاید ۱۸: فصل هفتم : هماهنگی فرآیندها برای اثبات ویژگی ۲ و ۳ در صورتی می توان مانع از ورود فرآیند Pi به ناحیه ی بحرانی اش شد که یا flag[j] = True و turn = True در حلقه while گیر کند. اگر Pj آماده ورود به ناحیه ی بحرانی نباشد آنگاه flag[j] = false و Pi می تواند وارد ناحیه ی بحرانی می شود.اگر turn = j باشد و Pj وارد ناحیه بحرانی می گردد. وقتی Pj وارد ناحیه بحرانی flag[j] = false می گردد و Pi اجازه پیدا می کند تا وارد ناحیه ی بحرانی خود شود.اگر Pj مقدار flag[j] را برابر True قرار دهد باید turn = i نیز باشد اما چون Pi در حین اجرای دستور while ، مقدار turn را تغییر نمی دهد ، Pi حداکثر پس از یک بار ورود Pj در ناحیه ی بحرانی (انتظار محدود) ، به ناحیه بحرانی خودش وارد می شود (پیشروی)

اسلاید ۱۹: فصل هفتم : هماهنگی فرآیندها ۲-۲-۷ راه حل های چند فرآیندیالگوریتم نانوایی (bakery algorithm) برای حل ناحیه ی بحرانی به اندازه ی n فرایند است که این الگوریتم را برای محیط توزیعی طراحی شد.این الگوریتم به هر مشتری هنگام ورود شماره ای می دهد و مشتری بعدی که باید خدمات بگیرد مشتری است که شماره ی کوچکتری دارد در ضمن الگوریتم تضمین نمی کند که شماره ی مشتریان یکسان نباشد اگر شماره ی مشتریان یکسان بود مشتریی که نام کوچکتری دارد زودتر خدمات می گیرد.i<j اگرشماره یکسانPj و Pi اگر انتخاب می شود Pi

اسلاید ۲۰: فصل هفتم : هماهنگی فرآیندها ساختمان داده های مشترک عبارتند از :boolean choosing[n];int number[n]; این الگوریتم شرط های سه گانه را داراست.ساختار فرآیند Pi بر الگوریتم Backery در شکل زیر نشان داده شده است :مقدار اولیه ی این ساختمان داده ها به ترتیب false و ۰ است.do{ Choosing[i]=true; Number[i]=max(number[0], number[1], …,number[n-1]+1); Choosing[i]=false; For(j=0;j<n;j++){ while(choosing[j]); while((number[j]!=0)&&(number[j,j]<number[i,i])); }ناحیه بحرانی number[i]=0; ناحیه باقیمانده}while(1);

اسلاید ۲۱: فصل هفتم : هماهنگی فرآیندها ۳-۷ ویژگی های سخت افزاری برای هماهنگی فرآیندبرای مسئله ی ناحیه بحرانی در محیط تک پردازنده ای کافی است اجازه ندهیم در حین تغییر متغییرهای عمومی ، وقفه ای رخ دهد. اولین روش در محیط چند پردازنده ای امکان پذیر نیست چرا که غیر فعال کردن وقفه ها در یک محیط چند پردازنده ای می تواند موجب اتلاف وقت شود زیرا پیام به تمام پردازنده ها ارسال می شود بنابر این اغلب ماشین ها دستورات سخت افزاری خاصی را تدارک می بینند که می توان کلمه ای را تست کند یا محتویاتش را تغییر دهد یا اتمی محتویات دو کلمه را عوض کند.

اسلاید ۲۲: فصل هفتم : هماهنگی فرآیندها دستور Test And Setبه طور اتمیک اجرا می شود یعنی به عنوان یک واحد بدون وقفه اجرا می شود بنابراین اگر دو دستور Test And Set همزمان ، هر کدام در یک CPU اجرا شوند ، به صورت ترتیبی اجرا می شوند.boolean Test And Set (boolean & target){boolean rv = target;target = true;return rv;}

اسلاید ۲۳: فصل هفتم : هماهنگی فرآیندها اگر ماشین از دستور Test And Set پشتیبانی کند برای پیاده سازی انحصاری یک متغیر بولین به نام lock تعریف می کنیم و مقدار اولیه آنرا false در نظر می گیریم. ساخت فرآیند Pi در اینجا آمده است.do{ while (TestAndSet(lock));ناحیه ی بحرانی lock = false;ناحیه ی باقیمانده }while(1);

اسلاید ۲۴: فصل هفتم : هماهنگی فرآیندها دستور Swapدستور Swap بر روی محتویات دو کلمه کار می کند که این دستور نیز مانند Test And Set به طور اتمیک اجرا می شود.void swap(boolean & a ,boolean & b){Boolean temp = a;a = b;b = temp;} این الگوریتم ها نیازمندی انتظار محدود را برآورده می کنند.

اسلاید ۲۵: فصل هفتم : هماهنگی فرآیندها الگوریتمی که در زیر آمده از دستور Test And Set استفاده می کند و تمام نیازمندیهای سه گانه ناحیه ی بحرانی را برآورده می کند. ساختمان داده های مشترک عبارتند از:boolean waiting[n];boolean lock;برای اثبات اینکه الگوریتم mutually exclusive را رعایت می کند :می دانیم که فرآیند Pi وقتی می تواند وارد ناحیه ی بحرانی شود که waiting = false یا key = false باشد و key وقتی می تواند false باشد که دستور Test And Set اجرا شده باشد. اولین فرآیندی که دستور Test And Set را اجرا می کند می فهمد که key = false و بقیه فرآیندها باید منتظر بمانند.متغیر waiting[i] در صورتی false می شود که فرآیند دیگری از ناحیه ی بحرانی اش خارج شود. برای برقراری انحصار مقابل فقط یک waiting[i] می تواند false باشد. مقدار اولیه این ساختمان داده ها false است.

اسلاید ۲۶: فصل هفتم : هماهنگی فرآیندها ۴-۷ سمافورهاسمافور یک متغیر صحیح است که صرف نظر از مقداردهی اولیه ، فقط از طریق دو عمل استاندارد اتمیک به نام های wait و signal قابل دستیابی است که گاهی نام P را به wa

  راهنمای خرید:
  • همچنین لینک دانلود به ایمیل شما ارسال خواهد شد به همین دلیل ایمیل خود را به دقت وارد نمایید.
  • ممکن است ایمیل ارسالی به پوشه اسپم یا Bulk ایمیل شما ارسال شده باشد.
  • در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.