کامپیوتر و IT و اینترنتعلوم مهندسی

پردازه ها (فصل سوم کتاب سیلبرشاتس)

صفحه 1:
0 پردازه ها اسلايدهاى فصل سوم كتاب سيلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف

صفحه 2:
| یگ بر عناوین مطالب ۴ مفهوم پردازه * زمان بندی پردازه ها * عملیات روی پردازه ها * پردازه های همکار * ارتباط بين يردازه ای * ارتباط در سیستم های مشتری/کارگزار

صفحه 3:
پردازه یک برنامه در حال اجراست. اجرای پردازه باید به صورت ترتيبى صورت يذيرد. هر يردازه شامل موارد زير است: شمارنده پرنامه پشته بخش داده ها هر پردازه در هنگام اجرا حالت خود را تغییر می دهد.

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

صفحه 5:
VO or event wait interrupt scheduler dispatch admitted VO or event completion

صفحه 6:
| يلوك کنترل پردازه (0۵) * هر پردازه در سیستم عامل با استفاده از یک بلوک کنترل پردازه مشخص می شود. ۳00) شامل اطلاعات زیر می باشد: حالت پردازه ‎digas‏ بزثامة ثبات های پردازنده اطلاعات زمان بندی پردازنده اطلاعات مدیریت حافظه اطلاعات بعصه<) اطلاعات وضعیت ورودی / خروجی

صفحه 7:
‎l 4‏ ‎Cais’‏ بلوک کنترل پردازه (0) ‎as ‎pointer ‎process number program counter ‎registers ‎ ‎memory limits ‎list of open files ‎

صفحه 8:
انتقال يردازنده از يى يردازه به يردازه د فنا operating system process P, interrupt or system call ave state into POB, reload state from POB, interrupt or system call { Save state into PCB, Teload state from POB,

صفحه 9:
| یگ بر عناوین مطالب * مفهوم پردازه " زمان بندی پردازه ها * عملیات روی پردازه ها * پردازه های همکار * ارتباط بين يردازه ای * ارتباط در سیستم های مشتری/کارگزار

صفحه 10:
اسف های زمان بندی پردازه ها صف کار مجموعه تمام پردازه های سیستم صف آماده به کار مجموعه تمام پردازه هایی که درون حافظه اصلی هستند و آماده و منتظر براق اجراء معمولا به صورت يك اط كاك نكهدارى مى شوند. * صف هاى دستكاه مجموعه پردازه هایی که منتظر پاسخ یک دستگاه ورودی / خروجی هستند. هر دستگاه صف مربوط به خود را دارد.

صفحه 11:
را ‎fain‏ آماده و صف دستگاه های ورودی اخروجی ‎Ran‏ queue header 208 PCB, | ready [head queve [tall 5 eaters terminal unit

صفحه 12:
= — VO queue VO request ب سس time slice expired سس child forka executes child interrupt wait for an occurs interrupt

صفحه 13:
3 بندها 5 هر يردازه بر اساس سياست زمان بندى سيستم عامل بين صف هاى مختلف زمان بندی حرکت می کند. انتخاب پردازه ها براى جابجایی در صف ها توسط زمان بند انجام می شود. زمان بند بلند مدت (يا زمان بند کار): پردازه هایی را که باید به صف آماده منتقل شوند انتخاب می کند. زمان بند کوتاه مدت (یا زمان بند پردازنده): پردازه ای را که باید اجرا شود انتخاب می کند و پردازنده را در اختیار آن می گذارد.

صفحه 14:
ازمان بندها (ادامه) ۷ * زمان بند کوتاه مدت به صورت متوالی فراخوانی می شود بنابراین باید بسیار سریع باشد. زمان بند بلندمدت به ندرت فراخوانی می شود لذا می تواند کند باشد. * زمان بند بلندمدت درجه چندبرنامکی را کنترل می کند. این زمان بند مشخص می کند چه تعداد برنامه می توانند به صورت همزمان در حافظه بارگذاری شوند.

صفحه 15:
| ازمان بندها (ادامه) * یک پردازه ممکن است... محدود به ورود ی/نعروجی (۳00-(10 ) باشد. یعنی زمان بیشتری را به اعمال ورودی/حروجی اختصاص دهد تا محاسبات. این پردازه نیاز به قطعه های کوتاه ولی متعدد زمان پردازنده دارد. محدود به پردازنده (22-۷۵))_باشد. یعنی زمان بیشتری را به محاسبات اختصاص دهد تا اعمال ورودی/خروجی. این پردازه نیاز قطعه های ‎dy th‏ کم تعداد زمان پردازنده دارد.

صفحه 16:
تسد كردن زمان بند ميان مدت partially executed swap out swapped-out processes ready queue VO waiting queues

صفحه 17:
| (Context Guntich) 4225 ‏تعويض‎ وقتی پردازنده مى خواهد اجراى يردازه اى را متوقف كرده به اجراى يردازه ديكرى بيردازد. سيستم بايد اطلاعات پردازه اول را ذخيره كند و اطلاعات مربوط به پردازه دوم را بارگذاری کند. زمان تعویض زمینه یک سربار است و سیستم در این زمان نمی تواند کار مفیدی انجام دهد. زمان تعویض زمینه از میزان پشتیبانی سخت افزاری از اين عملیات تاثیر می پذیرد.

صفحه 18:
| یگ بر عناوین مطالب مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها ایجاد پردازه پایان دهی پردازه * پردازه های همکار ارتباط بين يردازه ای ارتباط در سیستم های مشتری/کارگزار

صفحه 19:
|ایجاد پردازه پردازه پدر پردازه های فرزند را ایجاد می کند که خود ممکن است پردازه های فرزند دیگری را ایجاد کنند. اين پردازه ها یک درخحت پردازه تشکیل می دهند. شکل های مختلف اث اشتراک منابع پدر و فرزندان همه منابع خود را به اشتراک می گذارند. فرزندان زیرمجموعه ای از منابع پدر را به اشتراک می برند. يدر و فرزندان هیچ مبعی را به اشتراک نمی ‎BENS‏ محدودکردن فرزندان به زیرمجموعه ای از منایع پدر مانع مى شود که ای با ایجاد تعداد زیادی زیرپردازه بار کاری قابل قبول ومورد انتظاری را تحمل كند.

صفحه 20:
ايجاد پردازه (ادامه) * حالت هاى مختلف اجراى يردازه پزدازه:های: پر و فررتتان مسرصورت سدرؤتك اجزا فى شوئل: پردازه پدر تا به پایان زسیدن پردازه های فرزند صبر می کند, * حالت های مختلف فضای حافظه پردازه پردازه فرزند یک کپی کامل از پردازه پدر است. پردازه فرزند برنامه خودش را اجرا می کند نه برنامه پردازه پدر را. * یک مثال از یونیکس فراخوانی سیستمی ۲۳۲۷ یک پردازه جدید ایجاد می کند. سپس از فراخوانی سیستمی ‎emer‏ استفاده می شود تا برنامه جدید را در فضای حافظه پردازه ایجادشده بارگذاری کند.

صفحه 21:

صفحه 22:
اک نا بره بت ‎oH,” ae! US)‏ مجزا |* سس اه ۳ ۳ pad 2 ۳: ‎cored */‏ سب ۳) (۵ > لس ‎(onder, "Pork Paled");‏ ] ‎exi(-(l);‏ ‎} ‎(pal ==) { /* ok provene */‏ خا جاع ‎exevly("Ibras", "b", DOLL);‏ ‎} ‏/* مس ساد ‎D* poreat wil unit Por tke chi to ooweplete */‏ ‎xt (DOLL);‏ ‎prio ("Okid Oowplete");‏ ‎ext();‏

صفحه 23:
ar]

