آموزش سیستم عامل -10-سیستم های اشتراک زمانی(time sharing)

این سیستم‌ها از اوایل سالهای 1970 در نسل سوم کامپیوترها معمول شدند. سیستم اشتراک زمانی در واقع تعمیم سیستم چند برنامگی است .

در سیستم‌های چند برنامگی کاربر ارتباطی با کامپیوتر نداشت و خطایابی برنامه‌ها مشکل بود چرا که زمان برگشت نسبتاً طولانی اجازه آزمایش کردنهای متعدد را نمی‌داد. در سیستم اشتراک زمانی کاربر به کمک دو ترمینال (Terminal) که شامل کی بوردبرای ورودی و مونیتور برای خروجی  است با کامپیوتر به صورت محاوره‌ای  (interactive) رابطه بر قرار می‌سازد .
کاربر مستقیماً دستوراتی را وارد کرده و پاسخ سریع آن را روی مونیتور دریافت می‌کند. در این سیستم‌ها چندین کاربر به کمک ترمینالهایی که به کامپیوتر وصل است همزمان می‌توانند از آن استفاده کنند .
در سیستم اشتراک زمانی فقط یک پردازنده وجود دارد که توسط مکانیزمهای زمانبندی بین برنامه‌های مختلف کاربرها با سرعت زیاد (مثلاً در حد میلی ثانیه) سوئیچ می‌شودو بنابراین هر کاربر تصور می‌کند کل کامپیوتر در اختیار اوست .در اینجا تأکید بر روی میزان عملکرد کاربر است یعنی هدف فراهم کردن وسایل مناسب برای تولید ساده نرم افزار و راحتی کاربرد می‌باشد و نه بالا بردن میزان کاربرد منابع ماشین .
کاربر می‌تواند در هر زمان دلخواه برنامه خود را آغاز یا متوقف سازد و یا برنامه را به صورت قدم به قدم اجراء و اشکال زدایی (debug) کند . سیستم‌های دسته‌ای برای اجرای برنامه‌های بزرگ که نیاز محاوره‌ای کمی دارند مناسب است ولی سیستم‌های اشتراک زمانی برای مواردی که زمان پاسخ کوتاه لازم است , استفاده می‌شوند.
در زمانی که کاربری در حال تایپ برنامه‌اش یا فکر کردن روی خطاهای برنامه ‌اش می‌باشدCPU به برنامه کاربر دیگری اختصاص یافته تا آن را اجراء کند

 .

 نکته1 : سیستم های اشتراک زمانی عملا فراگیر نشد تا اینکه استفاد ه از سخت افزار لازم برای حفاظت در کامپیوتر های نسل سوم رایج شد.{تننباوم}}

نکته 2: در سیستم های  اشتراک زمانی اندازه برهه زمانی (Quantum  ) را سیستم عامل معین می کند. همه جا مدیریت با سیستم عامل است . هیچ اتفاقی را سیستم عامل نمی فهمد بلکه  فقط از طریق  وقفه

 (interupt ) می فهمد.

نکته 3: CPU ، Timer   ندارد بلکه Timer   در روی مادر برد است یعنی Intrupt  Timer   به CPU  می دهد و بعد برای اجرا سیستم عامل وارد عمل می شود.

نکته 4: در سیستم های محاورهای(interactive) اولین کاری که انجام می دهیم عمل Login   است و گرنه اجازه ورود  به سیستم را نمی دهد.  ابتدا  UserID  و Password   را  چک میکند. بعد  به کاربر  یک  Token    می دهد این Token

می گوید از چه ثبات هایی می توانی استفاده کنی و به کجا ها دسترسی داشته باشی مجوز صادر می کند.

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

نسل چهارم (1980 تا کنون ) : کامپیوتر های شخصی

سال 1980 تاکنون که مدارات مجتمع با مقیاس بزرگ (Large Scale Integrated Circuit) ابداع شدند, به عنوان نسل چهارم کامپیوترها شناخته می‌شود. در این سالها کامپیوترهای شخصی با قیمتی ارزان و کارآیی بالا و محیط گرافیکی و محاوره‌ای بسیار خوب به سرعت گسترش یافتند. سیستم عاملهای اولیه بر روی pcهامانند DOSفقط تک کاربره و تک برنامه‌ای بودند.
ولی سیستم عاملهای امروزی آن مانند Windows NT خاصیتهای چند برنامگی ,چند کاربرته (multiuser) و شبکه‌ای را دارا هستند. با توجه به هزینه اندک سخت افزار اهداف سیستم عامل در طول زمان تغییر کرده است وبرای PC ها به جای ماکزیمم کردن درصد استفاده CPU و وسایل جانبی , سیستم به سمت راحتی کاربر پیش می‌رود.
به تدریج ویژگی‌های مهم سیستم عاملهای قدیمی در کامپیوترهای بزرگ (مانند محافظت حافظه , حافظه مجازی, محافظت فایلها ، همزمانی پردازشهاو...) بر روی سیستم های PC نیز پیاده سازی شده است .

