1.وظایف سیستمعامل، انواع سیستم عامل
2. تعریف برنامه، پردازش، کار، وظیفه، حالات پردازش
3. انواع زمان بندي (انحصاري و غیر انحصاري)، الگوریتم هاي زمان بندي ،(Round Robin ،FCFS
(MLFQ ،MLQ،Priority ،HRN ،SRT ،SJF -
4. الگوریتمهاي تخصیص حافظه (Fit ،Best Fit ،Next Fit ،Fisrt Fit )
5. روشهاي تخصیص فضا در دیسک پیوسته و ناپیوسته مزایا و معایب
6. تعریف صفحه و الگوریتمهاي جایگزیني صفحه
7. بنبست، شرایط بروز بنبست، روشهاي اجتناب از بن بست، جلوگیري از بروز بن بست
این دوره شامل 1 فصل، 7 درس و 0 ساعت محتوا میباشد.
خلاصه نکات کلیدی:
سیستم عامل، نرمافزار اصلی است که مدیریت سختافزار و ارائه خدمات به برنامهها را بر عهده دارد.
وظایف اصلی شامل مدیریت پردازنده، حافظه، ذخیرهسازی، ورودی/خروجی، حفاظت و ارائه رابط کاربری است.
سیستمهای عامل بر اساس معیارهای مختلفی مانند تعداد کاربر، تعداد پردازنده، ماهیت پردازش، و اتصال به شبکه دستهبندی میشوند.
درک وظایف و انواع سیستم عامل برای طراحی، توسعه و استفاده بهینه از نرمافزارها ضروری است.
خلاصه نکات کلیدی:
برنامه (Program): مجموعهای از دستورالعملها که برای انجام یک کار خاص نوشته شده است. یک موجودیت ایستا در حافظه ثانویه (مانند دیسک).
پردازش (Process): نمونهای در حال اجرای یک برنامه. یک موجودیت پویا که منابع سیستم (CPU، حافظه، I/O) را اشغال میکند.
کار (Job): در محیطهای دستهای (Batch)، معادل پردازش است که توسط سیستم مدیریت میشود.
وظیفه (Task): واژهای عمومیتر که میتواند به پردازش یا بخشی از آن اشاره کند، مخصوصاً در سیستمهای بیدرنگ (Real-time).
حالات پردازش (Process States): چرخهی عمر یک پردازش که شامل حالتهای “ایجاد”، “آماده”، “در حال اجرا”، “انتظار”، و “پایان” است.
خلاصه نکات کلیدی
زمانبندی انحصاری: فرآیند پردازنده را تا پایان آزاد نمیکند. پیادهسازی سادهتر اما ممکن است کارایی را کاهش دهد.
زمانبندی غیر انحصاری: سیستمعامل میتواند پردازنده را پس بگیرد. کارایی بهتر، بهویژه برای تعاملات کاربر.
FCFS: ساده، اما مستعد مشکل “نگهبان گاری”.
SJF/SRT: به طور متوسط بهترین عملکرد را دارد، اما پیشبینی زمان اجرا دشوار است و ریسک گرسنگی وجود دارد.
Priority: امکان اولویتبندی، اما نیازمند راهکاری برای جلوگیری از گرسنگی (مانند Aging).
HRN: تعادل بین زمان انتظار و زمان اجرا، جلوگیری از گرسنگی.
MLQ: تفکیک فرآیندها در صفهای مجزا با سیاستهای متفاوت.
MLFQ: انعطافپذیرترین؛ با جابجایی فرآیندها بین صفها، رفتارهای مختلف را مدیریت میکند.
Round Robin: منصفانه با زمان کوانتوم مشخص، مناسب برای سیستمهای تعاملی.
خلاصه نکات کلیدی:
حافظه خارجی (External Fragmentation): وضعیتی که حافظه کل به اندازه کافی آزاد است، اما تکههای حافظه آزاد پراکنده هستند و نمیتوانند یک درخواست جدید را برآورده کنند.
حافظه داخلی (Internal Fragmentation): وضعیتی که یک بلاک حافظه به فرآیندی اختصاص داده شده، اما بخشی از آن بلاک استفاده نشده و به صورت بلااستفاده باقی مانده است.
1. الگوریتم First Fit:
نحوه عملکرد: این الگوریتم لیستی از بلوکهای حافظه آزاد را نگه میدارد و اولین بلوکی را که بتواند درخواست تخصیص حافظه را برآورده کند، به فرآیند اختصاص میدهد.
مزایا: ساده و سریع است.
معایب: ممکن است منجر به حافظه خارجی شود، زیرا بلوکهای کوچک در ابتدای لیست ممکن است زودتر پر شوند.
2. الگوریتم Next Fit:
نحوه عملکرد: این الگوریتم مشابه First Fit عمل میکند، با این تفاوت که جستجو برای بلوک حافظه آزاد از آخرین بلوکی که قبلاً به فرآیندی اختصاص داده شده، آغاز میشود و به صورت چرخشی ادامه مییابد.
مزایا: معمولاً سریعتر از First Fit است، زیرا نیاز به اسکن کل لیست بلوکهای آزاد نیست.
معایب: ممکن است منجر به ایجاد بلوکهای کوچک در انتهای حافظه شود و حافظه خارجی را تشدید کند.
3. الگوریتم Best Fit:
نحوه عملکرد: این الگوریتم لیستی از بلوکهای حافظه آزاد را جستجو کرده و بلوکی را انتخاب میکند که پس از تخصیص به فرآیند، کمترین میزان حافظه بلااستفاده (کمترین حافظه داخلی) را باقی بگذارد.
مزایا: تلاش میکند تا حد امکان حافظه داخلی را کاهش دهد.
معایب: کندتر از First Fit و Next Fit است، زیرا باید کل لیست بلوکهای آزاد را اسکن کند تا بهترین تطابق را پیدا کند. همچنین ممکن است منجر به ایجاد بلوکهای حافظه آزاد بسیار کوچک شود که قابل استفاده نیستند.
4. الگوریتم Worst Fit:
نحوه عملکرد: این الگوریتم لیستی از بلوکهای حافظه آزاد را جستجو کرده و بزرگترین بلوک حافظه آزاد را که میتواند درخواست تخصیص حافظه را برآورده کند، انتخاب میکند. ایده این است که با استفاده از بزرگترین بلوک، فضای باقیمانده بزرگتری برای استفادههای بعدی ایجاد شود.
مزایا: تلاش میکند تا بلوکهای حافظه آزاد بزرگتری را حفظ کند.
معایب: ممکن است منجر به حافظه خارجی بیشتری شود، زیرا بلوکهای بزرگ به طور مداوم شکسته میشوند. همچنین از نظر محاسباتی کند است.
خلاصه نکات کلیدی برای دانشجویان
تخصیص پیوسته: ساده، سریع برای خواندن ترتیبی، اما دچار تکهتکه شدن خارجی و مشکل در گسترش فایل میشود.
تخصیص ناپیوسته: انعطافپذیر، بدون تکهتکه شدن خارجی، اما پیادهسازی پیچیدهتر و سربار بیشتری دارد.
روشهای ناپیوسته: مبتنی بر دایرکتوری، پیوندی و شاخص هر کدام با مکانیزم مدیریت متفاوت، مزایا و معایب خاص خود را دارند. تخصیص شاخصی معمولاً بهترین تعادل بین کارایی و انعطافپذیری را فراهم میکند.
انتخاب روش: به نوع کاربرد سیستم عامل و اولویتها (سرعت دسترسی، فضای ذخیرهسازی، سادگی مدیریت) بستگی دارد. سیستمعاملهای مدرن معمولاً از روشهای ترکیبی یا تخصیص ناپیوسته (مانند مبتنی بر شاخص) استفاده میکنند.
خلاصه نکات کلیدی:
صفحهبندی مکانیزمی برای پیادهسازی حافظه مجازی است که حافظه را به صفحات و قابهای صفحه تقسیم میکند.
جدول صفحه نگاشت بین آدرسهای منطقی و فیزیکی را انجام میدهد.
خطای صفحه زمانی رخ میدهد که صفحه مورد نیاز در حافظه فیزیکی نباشد و نیاز به بارگذاری از دیسک دارد.
الگوریتمهای جایگزینی صفحه برای انتخاب صفحهای که باید از حافظه خارج شود تا جای صفحه جدید باز شود، به کار میروند.
LRU بهترین عملکرد را دارد اما پیادهسازی آن گران است. الگوریتمهای تقریبی مانند Clock، راهحلهای عملیتری ارائه میدهند
بازگرداندن سیستم به وضعیت قبلی (Rollback): سیستم به یک نقطه بازگردانده میشود که در آن بنبست رخ نداده بود. این کار با استفاده از Checkpoint ها انجام میشود.
خلاصه نکات کلیدی
بنبست زمانی رخ میدهد که فرآیندها به طور متقابل منتظر منابع یکدیگر باشند.
چهار شرط اساسی برای بنبست: انحصار متقابل، نگه داشتن و انتظار، عدم پیشدستی، و انتظار چرخشی.
روشهای اجتناب (مانند الگوریتم بانکدار) قبل از تخصیص منابع، وضعیت امن را بررسی میکنند.
روشهای جلوگیری با حذف یکی از شروط چهارگانه، از وقوع بنبست ممانعت میکنند.
روشهای تشخیص پس از وقوع بنبست، آن را شناسایی میکنند (مثلاً با گراف تخصیص منابع).
روشهای بازیابی پس از تشخیص بنبست، سیستم را از این وضعیت خارج میکنند (مانند خاتمه فرآیند یا Rollback).
پاسخ به پرسش