آموبا، یک سیستم‌ عامل توزیع ‌شده

اگر بخواهیم مروری سریع بر سیستم‌های عامل در دوران‌های مختلف تاریخ داشته باشیم، نیاز نیست خیلی دور برویم. تاریخ سیستم عامل را می‌توان به چند دوره زیر تقسیم کرد:‌
کد خبر: ۳۰۵۹۶۹

- تا دهه 70، اشتراک زمانی (1 کامپیوتر و چند کاربر)

- دهه 80، کامپیوتر شخصی (1 کامپیوتر برای هر کاربر)

- از دهه 90، محاسبات موازی (تعداد زیادی کامپیوتر برای هر کاربر)

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

امروزه برخی سیستم‌ها بیش از یک پردازنده را به‌ازای هر کاربر ارائه می‌دهند. حالا این می‌تواند به‌شکل چند کامپیوتر موازی باشد و یا حتی تعداد زیادی از پردازنده‌ها که در یک جامعه کوچک با یکدیگر کار می‌کنند.

چنین سیستم‌هایی را سیستم‌های موازی یا سیستم‌های کامپیوتری توزیع‌شده می‌گویند. این سیستم‌ها این سوال را در ذهن می‌آورند که چه‌نرم‌افزارهایی می‌تواند در این سیستم‌ها به‌کار گرفته شود. برای پاسخ به این سوال، گروهی تحت هدایت پروفسور تنن‌باوم در دانشگاه وریژه هلند گرد هم آمده و از سال 1980 تاکنون در مورد سیستم‌های توزیع شده تحقیق می‌کنند.

نتیجه این تحقیقات، سیستم عامل توزیع‌شده جدیدی است که آموبا (آمیب / Amoeba) نام دارد و برای محیط‌هایی طراحی شده است که از تعداد زیادی کامپیوتر تشکیل شده است. آموبا برای دانشگاه‌ها و دیگر موسسات تحقیقاتی رایگان است.

آموبا چیست؟

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

از دیدگاه کاربر، آموبا درست همانند یک سیستم عامل سنتی اشتراک زمانی است. آموبا یک پروژه ناتمام است و هنوز در مرحله تکمیل به‌سر می‌برد. این سیستم عامل به‌عنوان بستری برای تحقیق و توسعه کد در سیستم‌های موازی و زبان‌ها و پروتکل‌های مرتبط با آن به‌کار می‌آید.

همچنین این سیستم می‌تواند یونیکس را شبیه‌سازی کند و ظاهری درست همانند یونیکس دارد. البته این سیستم به‌عنوان جایگزینی برای یونیکس نیست و تنها عملکردی مشابه دارد. این سیستم عامل برای دانشجویان و محققانی که می‌خواهند کد منبع‌ سیستم‌عامل را مشاهده کنند و طریقه عملکرد آن را از نزدیک ببینند، بسیار مناسب است. این سیستم عامل همچنین برای برنامه‌نویسی به‌روش توزیع شده (چند کاربر به‌طور مجزا روی چند پروژه مختلف کار کنند) و سیستم‌های موازی (یک کاربر از 50 پردازنده استفاده کند تا شترنجی را به‌طور موازی بازی کند) استفاده می‌شود.

البته ایجاد نرم‌افزارها برای این سیستم‌عامل ساده است، همانند دستور make در یونیکس، یک دستور مشابه به‌نام amake وجود دارد.

هدف از طراحی آموبا

هدف اصلی از طراحی آموبا به‌شرح زیر است:

- توزیع: اتصال چندین ماشین به‌یکدیگر

- موازی‌سازی: اجرای یک کار روی چندین پردازنده

- شفافیت: کلکسیون‌کردن کامپیوترهای مختلف و نمایش آن به‌صورت یک سیستم واحد

- بازدهی: دستیابی به تمام موارد بالایی، با کیفیت مناسب.

همان‌طور که گفتیم، آموبا سیستمی توزیع شده است و در آن چندین ماشین که به یکدیگر متصل هستند را کنترل و مدیریت می‌کند. نیازی نیست که این ماشین‌ها همه از یک نوع باشند. این ماشین‌ها می‌توانند در یک شبکه LAN به یکدیگر متصل شوند. آموبا از پروتکل شبکه قدرتمند FLIP استفاده می‌کند. اگر یک ماشین آموبا بیشتر از یک رابط شبکه داشته باشد، به‌طور خودکار به‌عنوان مسیریاب بین چند شبکه به‌کار گرفته خواهد شد و شبکه‌های LAN مختلف را به‌یکدیگر متصل خواهد کرد.

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

هر چه تعداد ریزپردازنده‌های موجود در سیستم بیشتر باشد، نتیجه بهتری حاصل می‌شود. به این مجموعه از ریزپردازنده‌ها، موتور محاسبه گفته می‌شود.

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

به‌عبارت دیگر، کاربر به یک ماشین متصل نمی‌شود و به یک سیستم کلی متصل می‌شود. مفهومی به‌نام کامپیوتر شخصی وجود ندارد و وقتی کاربر به ماشین متصل می‌شود، کاربر دستور اتصال به سروری را وارد نمی‌کند که از چندین پردازنده بهره بگیرد. از دید کاربر کل سیستم مثل یک سیستم اشتراک زمانی است.

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

معماری سیستم

از آن‌جایی که سیستم‌های توزیع شده و موازی از سیستم‌های کامپیوتر شخصی کاملا متفاوت هستند، شایان ذکر است که در ابتدا نوع پیکربندی سخت‌افزاری که برای استفاده از آموبا مورد نیاز است، را توضیح دهیم. یک سیستم عادی آموبا از سه کلاس اصلی عملکردی در هر ماشین تشکیل می‌شود.

نخست: هر کاربر یک دستگاه برای استفاده و اجرای رابط کاربری خود دارد، این رابط کاربری مبتنی بر سیستم پنجره‌ای X است. این ایستگاه می‌تواند یک ایستگاه کاملا معمولی باشد، یا یک پایانه بسیار خاص X. این دستگاه کاملا به اجرای رابط کاربری بر می‌گردد و کاری به باقی سیستم‌ها ندارد.

دوم: یک سبد از پردازنده‌ها وجود دارند که به‌طور خودکار به هر کاربر تخصیص داده می‌شوند. این پردازنده‌ها می‌توانند بخشی از یک کامپیوتر با چند پردازنده و یا بخشی از یک شبکه با چند کامپیوتر باشند، حتی می‌توان مجموعه‌ای از مادربوردها را به‌هم متصل کرد و این سیستم‌عامل را روی آن اجرا کرد.

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

ارتباطات به‌این طریق انجام می‌شود که بسته‌ها از طریق شبکه LAN ارسال می‌شود و تمام پردازش‌ها در سبد پردازنده‌ها انجام می‌شود.

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

میلاد پیکانی

منبع

Andrew S. Tanenbaum & Gregory J. Sharp,

“The Amoeba Distributed Operating System”

Vrije University.

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها