به نام خدا

تمرینات درس سیستم عامل پیشرفته

استاد مربوطه: استاد بشیری

دانشجو:ایمان باجلان

دانشگاه آزاد بروجرد

 

 

 

 

 

سوال 1ـ الف) " Mobile computing " چیست؟

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

شبكه يك حوزه كلي گسترش خدمات در علوم كامپيوتر به حساب مي آيد و امروزه مهمترين بخش در گسترش شبكه ها بحث گسترش شبكه هاي بيسيم است كه از مهمترين قابليت هاي آنها اين  است كه هميشه و در همه جا قابل دسترسي هستند و بعد زمان و مكان براي آنها معنايي ندارد.  اينجاست كه mobile computing كه زماني شايد فقط يك تعريف از مباني علوم كامپيوتر به شمار مي آمد امروزه به يكي از حوزه هاي مهم در زمينه گسترش خدمات قابل دسترس بدون محدوديت زماني و مكاني به شمار مي آيد.

" Mobile computing "شامل انبوهی از فن آوری های قابل حمل است که باعث می شود دسترسی به اینترنت ممکن شود ، اما  دیگراززندگی روزمره ما جداناپذیر میشود. از کامپیوترهای نوت بوک  که به دستیار شخصی دیجیتالی (PDA ها) معرفند تا آی فون، تلفن های همراه استانداردو غیره، " Mobile computing " به یک ضرورت در زندگی ما تبدیل شده است.

موبایل و لپ تاپ و کامپیوتر های نوت بوک می توانند یکی از دو نوع خدمات دسترسی بی سیم هنگامی که دور از خانه یا محل کار هستیم  باشند. شایع ترین استفاده و حداقل هزینه  wifi است .


تعريف علمي mobile computing :
فرايند استفاده از كامپيوتر در سفر جهت استفاده از محاسبات متحرك بدون نياز به منابع همراه مثل كابل برق يا كابل شبكه
به طور كلي mobile computing يك فرم تعاملي ميان انسان و كامپيتر است كه در آن انتظار مي رود انسان به يك كامپيوتر قابل حمل روبرو باشد.

جنبه هاي كلي در mobile computing :
سيستمهاي كامپيتري همراه داراي ساختار تشكيل دهنده مهم مي باشند.
1- ارتباط تلفني: شامل تجهيزات ارتباطي و سيستمهاي انتقال صوت و ديتا و در مجموع تجهيزان زيرساختي شبكه ارتباطي
2- سخت افزار: شامل تجهيزات رابط كه شامل سيستمهاي ارتباطي داخلي و همچنين رابط هاي كاربري مثل صفحه كليد يا حسگرهاي لمسي مي شود
3- نرم افزار: برنامه هاي مديريت ارتباطات و عملگرهاي محاسباتي كه رابط ميان كاربر و امكانات شبكه متمركز هستند و به عنوان مهمترين بخش در mobile computing به شمار مي آيند.


با سيستمهاي mobile computing يا محاسبه گرهاي همراه و نقش آْنها در گسترش حوزه اطلاع رساني و علوم ارتباطي آشنا شديم و فهميديم كه چه مزاياي كاربري و بزرگي در شبكه ها دارند اما با توجه به اينكه پياده سازي اين سيستمها نياز به تجهيزات زيرساخت پرهزينه اي دارد از اين رو توسعه و استفاده از اين سيستمها هنوز هم داراي كاستي هايي است كه معايبي را براي استفاده از mobile computing شامل مي شود .


معايب در mobile computing :
1- پهناي باند: نبود پهناي باند كافي و در نتيجه افزايش بار ترافيكي و كاهش چشمگير سرعت تراكنشها
2- استانداردهاي امنيت: برخي از مهمترين استاندارهاي امنيتي و رمزگذاري هنوز در اين سيستمها تعريف نشده و امكان سرقت و تخريب اطلاعات زياد است.
3- مصرف برق: محدوديت استفاده از دستگاه هاي پرتابل در سيستم mobile computing به دليل مصرف بالاي تجهيزات راديويي ارتباطي و محدوديت در مصرف باطري
4- مداخلات انتقال: هرچه باشد بستر اين سيستم امواج راديويي است و بحث تداخل و تخريب سيگنال توسط سيگنهالهاي هم محدوده يا عوامل جوي هميشه گريبانگير اين امواج بوده است.
5- رابط كاربري: هنوز رابط هاي كاربري تكامل يافته اي عرضه نشده اند كه بتوانند همه فرمتها و بسته هاي اطلاعاتي را پردازش كنند.

 

