PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مقاله تطابق تکنیکهای سیستم عامل با نسل های کامپیوتر



nafise sadeghi
12th October 2008, 08:52 PM
در نسل اول کامپیوترها (55-1945) که از لامپ خلأ برای ساخت آنها استفاده می‌شد,زبانهای برنامه نویسی (حتی اسمبلی )ابداع نشده بودند و سیستم عامل نیز اصلاً وجود نداشت . روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند.
آنها برنامه‌های خود را توسط تخته مدار سوراخدار (و بعدها توسط کارتهای پانچ) و به زبان ماشین به کامپیوتر می‌دادند. اکثر برنامه‌های محاسبات عددی معمولی مانند جداول سینوس و کسینوس بود.


سیستم های دسته ایBatch system


http://daneshnameh.roshd.ir/mavara/img/daneshnameh_up/a/a9/compics058.jpg
در نسل دوم , کامپیوترها (65-1955) از ترانزیستور ساخته شدند.
طریقه کار با این کامپیوترهای نسل دوم از طریق یک کنسول (Console) بود که تنها اپراتور مخصوص کامپیوتر با آن کار می‌کرد و کاربران به طور مستقیم با این کامپیوترها محاوره(interaction)نداشتند. کاربر ابتدا برنامه خود را به زبان فرترن یا اسمبلی بر روی کاغذ می‌نوشت سپس توسط دستگاه Card punch,برنامه را روی کارت های سوراخدار منتقل ساخت . بعد این دسته کارت تهیه شده که شامل برنامه, داده‌ها و کارتهای کنترل بود به صورت کار (Job) تحویل اپراتور (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%A7%D9%BE%D8%B1%D8%A7%D8%AA%D9%8 8%D8%B1) داده می‌شد . اپراتور بعد از اتمام کار قبلی , دسته کارت جدید را به کامپیوتر می‌داد تا برنامه را اجراء کند در انتها خروجی برنامه (که غالباً چاپی بود) را به کاربر تحویل می‌داد سیستم عامل در این کامپیوترهای اولیه ساده بود و وظیفه اصلی آن انتقال کنترل اتوماتیک از یک کار به کار دیگری بود . سیستم عامل همواره مقیم در حافظه بود و در هر لحظه فقط یک برنامه اجراء می‌شد.هنگامی که اپراتور مشغول گذاشتن نوارها یا برداشتن کاغذهای چاپ شده بود وقت زیادی از این کامپیوترهای گران قیمت به هدر می‌رفت .
برای رفع مشکل فوق سیستمهای دسته‌ای (Batch System) ابداع شد . یعنی ابتدا یک سبد پر از دسته کارتها در اتاق ورودی جمع آوری می‌شد , سپس کلیه آنها به وسیله دستگاه کارتخوان یک کامپیوتر کوچک و نسبتاً ارزان (مثل IBM 1401) خوانده شده و بر روی یک نوار ذخیره می‌گردید. سپس اپراتور نوار را برداشته بر روی کامپیوتر اصلی و گران قیمت که محاسبات را انجام می‌داد (مثل IBM7094) نصب می‌کرد . بعد از آن برنامه‌ای را اجراء می‌کرد (یعنی سیستم عامل ) تا اولین کار را از روی نوار برداشته و اجراء کند, خروجی بر روی نوار دیگری نوشته می‌شد. پس از اتمام هر کار سیستم عمل به صورت خودکار کار بعدی را از نوار می‌خواند. پس از اجراء همه برنامه‌ها ,اپراتور نوار خروجی را برداشته و دوباره روی کامپیوتر IBM 1401 منتقل می‌ساخت تا عملیات چاپ خروجی ها به صورت off line انجام شود. به این روش کار offline spooling نیز گفته می‌شود. بیشتر برنامه‌های نسل دوم به زبان فرترن و اسمبلی برای محاسبات مهندسی و علمی مثل مشتقات جزئی به کار می‌رفت.
یکی از معایب روش offline- spooling زیاد بودن زمان برگشت (گردش) (turnaround time) است ,یعنی تأخیر زمانی مابین تحویل کار و تکمیل کار. همچنین در این سیستم اولویت بندی به معنای واقعی وجود ندارد. تنها روش بدست آوردن اولویت این بود که نوار کارهای مهم را ابتدا در ماشین اصلی قرار دهند. حتی در این صورت هم باید چندین ساعت صبر می‌کردند تا خروجی ها ظاهر شوند. همچنین نیاز به سخت افزار (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%B3%D8%AE%D8%AA+%D8%A7%D9%81%D8% B2%D8%A7%D8%B1) اضافی(مثل کامپیوترهای1401) از دیگر معایب این روش بود.

