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

Slides:



Advertisements
Similar presentations
Awe sim.
Advertisements

معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
فاکتورهای مهم در ایجاد یک مقاله علمی
الگوریتم ژنتیکی. تعریف  الگوریتم ژنتیکی، رویه ای تکراری است که راه حل های انتخابیش را بصورت رشته ای از ژنها که کروموزوم نامیده می شوند، بازنمایی می کند.
Professor: Dr. Ahmad Abdollahzadeh Amirkabir University of Technology, Computer Engineering and Information Technology Department Intelligent Systems Laboratory.
Decision Tree.
© 2005 Prentice Hall Inc. All rights reserved. o r g a n i z a t i o n a l b e h a v i o r e l e v e n t h e d i t i o n.
فایل پردازی در C File based Programming in C. انواع فایل متنی –سرعت بالا –حجم کمتر –امکان دسترسی تصادفی –حفظ امنیت داده ها دودویی (باینری) –امکان باز.
1 Network Address Translation (NAT). 2 Private Network شبکه خصوصی شبکه ای است که بطور مستقیم به اینترنت متصل نیست در یک شبکه خصوصی آدرس های IP به دلخواه.
درس سیستم عامل استاد : عربی. سرفصل ها  فصل 1 : مقدمه  فصل 2 : پروسس ها  فصل 3 : ورودی / خروجی  فصل 4 : مدیریت حافظه  فصل 5 : سیستمهای فایل.
فارسی سازی يکپارچه در سيستم عاملهای OS/390 & Windows واحد 1 مهندسی سيستم Integrated Farsi support on OS/390 & Windows.
1 بنام خدا زبان برنامه نویسی C (21814( Lecture 14 Structures.
Database Laboratory: Session #4 Akram Shokri. DB-Lab 2 Lab Activity You must already created all tables You have to have inserted proper data in tables.
مظفر بگ محمدی دانشگاه ایلام Generics. کدهای عمومی 2 یکی از اهداف OOP ایجاد قابلیت نوشتن برنامه های عمومی با قابلیت استفاده ی مجدد است. کدهای چندریخت تا.
Arrangements of Lines C omputational Geometry By Samaneh shafi naderi
پیاده سازی کنترلر PC/104. Contents PC/104 پیاده سازی کنترلر HILتست 1.
آشنايي با سيستم اعداد.
[c.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
مدیریت اطلاعات و داده های سازمان یافته
مکان یابی در شبکه های حسگر بیسیم
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
( Project Operation Management )
تمرین هفتم بسم الله الرحمن الرحیم درس یادگیری ماشین محمدعلی کیوان راد
هیدروگراف(Hydrograph) تهیه : دکتر محمد مهدی احمدی
ویژگی های DHCP جلوگیری از Conflict سرعت بخشیدن به کارها مدیریت متمرکز
فصل دوم: نگاهی کلی به سیستم عامل.
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
SY800 router mode [AD-14-TB ].
آشنایی مقدماتی با نرم افزار Endnote X4
ساختمان داده ها جداول درهم سازی
چگونه بفهمیم آیا ژورنالی ISI است؟ ایمپکت فاکتور دارد یا خیر؟
فصل دوم جبر بول.
شبکه های کامپیوتری 2 درس اول چند پخشی.
SSO Single Sign-on Systems
Tree Sort.
مدارهای منطقی فصل سوم - خصوصیات توابع سويیچی
ساختمان داده‌ها پیمایش درخت دودویی
بسم الله الرحمن الرحیم.
آشنایی مقدماتی با نرم افزار Endnote X4
سیستم های اطلاعات مدیریت Management Information systems
به نام خدا فصل هفتم وراثت.
مهندسی فناوری اطلاعات ارائه دهنده دکتر سيد امين حسيني
دینامیک سیستمهای قدرت مدرس: دکتر مهدی بانژاد
Banks, Carson, Nelson & Nicol Discrete-Event System Simulation
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
Bucket sort اكرم منوچهري زهرا منوچهري
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
وبلاگ جامع مهندسی برق و الکترونیک
آشوب در سیستمهای دینامیکی
راهنمای استفاده از ابزار Mailings در Ms Word
جلسه ششم حفاظت در سیستم عامل
پشته و صف پیوندی Give qualifications of instructors: DAP
آشنایی مقدماتی با نرم افزار Endnote X4
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
آشنایی مقدماتی با نرم افزار Endnote
جستجوی منابع الکترونیک
به نام خدا Koha برنامه.
فصل ششم مدارهای ترتیبی.
دکتر مظفر بگ محمدی دانشگاه ایلام
سخت افزارهای امنیتی Hardware Security تهیه و ارایه : یونس جوان.
Uniprocessor Scheduling
به نام یکتای دانا فصل اول: متدها و قواعد.
فصل 8 –Process and Deployment
پشته و صف پیوندی Give qualifications of instructors: DAP
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
آشنایی با فرایند داده کاوی در نرم افزار R گروه داده کاوی دایکه داود دوروش تابستان 6139.
سد خونی- مغزی. تکنولوژی نمایش فاژی و کاربرد آن  مقدمه و تاریخچه  نمایش فاژی در تولید آنتی بادی مونوکونال.
Presentation transcript:

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

مروری بر عناوین مطالب مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار

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

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

حالت های پردازه

بلوک کنترل پردازه (PCB) حالت پردازه شمارنده برنامه ثبات های پردازنده اطلاعات زمان بندی پردازنده اطلاعات مدیریت حافظه اطلاعات Accounting اطلاعات وضعیت ورودی / خروجی

بلوک کنترل پردازه (PCB)

انتقال پردازنده از یک پردازه به پردازه دیگر

مروری بر عناوین مطالب مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار

صف های زمان بندی پردازه ها صف کار مجموعه تمام پردازه های سیستم صف آماده به کار مجموعه تمام پردازه هایی که درون حافظه اصلی هستند و آماده و منتظر برای اجرا. معمولا به صورت یک link list نگهداری می شوند. صف های دستگاه مجموعه پردازه هایی که منتظر پاسخ یک دستگاه ورودی / خروجی هستند. هر دستگاه صف مربوط به خود را دارد.

صف آماده و صف دستگاه های ورودی/خروجی

نمای کلی زمان بندی پردازه

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

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

زمان بندها (ادامه) یک پردازه ممکن است... محدود به ورودی/خروجی (IO-bounded ) باشد، یعنی زمان بیشتری را به اعمال ورودی/خروجی اختصاص دهد تا محاسبات. این پردازه نیاز به قطعه های کوتاه ولی متعدد زمان پردازنده دارد. محدود به پردازنده (CPU-bounded) باشد، یعنی زمان بیشتری را به محاسبات اختصاص دهد تا اعمال ورودی/خروجی. این پردازه نیاز به قطعه های بلند ولی کم تعداد زمان پردازنده دارد.

اضافه کردن زمان بند میان مدت

تعویض زمینه (Context Switch) وقتی پردازنده می خواهد اجرای پردازه ای را متوقف کرده به اجرای پردازه دیگری بپردازد، سیستم باید اطلاعات پردازه اول را ذخیره کند و اطلاعات مربوط به پردازه دوم را بارگذاری کند. زمان تعویض زمینه یک سربار است و سیستم در این زمان نمی تواند کار مفیدی انجام دهد. زمان تعویض زمینه از میزان پشتیبانی سخت افزاری از این عملیات تاثیر می پذیرد.

مروری بر عناوین مطالب مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها ایجاد پردازه پایان دهی پردازه پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار

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

ایجاد پردازه (ادامه) حالت های مختلف اجرای پردازه پردازه های پدر و فرزندان به صورت همروند اجرا می شوند. پردازه پدر تا به پایان رسیدن پردازه های فرزند صبر می کند. حالت های مختلف فضای حافظه پردازه پردازه فرزند یک کپی کامل از پردازه پدر است. پردازه فرزند برنامه خودش را اجرا می کند نه برنامه پردازه پدر را. یک مثال از یونیکس فراخوانی سیستمی fork یک پردازه جدید ایجاد می کند. سپس از فراخوانی سیستمی exec استفاده می شود تا برنامه جدید را در فضای حافظه پردازه ایجادشده بارگذاری کند.

ایجاد پردازه (ادامه)

يك نمونه برنامه ‍C براي ايجاد 2 پردازه مجزا 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 از سیستم عامل می خواهد تا به کار آن پایان دهد. اگر پردازه یک پردازه فرزند باشد خروجی آن به پردازه پدر فرستاده می شود. سیستم عامل منابع اختصاص داده شده به پردازه را باز پس می گیرد.

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

مروری بر عناوین مطالب مفهوم پردازه زمان بندی پردازه ها عملیات روی پردازه ها پردازه های همکار ارتباط بین پردازه ای ارتباط در سیستم های مشتری/کارگزار

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

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

راه حل با حافظه میانگیر متناهی و حافظه مشترک داده های مشترک #define BUFFER_SIZE 10 Typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; این راه حل اجازه حضور حداکثر BUFFER_SIZE – 1 عنصر در حافظه میانگیر را می دهد.

پردازه تولیدکننده 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 و یک شماره پورت مشخص می شود. سوکت 1625: 8. 19. 25. 161 به پورت 1625 روی میزبان 8. 19. 25. 161 اشاره می کند. ارتباط بین دو سوکت صورت می پذیرد.

ارتباط با سوکت

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

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

اجرای RPC

درخواست متد از راه دور (RMI) RMI یک مکانیزم شبیه به RPC در جاوا است. RMI به یک برنامه جاوا روی یک ماشین اجازه می دهد متدهای یک شی راه دور را فراخوانی کند.

درخواست متد از راه دور (RMI) (ادامه) برای اینکه از راه دور بودن فراخوانی ها از دید برنامه پنهان بماند، RMI اشیاء راه دور را با استفاده از stub و skeleton پیاده سازی می کند. stub یک پروکسی برای شیء راه دور است. روی مشتری قرار می گیرد. یک بسته شامل نام متد راه دور و پارامترهای بسته بندی شده ایجاد می کند. بسته را به کارگزار ارسال می کند.

درخواست متد از راه دور (RMI) (ادامه) skeleton وظیفه دارد: پارامترهای بسته بندی شده را باز کند. متد درخواستی روی کارگزار را فراخوانی کند. مقدار بازگشتی متد را بسته بندی کرده و در یک بسته قرار دهد. بسته را به stub روی ماشین مشتری ارسال کند.

بسته بندی پارامترها

پايان فصل 3