290 likes | 436 Views
Threads, SMP, and Microkernels. فصل چهارم. Process. مالکیت منابع – برای نگهداری تصویر فرآیند به فرآیند یک فضای مجازی اختصاص داده شده است. زمانبندی و اجرا – فرآیند از یک مسیر اجرایی که ممکن است با فرآیندهای دیگر تداخل داشته باشد پیروی می کند.
E N D
Threads, SMP, and Microkernels فصل چهارم
Process • مالکیت منابع – برای نگهداری تصویر فرآیند به فرآیند یک فضای مجازی اختصاص داده شده است. • زمانبندی و اجرا – فرآیند از یک مسیر اجرایی که ممکن است با فرآیندهای دیگر تداخل داشته باشد پیروی می کند. • سیستم عامل این دو خصیصه را بطور مستقل اعمال می نماید.
Multithreading • سیستم عامل می تواند از چندین نخ اجرا در داخل یک فرآیند پشتیبانی کند. • MS-DOS از یک نخ پشتیبانی می کند. • UNIX از چندین کاربر پشتیبانی می کند اما هر فرآیند می تواند یک نخ داشته باشد. • سیستم عاملهای Windows 2000, Solaris, Linux, Mach, و OS/2 از چند نخی پشتیبانی می کنند.
Process • فرآیند یک فضای آدرس مجازی دارد که تصویر فرآیند را نگهداری می کند. • فرآیند به پردازنده، فرآیندهای دیگر، فایلها و منابع I/O بصورت محافظت شده دسترسی دارد.
Thread • نخ یک حالت اجرا است. (در حال اجرا، آماده و ...) • متن نخ وقتی که نخ اجرا نمی شود، ذخیره می شود. • نخ دارای پشته اجرا است. • نخ می تواند متغییرهای محلی برنامه خود را ذخیره کند. • نخ به حافظه و منابع فرآیند خود دسترسی دارد.
Benefits of Threads • ایجاد یک نخ نسبت به ایجاد یک فرآیند به زمان کمتری نیاز دارد. • خاتمه دادن آن هم سریعتر است. • سوییچ کردن بین نخهای یک فرآیند سریعتر است. (نسبت به حالتی که به جای چند نخ چند فرآیند داشته باشیم) • چون تمام نخهای یک فرآیند، فضای آدرس و فایلهای آن فرآیند را به اشتراک می برند، می توانند بدون دخالت سیستم عامل با هم ارتباط داسته باشند.
Uses of Threads in a Single-User Multiprocessing System • کارهای پس زمینه و پیش زمینه • محاسبات آسنکرون • اجرای سریع • ساختار برنامه ماژولار
Threads • اگر فرآیند معلق شود، تمام نخهای آن معلق می شوند چون فضای آدرس نخها مشترک است. • اگر فرآیند خاتمه پیدا کند، تمام نخهای آن نیز باید تمام شوند.
Thread States • حالتهای نخ: • اجرا • زایش • می تواند یک نخ جدید ایجاد کند. • مسدود • غیر مسدود • خاتمه
User-Level Threads • مدیریت نخها بر عهده کاربرد ( کاربر) است. • هسته از وجود نخها آگاه نیست.
Kernel-Level Threads • W2K, Linux و OS/2از نخهای سطح هسته پشتیبانی می کنند. • هسته متن فرآیند و نخهای آن را نگهداری می کند. • زمانبندی بر حسب نخها انجام می گردد.
Combined Approaches • Solaris از هر دو نوع نخ پشتیبانی می کند. • ایجاد نخ در فضای کاربر انجام می شود. • قسمت عمده زمانبندی و همزمان سازی نخها در فضای کاربر انجام می شود.
Categories of Computer Systems • Single Instruction Single Data (SISD) • یک پردازنده جریانی از دستورالعملها را روی داده هایی که در یک حافظه ذخیره شده اند اعمال می کند. • Single Instruction Multiple Data (SIMD) • هر دستورالعمل می تواند توسط پردازنده های متفاوت روی داده های مختلف اعمال شود.
Categories of Computer Systems • Multiple Instruction Single Data (MISD) • یک دنباله از داده داریم که به مجموعه ای از پردازنده ها داده می شود تا دستورات متفاوتی را روی آن اجرا کنند. (هرگز پیاده نشده است). • Multiple Instruction Multiple Data (MIMD) • مجموعه ای از پردازنده ها بصورت همزمان روی داده های متفاوت ، دستورالعملهای مختلفی را اجرا می کنند.
Symmetric Multiprocessing • هسته می تواند روی هر کدام از پردازنده ها اجرا شود. • زمانبندی هر پردازنده بصورت جدا انجام می شود.
Multiprocessor Operating System Design Considerations • وجود نخها و فرآیندهای همزمان • زمانبندی • همزمان سازی • مدیریت حافظه • قابلیت اعتماد و تحمل خطا
Microkernels • هسته سیستم عامل خیلی کوچک است. • فقط شامل توابع اساسی سیستم عامل است. • تعدادی از خدماتی که قبلا به طور طبیعی جزء سیستم عامل محسوب می شدند، امروزه به صورت زیر سیستمهای خارجی ارائه می شوند. • درایورهای (راه انداز) ابزارها • ساختار فایل • مدیر حافظه مجازی • سیستم پنجره بندی • خدمات امنیتی
Benefits of a Microkernel Organization • واسط یکسان برای درخواستهای فرآیند • همه خدمات از طریق مبادله پیغام ارائه شده اند. • قابلیت توسعه • اضافه کردن خدمات جدید آسان است و نیازی به تغییر ریزهسته ندارد. • قابلیت تغییر • افزودن قابلیتهای جدید • حذف قابلیتهای فعلی
Benefits of a Microkernel Organization • قابلیت حمل • وقتی که پردازنده تغییر کند، تغییرات لازم فقط در ریزهسته داده می شود و نیازی به تغییر باقی خدمات نیست. • قابلیت اعتماد • طراحی ماژولار • چون ریزهسته کوچکتر است با دقت بیشتر و بطور سختگیرانه ای تست شده است
Benefits of Microkernel Organization • حمایت از سیستم توزیع شده • در پیغامهایی که فرستاده می شود نیازی به دانستن محل و نوع ماشین هدف نیست. • سیستم عامل شئ گرا • اجزاء سیستم عامل اشیائی هستند که واسط آنها بطور واضح تعریف شده اند.
Microkernel Design • Low-level memory management • mapping each virtual page to a physical page frame • Inter-process communication • I/O and interrupt management