• بازدید : 65 views
  • بدون نظر
این فایل در ۳۰صفحه قابل ویرایش تهیه شده وشامل موارد زیر است:

به طور کلی نرم افزارهای کامپیوتر به دو گروه تقسیم می‌شوند:
یکی برنامه‌های سیستمی که عملیات کامپیوتر را مدیریت می‌کنند و دیگری برنامه‌های کاربردی .سیستم عامل (operating system=os) اصلی ترین برنامه سیستمی است که به عنوان رابط بین کاربر و سخت افزار کامپیوتر عمل می‌کند .
سیستم عامل دو وظیفه (یا هدف) اصلی دارد:
سیستم عامل استفاده از کامپیوتر را ساده می‌سازد. این بدان معناست که مثلاً کاربر یا برنامه نویس بدون درگیر شدن با مسائل سخت افزاری دیسکها به راحتی فایلی را بر روی دیسک ذخیره و حذف کند . این کار در واقع با به کاربردن دستورات ساده‌ای که فراخوان های سیستمی (System Calls) را صدا می‌زنند انجام پذیرد .
در صورت عدم وجود سیستم عامل کاربر و یا برنامه نویس می‌بایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مانیتور ,فلاپی , کی بورد و غیره) داشته باشد و روتین‌هایی برای خواندن و یا نوشتن آنها به زبانهای سطح پائین بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ماشین مجازی (Virtual machine) یاد می‌شود که واقعیت سخت افزار را از دید برنامه نویسان مخفی می‌سازد.
وظیفه دوم سیستم عامل مدیریت منابع(Resource Management) می‌باشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم می‌گردد. منظور از منابع پردازنده‌ها , حافظه‌ها , دیسکها, موس ها , چاپگرها , فایلها , پورتها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامه‌های مشخصی تخصیص می‌دهد.
سیستم عامل معمولا اولین برنامه‌های است که پس از بوت شدن در حافظه بار می‌شود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در حافظه باقی (Resident)می‌ماند. قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده می‌شود. 
به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام می‌دهد هسته یا Kernel گفته می‌شود. هسته سیستم عامل برنامه‌ای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست. 
سیستم عامل و معماری کامپیوتر اثر زیادی بر روی یکدیگر داشته‌اند. یعنی جهت سهولت کار با سخت افزارهای جدید , سیستم عامل‌ها توسعه یافتند و همچنین در اثنای طراحی سیستم عامل‌ها , مشخص شد که تغییراتی در طراحی سخت افزار می‌تواند سیستم عاملها را ساده تر و کارآمدتر سازد . 
هر چند که تطبیق نسلهای کامپیوتر با نسلهای سیستم عامل کار درستی نیست ولی این تطبیق که در ادامه انجام می‌دهیم علت ایجاد سیستم عاملهای جدید را مشخص می‌سازد.

انواع سیستم های عامل:
سیستمهای عامل انواع گوناگون دارند که با توجه به اندازه کامپیوتر و نوع کاربرد های آن برخی از آنها بسیار ساده و برخی دیگر پیچیده است . 
۱- سیستم عامل تک برنامه ای single program :
برخی از کامپیوتر ها میتوانند در یک لحظه فقط به پردازش یک برنامه بپردازند . سیستم عامل های این نوع کامپیوتر ها میتوانند برنامه را بارگذاری و اجرا کنند و یا اطلاعات را به دستگاه جانبی بفرستند یا از آن دریافت کنند و دستورات مخصوص خود را به اجرا در آورند .
سیستم عامل های موجود بر روی بیشتر میکرو کامپیوتر ها از این نوع هستند لذا این نوع کامپیوتر ها قادر به اجرای چند برنامه به طور همزمان یا انجام کاری دیگر علاوه بر پردازش یک برنامه نیستند .
۲- سیستم عامل های چند برنامه ای multi programming :
برای جلوگیری از تلف شدن وقت واحد پردازشگر این سیستم های عامل طوری طراحی شده اند که میتوانند اجرای چند برنامه را به طور همزمان بر عهده بگیرند . انجام این کار بدین صورت است که در هر لحظه چند برنامه در داخل حافظه موجود هستند به هر کدام از این برنامه ها در مرحله اجرای خاص خود قرار دارند .این برنامه ها به صورت قسمت قسمت مطابق با احتیاجات ورودی و خروجی خود پردازش میشوند . میتوان برای پردازش برنامه ها اولویت هائی را نیز در نظر گرفت در این حالت برنامه هائی که دارای اولویت برای اجرا هستند زود تر از دیگر برنامه ها پردازش خواهند شد به عبارت دیگر اجرای این برنامه ها بر برنامه های دیگری که دارای اولویت نیستند تقدم خواهند داشت . کاربر میتواند بنا به میل خود ترتیب پردازش برنامه ها را تغییر دهد یا برای اجرای برنامه ها اولویت قائل شوند .
۳- سیستم عامل برای سیستم هائی با چند استفاده کننده multi user :
کامپیوتر هائی که چند ترمینال ورودی و خروجی مستقل دارند وسیله خوبی برای سرویس دهی به کاربران متعدد هستند . به دلیل اینکه پردازشگر این نوع کامپیوتر ها کار خود را با سرعت زیادی انجام میدهد کاربر هر ترمینال فکر میکند که کامپیوتر فقط در حال انجام عملیات مربوط به آن ترمینال است در صورتی که حقیقت غیر از این است .
سیستم عامل های این نوع کامپیوتر ها کل مسائل مربوط به حافظه و واحد های ذخیره هر ترمینال را تحت کنترل خود دارند .
۴- سیستم عامل برای سیستمهائی با پردازش توزیعی distributed processing :
با ظهور و ایجاد شبکه های کامپیوتری متشکل از چند ریز کامپیوتر ارزان قیمت متصل شده به یکدیگر هم بسیاری از محدودیت های ریز کامپیوتر ها حل شده و هم از محبوبیت کامپیوتر های بزرگ گران قیمت کاسته شد سیستم عامل هایی وجود دارند که کامپیوتر های متصل شده به شبکه را تحت کنترل و نظارت خود در می آورند .