هنگامی که کامپیوترها از طریق شبکه به هم وصل شوند. به آنها ایستگاههای کاری (Work stations) می‌گویند . در یک سیستم عامل شبکه , کاربران از وجود ماشین های مختلف در شبکه با خبرند. آنها می‌توانند از دور وارد یک ماشین شوند و همچنین فایلهای یک ماشین را روی ماشین دیگر کپی کنند.
هر کامپیوتر سیستم عامل محلی خودش را اجراء می‌کندو کاربر یا کاربران محلی مخصوص به خود را دارد .

 


سیستم های بی درنگReal Time

یک سیستم بلا درنگ سیستمی است که درآن زمان نقش مهمی را ایفا می کند . نوعاٌ اگر یک یا چند دستگاه فیزیکی را از خارج کامپیوتر  تحریکاتی ایجاد کنند کامپیوتر  باید طی مدت زمانی معین در برابر آنها واکنش مناسب نشان دهد. مثل سیستم مانیتورینگ  بخش آی سی یو  بیمارستان ، سیستم خلبان اتوماتیک هواپیما و سیستم کنترل امن و مطمئن یک نیروگاه اتمی می باشد.{تننباوم 106}
سیستمهای بی درنگ معمولاً به عنوان یک کنترل کننده در یک کاربرد خاص استفاده می‌شوند. سیستم در این حالت می‌بایست در زمانی مشخص و معین حتماً جواب مورد نظر را بدهد .سیستمهای کنترل صنعتی, پزشکی , کنترل موشک و غیره از این دسته‌اند.
نکته :در سیستمهای بی درنگ زمان پاسخ باید سریع و تضمین شده باشد ولی در سیستم اشتراک زمانی مطلوبست که زمان پاسخ سریع باشند (ولی اجباری نیست).درسیستم دسته‌ای هیچ محدودیت زمانی در نظر گرفته نمی‌شود.

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

1-بلادرنگ  سخت ( Hard Real Time )

2-بلادرنگ  نرم (Soft Real Time )


سیستمهای بی درنگ با سیتسمهای اشتراک زمانی تناقض دارند لذا نمی‌توانند هر دو توأماً وجود داشته باشند . به دلیل نیاز به پاسخ دهی سریع و تضمین شده سیستم‌های بلادرنگ از حافظه مجازی و اشتراک زمانی استفاده نمی‌کنند به این سیستم‌ها «بی درنگ سخت»(Hard Real Time) نیز گفته می‌شود.

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

در سیستمهای «بی درنگ نرم» یک وظیفه بی درنگ بحرانی, نسبت به سایر وظایف الویت دارد و تا پایان تکمیل شدنش این ارجحیت را دارا خواهد بود . از آنجا که این سیستمها مهلت زمانی(deadline) را پشتیبانی نمی‌کنند استفاده آنها در کنترل صنعتی ریسک آور است . هر چند که این سیستمهای بی درنگ نرم می‌بایست پاسخی سریع داشته باشند ولی مساله پاسخ دهی به حادی سیستمهای بی درنگ سخت نمی‌باشد.
از کاربردهای سیستم بی درنگ نرم می‌توان رزرواسیون شرکتهای هواپیمایی ,چند رسانه‌ای     (multimedia) واقعیت مجازی (Virtual reality) را نام برد. این سیستمها به ویژگی‌های سیستم عاملهای پیشرفته (که توسط بیدرنگ سخت حمایت نمی‌شوند)نیازمندند . بعضی از نسخه‌های UNIX مانند solaris 2 خاصیت بیدرنگ نرم را دارا می‌باشند.

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

 

 

 

 

سیستم های چند پردازندهای Multi processing

کامپیوترها می‌توانند به جای یک CPU چندین CPU داشته باشند که در اینصورت به آنها سیستم multiprocessing میگویند.جهت استفاده از این سیستمهای نیاز به یک سیستم عامل خاص می‌باشد که بتواند چندین برنامه یانخهای یک فرآیند ) را به صورت موازی واقعی روی آنها اجراء کند .)


نکته : سیستم عامل multitasking برای اجراء چند نخ بر روی یک CPU و سیستم عامل multiprocessing برای اجرای چند نخ بر روی

چند CPU به کار می‌روند.

 

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

-1  سیستم حاکم تابع( Master Slave Mode

-2سیستم عامل توزیع شده با ارتباط     Loosely Coupled System    

 -3 سیستم عامل  توزیع شده  با ارتباط Tightly  coupled  System 


پردازنده موازی(MIMD)

 

 


حافظه توزیعی Loosely Coupled System) )         حافظه مشترک) Tightly  coupled  System)

 

 


