
مقدمه:
سیستم عامل به عنوان نرمافزار مهمی که واسطه بین کاربر و سختافزار یک رایانه عمل میکند، از اهمیت بسزایی برخوردار است. این مقاله به بررسی تاریخچه سیستمهای عامل، اصول اساسی آنها، و بهترین منابع آموزشی برای درس سیستمعامل میپردازد.
سیستمعامل (Operating System) چیست؟
سیستمعامل یک نرمافزار اصلی و واسط میان سختافزار و نرمافزار است که مدیریت برنامهها را به عهده گرفته و با کنترل، مدیریت و سازماندهی منابع سختافزاری امکان استفاده بهینه و هدفمند آنها را فراهم کرده و بستری را برای اجرای نرمافزارهای کاربردی فراهم میکند. سیستمعامل از اولین نرمافزارهایی است که پس از روشن کردن کامپیوتر مشاهده میشود و همچنین آخرین نرمافزاری خواهد بود که قبل از خاموش کردن کامپیوتر مشاهده میشود.
تاریخچه:
سیستمهای عامل از زمان اختراع اولین رایانهها ظهور کردند. در دهههای 1950 و 1960، سیستمهای عامل سادهای که تنها امکانات اولیه مانند اجرای برنامهها و مدیریت منابع را داشتند، ظاهر شد. اما با پیشرفت فناوری، سیستمهای عامل پیچیدهتر و با قابلیتهای بیشتری مانند امنیت، چندوظیفگی، و توزیعی شدند.
سیستمهای عامل معروفی همچون UNIX، Windows، و macOS از این تکنولوژیهای پیشرفته بهره میبرند که توسط انسانهای بزرگی همچون Dennis Ritchie، Bill Gates، و Steve Jobs طراحی شدهاند.
اصول سیستم عامل:
- مدیریت منابع: سیستمهای عامل بر عهدهداری مدیریت منابع سختافزاری و نرمافزاری هستند تا به گونهای عملکرد صحیح سیستم را حفظ کنند.
- واسطه کاربری: سیستم عامل به کاربر اجازه میدهد با سختافزار تعامل داشته باشد، بدون آنکه باید به طور مستقیم با سختافزار کار کند.
- مدیریت فایل: سیستم عامل فایلها را مدیریت میکند تا برنامهها بتوانند به آنها دسترسی داشته باشند و اطلاعات را ذخیره و بازیابی کنند.
- امنیت: سیستم عامل باید از امنیت سیستم و دادهها محافظت کند و دسترسی غیرمجاز را جلوگیری کند.
اهمیت یادگیری سیستمعامل چیست؟
سیستمعامل بروی دستگاههایی همچون کامپیوترهای شخصی، تلفنهای هوشمند، تبلتها، سرورها و دیگر دستگاهها نصب میشود که از انواع آن میتوان به سیستمعاملهای ویندوز، لینوکس، مک، آندروید، iOS و غیره اشاره کرد.
اگر کامپیوتری دارای عملیات محدود و ساده باشد به وجود سیستمعامل نیازی نخواهد بود. در این گونه سیستمها اطلاعات ورودی و خروجی از طریق صفحه کلید، نمایشگر و ... در اختیار سیستم قرار میگیرد و لذا در این سیستمها همواره یک برنامه در تمام حالت اجرا خواهد شد.
با یادگیری این آموزش، کاربران قادر به استفاده از ابزارهای پیشرفته و قدرتمندتر در دستگاههای خود میشوند که به کاربران این اجازه را میدهد تا برای حل مسائل پیچیده و انجام کارهای مختلف، از قابلیتهای بهتری استفاده کنند.
بهترین کتابها برای درس سیستم عامل:
Operating System Concepts (کانسپتهای سیستم عامل) نوشتهی Abraham Silberschatz، Peter B. Galvin، Greg Gagne: این کتاب به عنوان یکی از منابع اصلی برای درس سیستم عامل شناخته میشود. آنچه این کتاب را ویژه میکند، توضیحات جامع و کامل در مورد مفاهیم اصلی سیستمهای عامل است.
Modern Operating Systems (سیستمهای عامل مدرن) نوشتهی Andrew S. Tanenbaum، Herbert Bos: این کتاب به طور جامع به بررسی سیستمهای عامل مدرن میپردازد و مفاهیمی مانند پردازشهای همزمان، برنامهنویسی هسته، و سیستمهای توزیعی را مورد بحث قرار میدهد.
Operating Systems: Internals and Design Principles (سیستمهای عامل: اصول داخلی و طراحی) نوشتهی William Stallings: این کتاب به طراحی داخلی سیستمهای عامل و اصول طراحی آنها میپردازد و مفاهیمی همچون مدیریت حافظه، مدیریت ورودی/خروجی، و سیاستهای برنامهریزی را بررسی میکند
سرفصلها:
- درس یکم: مفاهیم اولیه
- سیستم عامل (Operating System)
- انواع سیستم عامل
- تک پردازنده
- سیستم های چندکاربره
- سیستم های عامل توزیع شده (Distributed)
- سیستم عامل بی درنگ (Real Time)
- مولفه های سیستم عامل
- اجزای سخت افزاری تشکیل دهنده کامپیوتر
- پردازنده
- وقفه (Interrupt)
- تعویض متن (Context Switch)
- فراخوانی سیستم (System Call)
- روش های انتقال ورودی/خروجی
- حفاظت
- درس دوم: فرایند – نخ
- بلوک کنترل فرایند (PCB)
- حالات فرایند
- مدل فرایند پنج حالت
- دلایل پایان یک فرآیند
- فرایند معلق
- مدل فرایند هفت حالت
- انواع زمان بندها
- نمودار تغییر حالت فرایند همراه با زمانبندی
- توزیع کننده (Dispatcher)
- نخ
- مدل تک نخی و چند نخی
- حالات اصلی نخ
- نخ های سطح کاربر
- نخ های سطح هسته
- فرایندهای سبک وزن (LWP)
- درس سوم: زمان بندی پردازنده
- معیارهای زمان بندی
- دسته بندی سیاست های زمان بندی
- الگوریتم های زمان بندی
- سرویس به ترتیب ورود (FCFS)
- زمان بندی (LCFS)
- نوبت گردشی (RR)
- کوتاه ترین فرایند (SJF)
- کوتاه ترین زمان باقیمانده (SRT)
- زمان بندی صف بازخوردی چند سطحی (MLFQ)
- بالاترین نسبت پاسخ (HRRN)
- زمان بندی در سیستم چند پردازنده ای
- الگوریتم LPT
- الگوریتم RPT
- زمان بندی نخ ها
- درس چهارم: بن بست
- شرایط بن بست
- گراف تخصیص منابع
- شخص کردن بن بست
- شرط رخ ندادن بن بست
- روش های پیشگیری
- انتظار چرخشی
- روش های اجتناب از بن بست
- محدودیت های اجتناب از بن بست
- حالت امن
- الگوریتم بانکداران
- درس پنجم: هم روندی (بخش یکم)
- همگام سازی (Synchronization)
- شرایط رقابتی (Race Condition)
- منبع بحرانی
- ناحیه بحرانی (Critical Region)
- گرسنگی
- همکاری فرایندهای همروند
- رویکردهای نرم افزاری انحصار متقابل
- الگوریتم Decker
- تلاش اول (تناوب قطعی)
- تلاش دوم
- تلاش سوم
- تلاش چهارم (ادب و تعارف)
- تلاش پنجم
- الگوریتم Peterson
- رویکردهای انحصار متقابل با حمایت سخت افزار
- دستورالعمل از کار انداختن وقفه ها
- دستور Swap
- دستورالعمل TSL
- بخش پنجم: هم روندی (درس دوم)
- تعریف سمافور (Semaphore)
- تابع Wait
- تابع Signal
- انحصار متقابل با استفاده از سمافورها
- سمافور قوی و ضعیف
- توابع Wait و Signal برای سمافور باینری
- همگام سازی با استفاده از سمافورها
- حل چند مساله به سمافور
- مساله تولید کننده و مصرف کننده
- مساله تولید کننده - مصرف کننده، با بافر نامحدود
- مساله غذا خوردن فیلسوف ها
- مساله خوانندگان و نویسندگان
- درس ششم: مدیریت حافظه (بخش یکم)
- چند برنامگی با پارتیشن ثابت
- معایب مدیریت حافظه به روش پارتیشن بندی ایستا
- ثبات پایه و حد
- مبادله (Swapping)
- تکه تکه شدن خارجی
- تشخیص بخش های آزاد حافظه
- مدیریت حافظه با نگاشت های بیتی
- مدیریت حافظه با لیست های پیوندی
- الگوریتم های مکان یابی و تخصیص حافظه
- Next Fit
- Best Fit
- Worst Fit
- الگوریتم برازش سریع (Quick Fit)
- مدیریت حافظه با سیستم رفاقتی (Buddy System)
- صفحه بندی (Paging)
- نحوه ترجمه آدرس در سیستم صفحه بندی
- قطعه بندی
- سخت افزار قطعه بندی
- درس ششم: مدیریت حافظه (بخش دوم)
- حافظه مجازی
- عناصر لازم برای موثر بودن حافظه مجازی
- روش های پیاده سازی حافظه مجازی
- صفحه بندی درخواستی
- فیلدهای یک درایه جدول صفحه
- خطای نقص صفحه (Page Fault)
- الگوریتم های جایگزینی صفحه
- الگوریتم بهینه (Optimal)
- الگوریتم NRU
- الگوریتم FIFO
- الگوریتم دومین شانس
- الگوریتم ساعت
- تناقض بلیدی (Belady's Anomaly)
- قطعه بندی صفحه بندی (Segmentation with Paging)
- درس ششم: مدیریت حافظه (بخش سوم)
- صفحه بندی چند سطحی
- عملیات صفحه بندی و TLB
- زمان موثر دسترسی
- کوبیدگی (Thrashing)
- مدل مجموعه کاری (Working Sets)
- پیش صفحه بندی (PrePaging)
- الگوریتم فرکانس نقص صفحه (PFF)
- درس هفتم: مدیریت دیسک
- دیسک مغناطیسی
- زمان استوانه جویی (Seek Time)
- زمان درنگ دوران (Rotational Latency Time)
- الگوریتم های زمان بندی بازوی دیسک
- روش های تخصیص فضای دیسک به فایل
- تخصیص پیوسته
- تخصیص پیوندی
- تخصیص شاخصی
نتیجهگیری:
سیستم عامل به عنوان یکی از اجزای اساسی هر رایانه از اهمیت بسزایی برخوردار است. با مطالعه و فهم اصول و مباحث سیستم عامل و استفاده از منابع آموزشی برتر، میتوانید مهارتهای لازم برای توسعه، مدیریت، و تعمیر سیستمهای عامل را کسب کنید.