تطابق تکنیکهای سیستم عامل با نسل های کامپیوتر:
در نسل اول کامپیوترها (۵۵-۱۹۴۵) که از لامپ خلأ برای ساخت آنها استفاده می‌شد,زبانهای برنامه نویسی (حتی اسمبلی ) ابداع نشده بودند و سیستم عامل نیز اصلاً وجود نداشت . روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند.
آنها برنامه‌های خود را توسط تخته مدار سوراخدار ( و بعدها توسط کارتهای پانچ ) و به زبان ماشین به کامپیوتر می‌دادند. اکثر برنامه‌های محاسبات عددی معمولی مانند جداول سینوس و کسینوس بود.

• الف) سیستم های دسته ایBatch system 
• ب ) سیستم های چند برنامه ایMulti programming 
• پ ) سیستم spooling 
• ت ) سیستم اشتراک زمانی Time sharing 
• س ) سیستم عامل های کامپیوتر های شخصی و شبکه 
• ج ) سیستم های توزیع شدهDistributed system 
• چ ) سیستم ها ی چند وظیفه ایMulti tasking 
• ح) سیستم های چند پردازنده ای Multi processing 
• خ) سیستم های بی درنگReal Time 
الف) سیستم های دسته ای (Portable Batch System ):
در نسل دوم , کامپیوترها (۶۵-۱۹۵۵) از ترانزیستور ساخته شدند.
طریقه کار با این کامپیوترهای نسل دوم از طریق یک کنسول (Console) بود که تنها اپراتور مخصوص کامپیوتر با آن کار می‌کرد و کاربران به طور مستقیم با این کامپیوترها محاوره (interaction) نداشتند. کاربر ابتدا برنامه خود را به زبان فرترن یا اسمبلی بر روی کاغذ می‌نوشت سپس توسط دستگاه Card punch, برنامه را روی کارت های سوراخدار منتقل ساخت . بعد این دسته کارت تهیه شده که شامل برنامه, داده‌ها و کارتهای کنترل بود به صورت کار (Job) تحویل اپراتور داده می‌شد . اپراتور بعد از اتمام کار قبلی , دسته کارت جدید را به کامپیوتر می‌داد تا برنامه را اجراء کند در انتها خروجی برنامه ( که غالباً چاپی بود) را به کاربر تحویل می‌داد سیستم عامل در این کامپیوترهای اولیه ساده بود و وظیفه اصلی آن انتقال کنترل اتوماتیک از یک کار به کار دیگری بود . سیستم عامل همواره مقیم در حافظه بود و در هر لحظه فقط یک برنامه اجراء می‌شد.هنگامی که اپراتور مشغول گذاشتن نوارها یا برداشتن کاغذهای چاپ شده بود وقت زیادی از این کامپیوترهای گران قیمت به هدر می‌رفت .
برای رفع مشکل فوق سیستمهای دسته‌ای (Batch System) ابداع شد . یعنی ابتدا یک سبد پر از دسته کارتها در اتاق ورودی جمع آوری می‌شد , سپس کلیه آنها به وسیله دستگاه کارتخوان یک کامپیوتر کوچک و نسبتاً ارزان (مثل IBM 1401 ) خوانده شده و بر روی یک نوار ذخیره می‌گردید. سپس اپراتور نوار را برداشته بر روی کامپیوتر اصلی و گران قیمت که محاسبات را انجام می‌داد (مانند: IBM7094) نصب می‌کرد . بعد از آن برنامه‌ای را اجراء می‌کرد ( یعنی سیستم عامل ) تا اولین کار را از روی نوار برداشته و اجراء کند, خروجی بر روی نوار دیگری نوشته می‌شد. پس از اتمام هر کار سیستم عمل به صورت خودکار کار بعدی را از نوار می‌خواند. پس از اجراء همه برنامه‌ها ,اپراتور نوار خروجی را برداشته و دوباره روی کامپیوتر IBM 1401 منتقل می‌ساخت تا عملیات چاپ خروجی ها به صورت off line انجام شود. به این روش کار offline spooling نیز گفته می‌شود. بیشتر برنامه‌های نسل دوم به زبان فرترن و اسمبلی برای محاسبات مهندسی و علمی مثل مشتقات جزئی به کار می‌رفت. 
یکی از معایب روش offline- spooling زیاد بودن زمان برگشت گردش (turnaround time) است ,یعنی تأخیر زمانی مابین تحویل کار و تکمیل کار. همچنین در این سیستم اولویت بندی به معنای واقعی وجود ندارد. تنها روش بدست آوردن اولویت این بود که نوار کارهای مهم را ابتدا در ماشین اصلی قرار دهند. حتی در این صورت هم باید چندین ساعت صبر می‌کردند تا خروجی ها ظاهر شوند. همچنین نیاز به سخت افزار اضافی(مثل کامپیوترهای۱۴۰۱) از دیگر معایب این روش بود.

عتیقه زیرخاکی گنج