سوال 1ـب) " Ubiquitous Computing "چیست؟

جواب ـ

 

کلمه " Ubiquitous Computing " می تواند به عنوان "موجود بودن در همه جا در همه زمان"، "به طور مداوم باچیزی مواجه شدن" و "گسترده" تعریف شود.

 هنگام استفاده از این مفهوم در فن آوری، درتمام مدت ubiquitous” “، دلالت دارد که فن آوری در همه جا هست و ما از آن در همه زمان ها استفاده میکنیم.

ایده ای که پشت " Ubiquitous Computing " میباشد ما را درون کامپیوترها و نرم افزارها احاطه کرده است.که این وسایل با دقت بسیاربالا تنظیم و به عنوان یک دستیار بسیار محبوب برای ما مبدل شده است

 

به عنوان مثال : هنگامی که درب ماشین شما نیمه باز است به شما میگوید "درب باز است"

 

" Ubiquitous Computing "، و یا فن آوری های آرام، الگویی است که در آن تکنولوژی در زندگی ما تقریبا نامرئی میشود. به جای داشتن یک دستگاه لپ تاپ و یا نوت بوک ،از تکنولوژی استفاده می کنیم که در محیط زیست ما تعبیه شده است.

 

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


در" Ubiquitous Computing "ما تمایل به استفاده از آنها را بدون فکر کردن درباره ابزارداریم. در عوض، ما بر روی کاری که در دست  داریم  تمرکز میکنیم، ودر این فن آوری تکنولوژی در زندگی ما نامرئی میشود.

تکنولوژی " Ubiquitous Computing " اغلب بی سیم است ، تلفن همراه، و شبکه، باعث میشود که کاربران آن ارتباط  بیشتر ی با مردم و جهان اطرافشان برقرار کنند.



" Ubiquitous Computing " چرا مهم است؟

" Ubiquitous Computing " فعالیت های روزانه خود را از راه های مختلفی تغییر میدهد. هنگامی که  با ابزارهای دیجیتال امروزی می آید کاربران  تمایل دارند  به

    * برقراری ارتباط به روش های مختلف را دارند.
    * فعال تر می شود.
    * تصور و استفاده از فضاهای (جغرافیایی و زمانی)  متفاوت میشود.
    * کنترل بیشترمیشود.

مثال:

• دستگاه هوشمند درته فنجان تعبیه شده است اطلاعات زیر را به ما میدهد:
حرکت فنجان

دمای فنجان

توانایی برقراری ارتباط با دستگاه های دیگر (ساعت، بشقاب درب)

 

 

 

سوال2ـ سیستم Beowulf جزء کدام دسته از سیستم های محاسباتی است؟درباره Beowulf مختصر توضیح دهید.

جواب- این سیستم جزء سیستم های پردازنده موازی میباشد.     

یک کلاستر گروهی از سیستم های کامپیوتری  شخصی است  که میتوا ند  برای ظاهر شدن به عنوان یک سیستم کامپیوتری  ایجاد شود.

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

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

یک خوشه محاسباتی Beowulf را تعریف می کنم:
یک مجموعه کامپیوتر معمولا یکسان  با یک سیستم عامل متن باز(معمولا انواع مختلف لینوکس) است که در یک شبکه محلی (local area network) قرار گرفته اند و در آن کتابخانه های موازی   MPI(message passing interface)و برنامه هایی نصب شده است تا بتوان یک کار را به صورت مشترک میان آنها انجام داد