صفحه 24:
پردازه پس از اجرای آخرین دستورالعمل خود با استفاده از فراخوانى سيستمى از سیستم عامل می خواهد تا به کار ان پایان دهد. اگر پرداز می شود. سیستم عامل منابع اختصاص داده شده به پردازه را باز پس می گیرد. » یک پردازه فرزند باشد خروجی آن به پردازه پدر فرستاده

صفحه 25:
اپایان دهی پردازه (ادامه) * یک پردازه پدر ممکن است به دلایل زیر به اجرای فرزندانش پایان دهد: فرزند از منابع اختصاص داده شده به آن فراتر رفته است. وظیفه واگذارشده به فرزند دیگر مورد نیاز پردازه پدر می خواهد به کار خود پایان دهد و سیستم ‎ele‏ اجازه نمی دهد پردازه های فرزند در غیاب پدر به زندگی خود ادامه دهند (پایان دهی آبشاری).

صفحه 26:
| | ك أمرورى بر عناوین مطالب مفهوم يردازه زمان بندى يردازه ها عمليات روى يردازه ها يردازه هاى همكا ۰ = ارت ۱ رتباط بین پردازه ای ارتباط رتباط در سیستم هاى مشت مشتری/کارگزار

صفحه 27:
پرداه های همکار * یک پردازه مستقل نمی تواند روی اجرای پردازه های دیگر تاثیر بگذارد و يا از اجرای آنها متاثر شود. * پردازه های همکار ممکن است روی یکدیگر تاثیر بگذارند. 7 منافع همکاری پردازه ها به اشتراک گذاری اطلاعات افزایش سرعت محاسبانت چندپیمانگی راحتی کاربری

صفحه 28:
| مساله تولید کننده - مصرف کننده * نمونه اى از يردازه هاى همكار * يردازه توليدكننده اطلاعاتى را توليد مى كند كه توسط پردازه مصرف کننده مورد استفاده قرار می ‎Dy‏ ‏دو فرض متفاوت برای حل مساله وجود دارد: حافظه میانگیر متناهی و حافظه میانگیر نامتناهی. * دو مکانیزم ارتباطی وجود دارد: ارتباط بین پردازه ای و حافظه مشترک..