خوشه (چند کامپیوتری)
.

                                                                         متقارن (SMP)            نامتقارن( /slave Master)

1-در روش  حاکم و تابع(Master Slave Mode  )  ، همیشه یک پردازنده ، که حاکم (Master ) نامیده می شود، عملیات سیستم عامل را  اجرا می کند . پردازنده های دیگر بمانند یک تابع (Slave)عمل کرده و عملیات سیستم عامل را اجرا نمی کنند. اگر پردازنده تابع(Slave) به سرویس سیستم عامل  نیاز داشته  باشد . باید آن را با وقفه دادن به حاکم (Master)تقاضا کند و تا وقفه برنامه جاری منتظر بماند.

سیستم های  توزیع شده  در دو دسته  قرار می گیرند:{کتاب مهندسی کامپوتر- نگارش سمیع - کاجی}

 

الف- سیستم های  با  ارتباط  محکم (Tightly  coupled  System): در این  سیستم ها پردازنده ها دارای پالس  ساعت یکسان و حافظه مشترک هستند . اجرای کار در آ نها  مشکل بوده  ولی  سرعت  اجرا بالاست.
گاهی اوقات به سیستمهای چند پردازنده‌ای ,سیستمهای Tightly Coupled یا ارتباط محکم نیز گفته می‌شود. چرا که پردازنده‌ها کلاک (Clock), گذرگاه و همچنین حافظه مشترکی دارند روال های سیستم عامل بین پردازنده های موجود توزیع شده اند. با این وجود  ، هر تابع خاص از سیستم عامل در هر زمان فقط به یک پردازنده اختصاص داده می شود . این نوع سازمان دهی ، سیستم عامل شناور (Floating Operating System ) خوانده می شود زیرا روال ها از یک پردازنده به پردازنده دیگر شناورند و ممکن است  اجرای روال ها در زمان های مختلف  به عهده پردازنده های مختلف باشد.{معماری کامپیوتر موریس مانو }

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

 

 

 

ب-سیستم هایی با ارتباط  سست(Loosely Coupled System ): در این سیستم ها تعدادی پردازنده  با خطوط  ارتباطی  مناسب وجود دارند و هر پردازنده  دارای پالس ساعت و حافظه مستقل است و سرعت  اجرا پائین می باشد . به سیستم های توزیع شده گاهی اوقات سیستمهای Loosely Coupled یا ارتباط ضعیف نیز می‌گویند,چرا که هر پردازنده کلاک و حافظه مستقلی دارد . پردازنده‌ها از طریق خطوط مخابراتی مختلفی مثل گذرگاه‌های سریع یا خطوط تلفن ارتباط دارند.

هر پردازنده می تواند روالهایی از سیستم عامل را که  به آنها نیاز دارد  اجرا کند . این سازمان برای سیستم های با کوپل سست (Lossely Coupled ) که هر پردازنده ممکن است نسخه کامل از سیستم  عامل خود را داشته باشد بیشتر مناسب است.

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

سیستم های توزیع شده به دلیل  افزایش سرعت اجرا ، اشتراک منابع ، افزایش  قابلیت اطمینان  و ایجاد ارتباط  بین سیستم های مختلف ، مورد استفاده قرار می گیرند .

 


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

·         زیاد شدن توان عملیاتی (throughput) .منظور از throughput تعداد کارهایی است که در یک واحد زمانی تمام می‌شوند. بدیهی است هر چقدر تعداد پردازنده‌ها بیشتر باشد تعداد کارهای تمام شده در یک پریود زمانی نیز بیشتر خواهد بود. البته این نسبت خطی نیست , مثلا اگر تعداد پردازنده‌ها n باشد سرعت اجراء برنامه‌ها nبرابر نمی‌شود چرا که بخشی از وقت پردازنده‌ها جهت مسائل کنترلی و امنیتی وسوئیچ کردنها به هدر می‌رود.

·         صرفه جویی در هزینه‌ها , از آنجا که پردازنده‌ها منابع تغذیه , دیسکها , حافظه‌ها و ادوات جانبی را به صورت مشترک استفاده می‌کنند در هزینه‌های سخت افزاری صرفه‌جویی می‌شود.

·         تحمل پذیری در برابر خطا(fault-tolerant)سیستم های مالتی پروسسور قابلیت اعتماد را افزایش می‌دهند چرا که خرابی یک CPU سبب توقف سیستم نمی‌شود بلکه تنها سبب کند شدن آن خواهدشد .استمرار عمل با وجود خرابی نیازمند مکانیزمی است که اجازه دهد خرابی جستوجو شده , تشخیص داده شده و در صورت امکان اصلاح شود (یا کنار گذاشته شود). این توانایی به ادامه سرویس , متناسب با سطح بقای سخت افزار ,تنزل مطبوع یا  graceful degradationنامیده می‌شود.

