مفاهیم سیستم عامل – راهنمای جامع
سیستم عامل (OS) رابط بین کاربر رایانه و سختافزار آن است. یک سیستم عامل در واقع نرمافزاری است که همه وظایف پایهای مانند مدیریت فایل، مدیریت حافظه، مدیریت پروسهها، مدیریت ورودیها و خروجیها و کنترل دستگاههایی مانند درایوهای دیسک و پرینترها را بر عهده دارد. در این سری از نوشتههای بلاگ فرادرس که این نوشته اولین بخش آن محسوب میشود، به بررسی جامع مفاهیم، کارکردها و نقش سیستم عامل میپردازیم. برخی سیستمهای عامل محبوب شامل لینوکس، OS X، VMS، OS/400، AIX، Z/OS و غیره هستند.
تعریف سیستم عامل
سیستم عامل برنامهای است که به عنوان یک رابط بین کاربر و سختافزار کامپیوتر عمل میکند و اجرای عملی انواع برنامهها را کنترل میکند.
در ادامه برخی از ویژگیهای مهم یک سیستم عامل ارائه شده است:
- مدیریت حافظه
- مدیریت پروسهها
- مدیریت لوازم رایانه
- مدیریت فایل
- امنیت
- کنترل روی عملکرد سیستم
- محاسبه کارها
- کمک به تشخیص خطاها
- هماهنگی بین نرمافزارهای دیگر و کاربران
مدیریت حافظه
منظور از مدیریت حافظه در واقع مدیریت حافظه اصلی رایانه است. حافظه اصلی آرایه بزرگی از کلمه (word) ها و بایتها است که در آن هر کلمه یا بایت آدرس خاص خود را دارد.
حافظه اصلی یک روش ذخیرهسازی سریع است که میتواند به طور مستقیم از سوی CPU مورد دسترسی قرار گیرد. برای این که یک برنامه اجرا شود، باید در حافظه اصلی قرار داشته باشد. یک سیستم عامل فعالیتهای زیر را برای مدیریت حافظه انجام میدهد:
- رد فعالیتهایی که در حافظه اصلی صورت میپذیرد را نگهداری میکند، یعنی بررسی میکند که کدام بخشهای حافظه از سوی کدام برنامهها اشغال شدهاند و کدام بخشها مورد استفاده قرار نگرفتهاند.
- در زمان اجرای برنامههای چندگانه، سیستم عامل تصمیم میگیرد که کدام پروسه چه مقدار حافظه و از کدام موقعیت دریافت میکند.
- زمانی که برنامهای درخواست حافظه میکند، آن را تخصیص میدهد.
- زمانی که پروسهای دیگر به حافظه نیاز نداشته باشد، آن را تخصیص زدایی کرده و خاتمه میدهد.
مدیریت پردازنده
در محیط اجرای برنامههای چندگانه سیستم عامل تصمیم میگیرد که کدام پروسه چه هنگام و به چه مدت به پردازنده رایانه دسترسی داشته باشد. این عملکرد به نام زمانبندی پردازش (process scheduling) نامیده میشود. یک سیستم عامل برای مدیریت پردازنده فعالیتهای زیر را انجام میدهد:
- فرایند عملکردی پردازنده را بررسی کرده وضعیت پردازنده را در هر لحظه ردگیری میکند. برنامهای که مسئول این کار است کنترلر ترافیک (traffic controller) نام دارد.
- زمان پردازنده را به یک پروسه تخصیص میدهد.
- زمانی که پروسه دیگر به پردازنده نیاز نداشته باشد، تخصیص پردازنده را متوقف میکند.
مدیریت دستگاهها
سیستم عامل وظیفه مدیریت ابزارهای ارتباطی را از طریق درایورهای مربوطه بر عهده دارد. سیستم عامل برای مدیریت لوازم جانبی فعالیتهای زیر را انجام میدهد:
- ردگیری همه دستگاهها. برنامهای که مسئول این وظیفه است به نام کنترلر ورودی/خروجی نامیده میشود.
- سیستم عامل تصمیم میگیرد که کدام پروسهها، چه زمانی و به چه مدت به دستگاهها دسترسی داشته باشند.
- دستگاه را به روشی کارآمد تخصیص میدهد.
- تخصیص دستگاهها را متوقف میکند.
مدیریت فایل
یک سیستم فایل به طور معمول در دایرکتوریهایی سازماندهی میشود تا حرکت میان فایلها و استفاده از آنها آسان باشد. این دایرکتوریها میتوانند شامل فایلها یا دایرکتوریهای دیگر باشند.
یک سیستم عامل برای مدیریت فایل، فعالیتهای زیر را انجام میدهد:
- ردگیری اطلاعات، مکان، کاربردها، وضعیتها و موارد دیگر و اینها همگی فعالیتهایی هستند که معمولاً به نام سیستم فایل (file system) نامیده میشود.
- تصمیمی گیری در مورد این که چه کسی منابع را به دست آورد.
- تخصیص منابع
- توقف تخصیص منابع
فعالیتهای مهم دیگر
در ادامه برخی فعالیتهای مهم دیگری که سیستم عامل انجام میدهد را فهرست کردهایم:
- امنیت – سیستم عامل به کمک رمزهای عبور و تکنیکهای مشابه از دسترسی غیر مجاز به برنامهها و دادهها ممانعت میکند.
- کنترل روی عملکرد سیستم – سیستم عامل تأخیرهای بین درخواست برای یک سرویس و پاسخ از سوی سیستم را ثبت میکند.
- محاسبه کارها – سیستم عامل زمان و منابع مورد استفاده از سوی کارها و کاربران مختلف را اندازهگیری میکند.
- کمک به عیبیابی خطاها – سیستم عامل با تهیه dump، ثبت ردپاها، پیامهای خطا و دیگر ابزارها به عیبیابی و تشخیص خطا کمک میکند.
- هماهنگی بین نرمافزارهای دیگر و کاربران – سیستم عامل مسئولیت هماهنگ کردن و انتساب کامپایلرها، مفسرها، اسمبلرها و دیگر نرمافزارها به کاربران مختلف سیستمهای رایانهای را نیز بر عهده دارد.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای علوم کامپیوتر
- آموزش سیستم های عامل
- مجموعه آموزشهای نسخههای مختلف ویندوز
- مجموعه آموزشهای مهندسی کامپیوتر
- آموزش سیستم عامل (مرور – تست کنکور ارشد)
- آموزش فرایند نخ در سیستم های عامل
- مجموعه آموزشهای لینوکس (Linux)
==
سلام خسته نباشید
توی بخش دوم نوشتین زمان بندی پردازنده (process scheduling)
در حالی که ترجمه ی process میشه پردازه و پردازنده به CPU گفته میشه
سلام دوست عزیز؛
موردی که فرمودید اصلاح شد.
از توجه شما متشکریم.