تاريخ : پنج شنبه 12 فروردین 1389 | 1:04 AM | نويسنده : Mohammad ali Hajian

اگر بخواهیم مروری سریع بر سیستمهای عامل در دورانهای مختلف تاریخ داشته باشیم، نیاز نیست خیلی دور برویم. تاریخ سیستم عامل را میتوان به چند دوره زیر تقسیم كرد:
- تا دهه 70، اشتراك زمانی (1 كامپیوتر و چند كاربر)
- دهه 80، كامپیوتر شخصی (1 كامپیوتر برای هر كاربر)
- از دهه 90، محاسبات موازی (تعداد زیادی كامپیوتر برای هر كاربر)
تا پایان دهه 80، كامپیوترها بزرگ و سنگین بودند و در مركز كامپیوتر كار میكردند. بسیاری از سازمانها فقط یك كامپیوتر داشتند. در اواخر دهه 80، قیمتها تا حدی پایین آمد كه هر نفر میتوانست یك كامپیوتر شخصی داشته باشد. این ماشینها حتی قابلیت شبكه كردن با یكدیگر را نیز داشتند. بهاین ترتیب، از اوایل دهه 80 امكان اشتراكگذاری فایلها و دسترسی از راه دور به منابع سیستمی مختلف ایجاد شد.
امروزه برخی سیستمها بیش از یك پردازنده را بهازای هر كاربر ارائه میدهند. حالا این میتواند بهشكل چند كامپیوتر موازی باشد و یا حتی تعداد زیادی از پردازندهها كه در یك جامعه كوچك با یكدیگر كار میكنند.
چنین سیستمهایی را سیستمهای موازی یا سیستمهای كامپیوتری توزیعشده میگویند. این سیستمها این سوال را در ذهن میآورند كه چهنرمافزارهایی میتواند در این سیستمها بهكار گرفته شود. برای پاسخ به این سوال، گروهی تحت هدایت پروفسور تننباوم در دانشگاه وریژه هلند گرد هم آمده و از سال 1980 تاكنون در مورد سیستمهای توزیع شده تحقیق میكنند.
نتیجه این تحقیقات، سیستم عامل توزیعشده جدیدی است كه آموبا (آمیب / Amoeba) نام دارد و برای محیطهایی طراحی شده است كه از تعداد زیادی كامپیوتر تشكیل شده است. آموبا برای دانشگاهها و دیگر موسسات تحقیقاتی رایگان است.
از دیدگاه كاربر، آموبا درست همانند یك سیستم عامل سنتی اشتراك زمانی است. آموبا یك پروژه ناتمام است و هنوز در مرحله تكمیل بهسر میبرد. این سیستم عامل بهعنوان بستری برای تحقیق و توسعه كد در سیستمهای موازی و زبانها و پروتكلهای مرتبط با آن بهكار میآید.
همچنین این سیستم میتواند یونیكس را شبیهسازی كند و ظاهری درست همانند یونیكس دارد. البته این سیستم بهعنوان جایگزینی برای یونیكس نیست و تنها عملكردی مشابه دارد. این سیستم عامل برای دانشجویان و محققانی كه میخواهند كد منبع سیستمعامل را مشاهده كنند و طریقه عملكرد آن را از نزدیك ببینند، بسیار مناسب است. این سیستم عامل همچنین برای برنامهنویسی بهروش توزیع شده (چند كاربر بهطور مجزا روی چند پروژه مختلف كار كنند) و سیستمهای موازی (یك كاربر از 50 پردازنده استفاده كند تا شترنجی را بهطور موازی بازی كند) استفاده میشود.
البته ایجاد نرمافزارها برای این سیستمعامل ساده است، همانند دستور make در یونیكس، یك دستور مشابه بهنام amake وجود دارد.
هدف از طراحی آموبا
هدف اصلی از طراحی آموبا بهشرح زیر است:
- توزیع: اتصال چندین ماشین بهیكدیگر
- موازیسازی: اجرای یك كار روی چندین پردازنده
- شفافیت: كلكسیونكردن كامپیوترهای مختلف و نمایش آن بهصورت یك سیستم واحد
- بازدهی: دستیابی به تمام موارد بالایی، با كیفیت مناسب.
همانطور كه گفتیم، آموبا سیستمی توزیع شده است و در آن چندین ماشین كه به یكدیگر متصل هستند را كنترل و مدیریت میكند. نیازی نیست كه این ماشینها همه از یك نوع باشند. این ماشینها میتوانند در یك شبكه LAN به یكدیگر متصل شوند. آموبا از پروتكل شبكه قدرتمند FLIP استفاده میكند. اگر یك ماشین آموبا بیشتر از یك رابط شبكه داشته باشد، بهطور خودكار بهعنوان مسیریاب بین چند شبكه بهكار گرفته خواهد شد و شبكههای LAN مختلف را بهیكدیگر متصل خواهد كرد.
آموبا همچنین سیستمی موازی است. این یعنی میتوان یك كار یا یك برنامه را با چندین پردازنده مختلف بهطور موازی انجام داد تا سرعت بیشتری در اجرای آن بهدست آورد. برای مثال، برای حل مساله فروشنده دورهگرد، میتوان از ده و یا صد پردازنده استفاده كرد تا در فاصله زمانی بسیار كوتاهتری مساله را حل كرد.
هر چه تعداد ریزپردازندههای موجود در سیستم بیشتر باشد، نتیجه بهتری حاصل میشود. به این مجموعه از ریزپردازندهها، موتور محاسبه گفته میشود.
یكی دیگر از اهداف كلیدی، بحث شفافیت است. نیازی نیست كاربر از تعداد یا محل پردازندهها آگاه باشد و یا حتی بداند فایلهایش در كجا ذخیره شده است. همچنین مشكلاتی چون تكرر فایلها در نقاط مختلف بهطور خودكار رفع میشود و نیازی به دخالت دستی كاربر نیست.
بهعبارت دیگر، كاربر به یك ماشین متصل نمیشود و به یك سیستم كلی متصل میشود. مفهومی بهنام كامپیوتر شخصی وجود ندارد و وقتی كاربر به ماشین متصل میشود، كاربر دستور اتصال به سروری را وارد نمیكند كه از چندین پردازنده بهره بگیرد. از دید كاربر كل سیستم مثل یك سیستم اشتراك زمانی است.
در سیستمهای عامل، پایداری و بازدهی همواره یك دغدغه كلیدی بوده. بنابراین تلاشهای زیادی برای رفع این دغدغهها انجام شده است. مكانیزم پایه ارتباطات بهبودهای زیادی داشته است و بر اساس همین تلاشها، پیغامهای ارسالی و پاسخهای دریافتی در كمترین تاخیر ممكن ارسال و دریافت میشوند. همچنین امروزه امكان انتقال دادهها با پهنای باند بالا میان كامپیوترها رواج یافته است. بلوكهای داده پایه اصلی زیرسیستمها و برنامههای با بازدهی بالا در آموبا هستند.
معماری سیستم
از آنجایی كه سیستمهای توزیع شده و موازی از سیستمهای كامپیوتر شخصی كاملا متفاوت هستند، شایان ذكر است كه در ابتدا نوع پیكربندی سختافزاری كه برای استفاده از آموبا مورد نیاز است، را توضیح دهیم. یك سیستم عادی آموبا از سه كلاس اصلی عملكردی در هر ماشین تشكیل میشود.
نخست: هر كاربر یك دستگاه برای استفاده و اجرای رابط كاربری خود دارد، این رابط كاربری مبتنی بر سیستم پنجرهای X است. این ایستگاه میتواند یك ایستگاه كاملا معمولی باشد، یا یك پایانه بسیار خاص X. این دستگاه كاملا به اجرای رابط كاربری بر میگردد و كاری به باقی سیستمها ندارد.
دوم: یك سبد از پردازندهها وجود دارند كه بهطور خودكار به هر كاربر تخصیص داده میشوند. این پردازندهها میتوانند بخشی از یك كامپیوتر با چند پردازنده و یا بخشی از یك شبكه با چند كامپیوتر باشند، حتی میتوان مجموعهای از مادربوردها را بههم متصل كرد و این سیستمعامل را روی آن اجرا كرد.
بهطور معمول هر پردازنده چندین مگابایت حافظه شخصی دارد، این حافظه نیازی هم نیست حافظه بهاشتراك گذاشته شده باشد، چرا كه هر پردازنده میتواند هر فضایی را كه میخواهد تهیه كند. البته حافظه اشتراكی برای پردازندهها ممنوع نیست.
ارتباطات بهاین طریق انجام میشود كه بستهها از طریق شبكه LAN ارسال میشود و تمام پردازشها در سبد پردازندهها انجام میشود.
سوم: سرورهای مختص یك كار خاص وجود دارند، مثلا سرورهایی وجود دارند كه بهآنها فایلسرور میگویند و كارشان فقط در مورد فایلها و دیسكها است. این سرورها همیشه در حال اجرا هستند. این پردازندهها میتوانند متعلق به سبد پردازندهها باشند یا بهطور مستقل فعالیت كنند. تمام این مولفهها باید از طریق یك شبكه سریع بهیكدیگر متصل شوند. در حال حاضر تنها شبكههای اترنت پشتیبانی شدهاست اما در آینده دیگر شبكهها نیز پیادهسازی میشوند.
آموبا چیست؟
آموبا سیستم عامل چند منظوره توزیع شده است. این سیستم عامل میتواند از چندین ماشین بهره بگیرد و با آنها طوری رفتار كند كه انگار یك سیستم واحد و یكپارچه است. بهطور كلی، كاربران از تعداد و محل پردازندههایی كه برای اجرای دستورات وی بهكار گرفته میشود، مطلع نیستند. همچنین اطلاعات و محل سرورهای فایلی كه فایلهای آنها در آن ذخیره میشود نیز نامشخص است. از دیدگاه كاربر، آموبا درست همانند یك سیستم عامل سنتی اشتراك زمانی است. آموبا یك پروژه ناتمام است و هنوز در مرحله تكمیل بهسر میبرد. این سیستم عامل بهعنوان بستری برای تحقیق و توسعه كد در سیستمهای موازی و زبانها و پروتكلهای مرتبط با آن بهكار میآید.
همچنین این سیستم میتواند یونیكس را شبیهسازی كند و ظاهری درست همانند یونیكس دارد. البته این سیستم بهعنوان جایگزینی برای یونیكس نیست و تنها عملكردی مشابه دارد. این سیستم عامل برای دانشجویان و محققانی كه میخواهند كد منبع سیستمعامل را مشاهده كنند و طریقه عملكرد آن را از نزدیك ببینند، بسیار مناسب است. این سیستم عامل همچنین برای برنامهنویسی بهروش توزیع شده (چند كاربر بهطور مجزا روی چند پروژه مختلف كار كنند) و سیستمهای موازی (یك كاربر از 50 پردازنده استفاده كند تا شترنجی را بهطور موازی بازی كند) استفاده میشود.
البته ایجاد نرمافزارها برای این سیستمعامل ساده است، همانند دستور make در یونیكس، یك دستور مشابه بهنام amake وجود دارد.
هدف از طراحی آموبا
هدف اصلی از طراحی آموبا بهشرح زیر است:
- توزیع: اتصال چندین ماشین بهیكدیگر
- موازیسازی: اجرای یك كار روی چندین پردازنده
- شفافیت: كلكسیونكردن كامپیوترهای مختلف و نمایش آن بهصورت یك سیستم واحد
- بازدهی: دستیابی به تمام موارد بالایی، با كیفیت مناسب.
همانطور كه گفتیم، آموبا سیستمی توزیع شده است و در آن چندین ماشین كه به یكدیگر متصل هستند را كنترل و مدیریت میكند. نیازی نیست كه این ماشینها همه از یك نوع باشند. این ماشینها میتوانند در یك شبكه LAN به یكدیگر متصل شوند. آموبا از پروتكل شبكه قدرتمند FLIP استفاده میكند. اگر یك ماشین آموبا بیشتر از یك رابط شبكه داشته باشد، بهطور خودكار بهعنوان مسیریاب بین چند شبكه بهكار گرفته خواهد شد و شبكههای LAN مختلف را بهیكدیگر متصل خواهد كرد.
آموبا همچنین سیستمی موازی است. این یعنی میتوان یك كار یا یك برنامه را با چندین پردازنده مختلف بهطور موازی انجام داد تا سرعت بیشتری در اجرای آن بهدست آورد. برای مثال، برای حل مساله فروشنده دورهگرد، میتوان از ده و یا صد پردازنده استفاده كرد تا در فاصله زمانی بسیار كوتاهتری مساله را حل كرد.
هر چه تعداد ریزپردازندههای موجود در سیستم بیشتر باشد، نتیجه بهتری حاصل میشود. به این مجموعه از ریزپردازندهها، موتور محاسبه گفته میشود.
یكی دیگر از اهداف كلیدی، بحث شفافیت است. نیازی نیست كاربر از تعداد یا محل پردازندهها آگاه باشد و یا حتی بداند فایلهایش در كجا ذخیره شده است. همچنین مشكلاتی چون تكرر فایلها در نقاط مختلف بهطور خودكار رفع میشود و نیازی به دخالت دستی كاربر نیست.
بهعبارت دیگر، كاربر به یك ماشین متصل نمیشود و به یك سیستم كلی متصل میشود. مفهومی بهنام كامپیوتر شخصی وجود ندارد و وقتی كاربر به ماشین متصل میشود، كاربر دستور اتصال به سروری را وارد نمیكند كه از چندین پردازنده بهره بگیرد. از دید كاربر كل سیستم مثل یك سیستم اشتراك زمانی است.
در سیستمهای عامل، پایداری و بازدهی همواره یك دغدغه كلیدی بوده. بنابراین تلاشهای زیادی برای رفع این دغدغهها انجام شده است. مكانیزم پایه ارتباطات بهبودهای زیادی داشته است و بر اساس همین تلاشها، پیغامهای ارسالی و پاسخهای دریافتی در كمترین تاخیر ممكن ارسال و دریافت میشوند. همچنین امروزه امكان انتقال دادهها با پهنای باند بالا میان كامپیوترها رواج یافته است. بلوكهای داده پایه اصلی زیرسیستمها و برنامههای با بازدهی بالا در آموبا هستند.
معماری سیستم
از آنجایی كه سیستمهای توزیع شده و موازی از سیستمهای كامپیوتر شخصی كاملا متفاوت هستند، شایان ذكر است كه در ابتدا نوع پیكربندی سختافزاری كه برای استفاده از آموبا مورد نیاز است، را توضیح دهیم. یك سیستم عادی آموبا از سه كلاس اصلی عملكردی در هر ماشین تشكیل میشود.
نخست: هر كاربر یك دستگاه برای استفاده و اجرای رابط كاربری خود دارد، این رابط كاربری مبتنی بر سیستم پنجرهای X است. این ایستگاه میتواند یك ایستگاه كاملا معمولی باشد، یا یك پایانه بسیار خاص X. این دستگاه كاملا به اجرای رابط كاربری بر میگردد و كاری به باقی سیستمها ندارد.
دوم: یك سبد از پردازندهها وجود دارند كه بهطور خودكار به هر كاربر تخصیص داده میشوند. این پردازندهها میتوانند بخشی از یك كامپیوتر با چند پردازنده و یا بخشی از یك شبكه با چند كامپیوتر باشند، حتی میتوان مجموعهای از مادربوردها را بههم متصل كرد و این سیستمعامل را روی آن اجرا كرد.
بهطور معمول هر پردازنده چندین مگابایت حافظه شخصی دارد، این حافظه نیازی هم نیست حافظه بهاشتراك گذاشته شده باشد، چرا كه هر پردازنده میتواند هر فضایی را كه میخواهد تهیه كند. البته حافظه اشتراكی برای پردازندهها ممنوع نیست.
ارتباطات بهاین طریق انجام میشود كه بستهها از طریق شبكه LAN ارسال میشود و تمام پردازشها در سبد پردازندهها انجام میشود.
سوم: سرورهای مختص یك كار خاص وجود دارند، مثلا سرورهایی وجود دارند كه بهآنها فایلسرور میگویند و كارشان فقط در مورد فایلها و دیسكها است. این سرورها همیشه در حال اجرا هستند. این پردازندهها میتوانند متعلق به سبد پردازندهها باشند یا بهطور مستقل فعالیت كنند. تمام این مولفهها باید از طریق یك شبكه سریع بهیكدیگر متصل شوند. در حال حاضر تنها شبكههای اترنت پشتیبانی شدهاست اما در آینده دیگر شبكهها نیز پیادهسازی میشوند.
.: RASEKHOON.NET:.