یک خوشه بندی Beowulf یک دسته از کامپیوتر ها است که در حالت عادی همگی یکسان هستند. این کامپیوترها به وسیله یک شبکه محلی کوچک شبکه شده اند و بر اساس زیرساخت نرم افزاری منبع باز(مانند لینوکس) و یا به وسیله کتابخانه ها و برنامه هایی که نصب شده اند اجازه می دهند پردازش ها میان آنها به اشتراک گذارده شود.نتیجه این کار برابر است با پردازش موازی خوشه ای با کارایی بالا به وسیله سخت افزار کامپیوترهای شخصی ارزان.

در سطح عادی هنگامی که دو یا بیشتر از دو کامپیوتر با یکدیگر برای حل یک مشکل همکاری میکنند آن را به مثابه یک خوشه در نظر می گیریم. خوشه ها معمولا برای دسترسی پذیری بالا (High Availability) ،قابلیت اطمینان بیشتر(Greater Reliability) ، محاسبلت با کارایی بالا (High Performance Computing) و برای ارائه قدرت محاسباتی بیشتر استفاده می شوند.

 

سوال3ـ   درباره سیستم CORBA  توضیح دهید؟

جواب-  CORBA " استانداردي براي سيستم‌هاي توزيع‌يافته"

تعریف:

(CORBA) is an architecture and specification for creating, distributing, and managing distributed program objects in a network.

 

معماری و خصوصیات برای ایجاد، توزیع و مدیریت اشیاء برنامه های توزیع شده در یک شبکه است.

اشاره:

CORBA سرنام واژه‌هايCommon Object Request Broker Architecture استانداردي براي نرم‌افزارهاي تركيبي (componentry) است كه توسط شركت object.management.group) OMG)طراحي شده و پشتيباني مي‌گردد. اين استاندارد API، پروتكل‌هاي رابطه‌اي ومدل‌هاي اطلاعاتي object/service را تعريف مي‌كند كه مي‌تواند نرم‌افزارهاي ناهمگون (نوشته شده به زبان‌هاي متفاوت) را به هم مرتبط‌سازد. بنابراين با استفاده از ‌CORBA مي‌توانيم ازشي ‌(object) در پلتفرم‌هاي توزيع‌‌يافته‌ ‌(distributed)، به صورت مشترك استفاده كنيم؛ بدون نگراني از اين كه شي در چه موقعيت مكاني قرارگرفته يا به چه پلتفرمي متعلق است. CORBA مي‌تواند كدهاي نوشته شده (در برخي زبان‌هاي برنامه‌نويسي) را بسته بندي و به آن اطلاعاتي از قبيل توانايي اجرايي كدها و چگونگي اجراي آن‌ها را اضافه نمايد. به‌طوري كه اين كدهاي بسته بندي‌شده (يا شي‌ها) بتوانند از برنامه‌هاي ديگر (يا حتي شي‌هاي ‌CORBA) كه تحت شبكه قرار دارند، اجرا شود. CORBA براي تعيين‌كردن اينترفيس‌هايي كه به ديگران ارائه مي‌كند، از يك زبان رابطه‌اي به نام IDL استفاده مي‌كند و از طريق اين زبان مي‌تواند كدهاي اجرايي (مثلا جاوا يا ‌++‌C) را بشناسد. امروزه مي‌توان زبان‌هاي معروفي مثل ‌‌جاوا، Smalltalk ،C++ ،Python، آدا، سي و ليسپ را با استفاده از اين زبان ‌‌(IDL) به هم مرتبط ساخت و از توانايي‌هاي آن‌ها استفاده نمود.

 

دلا‌يل نياز به‌‌ CORBA 
دلا‌يل نياز به CORBA را مي‌توان در پنج‌مورد زير فهرست كرد:
1‌- گوناگوني سيستم‌عامل‌ها‌ 
2- تنوع پلتفرم‌هاي سخت افزاري
3- گوناگوني پروتكل‌هاي شبكه ‌(براي مثال ‌‌TCP/IP ،ATM و ‌‌Ethernet)
4- گوناگوني زبان‌هاي برنامه‌نويسي(C ,C++ ,Java ,COBOL ,Basic ,Perl ,Smalltalk)
5- نياز ارتباط يافتن‌ سيستم‌هاي جديد با سيستم‌هاي قديمي

 

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