اغلب سیستم های امروزی تک پردازنده ای هستند. یعنی فقط یک CPU دارند.
اما سیستم های چند پردازنده (که سیستم های موازی یا سیستم های اتصال قوی هم نام دارند)، در حال رشد هستند.
سیستم های چند پردازنده ای، چندین CPU دارند که ارتباط نزدیکی با هم داشته و از BUS کامپیوتر (درگاه)، ساعت و حتی حافظه و دستگاه های جانبی به طور اشتراکی استفاده میکنند.
سیستم های چند پردازنده ای سه امتیاز عمده و اصلی دارند:
1- توان عملیاتی بالا
با افزایش تعداد پردازنده ها، کار بیشتری در حداقل زمان انجام میشود.
البته باید توجه داشت که اگر تعداد پردازنده N باشد، نسبت تسریع N نیست بلکه کمتر از N است.
وقتی چندین پردازنده بر روی وظیفه ای با هم همکاری میکنند، سربارهایی (OverHead) لازم است تا همه چیز به خوبی پیش برود.
این سربار، به اضافه تلاش برای دسترسی بیشتر به منابع مشترک، دستاورد مورد انتظار را از چند پردازنده ای کاهش میدهد.
به همین ترتیب، کارایی گروهی از N برنامه نویس، کمتر از مجموع کارایی همه آنهاست!
2- صرفه جویی اقتصادی
سیستم های چند پردازنده ای نسبت به تک پردازنده ای مقرون به صرفه تر هستند؛ زیرا میتوانند از دستگاه های جانبی، حافظه ثانویه و نیروی برق مشترکی استفاده کنند.
اگر چندین برنامه روی یک دسته از داده ها عمل کنند، خوب است که آن داده ها بر روی یک دیسک ذخیره شوند و پردازنده ها از آن به طور اشتراکی استفاده کنند.
3- افزایش قابلیت اعتماد
اگر وظایف به خوبی بین چند پردازنده توزیع شود، خرابی یک پردازنده، کل سیستم را از کار نمی اندازد، بلکه صرفاً سرعت آن را کند میکند.
اگر 10 پردازنده داشته باشیم که یکی از آنها خراب شود، هر یک از 9 پردازنده باقی مانده باید کار آن پردازنده خراب را انجام دهند؛ لذا، کل سیستم 10% کندتر کار میکند.
این قابلیت توانایی برای ادامه کار، برای ارائه خدماتی مناسب با سطح بقاء سخت افزار، تنزل مطبوع (Graceful Degration) نام دارد.
سیستم هایی که برای تنزل مطبوع طراحی میشوند، تحمل کننده خطا (Fault Tolerant) نامیده میشوند.
ادامه دادن به فعالیت در شرایطی که یک خرابی در سیستم وجود دارد، نیازمند راهکاری است تا خطا را کشف کرده، تشخیص داده و در صورت امکان اصلاح نماید.
سیستم تَندِم با تکثیر سخت افزار و نرم افزار تضمین میکند که با وجود خرابی، سیستم به کارش ادامه دهد.
این سیستم از دو پردازنده یکسان تشکیل شده است که هر کدام حافظه محلی خاص خود را دارد.
این پردازنده ها از طریق یک گذرگاه به هم وصل هستند، یکی از آنها اصلی و دیگری پشتیبان است.
در نقطه کنترلی ثابتی از اجرای سیستم، اطلاعات حالت (State) هر کار (از جمله یک کپی از تصویر حافظه)، از ماشین اصلی به ماشین پشتیبان کپی میشود.
در صورت خرابی، کپی پشتیبان فعال شده، از آخرین نقطه کنترلی شروع به اجرا میکند.
بدیهی است که این راه حل گران تمام میشود، زیرا تکثیر سخت افزار بسیار قابل توجه است.
متداولترین سیستم های چند پردازنده ای امروزی از مدل چند پردازشی متقارن (Symmetric MultiProcessing یا SMP) استفاده میکنند که در آنها هر پردازنده از کپی یکسانی از سیستم عامل استفاده میکنند و این کپی ها در صورت لزوم با یکدیگر ارتباط برقرار میکنند.
بعضی از سیستم ها از مدل چند پردازشی نامتقارن (Asymmetric MultiProcessing) استفاده میکنند که در آن، هر پردازنده وظیفه مشخصی دارد.
یک پردازنده اصلی، سیستم را کنترل میکند و سایر پردازنده ها از پردازنده اصلی دستور میگیرند یا وظیفه مشخصی دارند.
این طرح، رابطه رئیس / مرئوس را تعریف میکند؛ پردازنده اصلی (رئیس)، عمل زمان بندی را انجام داده و کار را به سایر پردازنده ها تخصیص میدهد.
معنای SMP این است که تمام پردازنده ها همتا و نظیر هم هستند. یعنی رابطه رئیس / مرئوس بین آنها وجود ندارد و هر پردازنده به طور همزمان یک کپی از سیستم عامل را اجرا میکند.
فایده این مدل این است که چندین پردازنده میتوانند به طور همزمان اجرا شوند، به طوری که کارایی کاهش نیابد. البته باید مطمئن شویم که داده ها به پردازنده مناسبی میرسند.
هچنین چون پردازنده ها مجزا هستند، ممکن است یکی از آنها بیکار باشد ولی دیگری کار زیادی داشته باشد. در نتیجه عدم کارایی بروز خواهد کرد.
اگر پردازنده ها ساختمان داده های مشترکی داشته باشند، از این عدم کارایی اجتناب میشود.
این حالت از سیستم چند پردازنده ای اجازه میدهد تا فرآیند و منابع (نظیر حافظه)، به طور پویا بین پردازنده های مختلف، مشترک شود و در نتیجه پراکنش (Variance) بین پردازنده ها کمتر میشود.
تفاوت چند پردازشی متقارن و چند پردازشی نامتقارن
تفاوت بین چند پردازشی متقارن و چند پردازشی نامتقارن به سخت افزار یا نرم افزار برمیگردد.
سخت افزار خاص، میتواند پردازنده های چندگانه را به شیوه های گوناگونی پیکربندی کند یا نرم افزار میتواند طوری نوشته شود که اجازه دهد یکی از پردازنده ها به عنوان پردازنده رئیس و بقیه مرئوس باشند.
با ارزان شدن ریزپردازنده ها و قدرتمندتر شدن آنها، وظایف دیگری از سیستم های عامل به عهده پردازنده های مرئوس (پشتیبان یا back-end) گذاشته میشود.
به عنوان مثال، به راحتی میتوان ریزپردازنده ای با حافظه مخصوص به خودش را به سیستم اضافه کرد تا سیستم دیسک را مدیریت کند. این ریزپردازنده میتواند دنباله ای از درخواست ها را از پردازنده اصلی دریافت کند و صف دیسک و الگوریتم زمان بندی خودش را پیاده سازی نماید.
به این ترتیب، سربار زمان بندی دیسک از پردازنده برداشته میشود.
در صفحه کلید های PC، ریزپردازنده ای وجود دارد که فشردن کلیدها را به کدهایی تبدیل میکند که باید به پردازنده ارسال شوند.
در واقع باید در نظر داشت که، این نوع از کاربرد ریزپردازنده متداول شده است و به عنوان چند پردازنده ای تلقی نمیشود.
این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست بهروزرسانیهای سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال میشیم به ما اطلاع بدهید.
سلام وقتتون بخیر
دو مورد سیستم عامل متقارن و نامتقارن میشه نام ببرید؟
سلام
هر سیستم عاملی در طول زمان عملکرد متفاوتی داشته و من هم اطلاعات زیادی درباره تمام سیستم عاملها ندارم متأسفانه!
ولی اکثر OS های چند پردازندهای معمولی در حالت متقارن هستند. از چند پردازشی نامتقارن در مصارف خاص استفاده میشه.
متقارن: SunOS ورژن ۴
نامتقارن: Solaris 2
سلام خسته نباشید، مقاله مفیدی بود. ولی یه سوال تو ذهن من منوده که ممنون میشم چواب بدین.
اگه ما دو سیستم جدا از هم داشته باشیم( مثلا دو لپ تاپ) میشه این دو تارو به یه سیستم واحد تبدیل کرد؟
سلام
تا جایی که اطلاع دارم نمیشه به معنای واقعی دو تا سیستم رو به یک سیستم واحد تبدیل کرد مگر اینکه خود سختافزارها امکانش رو داشته باشند.
ولی میتونید با روشهای پردازش موازی یا پردازشهای ابری از توان یکی از اونها برای پردازش در دیگری استفاده کنید.
که این طور. مقاله یا جایی رو سراغ دارید که برای راه اندازی کمکم کنه؟(پردازش موازی یا پردازشهای ابری)
خیلی ممنون از پاسخ دهیتون
حقیقتاً آموزش مرجعی سراغ ندارم چون زیاد در این حوزه فعالیت نداشتم. در مورد روشهای راهاندازی cloud روی چند سیستم توزیع شده جستجو کنید مطالبی پیدا میکنید.
امیدوارم به نتایج خوبی برسید.
سلام و عرض ادب آیا میشود در اسمارت فون های جدید چند پردازنده از یک نوع و ادرس که در روی خود پردازنده حکاکی شده است را در سطح باس بدون نیاز به شبکه کردن وصل کردن یعنی هر پایه را به پایه دیگه و البته ارتقا هایی در حافظه موقت داد میشود چنین کاری کرد یعنی هر پایه را از طریق اتصال فیزیک به پای دیگر پردازنده دیگه وصل کردن سر جای خودش و اتصال از سطح بیس داشت
سلام
متاسفانه اطلاع دقیقی در این مورد ندارم.
اما اگر مدل پردازنده رو داشته باشید، میتونید در موردش تحقیق کنید.
تا جایی که اطلاع دارم، پردازندههایی که امکان اتصال فیزیکی برای پردازشهای موازی و قابلیت چند پردازندگی دارند، باید این امکان رو روی خود پردازنده تعریف کرده باشند. در نتیجه از هر پردازنده به پردازنده دیگه میتونه متفاوت باشه!
مطالعه مستندات و داکیومنتهای پردازنده مورد نظر احتمالاً بهتون کمک زیادی میکنه
موفق باشید.
اقا خیلی وبسایتتون عالیه
خیلی وبسایتتون عالیه سپاس
سلام خسته نباشید.ممکنه توضیح بدید که پردازنده های نامتقارن تا به حال در چه جاهای استفاده شده اند.یا در کجا کاربد دارند
سلام
چند پردازنده های نامتقارن در جاهایی استفاده میشوند که هر CPU وظایف مشخص و غیر قابل تغییر خود را دارد. مثلا فرض کنید دو پردازنده دارید که یکی سیستم عامل را اجرا میکند و پردازش های ریاضی و منطقی را انجام میدهد ولی پردازنده دوم فقط وظیفه I/O یا گرفتن ورودی و خروجی سیستم را بر عهده دارد و حتی برای اجرای سیستم عامل، دسترسی ندارد.
طبق منابع سیستم و پردازنده های Intel Atom330 و VAX-11/782 و PDP-11/74 از مواردی هستند که چند پردازنده ای نامتقارن را به کار برده اند.
سلام.میشه لطفا بگید چه سیستم عامل هایی از چند پردازشی حمایت میکنند؟وهمزمان از چند پردازنده میکنند؟
سلام
طبق اطلاعاتی که دارم تقریبا تمام سیستم عامل های معروف که بعد از ویندوز NT و یونیکس منتشر شدند از چند پردازشی استفاده میکنند.
قبل از این ها سیستم عامل هایی نظیر palm که برای تلفن همراه استفاده میشده، تک پردازشی بودند ولی زیاد معروف نیستند!
باید هر سیستم عامل رو به طور جداگانه مورد بررسی قرار بدید؛ معمولا به صورت حداکثر پردازنده مورد استفاده اعلام میشه چون گاهی اوقات به صورت تک پردازشی عمل میکنند!