nafise sadeghi
12th October 2008, 08:54 PM
سیستم های چند برنامه ای Multi programming



در نسل سوم کامپیوترها (80-1965) از مدارات مجتمع (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D9%85%D8%AF%D8%A7%D8%B1%D8%A7%D8%A A+%D9%85%D8%AC%D8%AA%D9%85%D8%B9) (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 را تقریباً صد در صد مشغول نگه داشت .
البته نگهداری همزمان چند برنامه در حافظه نیاز به مدیریت خاص حافظه دارد تا برنامه‌ها بر همدیگر اثر سوء نداشته باشند . لذا مدیریت حافظه بحث مهمی در سیستم عامل می‌باشد.

nafise sadeghi
12th October 2008, 08:55 PM
سیستم spooling

http://daneshnameh.roshd.ir/mavara/img/daneshnameh_up/8/89/compics00105.jpg

یکی دیگر از ویژگیهای سیستم عامل نسل سوم Spooling(یاOn Line Spooling)است که معمولاً همراه چند برنامه گی استفاده می‌شود. این کلمه مخفف عبارت (Simultaneous Peripheral OperationonLine) می‌باشد. در این سیستم به جای آنکه کارتها از دستگاه کارت خوان مستقیماً وارد حافظه گردند و توسط CPU پردازش شوند ابتدا کاراکتر به کاراکتر در بافری در حافظه قرار گرفته و سپس به صورت بلوکی بر روی دیسک (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%AF%DB%8C%D8%B3%DA%A9) نوشته می‌شود.
وقتیکه برنامه کاربر اجراء می‌شود و از سیستم عامل تقاضای ورودی می‌کند, اطلاعات ورودی به صورت بلوکی و با سرعت زیاد از دیسک خوانده می‌شوند. به طور مشابه هنگامی که برنامه برای خروجی چاپگر را احضار می‌کند, خط خروجی در یک بافر کپی شده و سپس در دیسک نوشته می‌شود. پس اطلاعات خروجی از دیسک بر اساس ترتیب و اولویت در چاپگر چاپ می‌شوند.
در واقع اسپولینگ عمل I\O یک کار را با عمل محاسباتی کار دیگر روی هم می‌اندازد (overlap) . در سیستم اسپولینگ د رحالیکه ورودی یک کار از دستگاه ورودی خوانده می‌شود,کار دیگری در حال چاپ شدن است , در همین بین حتی کار دیگری می‌تواند در حال پردازش و اجراء باشد . در اسپولینگ برنامه عملیات ورودی و خروجی اش را متناسب با سرعت دیسک (که سریع است) انجام می‌دهد و نه متناسب با سرعت کارتخوان یا چاپگر (که خیلی کند هستند ).

بنابراین سیستم مذکور باعث استفاده بهینه از CPU و سایل I\O می‌شود و سرعت عمل را بالا می‌برد. در این سیستم دیگر نیازی به کامپیوترهای 1401,نوار گردانهای اضافی و حمل نوارها (مانند سیستم‌های دسته‌ای )نداریم.



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


1-سیستم ورودی کاراکترهایی که توسط کارتخوان وارد می‌شود را در بلوکهایی جمع آوری کرده وبه کمک مدیر دیسک این بلوکها را بر روی دیسک می‌نویسد . درانتهای هر مدرک ورودی اطلاعاتی راجع به آن مدرک (مانند محل آن بر روی دیسک , اولویت ,اسم استفاده کننده ) به قسمت زمانبند کار فرستاده می‌شود.


2-زمانبند کار (Job scheduler) این زمانبند یک لیست از کارهای موجود در ماشین و اطلاعات لازم در مورد مدارک ورودی مورد نیاز هر یک را نگه می‌دارد. به این لیست انبار کار یا Jobpoolیا ـJoblist نیز گفته می‌شود. زمانبند کار به پردازنده کار می‌گوید که کدام کار بعدی را اجرا کند. برای این منظور اطلاعاتی در مورد محل کار و مدارک ورودی آن بر روی دیسک را به پردازنده کار می‌دهد . همچنین اگر کارهای متعددی منتظر ورود به حافظه باشند و فضای کافی برای همگی در دسترس نباشد , زمانبند کار تعدادی از آنها را انتخاب کرده و به حافظه می‌آورد.


3-پردازنده کار (Job processor) کار داده‌ شده را اجراء می‌کند. این پردازنده محل کامپایلرها و سایر نرم افزارهای سیستم را بر روی دیسک می‌داند. هنگام اجراء پردازنده کار خروجی های خود را به صورت بلوکی بر روی دیسک می‌نویسد و مدارک خروجی را تشکیل می‌دهد . پردازنده کار اطلاعاتی راجع به محل و اولیت مدارک خروجی به زمانبند خروجی می‌دهد.


4-زمانبند خروجی(output scheduler) لیستی از مدارکی که باید چاپ شود را نگه می‌دارد. وقتی که چاپگر آزاد شد , این زمانبند مدرک بعدی را برای چاپ انتخاب کرده و محل مدرک بر روی دیسک را به سیستم خروجی می‌گوید.

5-سیستم خروجی بلاکهای خروجی را از روی دیسک خوانده و کاراکتر به کاراکتر (یا خط به خط)آنها را به چاپگر می‌فرستد.


6-مدیر دیسک (Disk Manager) که وظایف خواندن و نوشتن یک بلاک بر دیسک , تخصیص یک بلاک خالی روی دیسک و برگرداندن یک بلاک به مجموعه فضای آزاد دیسک را بر عهده دارد. در خواستهای مربوطه به دیسک در یک صف به نام (Disk Transfer Queue)DTQ ذخیره می‌گردد.


البته هر سیستم اسپولینگ یک هماهنگ کننده(Coordinator) دارد که مسئول زمانبندی پردازش های سیستم و فراهم کردن عملیاتی که جهت همگام کردن بکار می‌آیند می‌باشد. این عملیات توسط دو روال انجام می‌پذیرد:


Wait : پردازش جاری را متوقف کرده و دوباره وارد زمانبند می‌گردد.


Free : یک پردازش ویژه را جهت زمانبندی, آماده می‌کند.


بافر کردن امکان می‌دهد که عمل I\Oیک کار با عمل پردازش همان کار همزمان گردد در حالیکه spooling امکان می‌دهد عملیات I\O و پردازش چندین کار با هم همزمان گردند.

nafise sadeghi
12th October 2008, 08:56 PM
سیستم اشتراک زمانی



این سیستم‌ها از اوایل سالهای 1970 در نسل سوم کامپیوترها معمول شدند. سیستم اشتراک زمانی در واقع تعمیم سیستم چند برنامگی است .




http://daneshnameh.roshd.ir/mavara/img/daneshnameh_up/3/30/compics056.jpg




در سیستم‌های چند برنامگی کاربر ارتباطی با کامپیوتر نداشت و خطایابی برنامه‌ها مشکل بود چرا که زمان برگشت نسبتاً طولانی اجازه آزمایش کردنهای متعدد را نمی‌داد. در سیستم اشتراک زمانی کاربر به کمک دو ترمینال (Terminal) که شامل کی برد(برای ورودی) و مونیتور (برای خروجی ) است با کامپیوتر به صورت محاوره‌ای (interactive) رابطه بر قرار می‌سازد .کاربر مستقیماً دستوراتی را وارد کرده و پاسخ سریع آن را روی مونیتور دریافت می‌کند. در این سیستم‌ها چندین کاربر به کمک ترمینالهایی که به کامپیوتر وصل است همزمان می‌توانند از آن استفاده کنند . در سیستم اشتراک زمانی فقط یک پردازنده وجود دارد که توسط مکانیزمهای زمانبندی بین برنامه‌های مختلف کاربرها با سرعت زیاد (مثلاً در حد میلی ثانیه) سوئیچ می‌شودو بنابراین هر کاربر تصور می‌کند کل کامپیوتر در اختیار اوست .در اینجا تأکید بر روی میزان عملکرد کاربر است یعنی هدف فراهم کردن وسایل مناسب برای تولید ساده نرم افزار و راحتی کاربرد می‌باشد و نه بالا بردن میزان کاربرد منابع ماشین . کاربر می‌تواند در هر زمان دلخواه برنامه خود را آغاز یا متوقف سازد و یا برنامه را به صورت قدم به قدم اجراء و اشکال زدایی (debug) کند . سیستم‌های دسته‌ای برای اجرای برنامه‌های بزرگ که نیاز محاوره‌ای کمی دارند مناسب است ولی سیستم‌های اشتراک زمانی برای مواردی که زمان پاسخ کوتاه لازم است , استفاده می‌شوند.
در زمانی که کاربری در حال تایپ برنامه‌اش یا فکر کردن روی خطاهای برنامه ‌اش می‌باشدCPU به برنامه کاربر دیگری اختصاص یافته تا آن را اجراء کند .

nafise sadeghi
12th October 2008, 09:01 PM
سیستم عامل‌های کامپیوتر‌های شخصی و شبکه



سال 1980 تاکنون که مدارات مجتمع (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D9%85%D8%AF%D8%A7%D8%B1%D8%A7%D8%A A+%D9%85%D8%AC%D8%AA%D9%85%D8%B9) با مقیاس بزرگ (Large Scale Integrated Circuit) ابداع شدند، به عنوان نسل چهارم کامپیوترها شناخته می‌شود. در این سالها کامپیوترهای شخصی با قیمتی ارزان و کارآیی بالا و محیط گرافیکی و محاوره‌ای بسیار خوب به سرعت گسترش یافتند. سیستم عاملهای اولیه بر روی PCهامانند DOS فقط تک کاربره و تک برنامه‌ای بودند.
ولی سیستم عاملهای امروزی آن مانند Windows NT خاصیتهای چند برنامگی ،چند کاربره (multiuser) و شبکه‌ای را دارا هستند. با توجه به هزینه اندک سخت افزار (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%B3%D8%AE%D8%AA+%D8%A7%D9%81%D8% B2%D8%A7%D8%B1) اهداف سیستم عامل در طول زمان تغییر کرده است وبرای PCها به جای ماکزیمم کردن درصد استفاده CPU و وسایل جانبی، سیستم به سمت راحتی کاربر پیش می‌رود.
به تدریج ویژگی‌های مهم سیستم عاملهای قدیمی در کامپیوترهای بزرگ (مانند حافظت حافظه ، حافظه مجازی، محافظت فایلها ، همزمانی پردازشهاو...) بر روی سیستم های PC نیز پیاده سازی شده است .
هنگامی که کامپیوترها از طریق شبکه به هم وصل شوند. به آنها ایستگاههای کاری (Work stations) می‌گویند . در یک سیستم عامل شبکه ، کاربران از وجود ماشین های مختلف در شبکه با خبرند. آنها می‌توانند از دور وارد یک ماشین شوند و همچنین فایلهای یک ماشین را روی ماشین دیگر کپی کنند.
هر کامپیوتر سیستم عامل محلی خودش را اجراء می‌کندو کاربر یا کاربران محلی مخصوص به خود را دارد .

nafise sadeghi
12th October 2008, 09:05 PM
سیستم های توزیع شدهDistributed system



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

یکی از مزایای مهم سیستمهای توزیع شده سرعت بالای اجرای برنامه‌هاست چرا که یک برنامه همزمان می‌تواند از چندین کامپیوتر برای اجراء شدنش استفاده کند.
همچنین به علت توزیع شدن اطلاعات, بانکهای اطلاعاتی حجیم می‌توانند روی یکسری کامپیوترهای شبکه شده قرار بگیرند. و لازم نیست که همه اطلاعات به یک کامپیوتر مرکزی فرستاده شود(که در نتیجه این نقل و انتقالات حجیم زمان زیادی به هدر می‌رود.)

به علت تأخیر‌های انتقال در شبکه و نویزهای احتمالی در خطوط انتقالی قابلیت اعتماد اجرای یک برنامه دریک سیستم تنها,بیشتر از قابلیت اجرای آن دریک سیستم توزیع شده است .
همچنین درسیستم توزیع شده اگر یکی از کامپیوترهایی که وظیفه اصلی برنامه جاری را برعهده دارد خراب شود کل عمل سیستم مختل خواهد شد . از طرف دیگر اگر اطلاعاتی همزمان در چند کامپیوتر به صورت یکسان ذخیره گردد ویکی از کامپیوترها خراب شود, داده (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%AF%D8%A7%D8%AF%D9%87)‌ها را می‌توان از کامپیوترهای دیگر بازیابی کرد از این نظر امنیت افزایش می‌یابد.

به سیستم های توزیع شده گاهی اوقات سیستمهای Loosely Coupled یا ارتباط ضعیف نیز می‌گویند,چرا که هر پردازنده کلاک و حافظه مستقلی دارد . پردازنده‌ها از طریق خطوط مخابراتی مختلفی مثل گذرگاه‌های سریع یا خطوط تلفن ارتباط دارند.

nafise sadeghi
12th October 2008, 09:06 PM
سیستم ها ی چند وظیفه ایMulti tasking





در تکنیک چندنخی (multitasking) یک فرایند (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B 4+%D8%AF%D8%B1+%D8%B3%DB%8C%D8%B3%D8%AA%D9%85+%D8% B9%D8%A7%D9%85%D9%84) (process) که برنامه‌ای در حال اجراست , می‌تواند به بخشها یا نخهایی (بندهایی ) تقسیم شود که می‌توانند به صورت همزمان اجراء شوند.
برنامه‌هایی که چند وظیفه مستقل از هم را انجام می‌دهند می‌توانند به صورت چند نخی نوشته شوند. گاهی اوقات به سیستمهای multithreading سیستمهای چند تکلیفی یا چند وظیفه ای (multitasking)هم گفته می‌شود.

فرآیند (process)یا پردازش اساس یک برنامه در حال اجراست که منابعی از سیستم به آن تخصیص داده شده است (شامل رجیسترها,حافظه,فایل (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D9%81%D8%A7%DB%8C%D9%84)ها و دستگاهها).فرآیند می‌تواند مجموعه‌ای از یک یا چند نخ باشد.

به نخ, رشته یا بند هم گفته می‌شود . کلیه اطلاعات مربوط به هر پروسس (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B 4+%D8%AF%D8%B1+%D8%B3%DB%8C%D8%B3%D8%AA%D9%85+%D8% B9%D8%A7%D9%85%D9%84) , در یکی از جداول سیستم عامل به نام جداول process Control Block=PCB ذخیره می‌شود. این جدول یک آرایه یا لیست پیوندی از ساختارهاست که هر عضو آن مربوط به یکی از پروسس‌هاست که در حال حاضر موجودیت دارد.

اطلاعات موجود در PCB عبارتند از :






حالت جاری پردازش
شماره شناسایی پردازش
اولیت پردازش
نشانی حافظه پردازش
نشانی محل برنامه پردازش بر روی دیسک
نشانی سایر منابع پردازش
محلی برای حفظ ثباتها .

nafise sadeghi
12th October 2008, 09:08 PM
سیستم های چند پردازندهای Multi processing




کامپیوترها می‌توانند به جای یک CPU چندین CPU داشته باشند که در اینصورت به آنها سیستم multiprocessing میگویند.جهت استفاده از این سیستمهای نیاز به یک سیستم عامل خاص می‌باشد که بتواند چندین برنامه یانخهای یک فرآیند ) را به صورت موازی واقعی روی آنها اجراء کند .
سیستم عامل multitasking برای اجراء چند نخ بر روی یک CPU و سیستم عامل multiprocessing برای اجرای چند نخ بر روی چند CPU به کار می‌روند.
در سیستم چند پردازنده‌ای , CPUها باید بتواند از حافظه , امکانات ورودی و خروجی و گذرگاه Bus سیستم به صورت اشتراکی استفاده کنند .مزایای این سیستمهای عبارتند از :