سیستمهای عاملهای چند پردازنده‌ای به دو دسته کلی متقارن و نامتقارن تقسیم می‌شوند.:
در سیستم چندپردازنده‌ای نامتقارن (Asymmetric Multi Processing = ASMP)    یا   Master/ Slave    یک پردازنده جهت اجراء سیستم عامل و پردازنده‌های دیگر جهت اجرای برنامه‌های کاربران استفاده می‌شود. از آنجا که کد سیستم عامل تنها روی یک پروسسور اجراء می‌شود, ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازنده‌‌ای به دست می‌آید.
این نوع سیستم عامل‌ها برای اجراء روی سخت افزارهای نامتقارن مناسب هستند, مانند کمک پردازنده‌ و پردازنده‌ای که به هم متصل هستند یا دو پردازنده‌ای که از تمام حافظه‌موجود مشترکا" استفاده نمی‌کنند . یکی از معایب سیستم عامل نامتقارن غیر قابل حمل بودن (non-portable) آن است . یعنی برای سخت افزارهای مختلف باید سیستم عاملهای مختلفی نوشته شود چرا که نامتقارنی می‌تواند حالات مختلف داشته باشد.
در سیستم چند پردازنده‌ای متقارن(symmetric Multi Processing = ASMP) سیستم عامل می‌تواند روی هر یک از پروسسورهای آزاد یا روی تمام پردازنده‌ها همزمان اجراء شود. در این حالت حافظه بین تمام آنها مشترک می‌باشد. تمام پردازنده‌ها اعمال یکسانی را می‌توانند انجام دهند. سیستم متقارن از چند جنبه نسبت به نوع نامتقارن برتری دارد:

·         از آنجا که سیستم عامل خود یک پردازش سنگین است اگر فقط روی یک CPU ها اجراء شود باعث می‌گردد که آن پردازنده همواره بار سنگینی داشته باشد, در حالیکه احتمالاً پردازنده‌های دیگر بی کار هستند لذا اجراء سیستم عامل روی چند پردازنده باعث متعادل شدن (balancing) بار سیستم می‌شود.

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

·         بر عکس سیستم عامل نامتقارن , سیستم عامل قابل حمل( portable) بر روی سیستم های سخت افزاری مختلف است .

سیستم عامل SUNOS ورژن 4 از نوع نامتقارن و سیستم عامل Solaris2 ورژن و همچنین windows NTاز نوع متقارن می‌باشند.

وجود پردازنده‌های متعدد از دید کاربر مخفی است و زمانبندی نخها (Thread ) یا فرآیندها (process) روی هر یک از پردازنده‌ها به عهده سیستم عامل است .
گرچه multithreadingو  multiprocessingامکانات مستقلی هستند ولی معمولاً با هم پیاده سازی می‌شوند. حتی در یک ماشین تک پردازنده‌ای , چند نخی کارایی را افزایش می‌دهد. همچنین ماشین چند پردازنده‌ای حتی برای فرآیندهای غیر نخی هم کارآمد است .

/Slave  )

سئوال:{معماری کامپیوتر موریس مانو}                                             

شباهت  سیستم های چند پردازنده ای  و چند کامپیوتری چیست؟

هر دو آنها عملیات  همزمان  را پشتیبانی  می کنند.

 

تفاوت   سیستم های چند پردازنده ای  و چند کامپیوتری چیست؟

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

 یک سیستم  چند پردازنده  توسط یک  سیستم عامل کنترل می شود تا اتصالات  بین پردازشگرها  بر قار شده و در نتیجه تمام اجزاء  سیستم  در حل یک مسئله همکاری نمایند.

 


مطالب مشابه :


دانلود رایگان پروژه سیستم تاکسی سرویس با زبان سی شارپ

دانلود رایگان پروژه سیستم تاکسی سرویس با ورود به سامانه دانشگاه ازاد سپیدان.




انتخاب واحد ترم دوم 88-89

مدیریت جهانگردی پیام نور سپیدان. با ورود به سیستم از طریق به دانشگاه پیام نور




آموزش سیستم عامل -2-تفاوت سیستم عامل با ROM_BIOS

که چه کلیده فشرده شده و آنرا به سیستم عامل ورود به سامانه دانشگاه ازاد سپیدان.




آموزش سیستم عامل -12-فرق بین Multi Program و Multi Task چیست؟

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




آموزش سیستم عامل -7-بافر کردن (Buffering )

ورودی و خروجی کند بود ه، بهروری سیستم را کاهش ورود به سامانه دانشگاه ازاد سپیدان.




آموزش سیستم عامل -10-سیستم های اشتراک زمانی(time sharing)

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




آموزش سیستم عامل -5-مفاهیم سیستم عامل

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




برچسب :