سیستم‌های عامل

Operating Systems

شماره درس: ۴۰۴۲۴ تعداد واحد: ۳
مقطع: کارشناسی نوع درس: نظری
پیش‌نیاز: معماری کامپیوتر هم‌نیاز: –

اهداف درس

هدف از این درس، آشنا نمودن دانشجویان کارشناسی با اصول سیستم‌های عامل است. این درس دارای چهار تمرین برنامه‌نویسی فردی است که دانشجو را با برنامه‌نویسی سیستمی آشنا می‌کند. همچنین این درس دارای سه تمرین برنامه‌نویسی گروهی است که دانشجو را با برنامه‌نویسی در سطح کرنل آشنا می‌نماید.

ریز مواد

  • مقدمه‌ای بر سیستم‌های عامل (۲ جلسه)
    • مفاهیم اولیه‌ی سیستم‌های عامل
    • ساختار و اجزای تشکیل‌دهنده سیستم‌های عامل
    • ریسه ، فضای آدرس، I/O و عملیات مد دوگانه
    • ساختار و معماری سیستمهای عامل
  • مدیریت پردازه‌ها (۳ جلسه)
    • پردازه‌ی تک‌ریسه‌ای، چندریسه‌ای، پردازه‌ی منشعب و بلوک کنترل پردازه
    • مدیریت وقفه
    • ارتباط بین پردازه‌ها
  • همروندی و همگام‌سازی (۳ جلسه)
    • نواحی بحرانی و انحصار متقابل
    • عملیات تجزیه‌ناپذیر
    • قفل، سمافور و مانیتور
  • زمان‌بندی (۳ جلسه)
    • اهداف الگوریتم‌های زمان‌بندی
    • زمان‌بندی اول ورودی-اول خروجی، نوبت-چرخشی، کوتاه‌ترین-کار-اول و کمترین-زمان باقیمانده-اول
    • زمان‌بندی بی‌درنگ
  • بن‌بست و گرسنگی (۲ جلسه)
    • شرایط ایجاد بن‌بست
    • روش‌های رسیدگی، تشخیص و پیشگیری از بن‌بست
    • مسئله غذاخوری وکیلان و الگوریتم بانکدار
  • مدیریت حافظه (۲ جلسه)
    • مدیریت حافظه، صفحه‌بندی، قطعه‌بندی، ترکیب صفحه‌بندی و قطعه‌بندی
    • ترجمه‌ی آدرس، جدول صفحه، صفحه‌بندی دوسطحی و چندسطحی و جدول صفحه وارونه
    • TLB
  • حافظه‌ی مجازی (۲ جلسه)
    • صفحه‌بندی بر اساس تقاضا
    • تخصیص قاب صفحات و نقص صفحه
    • روش‌های جایگزینی صفحه (الگوریتم‌های اول ورودی-اول خروجی، حداقلی، تصادفی، اخیرا به کار نرفته، ساعت و شانس n-ام)
    • مدل مجموعه کاری و بیهوده‌کاری
  • سیستم‌های ذخیره‌سازی انبوه (۲ جلسه)
    • انواع دستگاه‌ها و کنترل کننده‌های I/O و درایورهای دستگاه‌ها
    • دستگاه‌های ذخیره‌سازی (درایو دیسک سخت و دیسک حالت جامد)
    • زمان‌بندی دیسک (اول ورودی- اول خروجی، کوتاهترین زمان جستجو اول، SCAN و C-SCAN)
  • فایل سیستم (۳ جلسه)
    • روش‌های مدیریت دیسک و اجزای فایل سیستم
    • جدول تخصیص فایل، فایل سیستم یونیکس و NTFS
    • فایل‌های نگاشته شده به حافظه و حافظه نهان در فایل سیستم
  • حفاظت و امنیت (۱ جلسه)
  • ماشین مجازی (۱ جلسه)

ارزیابی

  • آزمون‌های میان‌ترم و پایان‌ترم (۴۰٪ از کل نمره)
  • چهار تمرین برنامه‌نویسی فردی که در طول نیم‌سال تحویل داده می‌شوند (۲۵٪ از کل نمره).
  • سه تمرین برنامه‌نویسی گروهی که در طول نیم‌سال تحویل داده می‌شوند (۳۵٪ از کل نمره).

مراجع

  1. A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. 10th Edition, Wiley Publishing, 2018.
  2. T. Anderson and M. Dahlin. Operating Systems: Principles and Practice. 2nd Edition, Recursive Books, 2014.