خانه / جزوه های آموزشی / انواع سیستم

انواع سیستم

با پیشرفت علم و احساس نیاز بیشتر به سیستم های کامپیوتری تغییراتی در طراحی سخت افزار و در نتیجه تغییراتی در سیستم های عامل رخ داده اند.

  • سیستم های دسته ای ساده:

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

هر برنامه دسته ای شامل 3مرحله دریافت ورودی،انجام پردازش و نمایش خروجی است که به صورت ترتیبی انجام میشوند. با توجه به اینکه کدام یک از مراحل فوق احتیاج به زمان بیشتری داشته باشد، برنامه ها به دو دسته I/O Limited و CPU Limited تقسیم میشوند. یک برنامه CPU Limited برنامه ای می باشد که حجم عملیات پردازش آن از عملیات ورودی/خروجی بیشتر باشد. اما با توجه به اینکه در گذشته دستگاههای مکانیکی (I/O) کندتر از CPU بوده است جتی یک CPU کند میتوانسته هزاران دستورالعمل را در یک ثانیه اجرا نماید. از سوی دیگر یک کارت خوان سریع میتوانسته 1200 کارت را در یک دقیقه بخواند. بنابراین سرعت CPU در مقایسه با وسایل جانبی بسیار بیشتر بوده است که این سرعت پایین دستگاههای I/O موجب میشد بیشتر زمان اجرای برنامه به دستگاههای ورودی/خروجی اختصاص یابد. به این برنامه ها I/O Limited گفته میشود.

سیستم های Spooling:

نام این روش از عبارت Simultaneous Peripheral Operation On-Line گرفته شده است.این روش جهت افزایش کارایی سیستم معرفی شد. در اولین گامی که سیستم های Spooling به کار گرفته شدند، در سیستمی به کمک پردازنده ای ارزان قیمت و سرعت پایین اطلاعات موجود روی کارت ها توسط دستگاه کارت خوان به نوار مغناطیسی منتقل می شدند. پس از اینکه دسته ای از کارها روی نوار قرار می گرفتند، نوار به سیستم اصلی منتقل میشد. از این پس کارها از روی نوار مغناطیسی که دارای سرعت بیشتری نسبت به دستگاه کارت خوان داشتند، مورد استفاده قرار می گرفت. سپس بعد از انجام پردازش روی کارها، نتیجه مجددا روی نوارها قرار می گرفتند. در زمان مناسب نوار به دستگاه دیگر منتقل میشد تا اطلاعات از روی نوار چاپ شود. این روش به Offline Spooling معروف است.

در روش دیگر به جای اینکه کارت ها از دستگاه کارت خوان مستقیما وارد حافظه یا نوار شوند، کارت ها مستقیما وارد دیسک می شوند(به دلیل سرعت بالا) و در موقع نیاز سیستم عامل اطلاعات را از روی دیسک به حافظه منتقل می نماید. این روش به نام Online Spooling معروف است. این روش باعث می شود سیستم بتواند کارها را روی هم بیاندازد تا کارایی سیستم بالا رود. یعنی سیستم میتواند یک کار جدید را حتی زمانی که در حال چاپ خروجی و یا پردازش کار دیگری می باشد از ورودی بخواند و در دیسک ذخیره نماید. در نتیجه هم CPU و هم ابزارهای I/O کارایی بالاتری خواهند داشت.

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

  • سیستم های چند برنامه ای دسته ای:

همانطور که در مبحث قبلی بیان شد Spooling موجب می شود کارهای متعددی که قبلا خوانده شده و برروی دیسک قرار گرفته اند منتظر تخصیص CPU باشند. وجود این انبار کار باعث می شود روشهایی جهت انتخاب و اجرای برنامه بعدی بوجود آید. روش انتخاب باید بگونه ای باشد که ضریب استفاده CPU را افزایش دهد. سیستم کارهای متعددی را همزمان در حافظه دارد، از بین این کارها یکی را انتخاب می نماید و CPU را به آن اختصاص می دهد. هنگامی که این برنامه به منبع دیگری مانند I/O احتیاج پیدا کرد دیگر CPU مانند سیستم های تک برنامه بیهوده انتظار نخواهد کشید، بلکه سیستم عامل کار دیگری را به CPU اختصاص داده و آنرا اجرا می نماید تا زمانی که مجددا کار جدید به اتمام رسد یا به منبع دیگری نیاز پیدا کند و CPU به کار قبلی اختصاص پیدا کرده و کار ناتمام را به پایان برساند. چون CPU همواره یک کار برای پردازش دارد هرگز بیکار نمانده و این امر موجب افزایش درصد استفاده CPU می گردد.

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

  • سیستم های اشتراک زمانی:

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

به دلیل نیاز به جابجایی کارها بین حافظه اصلی و دیسک از تکنیکی به نام حافظه مجازی استفاده شد. این تکنیک امکان اجرای کاری که به طور کامل در حافظه قرار ندارد را فراهم می آورد. این تکنیک کاربر را از محدودیت حافظه رها می سازد.

  • سیستم های موازی یا چند پردازنده:

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

در صورتی که همه پردازنده ها از یک نوع باشند سیستم را همگن یا متناجس(Homogeneous) گفته می شود. در غیر این صورت سیستم را غیرهمگن یا نامتناجس(Heterogeneous) گویند. از دید نرم افزاری نیز میتوان سیستم های چند پردازنده را به دو دسته زیر تقسیم کرد:

  • سیستم های متقارن(Symmetric):

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

  • سیستم های نامتقارن(Asymmetric):

در این سیستم ها به هر پردازنده اجرای وظیفه خاصی واگذار میشود. یک پردازنده بعنوان کار فرما(Master)، کنترل سیستم را برعهده دارد. ایجاد این سیستم ها از سیستم های متقارن راحت تر قابل پیاده سازی می باشند.

  • سیستم های توزیع شده:

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

مزایای این سیستم ها عبارتند از:

  • اشتراک منابع:

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

  • افزایش سرعت محاسبات:

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

  • قابلیت اطمینان:

چنانچه یک سایت از کار بیفتد سیستم متوقف نمی شود و امکان ادامه کار همچنان وجود خواهد داشت.

  • ارتباط:

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

  • سیستم های بلادرنگ:

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

سیستم های بلادرنگ دونوع اند:

  • سیستم بلادرنگ سخت
  • سیستم بلادرنگ نرم

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

  • سیستم های چند وظیفه ای:

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

درباره‌ی ادمین سایت

همچنین ببینید

زبان اسمبلی (کارشناسی)

زبان اسمبلی چیست؟ اسمبلی یک زبان برنامه نویسی سطح پایین برای رایانه ها و دیگر …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *