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

Operating Systems Lab

شماره درس: ۴۰۴۰۸ تعداد واحد: ۱
مقطع: کارشناسی نوع درس: عملی
پیش‌نیاز: سیستم‌های عامل هم‌نیاز: –

اهداف درس

هدف از این آزمایشگاه، آموزش بخش‌های مختلف سیستم عامل لینوکس، استفاده از این بخش‌ها و پیاده‌سازی الگوریتم‌هایی در هر کدام از این بخش‌ها است. پس از گذراندن این آزمایشگاه، دانشجویان با ساختار سیستم عامل لینوکس آشنا خواهند شد و توانایی تغییر و کامپایل آن را خواهند داشت. کلیات این آزمایشگاه به صورت زیر است اما جزئیات هر آزمایش از یک نیم‌سال به نیم‌سال دیگر تغییر خواهد یافت. در طول یک نیم‌سال ممکن است همه بخش های سرفصل پوشش داده نشود اما در همه‌ی نیم‌سال‌ها آزمایش‌های ابتدایی پوشش داده خواهد شد و سپس برروی موضوع‌های مختلفی تمرکز خواهد شد.

ریز مواد

  • کامپایل و نصب لینوکس
  • برنامه‌نویسی با زبان C++ و shell در لینوکس
  • به‌کارگیری System Call‌های لینوکس در برنامه‌ها
  • بررسی رفتار سیستم عامل (مسیر proc/)
  • ایجاد، اجرا و از بین بردن فرایندها و ریسه‌ها (بکارگیری کتابخانه pthread)
  • همگام‌سازی و ارتباط بین فرایندها و ریسه‌ها
  • مدیریت حافظه، حافظه‌ی مشترک و حافظه‌ی مجازی
  • برنامه‌ریزی پردازنده (CPU Scheduling)
  • به‌کارگیری سیستم‌های فایل قابل نصب (Installable File Systems)
  • برنامه‌ریزی دیسک و دستگاه‌های ورودی و خروجی (IO Scheduling)
  • طراحی و پیاده‌سازی Device Driver
  • به‌کارگیری سازوکارهای امنیتی لینوکس
  • آشنایی با سیستم‌های عامل بلادرنگ و نهفته
  • آشنایی با Windows Research Kernel

مراجع

  1. P. J. Salzman, M. Burian, and O. Pomerantz. The Linux Kernel Module Programming Guide. 2007.
  2. K. Wall, M. Watson, and M. Whitis. Linux Programming Unleashed, Macmillan Computer Publishing. 1999.
  3. M. Mitchell, J. Oldham, and A. Samuel. Advanced Linux Programming. New Rivers, 2001.
  4. C. S. Rodriguez, G. Fischer, and S. Smolski. The Linux® Kernel Primer: A Top-Down Approach for x86 and PowerPC Architectures. Prentice-Hall, 2005.
  5. J. Corbet, A. Rubini, and G. Kroah-Hartman. Linux Device Drivers. O'Reilly Books, 2005.