صفحه 29:
| oa arn Belt ay ۵ * داده های مشترک HdteProe DOPPER_GILE 0 DypedeP vine { تسه( iew bufPer[(BORPER_OILE]; fot ic = D; it ou = OD; * اين راه حل اجازه حضور حداکثر 4 - ‎pas OOPPOER_OILE‏ در حافظه میانگیر را می دهد.

صفحه 30:
‎Sam‏ | پردازه تولید کننده ‎‘ees‏ ‎teow vext(Procduced; ‎white (1) { white (((is + 1) % PORFER_GILE) ‏م <د‎ : ۳ ‏تا حل‎ bufPerfia] = sext(Prockced i= (a + 1) % BORLER_OILE;

صفحه 31:
و رده مصرف کننده وی :السب جو )سه مصلا while ((1) ) while (ia == pul) 3 do ‏باس‎ */ ‏لوصو 0ض‎ = bibPerfoul; rat = (na +) % OOPFER_GILE;

صفحه 32:
| 0 ( اج ‎eseri() cad‏ - مج( مس while (true) { while (in == out) ; // do nothing -- nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER SIZE; return item; } Gckacd & ‏قحا ,ام صمت‎ vac ody wr BOPPER_OILE elewerts

صفحه 33:
| : یگ بر عناوین مطالب مفهوم يردازه زمان بندى يردازه ها عمليات روى يردازه ها يردازه هاى همكار ارتياظ بين پردازه آق ارتباط 3 ‎a‏ ‏رتباط در سیستم های مشتری/کارگزار

صفحه 34:
‎Gi‏ بط بین پردازه ای ‎hes‏ ‏* ارتباط بین پردازه ای یا 1۳0 مکانیزمی است تا پردازه ها بتوانند با هم ارتباط برقرار کنند و فعالیت های خود را همزمان کنند. ‎ ‏سیستم پیام رسانی > به پردازه ها اجازه می دهد بدون نیاز به حافظه مشترک با یکدیگر ارتباط برقرار کنند. * دو عملیات زیر توسط 0 فراهم می شوند: ‎ged (wevone) ‎revewe (revo) ‏اگر )و © بخواهند با یکدیگر ارتباط برقرار کنند. باید...‎ * ‏یک اتصال ارتباطی (۱۸ 77۳۰) بین خود برقرار کنند.‎ ‏را مبادله کنند.‎ bs ely reveie 5 ‏با استفاده از اج‎

صفحه 35:
‎ma‏ های پیاده سازی ‎ ‎ ‏از پیاده سازی ارتباط بین پردازه ای باید به ‎ ‏برخی سئوالات پاسخ داد... ‏چگونه اتصالات برقرار می شوند؟ آیا می توان یک اتصال را به بیش از دو پردازه احتصاص ‎Gals‏ ‏چه تعداد اتصال مى تواند بین دو پردازه در حال مبادله پیغام وجود داشته باشد؟ ‏ظرفیت یک اتصال چقدر است؟ آیا طول پیغامی که اتصال می تواند ارسال کند ثابت است يا متفیر؟ آیا اتصال یک طرفه است يا دوطرفه؟

صفحه 36:
: هر پردازه باید نام پردازه دیگر ر را به صورت صریح مشخص کند. حصب ,40) اعت يكيسيغام را به يردانيه © ايسللموكند (عبمحه ,0) سب يكسيغام را از يردانيه © دریانمیک ند * مشخصات اتصالات ارتباطى اتصالات به صورت خودكار ايجاد مى شوند. هر اتصال دقيقا به دو يردازه كه با هم در ارتباطند اختصاص مى يابد. بین هر دو پردازه در ارتباط دقيقا يك اتصال وجود دارد. اتصال ممکن است یک طرفه باشد. اما معمولا به صورت دوطرفه است.

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

صفحه 38:
{FER Cain ‏عملیات ارتباطی‎ * ایجاد صندوق پستی جدید ‎be!‏ غير مستقيم (ادامه) ‎ ‏ارسال و دریافت پیغام از صندوق های پستی ازبین بردن یک صندوق پستی ‏* دستورات ارتباطی (صصه ,6) اج ی کپ یفام را به ص نیقی ستی6 ارسللمیک ند مس ,0) سس یبکپسیفام را از صنلوق‌پسستی() دریافت ‏ می ‎AS:‏

صفحه 39:
ارتباط غير مستقيم (ادامه) * مشکل صندوق پستی مشترک 0 و ۵ و ۳9) صنلوقپ ستی را به لشترلکمیگنارند 0 پیفامی‌ارسالمیک ند ۳9) و 43 دریاذ چه کسی پیغام را دریافت می ‎SAS‏ ‏* راه حل ها هر اتصال را به حداکثر دو پردازه اختصاص بده. در هر زمان حداکثر به یک پردازه اجازه بده فرمان دریافت را صادر کند. به سیستم اجازه بده که یکی از پردازه ها را به صورت دلخواه انتخاب کند. پردازه گیرنده را به پردازنده فرستنده اطلاع بده.

صفحه 40:
مبادله پیام ممکن است متوقف کننده (۷7) یا غیرمتوقف کننده باشد. مبادله پیام متوقف کننده و غیرمتوقف کننده به ترتیب همگام و غیرهمگام درنظرگرفته می شوند. دستورات لد و «ععم ممکن است متوقف کننده و يا غیرمتوقف اگر هر دو دستور متوقف کننده ‎LL‏ ما یک میعادگاه بین دو پردازه خواهیم داشت.

صفحه 41:
* می توان یک صف پیغام به اتصال اضافه کرد. * ممکن است این صف سه حالت داشته باشد: ظرفیت صفرء به طول صفر فرستنده بايد منتظر كيرنده بماند (ميعادكاه). ظرفيت محدود فرستنده در صورتى منتظر مى ماند كه اتصال ير باشد. ‎ib‏ ‏فرستنده هیچگاه منتظر نمی ماند. امحدود

صفحه 42:
| یگ بر عناوین مطالب مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بين يردازه ای ارتباط در سیستم های مشتری/کارگزار

صفحه 43:
سوکت ها * سوکت به عنوان یک نقطه پایانی برای برقراری ارتباط درنظر گرفته می شود. * یک سوکت با یک آدرس 1۳ و یک شماره پورت مشخص من شود. سوکت ۱3۲۵: ۸ 1۹. ۲۵. ۱۸۱ به پورت ۱7۲۵ روی میزبان ۸ ‎.1٩‏ ۲۵. ‎١‏ اشاره می کند. * ارتباط بين دو سوکت صورت می پذیرد.

صفحه 44:
host X (146.86.5.20) socket (146.86.5.2/1625) web server (161.25.19.8) socket (161.25.19.8/80)

صفحه 45:
‎ae‏ روال از راه دور ‏* به صورت کلی فراخوانی هایی که بین پردازه های روی یک شبکه انجام می شوند فراخوانی روال از راه دور (100) خوانده مى شوند. ‏"تاد ها پر وکسی‌هایس مهشتری‌هستند که به صورتیک ولسط مجازیبرلیروالولقعی‌که رویک ارگزار قرار دارد عملمی کنند ‏* هه سمهشتریم حلک ارگزار را پیدا میک ند و پارلمترها را برلی‌ارسا لپ سته بسندی ها می‌کند ‏"مه سمتک ارگزار پسیفام را درباف هیک ند نرا باز می‌کند و روالمورد درنخولستوا رویک ارگزار لجرا میک ند

صفحه 46:
| افراخوانى روال از راه دور (ادامه) در 8000© دو روش براى يافتن محل كاركزار وجود دار مشخص كردن آدرس ها و استفاده از دامون ميعادكاه. مى توان اطلاعات مربوط به اتصال به كاركزار را در زمان کامپایل به صورت يورت هاى ثابت در كد برنامه مشترى قرار داد. د: از پیش در این روش کارگزار نمی تواند آدرس خود را عوض کند. سيستم عامل مى تواند یک دیمون میعادگاه فراهم کند. این دیمون روی یک پورت ثابت می نشیند و با دریافت نام روال 8000© مورد نیاز شماره پورت را بازمی گرداند.

صفحه 47:
matchmaker message, looks Up answer matchmaker replies to client with port P ممم ‎listening to‏ ‎ort P receives‏ ‎message‏ daemon Fequest ana. recesses cond From: client To. server Port: matchmaker Re: address ی ‎From: server‏ ‎“To: cont‏ ‎Port: kore!‏ ‎Re: RPC x:‏ ‎Port:‏ From: client To. server Port: port From: RPC Pork To: ‘liont Port: kernel <output> tosond RPC. message to. procedure kernel sends message to. matchmaker 10 find port number kemel places port Pin usar mossago RPC komel receives reply, passes,

صفحه 48:
l 4 (RO1) 492 oly 5) ‏درخواست متد‎ Cais’ as ‎ROT *‏ یکمکنیزم شبیه به ۲0 در جاوا لست ‏* 00 به یکبس رنامه جاوا ریب کماشیر جازم می‌دهد متدهای ‎aly As‏ دور را ف رلخولنیک ند ‎JVM ‎JVM ‎Java ۰ ‎program “Method inyo, ‎ ‎ ‎٩ remote object ‎ ‎ ‎ ‎ ‎ ‎

صفحه 49:
| تواست مند از راه دور ‎(40l3!) (RO1)‏ برای اینکه از راه دور بودن فراخوانی ها از دید برنامه پنهان بماند. 0 اشیاء راه دور را با استفاده از طم< و تاه پیاده سازی می کند. 7 تاه« یک روکسیبرلی‌شیع رلم دور لست روی مشتری قرار می گیرد. یک بسته شامل نام متد راه دور و پارامترهای بسته بندی شده ایجاد می کند. بسته را به کارگزار ارسال می کند.

صفحه 50:
| تواست مند از راه دور ‎(40l3!) (RO1)‏ * ماد رظیفه دارد: پارامترهای بسته بندی شده را باز کند. متد درخواستی روی کارگزار را فراخوانی کند. مقدار بازگشتی متد را بسته بندی کرده و در یک بسته قرار دهد. بسته راابه مه روى ماشين مشترى ارسال كنل.

صفحه 51:
client remote object val = server.someMethod(A,B) | | boolean someMethod (Object x, Object y) { implementation of someMethod } A, B, someMethod boolean return value

صفحه 52:
cae

پردازه ها اسالیدهای فصل سوم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار مفهوم پردازه ‏ پردازه یک برنامه در حال اجراست .اجرای پردازه باید به صورت ترتیبی صورت پذیرد. ‏ هر پردازه شامل موارد زیر است: ‏ ‏ ‏ ‏ شمارنده برنامه پشته بخش داده ها هر پردازه در هنگام اجرا حالت خود را تغییر می دهد. حالت های پردازه ‏ حالت های مختلف یک پردازه عبارتند از: ‏ ‏ ‏ ‏ ‏ ‏ جدید :پردازه به تازگی ایجاد شده است. در حال اجرا :دستورالعمل های پردازه در حال اجراست. انتظار :پردازه منتظر است تا رویدادی رخ دهد. آماده :پردازه آماده است تا به یک پردازنده اختصاص داده شود. پایان یافته :اجرای پردازه پایان پدیرفته است. در هر لحظه فقط یک پردازه روی هر پردازنده اجرا می شود ،گرچه ممکن است پردازه های زیادی آماده اجرا و یا در حالت انتظار باشند. حالت های پردازه بلوک کنترل پردازه ()PCB ‏ هر پردازه در سیستم عامل با استفاده از یک بلوک کنترل پردازه مشخص می شود PCB .شامل اطالعات زیر می باشد: ‏ ‏ ‏ ‏ ‏ ‏ ‏ حالت پردازه شمارنده برنامه ثبات های پردازنده اطالعات زمان بندی پردازنده اطالعات مدیریت حافظه اطالعات Accounting اطالعات وضعیت ورودی /خروجی بلوک کنترل پردازه ()PCB انتقال پردازنده از یک پردازه به پردازه دیگر مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار صف های زمان بندی پردازه ها ‏ صف کار ‏ ‏ صف آماده به کار ‏ ‏ ‏ مجموعه تمام پردازه های سیستم مجموعه تمام پردازه هایی که درون حافظه اصلی هستند و آماده و منتظر برای اجرا. معموال به صورت یک link listنگهداری می شوند. صف های دستگاه ‏ مجموعه پردازه هایی که منتظر پاسخ یک دستگاه ورودی /خروجی هستند .هر دستگاه صف مربوط به خود را دارد. صف آماده و صف دستگاه های ورودی/خروجی نمای کلی زمان بندی پردازه زمان بندها ‏ هر پردازه بر اساس سیاست زمان بندی سیستم عامل بین صف های مختلف زمان بندی حرکت می کند .انتخاب پردازه ها برای جابجایی در صف ها توسط زمان بند انجام می شود. ‏ زمان بند بلند مدت (یا زمان بند کار) :پردازه هایی را که باید به صف آماده منتقل شوند انتخاب می کند. ‏ زمان بند کوتاه مدت (یا زمان بند پردازنده) :پردازه ای را که باید اجرا شود انتخاب می کند و پردازنده را در اختیار آن می گذارد. زمان بندها (ادامه) ‏ زمان بند کوتاه مدت به صورت متوالی فراخوانی می شود ،بنابراین باید بسیار سریع باشد. ‏ زمان بند بلندمدت به ندرت فراخوانی می شود لذا می تواند کند باشد. ‏ زمان بند بلندمدت درجه چندبرنامگی را کنترل می کند. ‏ این زمان بند مشخص می کند چه تعداد برنامه می توانند به صورت همزمان در حافظه بارگذاری شوند. زمان بندها (ادامه) ‏ یک پردازه ممکن است... ‏ محدود به ورودی/خروجی ( ) IO-boundedباشد ،یعنی زمان بیشتری را به اعمال ورودی/خروجی اختصاص دهد تا محاسبات .این پردازه نیاز به قطعه های کوتاه ولی متعدد زمان پردازنده دارد. ‏ محدود به پردازنده ( )CPU-boundedباشد ،یعنی زمان بیشتری را به محاسبات اختصاص دهد تا اعمال ورودی/خروجی .این پردازه نیاز به قطعه های بلند ولی کم تعداد زمان پردازنده دارد. اضافه کردن زمان بند میان مدت تعویض زمینه ()Context Switch ‏ وقتی پ\ردازنده می خواهد اجرای پردازه ای را متوقف کرده به اجرای پردازه دیگری بپردازد ،سیستم باید اطالعات پردازه اول را ذخیره کند و اطالعات مربوط به پردازه دوم را بارگذاری کند. ‏ زمان تعویض زمینه یک سربار است و سیستم در این زمان نمی تواند کار مفیدی انجام دهد. ‏ زمان تعویض زمینه از میزان پشتیبانی سخت افزاری از این عملیات تاثیر می پذیرد. مروری بر عناوین مطالب ‏ ‏ ‏ مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها ‏ ‏ ‏ ‏ ‏ ایجاد پردازه پایان دهی پردازه پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار ایجاد پردازه ‏ پردازه پدر پردازه های فرزند را ایجاد می کند که خود ممکن است پردازه های فرزند دیگری را ایجاد کنند .این پردازه ها یک درخت پردازه تشکیل می دهند. ‏ شکل های مختلف اشتراک منابع ‏ ‏ ‏ ‏ پدر و فرزندان همه منابع خود را به اشتراک می گذارند. فرزندان زیرمجموعه ای از منابع پدر را به اشتراک می برند. پدر و فرزندان هیچ منبعی را به اشتراک نمی گذارند. محدودکردن فرزندان به زیرمجموعه ای از منابع پدر مانع می شود که پردازه ای با ایجاد تعداد زیادی زیرپردازه بار کاری قابل قبول ومورد انتظاری را تحمل کند. ایجاد پردازه (ادامه) ‏ حالت های مختلف اجرای پردازه ‏ ‏ ‏ حالت های مختلف فضای حافظه پردازه ‏ ‏ ‏ پردازه های پدر و فرزندان به صورت همروند اجرا می شوند. پردازه پدر تا به پایان رسیدن پردازه های فرزند صبر می کند. پردازه فرزند یک کپی کامل از پردازه پدر است. پردازه فرزند برنامه خودش را اجرا می کند نه برنامه پردازه پدر را. یک مثال از یونیکس ‏ ‏ فراخوانی سیستمی forkیک پردازه جدید ایجاد می کند. سپس از فراخوانی سیستمی execاستفاده می شود تا برنامه جدید را در فضای حافظه پردازه ایجادشده بارگذاری کند. ایجاد پردازه (ادامه) پردازه2 ‍ براي ايجادC يك نمونه برنامه مجزا    int main() { Pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf (stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); }                 } درخت پردازه ها در یک سیستم یونیکس پایان دهی پردازه ‏ پردازه پس از اجرای آخرین دستورالعمل خود با استفاده از فراخوانی سیستمی exitاز سیستم عامل می خواهد تا به کار آن پایان دهد. ‏ ‏ اگر پردازه یک پردازه فرزند باشد خروجی آن به پردازه پدر فرستاده می شود. سیستم عامل منابع اختصاص داده شده به پردازه را باز پس می گیرد. پایان دهی پردازه (ادامه) ‏ یک پ\ردازه پدر ممکن است به دالیل زیر به اجرای فرزندانش پایان دهد: ‏ ‏ ‏ فرزند از منابع اختصاص داده شده به آن فراتر رفته است. وظیفه واگذارشده به فرزند دیگر مورد نیاز نیست. پردازه پدر می خواهد به کار خود پایان دهد و سیستم عامل اجازه نمی دهد پردازه های فرزند در غیاب پدر به زندگی خود ادامه دهند (پایان دهی آبشاری). مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار پردازه های همکار ‏ یک پردازه مستقل نمی تواند روی اجرای پردازه های دیگر تاثیر بگذارد و یا از اجرای آنها متاثر شود. ‏ پردازه های همکار ممکن است روی یکدیگر تاثیر بگذارند. ‏ منافع همکاری پردازه ها ‏ ‏ ‏ ‏ به اشتراک گذاری اطالعات افزایش سرعت محاسبات چندپیمانگی راحتی کاربری مساله تولیدکننده -مصرف کننده ‏ نمونه ای از پردازه های همکار ‏ پردازه تولیدکننده اطالعاتی را تولید می کند که توسط پردازه مصرف کننده مورد استفاده قرار می گیرند. ‏ ‏ دو فرض متفاوت برای حل مساله وجود دارد :حافظه میانگیر متناهی و حافظه میانگیر نامتناهی. دو مکانیزم ارتباطی وجود دارد: ‏ ‏ ارتباط بین پردازه ای و حافظه مشترک.. راه حل با حافظه میانگیر متناهی و حافظه مشترک ‏ داده های مشترک ‏ این راه حل اجازه حضور حداکثر BUFFER_SIZE – 1عنصر در حافظه میانگیر را می دهد. #define BUFFER_SIZE 10 { Typedef struct ... ;} item ;]item buffer[BUFFER_SIZE ;int in = 0 ;int out = 0 پردازه تولیدکننده item nextProduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; } پردازه مصرف کننده item nextConsumed; while (1) { while (in == out) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; } Bounded-Buffer – Insert() and Remove() Methods while (true) { /* Produce an item */ while (((in + 1) % BUFFER SIZE count) == out) ; /* do nothing -- no free buffers */ buffer[in] = item; in = (in + 1) % BUFFER SIZE; { while (true) { while (in == out) ; // do nothing -nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER SIZE; return item; } Solution is correct, but can only use BUFFER_SIZE-1 elements مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار ارتباط بین پردازه ای ‏ ‏ ‏ ارتباط بین پردازه ای یا IPCمکانیزمی است تا پردازه ها بتوانند با هم ارتباط برقرار کنند و فعالیت های خود را همزمان کنند. سیستم پ\یام رسانی به پردازه ها اجازه می دهد بدون نیاز به حافظه مشترک با یکدیگر ارتباط برقرار کنند. دو عملیات زیر توسط IPCفراهم می شوند: ‏ ‏ ‏ )send (message )receive (message اگر Pو Qبخواهند با یکدیگر ارتباط برقرار کنند ،باید... ‏ ‏ یک اتصال ارتباطی ( )comm. linkبین خود برقرار کنند. با استفاده از sendو receiveپیام ها را مبادله کنند. پرسش های پیاده سازی پیش از پیاده سازی ارتباط بین پردازه ای باید به برخی سئواالت پاسخ داد... ‏ ‏ ‏ ‏ ‏ ‏ چگونه اتصاالت برقرار می شوند؟ آیا می توان یک اتصال را به بیش از دو پردازه اختصاص داد؟ چه تعداد اتصال می تواند بین دو پردازه در حال مبادله پیغام وجود داشته باشد؟ ظرفیت یک اتصال چقدر است؟ آیا طول پیغامی که اتصال می تواند ارسال کند ثابت است یا متغیر؟ آیا اتصال یک طرفه است یا دوطرفه؟ ارتباط مستقیم ‏ هر پردازه باید نام پ\ردازه دیگر را به صورت صریح مشخص کند. ‏ ‏ ‏ ) ،send (P, messageی\\کپ\\\یغ\ام را ب\\\ه پ\\رداز\ه\ Pار\سا\لم\یک\\ند. ) ،receive (P, messageی\\کپ\\\یغ\ام را از پ\\رداز\ه\ Qدر\یاف\تم\یک\\ند. مشخصات اتصاالت ارتباطی ‏ ‏ ‏ ‏ اتصاالت به صورت خودکار ایجاد می شوند. هر اتصال دقیقا به دو پردازه که\ با هم در ارتباطند اختصاص می یابد. بین هر دو پردازه در ارتباط ،دقیقا یک اتصال وجود دارد. اتصال ممکن است یک طرفه باشد ،اما معموال به صورت دوطرفه است. ارتباط غیرمستقیم ‏ پیغام ها به صندوق های پستی (یا درگاه) فرستاده شده و از آنها دریافت می شوند. ‏ ‏ ‏ هر صندوق پستی یک شناسه منحصر به فرد دارد. پردازه ها تنها در صورتی می توانند ارتباط برقرار کنند که یک صندوق پستی مشترک داشته باشند. مشخصات اتصاالت ارتباطی ‏ ‏ ‏ ‏ اتصال تنها در صورتی ایجاد می شود که دو پردازه یک صندوق پستی مشترک داشته باشند. یک اتصال ممکن است به پردازه های متعددی اختصاص داده شده باشد. هر دو پردازه ای ممکن است چندین اتصال ارتباطی به اشتراک بگذارند. اتصال ممکن است یک طرفه یا دو طرفه باشد. ارتباط غیرمستقیم (ادامه) ‏ عملیات ارتباطی ‏ ‏ ‏ ‏ ایجاد صندوق پستی جدید ارسال و دریافت پیغام از صندوق های پستی ازبین بردن یک صندوق پستی دستورات ارتباطی ‏ ‏ ) ،send (A, messageی\\کپ\\\یغ\ام را ب\\\ه ص\\ندو\قپ\\\ستی Aار\سا\لم\یک\\ند. ) ،receive (A, messageی\\کپ\\\یغ\ام را از ص\\ندو\قپ\\ستی Aدر\یاف\ت م\ی ک\\ند. ارتباط غیرمستقیم (ادامه) ‏ مشکل صندوق پستی مشترک ‏ ‏ ‏ ‏ P1و P2و P3ص\\ندو\قپ\\\ستی Aرا ب\\\ه ا\ش\ترا\کم\یگ \ذار\ند. P1پ\\\یغ\ام\یار\سا\لم\یک\\ند؛ P2و P3در\یاف\تم\یک\\نند. چه کسی پیغام را دریافت می کند؟ راه حل ها ‏ ‏ ‏ هر اتصال را به حداکثر دو پردازه اختصاص بده. در هر زمان حداکثر به یک پردازه اجازه بده فرمان دریافت را صادر کند. به سیستم اجازه بده که یکی از پردازه ها را به صورت دلخواه انتخاب کند. پردازه گیرنده را به پردازنده فرستنده اطالع بده. همگامی ‏ ‏ ‏ ‏ مبادله پیام ممکن است متوقف کننده ( )blockingیا غیرمتوقف کننده باشد. مبادله پیام متوقف کننده و غیرمتوقف کننده به ترتیب همگام و غیرهمگام درنظرگرفته می شوند. دستورات sendو receiveممکن است متوقف کننده و یا غیرمتوقف کننده باشند. اگر هر دو دستور متوقف کننده باشند ،ما یک میعادگاه بین دو پردازه خواهیم داشت. ذخیره در حافظه میانگیر ‏ می توان یک صف پیغام به اتصال اضافه کرد. ‏ ممکن است این صف سه حالت داشته باشد: ‏ ظرفیت صفر ،به طول صفر ‏ ‏ ظرفیت محدود ‏ ‏ فرس\تنده باید منتظر گیرنده بماند (میعادگاه). فرستنده در صورتی منتظر می ماند که اتصال پر باشد. ظرفیت نامحدود ‏ فرس\تنده هیچگاه منتظر نمی ماند. مروری بر عناوین مطالب ‏ ‏ ‏ ‏ ‏ ‏ مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار سوکت ها ‏ ‏ سوکت به عنوان یک نقطه پایانی برای برقراری ارتباط درنظر گرفته می شود. یک سوکت با یک آدرس IPو یک شماره پورت مشخص می شود. ‏ ‏ سوکت 161 .25 .19 .8 :1625به پورت 1625روی میزبان .25 .19 .8 161اشاره می کند. ارتباط بین دو سوکت صورت می پذیرد. ارتباط با سوکت فراخوانی روال از راه دور ‏ ‏ ‏ ‏ به صورت کلی فراخوانی هایی که بین پ\ردازه های روی یک شبکه انجام می شوند ،فراخوانی روال از راه دور ( )RPCخوانده می شوند. \ت\\ک stubها پ\\رو\ک\سیهایس\\متم\شتریهستند ک\\ه ب\\\ه ص\\ور ی وا\س\طم\جاز\یب\\را\یروا\\لوا\ق\عیک\\ه رو\یک\\ار\گزار ق\\رار دارد ع\ملم\ی ک\\نند. stubس\متم\شتریم\حلک\\ار\گزار را پ\\\یدا م\یک\\ند و پ\\ارا\م\ترها را \یر\سا\لب\\\سته ب\\\ندی( )marshalم\یک\\ند. برا ا س\\مت\\ار\گزار پ\\\یغ\ام را در\یاف\تم\یک\\ند ،آ\نرا ب\\از م\یک\\ند و ک ‏stub روا\\لم\ورد در\خوا\س\ترا رو\یک\\ار\گزار ا\جرا م\یک\\ند. فراخوانی روال از راه دور (ادامه) ‏ ‏ در RPCدو روش برای یافتن محل کارگزار وجود دارد :از پیش مشخص کردن آدرس ها و استفاده از دامون میعادگاه. می توان اطالعات مربوط به اتصال به کارگزار را در زمان کامپایل به صورت پورت های ثابت در کد برنامه مشتری قرار داد. ‏ ‏ در این روش کارگزار نمی تواند آدرس خود را عوض کند. سیستم عامل می تواند یک ديمون میعادگاه فراهم کند .این ديمون روی یک پورت ثابت می نشیند و با دریافت نام روال RPCمورد نیاز شماره پورت را بازمی گرداند. اجرای ‏RPC درخواست متد از راه دور ()RMI ‏ ‏ \ت RMIی\\کم\کان\یزم ش\\بیه ب\\\ه RPCدر ج\اوا ا\س . \ین\جاز\ه\ م\ید\هد م\تدهای \ک\اش ا RMIب\\\ه ی\\کب\\رنام\ه ج\اوا رو\یی\ م ی\\کش\\یرا\ه\ دور را ف\\را\خوا\ن\یک\\ند. درخواست متد از راه دور (( )RMIادامه) ‏ برای اینکه از راه دور بودن فراخوانی ها از دید برنامه پنهان بماند، RMIاشیاء راه دور را با استفاده از stubو skeletonپیاده سازی می کند. ‏ \ت ی را\ه\ دور ا\س . stubی\\کپ\\رو\ک\سیب\\را\یش\\ ء ‏ ‏ ‏ روی مشتری قرار می گیرد. یک بسته شامل نام متد راه دور و پارامترهای بسته بندی شده ایجاد می کند. بسته را به کارگزار ارسال می کند. درخواست متد از راه دور (( )RMIادامه) ‏ skeletonو\ظ\یفه دارد: ‏ ‏ ‏ ‏ پارامترهای بسته بندی شده را باز کند. متد درخواستی روی کارگزار را فراخوانی کند. مقدار بازگشتی متد را بسته بندی کرده و در یک بسته قرار دهد. بسته را به stubروی ماشین مشتری ارسال کند. بسته بندی پارامترها پايان فصل 3

62,000 تومان