سیستم عامل یا سامانه عامل (Operating System) بدون شک مهمترین نرم افزار در کامپیوتر است. سیستم عامل اولین نرم افزاری است که پس از روشن کردن کامپیوتر مشاهده می شود و همچنین آخرین نرم افزاری خواهد بود که قبل از خاموش کردن کامپیوتر مشاهده می شود. سیستم عامل نرم افزاری است که مدیریت برنامه ها را به عهده گرفته و با کنترل، مدیریت و سازماندهی منابع سخت افزاری امکان استفاده بهینه و هدفمند آنها را فراهم کرده و بستری را برای اجرای نرم افزارهای کاربردی فراهم می کند. آموزش سیستم عامل، توسط مهندس فرشید شیرافکن، یکی از بهترین مدرسین مسلط به این مباحث، ارائه شده است. فهرست سرفصل ها و رئوس مطالب مطرح شده فصل ۱: مفاهیم اولیه پردازنده وقفه فراخوانی های سیستم حفاظت سلسله مراتب حافظه روش های انتقال ورودی/خروجی نگاه کلی به سیستم عامل تاریخچه سیستم عامل انواع سیستم عامل از نظر ساختاری آزمون فصل ۲: فرآیند فرآیند و حالات آن فرآیند معلق انواع زمان بندها نخ(thread) پیاده سازی نخ (سطح کاربر، سطح هسته و ترکیبی) فصل ۳: زمان بندی پردازنده معیارهای زمان بندی الگوریتم های زمان بندی الگوریتم FCFS الگوریتم RR الگوریتم (SPN SJF) الگوریتم SRT الگوریتم HRRN الگوریتم FB الگوریتم MLFQ الگوریتم MLQ زمان بندی اولویت (Priority) زمان بندی FCFS زمان بندی در سیستم چند پردازنده ای (LPT, RPT, SPT) آزمون فصل ۴: همروندی: انحصار متقابل و همگام سازی مباحث مطرح در ارتباط بین فرآیندها رویکردهای نرم افزاری انحصار متقابل الگوریتم Decker (پنج تلاش دکر) الگویتم Peterson رویکردهای انحصار متقابل با حمایت سخت افزار راهکارهای سیستم عامل و زبان برنامه سازی برای تدارک همزمانی سمافور پیاده سازی انحصار متقابل توسط سمافور همگام سازی با استفاده از سمافور مسئله تولید کننده و مصرف کننده مسئله غذا خوردن فیلسوف ها مسئله خوانندگان و نیسندگان مانیتور (ناظر) مسئله تولید کننده و مصرف کننده با مانیتور تبادل پیام همگام سازی به کمک تبادل پیام پیاده سازی انحصار متقابل توسط تبادل پیام حل مسئله تولید کننده و مصرف کننده توسط تبادل پیام آزمون فصل ۵: بن بست شرایط بن بست گراف تخصیص منابع روش های رفع بن بست ترمیم روش های پیشگیری از بن بست روش های اجتناب از بن بست الگوریتم بانکداران خلاصه رویکردها آزمون فصل ۶: مدیریت حافظه مدیریت حافظه ابتدایی جا به جایی و حفاظت مبادله الگوریتم های مکان یابی و تخصیص حافظه مدیریت حافظه با سیستم رفاقتی روی هم گذاری (Overlay) صفحه بندی (Paging) حافظه مجازی صفحه بندی درخواستی صفحه بندی چند سطحی جدول صفحه وارونه (معکوس) بافرهای کناری ترجمه (TLB) زمان مؤثر دسترسی آزمون الگوریتم های جایگزینی صفحه الگوریتم بهینه (optimal) الگوریتم NRU الگوریتم FIFO الگوریتم دومین شانس الگوریتم ساعت الگوریتمLRU پیاده سازی سخت افزاری LRU شبیه سازی LRU در نرم افزار (الگوریتم سالمندی) الگوریتم بافر کردن صفحه نکات طراحی سیستم های صفحه بندی پیش صفحه بندی (prepaging) مدل مجموعه کاری (working sets) الگوریتم فرکانس نقص صفحه (PFF) تناقض بلیدی (Belady’s anomaly) الگوریتم های پشته (Stack Algorithms) اندازه صفحه ساختار برنامه قطعه بندی قطعه بندی درخواستی قطعه بندی صفحه بندی (Segmentation with paging) مقایسه روشهای مدیریت حافظه آزمون فصل ۷: مدیریت I/O و دیسک نرم افزار I/O مدیریت دیسک الگوریتم های زمان بندی بازوی دیسک (FCFS, SSTF, SCAN, CSCAN) روش های تخصیص فضای دیسک به فایل سطوح در یک حافظه سه سطحی آزمون