1.زیاد شدن توان عملیاتی (throughput) .منظور از throughput تعداد کارهایی است که در یک واحد زمانی تمام می‌شوند. بدیهی است هر چقدر تعداد پردازنده‌ها بیشتر باشد تعداد کارهای تمام شده در یک پریود زمانی نیز بیشتر خواهد بود. البته این نسبت خطی نیست , مثلا اگر تعداد پردازنده‌ها n باشد سرعت اجراء برنامه‌ها nبرابر نمی‌شود چرا که بخشی از وقت پردازنده‌ها جهت مسائل کنترلی و امنیتی وسوئیچ کردنها به هدر می‌رود.

*صرفه جویی در هزینه‌ها , از آنجا که پردازنده‌ها منابع تغذیه , دیسک (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%AF%DB%8C%D8%B3%DA%A9)ها , حافظه‌ها و ادوات جانبی را به صورت مشترک استفاده می‌کنند در هزینه‌های سخت افزار (http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%B3%D8%AE%D8%AA+%D8%A7%D9%81%D8% B2%D8%A7%D8%B1)ی صرفه‌جویی می‌شود.

2.تحمل پذیری در برابر خطا(fault-tolerant)سیستم های مالتی پروسسور قابلیت اعتماد را افزایش می‌دهند چرا که خرابی یک CPU سبب توقف سیستم نمی‌شود بلکه تنها سبب کند شدن آن خواهدشد .استمرار عمل با وجود خرابی نیازمند مکانیزمی است که اجازه دهد خرابی جستوجو شده , تشخیص داده شده و در صورت امکان اصلاح شود (یا کنار گذاشته شود). این توانایی به ادامه سرویس , متناسب با سطح بقای سخت افزار ,تنزل مطبوع یا graceful degradationنامیده می‌شود.

سیستمهای عاملهای چند پردازنده‌ای به دو دسته کلی متقارن و نامتقارن تقسیم می‌شوند.:br>
در سیستم چند پردازنده‌ای نامتقارن(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), گذرگاه و همچنین حافظه مشترکی دارند

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد