مفاهیم کلی
به طور کلی نرم افزارهای کامپیوتر به دو گروه تقسیم میشوند:یکی برنامههای سیستمی که عملیات کامپیوتر را مدیریت میکنند و دیگری برنامههای کاربردی .سیستم عامل (operating system=os) اصلی ترین برنامه سیستمی است که به عنوان رابط بین کاربر و سخت افزار کامپیوتر عمل میکند . سیستم عامل دو وظیفه (یا هدف) اصلی دارد:
سیستم عامل استفاده از کامپیوتر را ساده میسازد. این بدان معناست که مثلاًکاربر یا برنامه نویس بدون درگیر شدن با مسائل سخت افزاری دیسکها به راحتی فایلی را بر روی دیسک ذخیره و حذف کند . این کار در واقع با به کاربردن دستورات سادهای که فراخوان های سیستمی (System Calls) را صدا میزنند انجام پذیرد .در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس میبایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مونیتور ,فلاپی , کی بورد و غیره) داشته باشدو روتینهایی برای خواندن و یا نوشتن آنها به زبانهای سطح پائین بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ماشین مجازی (Virtual machine) یاد میشود که واقعیت سخت افزار را از دید برنامه نویسان مخفی میسازد.
وظیفه دوم سیستم عامل مدیریت منابع(Resource Management) میباشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم میگردد. منظور از منابع پردازندهها ,حافظهها ,دیسکها,ماوس ها , چاپگرها , فایلها , پورتها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامههای مشخصی تخصیص میدهد. سیستم عامل معمولا اولین برنامههای است که پس از بوت شدن در حافظه بار میشود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در حافظه باقی (Resident)میماند. قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده میشود. به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام میدهد هسته یا Kernel گفته میشود. هسته سیستم عامل برنامهای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست. سیستم عامل و معماری کامپیوتر اثر زیادی بر روی یکدیگر داشتهاند. یعنی جهت سهولت کار با سخت افزارهای جدید, سیستم عاملها توسعه یافتندو همچنین در اثنای طراحی سیستم عاملها , مشخص شد که تغییراتی در طراحی سخت افزار میتواند سیستم عاملها را ساده تر و کارآمدتر سازد . هر چند که تطبیق نسلهای کامپیوتر با نسلهای سیستم عامل کار درستی نیست ولی این تطبیق که در ادامه انجام میدهیم علت ایجاد سیستم عاملهای جدید را مشخص میسازد.تطابق تکنیکهای سیستم عامل با نسل های کامپیوتر:
در نسل اول کامپیوترها (55-1945) که از لامپ خلأ برای ساخت آنها استفاده میشد,زبانهای برنامه نویسی (حتی اسمبلی)ابداع نشده بودند و سیستم عامل نیز اصلاً وجود نداشت . روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند.آنها برنامههای خود را توسط تخته مدار سوراخدار (و بعدها توسط کارتهای پانچ) و به زبان ماشین به کامپیوتر میدادند. اکثر برنامههای محاسبات عددی معمولی مانند جداول سینوس و کسینوس بود.
سیستم های دسته ایBatch system
سیستم های چند برنامه ایMulti programming
سیستم spooling
سیستم اشتراک زمانیTime sharing
سیستم عاملهای کامپیوتر های شخصی و شبکه
سیستم های توزیع شدهDistributed system
سیستم ها ی چند وظیفه ایMulti tasking
سیستم های چند پردازندهای Multi processing
سیستم های بی درنگReal Time ساختار سیستم عامل
خدمات و مولفه های سیستم عامل:
مدیریت پردازش در سیستم عامل در سیستم عامل
مدیریت حافظه در سیستم عامل
مدیریت فایل در سیستم عامل
مدیریت ورودی- خروجی در سیستم عامل
مفسر فرمان
وقفه در سیستم عامل
فراخوانی سیستمی انوع سیستم عامل از نظر ساختار
تکنیک سیستم یکپارچه
تکنیک سیستم لایه ای
سیستم مجازی در سیستم عامل
سیستم مشتری –خدمتگزار
زبان های پیاده سازی سیستم عامل پردازش و زمابندی
پردازش در سیستم عامل
حالات یک پردازش
بلوک کنترلی پردازش
نخبند-رشته)
زمان بندی در سیستم عامل
انواع زمانبندیها در سیستم عامل
معیار های زمانبندی در سیستم عامل انواع زمانبندی ها
اولویتها میتوانند بصورت اتوماتیک توسط سیستم نسبت داده شوند و یا از خارج سیستم تعیین گردند, مثلاً ممکن است یک کاربر کار فوری داشته باشدو حاضر باشد به خاطر بدست آوردن سرویس بالاتر هزینه بیشتری بپردازد , یعنی اولویت را بخرد . یک اولویت ممکن است استاتیک باشد یا دینامیک . اولویت استاتیک تغییر نمیکندو بنابراین پیاده سازی آن ساده است . ولی این نوع اولویت در مقابل تغییرات محیطی عکس العملی نشان نمیدهد . برعکس اولویت دینامیک بر اثر تغییرات محیطی تغییر میکند مثلا ً ممکن است در آغاز یک برنامه اولویت پائینی داشته باشد ولی به تدریج اولویت آن بهبود یابد.
فراخوانی سیستمی
فراخوان های سیستمی رابط ما بین سیستم عامل و برنامههای کاربردی میباشند. در زبان سطح بالایC)) و ((پاسکال مستقیماً میتوان این فراخوانهای سیستمی را به کار برد. از فراخوانهای سیستمی عبارتند از:
مدیریت پردازشها: مانند ایجاد و اتمام پردازش , بارگذاری و اجرای پردازش در سیستم عامل , تخصیص و آزاد کردن حافظه و غیره.
مدیریت فایلها و فهرستها: ایجاد و حذف فایل , باز وبسته کردن فایل , خواندن و نوشتن , تغییر صفات فایل و غیره
مدیریت وسایل: درخواست و رهاسازی وسیله,خواندن و نوشتن در وسیله وغیره
بدست آوردن اطلاعات : خواندن و تنظیم تاریخ و زمان, خواندن زمان استفاده از سیستم توسط کاربر,تعداد کاربران , میزان فضای آزاد حافظه یا دیسک , نسخه سیستم عامل وغیره. اکثر سیستم عامل (مثل UNIX,DOS) به وسایل I/O مشابه فایلها نگاه میکنند و ابزارهای I/Oبا نامهای فایلهای ویژه شناخته میشوند. در این حال برای کار با وسایل I/O میتوان از همان دستورات readو write فایلها استفاده کرد.اگر چند منبع در یک لحظه همزمان سیگنال وقفه را ارسال کنند,CPUبا تکنیکهایی آنها را اولویت بندی کرده و سپس بر اساس اولویت سرویس میدهد.CPU به جای تکنیک وقفه در سیستم عامل میتواند با تکنیک سرکشی (polling) متوجه شودکه کدام وسیله به سرویس دهی نیاز دارد. دراینحالت ثباتهای کنترلی دستگاههای جانبی مرتباً چک میشود تا نیاز سرویس دهی آنها مشخص گردد. این روش باعث اتلاف وقت CPU میگردد.
حافظه های ثانوی با حافظه اصلی سیستم چه تفاوتها یی دارند؟
حافظه اصلی سیستم :(Main Memory)
سریع (fast) چون الکترونیکی میباشد
کوچک (small) چون قیمت آن بالا می باشد
فرار (Volatile) در صورت قطع برق پاک میشود
سرعت دسترسی به داده: حدود 12 نانو ثانیه
حافظه ثانوی :(Secondary Storage)
کند (Slow) چون اجزائ مکانیکی دارد
بزرگ (Large) چون قیمت آن ارزان است
ثابت و پایدار (Stable & Persistent) در صورت قطع برق پاک نمیشود
سرعت دسترسی به داده: حدود 30 میلی ثانیه
مقایسه اختلاف زمان دسترسی به این دو حافظه بکمک یک مثال:
زمان جستجوی داده در ایندکس یک کتاب (20 sec)
زمان جستجوی همان داده بدون ایندکس در یک کتابخانه بزرگ (58 days)
بنابراین دو هدف اصلی این درس چه خواهد بود؟
پایین آوردن زمان دسترسی به داده در حافظه ثانوی
پایین آوردن فاصله میان داده های مرتبط با یکدیگرساختارهای حافظهبه هر وسیله که توانایی نگهداری اطلاعات را داشته باشد، حافظه می گویند. حافظه یکی از قسمت های ضروری و اساسی یک رایانه به شمار می رود. همان طور که انسان برای نگهداری اطلاعات مورد نیاز خود علاوه بر حافظه درونی خویش از ابزارهای مختلف دیگری همانند کاغذ، تخته سیاه، نوار ضبط صوت، نوار ویدیو و … استفاده می کند رایانه هم می تواند از انواع مختلف حافظه استفاده کند. به طور کلی دو نوع حافظه داریم : 1- حافظه ((اصلی)) که به آن ((حافظه اولیه)) و ((درونی)) می گویند . 2- حافظه ((جانبی)) که به آن ((حافظه ثانویه)) و ((کمکی)) می گویند .
الف ) حافظه اصلی :کلیه دستورالعمل ها و داده ها، برای این که مورد اجرا و پردازش قرارگیرند اول باید به حافظه اصلی رایانه منتقل گردند و نتایج پردازش نیز به آنجا فرستاده شود. حافظه اصلی رایانه از جنس نیمه هادی ( الکترونیکی ) است و در نتیجه، سرعت دسترسی به اطلاعات موجود در آنها در مقایسه با انواع دیگر حافظه بالاست و قیمت آن نیز گرانتر است. حافظههای اصلی نیز به دو دسته تبدیل می شوند (ROM، RAM) . حافظه فقط خواندنی ( ROM) Cpu معمولاً اطلاعات موجود در این نوع حافظه را تغییر نمیدهد، بلکه فقط می تواند آن را بخواند. هنگام خاموش شدن نیز این اطلاعات از بین نمیرود و ثابت می ماند. برنامه BIOS که وظیفه آزمایش و راه اندازی قسمت های مختلف رایانه را به هنگام روشن شدن سیستم برعهده دارد در این نوع حافظه قرار داده میشود. حافظههای فقط خواندنی انواع مختلفی دارند :
PROM : در این نوع حافظه فقط خواندنی، داده ها و دستورالعمل ها را می توانیم روی آن فقط یک بار به وسیله PROM Programmer ذخیره کنیم اما بعد از آن قابل تغییر نیستند .
EPROM : این حافظه در واقع PROM قابل پاک شدن است.
درباره این سایت