در طول دو دهه اخیر، حصول پیشرفت در تكنولوژی میكروالكترونیك باعث در دسترس قرار گرفتن پردازندههای ارزان و سریع شده است. از سوی دیگر پیشرفتهای موجود در تكنولوژی ارتباطات باعث به وجود آمدن شبكههای سریع تر و به صرفهتر شده است. از تركیب پیشرفتها در این دو میدان از تكنولوژیها تكنولوژی ارزانتر و كاراتری به وجود آمده كه در آن به جای این كه از یك پردازنده خیلی سریع استفاده شود، از چند پردازنده معمولی كه به هم متصل شدهاند استفاده میشود.
از نظر معماری، كامپیوترهایی كه از چندپردازنده متصل به هم تشكیل شدهاند اساساً بر دو دسته تقسیم میشوند.
1- سیستمهای جفت شده قوی
2- سیستمهای جفت شده ضعیف
1- سیستمهای جفت شده قوی:
در این سیستمها یك حافظه اولیه (فضای آدرس) عمومی وجود دارد كه میان همه پردازندهها به اشتراك گذاشته شده است. اگر برای مثال، پردازندهای در محل × از حافظه مقدار 100 را بنویسد هر پردازنده دیگری كه بلافاصله از همان آدرس × بخواند مقدار 100 را دریافت خواهد كرد. بنابراین در این سیستمها هر نوع تبادل میان پردازندهها از طریق حافظه مشترك صورت میگیرد
سیستمهای جفت شده ضعیف:
در این معماری پردازندهها حافظه را به اشتراك نمیگذارند و هر پردازنده فضای آدرسدهی محلی مختص به خود را دارد. برای مثال اگر پردازندههای در محل × از حافظه مقدار 100 را بنویسد این عمل فقط محتویات حافظه محلی را عوض خواهد كرد و تاثیری در محتوای حافظه پردازنده های دیگر نخواهد داشت. بنابراین اگر هر پردازنده دیگری از محل× از حافظه را بخواند هرچیزی كه قبلاً در آن محلی از حافظه محلی آن بوده به تحویل داده خواهد شد. در این نوع سیستمها هرگونه تبادل میان پردازندهها از طریق شبكهای كه پردازندهها را به هم متصل كرده و توسط انتقال پیغام انجام میگیرد.
معمولاً به سیستمهای جفت شده قوی، سیستمهای پردازش موازی اطلاق می گردد و به سیستمهای جفت شده ضعیف «سیستمهای محاسبات توزیع شده» یا به طور سادهتر «سیستمهای توزیع شده» اطلاق میشود.
در این مقاله منظور از جمله سیستم توزیع شده» همان سیستمهای توزیع شده واقعی یا «سیستمهای محاسبات توزیع شده» است كه از سیستم عاملهای توزیع شده استفاده میكنند.
در این مقاله عبارت «سیستمهای محاسبات توزیع شده» برای سیستمهای جفت شده ضعیف به كار برده خواهد شد. در مقایسه با سیستم های جفت شده قوی، پردازندههای سیستمهای محاسبات توزیع شده میتوانند خیلی دور از هم قرار گرفته باشند تاحدی كه یك ناحیه جغرافیایی را تحت پوشش قرار دهند. بعلاوه، در سیستمهای جفت شده قوی، تعداد پردازندههایی كه به طور موثر میتوانند مورد استفاده قرارگیرند مواجه با محدودیت ناشی از پهنای باند حافظه مشترك است، در حالی كه در سیستمهای محاسبات توزیع شده چنین حالتی وجود ندارد و تقریباً به طور كامل آزادی داریم كه هر تعداد كه دلمان خواست پردازنده داشته باشیم. یعنی محدودیتی در مورد تعداد پردازندهها در «سیستمهای محاسبات توزیع شده» وجود ندارد.
به طور خلاصه یك سیستم محاسبات توزیع شده اساساً مجموعهای است از پردازندههایی كه توسط یك شبكه ارتباطی به هم متصل شدهاند كه هر پردازنده حافظه محلی و دستگاههای جانبی خود را دارد و ارتباط میان هر دو جفت پردازنده از سیستم از طریق عبور پیغام از شبكه ارتباطی صورت میگیرد. برای هر پردازنده، منابع آن «محلی» هستند و این در حالی است كه پردازندههای دیگر و منابع آنها «دور» هستند به پردازنده و منابع آن به طور معمول «گره»، «سایت» یا «ماشین» سیستم عامل توزیع شده اطلاق میشود.
سیر تكامل سیستم های عامل توزیع شده
در ابتدا كامپیوترها خیلی گران (در حد میلیون دلار) بودند و جای زیادی را اشغال می كردند (در حد یك اتاق بزرگ) تعداد كمی كامپیوتر وجود داشت و آنها در لابراتوارهای تحقیقاتی دانشگاهها و مراكز صنعتی بود. این كامپیوترها از یك كنسول و بوسیله یك اپراتور قابل استفاده بودند وكاربران عادی نمیتوانستند از آن استفاده كنند. برنامه نویسان، برنامههای خود را مینوشتند و آن را روی رسانهی خاصی مثل كارت پانچ شده به مركز كامپیوتر تحویل میدادند تا مورد پردازش قرار گیرند. قبل از پردازش یك برنامه، اپراتور باید محیط لازم برای پردازش را آماده سازی می كرد. این آماده سازی شامل سوار كردن نوارها و بارگذاری كارتهای پانچ شده در كارت خوان و … بود. برنامه اجرا میشود و نتایج اجرای برنامه به صورت پرینت شده به برنامه نویس برگشت داده میشد.
آماده سازی كار در كامپیوترهای اولیه یك مشكل اساسی بود و بسیاری از وقت CPU را هدر میداد. در سالهای 1950 تا 1960 مفاهیم جدیدی برای بهینه سازی صرف وقت CPU ارائه شده كه از میان آنها میتوان به موارد زیر اشاره كرد:
کامپیوتر