موضوع :
\پروژه رشته کامپیوتر سیستم های چند پردازنده
تحویل در محیط : word
|
عنوان سفارش :
پروژه رشته کامپیوتر در سیستم های چند پردازنده
تعداد صفحه :
78
قیمت :
36000 تومان
|
سیستم های چند پردازندهای Multi processing :
کامپیوترها میتوانند به جای یک CPU چندین CPU داشته باشند که در اینصورت به آنها سیستم multiprocessing میگویند.جهت استفاده از این سیستمهای نیاز به یک سیستم عامل خاص میباشد که بتواند چندین برنامه یانخهای یک فرآیند ) را به صورت موازی واقعی روی آنها اجراء کند .
سیستم عامل multitasking برای اجراء چند نخ بر روی یک CPU و سیستم عامل multiprocessing برای اجرای چند نخ بر روی چند CPU به کار میروند.
در سیستم چند پردازندهای , CPUها باید بتواند از حافظه , امکانات ورودی و خروجی و گذرگاه Bus سیستم به صورت اشتراکی استفاده کنند .مزایای این سیستمهای عبارتند از :
1.زیاد شدن توان عملیاتی (throughput) .منظور از throughput تعداد کارهایی است که در یک واحد زمانی تمام میشوند. بدیهی است هر چقدر تعداد پردازندهها بیشتر باشد تعداد کارهای تمام شده در یک پریود زمانی نیز بیشتر خواهد بود. البته این نسبت خطی نیست , مثلا اگر تعداد پردازندهها n باشد سرعت اجراء برنامهها nبرابر نمیشود چرا که بخشی از وقت پردازندهها جهت مسائل کنترلی و امنیتی وسوئیچ کردنها به هدر میرود.
*صرفه جویی در هزینهها , از آنجا که پردازندهها منابع تغذیه , دیسکها , حافظهها و ادوات جانبی را به صورت مشترک استفاده میکنند در هزینههای سخت افزاری صرفهجویی میشود.
2.تحمل پذیری در برابر خطا(fault-tolerant)سیستم های مالتی پروسسور قابلیت اعتماد را افزایش میدهند چرا که خرابی یک CPU سبب توقف سیستم نمیشود بلکه تنها سبب کند شدن آن خواهدشد .استمرار عمل با وجود خرابی نیازمند مکانیزمی است که اجازه دهد خرابی جستوجو شده , تشخیص داده شده و در صورت امکان اصلاح شود (یا کنار گذاشته شود). این توانایی به ادامه سرویس , متناسب با سطح بقای سخت افزار ,تنزل مطبوع یا graceful degradationنامیده میشود.
سیستمهای عاملهای چند پردازندهای به دو دسته کلی متقارن و نامتقارن تقسیم میشوند.:
در سیستم چند پردازندهای نامتقارن(Asymmetric Multi Processing = ASMP) یک پردازنده جهت اجراء سیستم عامل و پردازندههای دیگر جهت اجرای برنامههای کاربران استفاده میشود. از آنجا که کد سیستم عامل تنها روی یک پروسسور اجراء میشود, ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازندهای به دست میآید.
این نوع سیستم عاملها برای اجراء روی سخت افزارهای نامتقارن مناسب هستند, مانند کمک پردازنده و پردازندهای که به هم متصل هستند یا دو پردازندهای که از تمام حافظهموجود مشترکا" استفاده نمیکنند . یکی از معایب سیستم عامل نامتقارن غیر قابل حمل بودن (non-portable) آن است . یعنی برای سخت افزارهای مختلف باید سیستم عاملهای مختلفی نوشته شود چرا که نامتقارنی میتواند حالات مختلف داشته باشد.
در سیستم چند پردازندهای متقارن(symmetric Multi Processing = ASMP) سیستم عامل میتواند روی هر یک از پروسسورهای آزاد یا روی تمام پردازندهها همزمان اجراء شود. در این حالت حافظه بین تمام آنها مشترک میباشد. تمام پردازندهها اعمال یکسانی را میتوانند انجام دهند. سیستم متقارن از چند جنبه نسبت به نوع نامتقارن برتری دارد:
1.از آنجا که سیستم عامل خود یک پردازش سنگین است اگر فقط روی یک CPU ها اجراء شود باعث میگردد که آن پردازنده همواره بار سنگینی داشته باشد, در حالیکه احتمالاً پردازندههای دیگر بی کار هستند لذا اجراء سیستم عامل روی چند پردازنده باعث متعادل شدن (balancing) بار سیستم میشود.
2.در سیستم نامتقارن اگر پردازنده اجراء کننده سیستم عامل خراب شود کل سیستم خراب میشود ولی در سیستم متقارن از این نظر امینت بیشتر است چرا که اگر یک پردازنده از کار بیفتد سیستم عامل میتواند روی پردازندههای دیگر اجراء شود.
3.بر عکس سیستم عامل نامتقارن , سیستم عامل قابل حمل( portable) بر روی سیستم های سخت افزاری مختلف است .
سیستم عامل SUNOS ورژن 4 از نوع نامتقارن و سیستم عامل Solaris2 ورژن و همچنین windows NTاز نوع متقارن میباشند.
وجود پردازندههای متعدد از دید کاربر مخفی است و زمانبندی نخها (Thread) یا فرآیندها (process) روی هر یک از پردازندهها به عهده سیستم عامل است .
گرچه multithreadingو multiprocessingامکانات مستقلی هستند ولی معمولاً با هم پیاده سازی میشوند. حتی در یک ماشین تک پردازندهای , چند نخی کارایی را افزایش میدهد. همچنین ماشین چند پردازندهای حتی برای فرآیندهای غیر نخی هم کارآمد است .
شکل زیر تفاوت سیستم نامتقارن و متقارن را نشان میدهد :
گاهی اوقات به سیستمهای چند پردازندهای ,سیستمهای Tightly Coupled یا ارتباط محکم نیز گفته میشود. چرا که پردازندهها کلاک (Clock), گذرگاه و همچنین حافظه مشترکی دارند.
سیستم های چند برنامه ای Multi programming
در نسل سوم کامپیوترها (80-1965) از مدارات مجتمع (Integrated Circuit=IC) برای ساخت کامپیوترها استفاده شد. به طور کلی برنامهها را میتوان به دو دسته تقسیم کرد : یکی برنامه ها با تنگنای محاسباتی CPU boundیا CPU Limiter ( مانند محاسبات علمی سنگین که بیشتر زمان کامپیوتر صرف محاسبات Cpu میشود ودیگری برنامه های تنگنای I/O Limited)I/O )مانند برنامههای تجاری که بیشتر زمان کامپیوتر صرف ورود دادهها و خروج اطلاعات میشود.
یک اشکال مهم سیستم های دستهای این است که وقتی کار جاری برای تکمیل یک عملیات I/O مثلاً بر روی نوار گردان منتظر میشود. در این حال CPU بیکار میماند و مجبور است صبر کند تا عملیات I/O به اتمام برسد. در برنامه های CPU Limited این اتلاف وقت اندک است ولی در برنامه های I/O Limited ممکن است حدود 80تا90 درصد وقت CPU به هدر برود.
برای رفع این مشکل از تکنیک multiprogramming استفاده میشود. بدنی ترتیب که حافظه به چند قسمت تقسیم شده و در هر قسمت یک برنامه مجزا قرار داده میشود. وقتی که یک کار برای تکمیل عملیات I/O منتظر میماند, پردازنده به کار دیگری داده میشود. اگر تعداد کارهای موجود در حافظه کافی باشد میتوان CPU را تقریباً صد در صد مشغول نگه داشت .
البته نگهداری همزمان چند برنامه در حافظه نیاز به مدیریت خاص حافظه دارد تا برنامهها بر همدیگر اثر سوء نداشته باشند . لذا مدیریت حافظه بحث مهمی در سیستم عامل میباشد.
تقسیم بندی سیستم عاملهای چند پردازندهای
سیستم عاملهای چند پردازندهای به دو دسته کلی متقارن و نامتقارن تقسیم میشوند:
سیستم عامل سیستم چند پردازندهای نامتقارن
- در سیستم چند پردازندهای نامتقارن ( (Asymmetric Multi Processing = ASMP یک پردازنده جهت اجراء سیستم عامل و پردازندههای دیگر جهت اجرای برنامههای کاربران استفاده میشود. از آنجا که کد سیستم عامل تنها روی یک پروسسور اجراء میشود, ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازندهای به دست میآید.
این نوع سیستم عاملها برای اجراء روی سخت افزارهای نامتقارن مناسب هستند, مانند کمک پردازنده و پردازندهای که به هم متصل هستند یا دو پردازندهای که از تمام حافظهموجود مشترکا" استفاده نمیکنند.
یکی از معایب سیستم عامل نامتقارن غیر قابل حمل بودن (non-portable) آن است . یعنی برای سخت افزارهای مختلف باید سیستم عاملهای مختلفی نوشته شود چرا که نامتقارنی میتواند حالات مختلف داشته باشد.
مدیریت یک رایانه با چند سیستم عامل
راه اندازی چندگانه (multibooting)
يك روش برای داشتن چندین سیستم عامل بر روی یک رايانه به این صورت است که سیستم عامل های مختلف به طور مستقل از هم، بر روی دیسکهای فیزیکی یا پارتیشنهای منطقی مختلف نصب می شود و زمانی که سیستم آزاد (بوت) می شود, منويي با نام سیستمهای عامل ظاهر می شود و شما می توانید هر یک را که خواستید انتخاب کنید و وارد همان سیستم عامل شوید.
اولین نکته ای که در این زمينه باید مورد توجه قرار گيرد، این است که برای داشتن راه اندازی چندگانه، نخست باید فضای حافظه را به تعداد سیستم عامل هایی که می خواهید بر روی رايانه داشته باشید، به قسمت های مجزا و جدا از هم تقسیم کنید و البته غیر از این قسمت ها، باید قسمت هایی از حافظهتان را هم برای ذخیره داده ها و اطلاعاتتان کنار بگذارید.
اگر کامپیوتر شخصی شما، بیش از یک هارد دیسک دارد، تعریف و مشخص کردن این فضاهای جدا از هم برای هر سیستم عامل ساده است و می توانید هر هارد دیسک را برای یک سیستم عامل کنار بگذارید. اما بيشتر رايانههاي خانگی یک هارددیسک دارند. پس شما در آغاز مجبورید آن را به چندین قسمت یا پارتیشن تقسیم کنید. اولین سکتور هر هارد دیسک, فضایی است که به صورت رکورد راه انداز اصلی (Master boot record ) یا MBR شناخته می شود. MBR شامل یک جدول پارتیشن (pantition table ) است که مشخص می کند هارد چگونه باید به چهار قسمت منطقی اصلی (aryprim ) تقسیم شود. از آن جایی که چهار قسمت معمولا کافی نیست. یک قسمت اصلی را می تواند به صورت پارتیشن الحاقی (logical partition ) مختلف تعریف کند.
وقتی رايانه شخصي (PC) بوت می شود، برنامه Bios رايانه که در حافظه ثابت و بدون تغییر CMOS ذخیره شده است، با یک وسیله راه انداز مناسب که می تواند یک دیسک فلاپی یا CD-Rom باشد، می گردد (با توجه به پیکربندی Bios) اگر مناسب ترین و یا به عبارتی اولین وسیله راه اندازی مناسب تعریف شده روی Bios شما، هارددیسک کامپیوتر باشد، Bios قسمت MBR حافظه را می خواند و شروع به اجرای تعدادی کد راهانداز که در آنجا وجود دارد, می کند. کد راهانداز (boot code) با راهنمايي گرفتن از جدول پارتیشن فعال مشخص ميشود. سپس اطلاعاتی را که به نام boot sector volume شناخته می شوند, در ابتدای آن پارتیشن load می کند.
در سیستم عامل هایی که بر پایه ویندوز NT هستند؛ مانند ویندوز XP ، load کننده سیستم عامل فایلی است که به نام NTLDR نامیده می شود. اگر روی سیستم تک پارتیشنی کار می کنید، مابقی فرآیند بسیار سر راست است. NTLDR یا معادل آن، بار کردن سیستم چند پارتیشنی،ابتدا از شما سئوال می شود که راه اندازی از کدام پارتیشن فعال و سیستم عامل موجود در آن ادامه بدهید و یا بررسي كردن را به پارتیشن فعال و سیستم عامل موجود در آن ادامه بدهید و یا بررسي كردن را به پارتیشن دیگر (و سیستم عامل دیگر) انتقال بدهید.
..................
|