سیستمعامل یک بخش ضروری هر سیستم کامپیوتری می باشد. مبتنی بر این ضرورت یادگیری سیستم عامل یک بخش ضروری از آموزش علوم کامپیوتر است. این زمینه از علوم کامپیوتر به سرعت در حال تغییر میباشد و گستره کاربری زیادی را از بازیهای کامپیوتری برای کودکان تا ابزارهای طراحی و برنامه نویسی پیچیده برای کارهای دولتی و شرکت های چند ملیتی را در بر میگیرد.
سیستم عامل به عنوان یک واسط بین کاربر یک کامپیوتر و سخت افزار کامپیوتر عمل میکند. هدف سیستم عامل فراهمآوری محیطی است که کاربر بتواند به راحتی و به صورت کار و در آن محیط کار کند. یک سیستم عامل نرم افزاری است که سخت افزار کامپیوتر را مدیریت میکند سختافزار باید سیم مکانیزم های مناسب را برای تضمین عملکرد صحیح سیستم کامپیوتری فراهم نماید؛ همچنین بایستی از اختلال کاربر در برنامه های سیستمی جلوگیری کند.
از آنجایی که سیستم عاملها از خطوط زیادی تشکیل شدهاند دارای ساختار بسیار بزرگی می باشند. طراحی یک سیستم عامل جدید کار بسیار سختی است قبل از طراحی سیستم عامل در نظرگیری این مسئله مهم است که اهداف طراحی سیستم عامل تعریف خوبی داشته باشند. این اهداف اساسی انتخاب الگوریتمها و استراتژیهای مختلف را شامل میشود و از آنجایی که سیستم عامل بزرگ و پیچیده است بایستی تکه تکه ساخته شود هر یک از این تکه ها بایستی به خوبی در سیستم نوشته شده و به کار برده شود به گونهای که ورودی ها و خروجی ها و توابع عملکرد ایشان به طور دقیق تعیین گردد.
معرفی کلی سیستم عامل
سیستمعامل برنامهای است که سخت افزار کامپیوتر را مدیریت میکند و همچنین مبنای را برای برنامه های کاربردی فراهم نموده و به عنوان یک واسط میان کاربر کامپیوتر و سخت افزار قرار میگیرد. اما نکته جالب در این مسئله این است که سیستم عاملها در به انجام رساندن این وظایف چقدر متفاوتند. هدف اولیه سیستم عاملهای مین فریم بهینه سازی بهرهوری سخت افزار سیستم های کامپیوتر شخصی بازی های پیچیده برنامه های کاربردی تجاری و هر چیزی در این مابین را پشتیبانی میکنند سیستم عامل های کامپیوترهای کوچک برای فراهم آوردن محیطی که کاربر بتواند به آسانی با کامپیوتر برای اجرای دستور ارتباط برقرار کند در اختیار قرار گرفتند لذا برخی از سیستم عامل ها برای سهولت کاربری برخی برای اثربخشی و برخی دیگر برای هر دو طراحی شده اند.
سیستم عامل ها چه کاری انجام می دهند؟
ما مقاله را با جستجو در مورد نقش کلی سیستم عامل ها در سیستم کامپیوتری آغاز می کنیم. یک سیستم کامپیوتری را می توان به چهار دسته تقسیم بندی کرد: سخت افزار، سیستم عامل، برنامه های کاربردی و کاربران.
سخت افزار (واحد پردازش مرکزی، حافظه و دستگاه ورودی و خروجی)، منابع محاسباتی پایه را برای سیستم فراهم می کند. برنامه های کاربردی همانند پردازشگرهای کلمه صفحه گسترده ها کامپایلرها و مرورگرهای وب روش هایی را که این منابع برای حل مسائل محاسباتی کاربران استفاده می کنند فراهم می نمایند. سیستم عامل، سخت افزار را کنترل نموده و برنامه های کاربردی مختلف را برای استفاده از آن هماهنگ میکنند.ما میتوانیم یک سیستم کامپیوتری را به صورت مجموعهای از سختافزارها، نرمافزار و داده مشاهده کنیم. سیستمعامل، ابزارهای را برای استفاده صحیح از این منابع در عملیات سیستم کامپیوتری فراهم می کند.
یک سیستم عامل مشابه یک دولت است و همانند یک دولت عملکردهای مفید را ایجاد مینماید. سیستم عامل محیطی را در اختیار قرار می دهد که برنامه های دیگر می توانند در آن محیط به صورت مفید کار کنند. برای درک کامل نقش سیستم عامل، سیستم عامل را از دو نقطه نظر به یکی از دید کاربر و دیگری از دید سیستم بررسی میکند.
دید کاربر
دید کاربر بر مبنای واسطه که استفاده میکنند متفاوت میشود. بیشتر کاربران کامپیوتر در مقابل کامپیوتر شخصی می نشینند که مشتمل بر یک مانیتور، صفحه کلید، موس و واحد سیستم است از آنجایی که این سیستم برای یک کاربر طراحی شده است، هدف، بیشینه کردن قابلیت کارایی کاری است که کاربر انجام میدهد. از این نقطه نظر سیستم عامل برای صورت کارایی و هزینه بر قابلیت کارایی و بهرهوری منابع طراحی شده است. منظور از بهرهوری منابع این است که منابع سخت افزاری و نرم افزاری چگونه به اشتراک گذاشته می شود اگر چه قابلیت کارهای مهم است اما برخی سیستم برای یک کاربر بهینه شدن و نه نیازمندی چندین کاربره.
برای مثال، یک کاربر در مقابل یک پایانه مرتبط با یک مینی کامپیوتر قرار می گیرد. کاربران دیگر با استفاده از پایانه های دیگر به همان کامپیوتر دسترسی دارند. این کاربران منابع را در اشتراک گذاشته و میتوانند اطلاعات را با هم مبادله کنند. در این موارد سیستم عامل برای بیشینه کردن بهرهوری منابع طراحی شده است. منظور از بهره وری منابع این است که زمان (CPU)،حافظه و ورودی خروجی ها به طور موثر استفاده شدند و هیچ کاربری بیش از سهم مربوط به خودش از منابع استفاده نمیکند.
در موارد دیگر، کاربران در ایستگاه کاری که به شبکه ایستگاه ها و سرویس دهنده های دیگر مرتبط است می نشینند. این کاربران افزون بر این که دارای منابع تخصیص یافته خود هستند منابع خود را نیز به اشتراک میگذارند. بنابراین سیستم عامل در این مورد برای برآوردن نیازهای سودمندی انفرادی و بهرهوری منابع طراحی شده است.
برخی از کامپیوترها دارای دید بسیار کمی از نقطه نظر کاربر هستند و گاها دید کاربران را ندارند. برای مثال کامپیوترهای تعبیه شده و نهفته در دستگاه های خانگی و اتومبیل ها دارای صفحه کلیدهای رقمی و چراغهای برای نشان دادن وضعیت هستند و سیستم عامل در نظر گرفته شده برای آنها جهت اجرا بدون مداخله کاربر طراحی شده است.
دید سیستمی
سیستم عامل برنامه ای است که با سخت افزار بسیار تعامل دارد. از این نقطه نظر ما میتوانیم سیستم عامل را یک تخصیص دهنده منابع بدانیم. یک سیستم کامپیوتری منابع زیادی همانند زمان cpu، فضای حافظه، فضای ذخیره سازی فایل، وسایل ورودی خروجی و ... دارد که برای حل یک مسئله مورد نیازند. سیستم عامل به عنوان مدیر این منابع عمل میکند. سیستم عامل باید بتواند یک ارتباط موثر و عادلانه را مابین درخواستهای برنامه های کاربردی مختلف برای بهرهگیری از منابع برقرار کند. همانگونه که دیدیم تخصیص منابع بسیار مهم است چرا که برای مثال کاربران زیادی به یک مینی کامپیوتر دسترسی دارند.
یک نقطه نظر با کمی تفاوت از سیستم عامل بر نیاز به کنترل دستگاههای ورودی - خروجی و برنامههای مختلف توسط سیستم عامل تاکید دارد. یک سیستم عامل یک برنامه کنترلی است. یک برنامه کنترلی اجرای برنامههای کاربر را برای ممانعت از خطاها و استفاده های ناصحیح از کامپیوتر مدیریت کند.
معرفی سیستم عامل
ما نقش سیستم عامل را از نقطه نظرهای کاربر و سیستم بررسی کردیم. به طور کلی ما هیچ تعریف کاملی از سیستمعامل نداریم. هدف اصلی سیستم کامپیوتری اجرای برنامههای کاربر برای حل آسان تر مسائل است. برای همین به این هدف سخت افزار کامپیوتر ساخته شده از آنجایی که استفاده از سخت افزارها به تنهایی کار ساده ای نیست، برنامه های کاربردی تشکیل شده اند.
این برنامهها به عملیات مشترک همانند کنترل دستگاههای ورودی خروجی نیاز دارند. این عملیات کنترل و تخصیص منابع در یک قطعه از نرم افزار به نام سیستم عامل جمع میشود. یک تعریف مشترک دیگر سیستم عامل این است که، برنامهای است که در تمامی زمان ها اجرا می شود که از آن تحت نام کرنل یا هسته نام برده میشود. در این راستا دو برنامه وجود دارد: برنامه های سیستمی که به همراه سیستم عامل هستند اما بخشی از کرنل نیستند و برنامه های کاربردی که مشتمل بر تمامی برنامه هایی هستند که وابسته به سیستم عامل نمی باشند.
ساختار سیستم عامل
یک سیستم عامل محیطی را فراهم می کند که برنامه ها در آن اجرا شوند ساختار سیستم عامل ها دارای تنوعی زیاد هستند. یکی از مهمترین جنبههای سیستم عامل توانایی چند برنامگی است. یک برنامه نمی تواند برای هر زمانی CPU و دستگاه ورودی خروجی را در اختیار خود گرفته و آنها را رها نکند. کاربران به طور مکرر چند برنامه را در حال اجرا دارند. چند برنامه ریزی و سازماندهی کارها بهرهوری CPU را افزایش میدهد به گونهای که CPU همواره یک برنامه را برای اجرا دارد.
ایده این است که سیستم عامل چندین کار را به طور همزمان در حافظه نگه می دارد از آنجایی که حافظه اصلی برای جا دادن تمامی کارها خیلی کوچک است، از کارها در دیسک و در استخر کار ها (Job Pool) نگهداری می شود. این استخر شامل تمامی فرآیندهای مقیم دیسک است که در انتظار تخصیص حافظه اصلی است.
در یک سیستم غیر چند برنامگی سیستم عامل بیکار خواهد نشست اما در یک سیستم چند برنامگی در چنین حالتی سیستم عامل به کار دیگر سوئیچ میکند و پس از پایان انتظار دوباره به همان کار برمی گردد تا زمانی که دستکم یک برنامه برای اجرا وجود داشته باشد CPU بیکار نخواهد بود. اشتراک زمانی (چند وظیفه ای) یک بسط منطقی از چند برنامگی است. در سیستم های اشتراک زمانی CPU چندین کار را با سوئیچ نمودن و تعویض کارها انجام می داد. از آنجایی که این کار خیلی سریع انجام میشود کاربر متوجه آن نمیشود.
اشتراک زمانی به یک سیستم کامپیوتر تعاملی نیاز دارد که یک ارتباط مستقیم را مابین کاربر و سیستم فراهم آورد. کاربر دستورات خود را با استفاده از دستگاهی همچون موس یا صفحه کلید به سیستم عامل و یا به طور مستقیم به برنامه مورد نظر میدهد و منتظر پاسخ فوری آن بر روی دستگاه خروجی می ماند. لذا زمان پاسخ باعث کوتاه باشد. (معمولاً کمتر از یک ثانیه)
یک سیستم عامل با قابلیت اشتراک زمانی به چندین کاربر اجازه میدهد که، به طور همزمان کامپیوتر را به اشتراک بگذارند از آنجایی که سیستم به سرعت از یک کاربر به کاربر دیگر سوئیچ می نماید، هر کاربر تصور میکند در بازه زمانی خود تمام سیستم به خودش اختصاص دارد در حالی که سیستم به صورت اشتراکی تسهیم شده است.
یک سیستم عامل با قابلیت اشتراک زمانی از زمان بندی CPU و قابلیت چند برنامگی برای فراهم آوری یک بخش زمانی کوتاه به اشتراک گذاشته شده به کاربر استفاده میکند. هر کاربر، دست کم یک برنامه مجزا در حافظه دارد برنامه هایی که به درون حافظه بار شده و اجرا میگردند، فرایند یا Prosesses نامیده می شود.
اشتراک زمانی و چند برنامگی نیازمند این هستند که چندین کار به طور همزمان در حافظه نگه داشته شود. اگر این کارها آماده ورود به حافظه باشند ولی حافظه کافی وجود نداشته باشد، سیستم باید از میان آنها انتخاب کند این تصمیم گیری زمان بندی کار نامیده میشود، که در مقالات بعدی درباره آن گفتوگو میکنیم. هنگامی که چندین کار آماده اجرا باشند نیز سیستم باید میان آنها انتخاب کند که این تصمیم زمان بندی CPU نامیده می شود.
جمع بندی
بنده سعی کردم 0 تا 100 مفاهیم سیستم عامل را به شما یاد بدم که این مقاله قسمت نخست بود و مقالاتی در روزهای آتی منتشر می شود. سعی کنید از مقالات ما با خبر باشید و بین دوستان خود مقالات را اشتراک گذاری کنید.
0 تا 100 یادگیری سیستم عامل - بخش دوم
0 تا 100 یادگیری سیستم عامل - بخش سوم