تفاوت کلیدی – زمانبندی پیشگیرانه در مقابل غیر پیشگیرانه در سیستم عامل
فرآیند یک برنامه در حال اجرا است. یک کامپیوتر باید چندین کار را همزمان انجام دهد. بنابراین، CPU باید فرآیندها را دریافت کرده و آنها را اجرا کند. گاهی اوقات لازم است برخی از فرآیندها نسبت به سایر فرآیندها اجرا شوند. در آن نقطه، فرآیند در حال اجرا قطع می شود و CPU به فرآیند جدید اختصاص می یابد. پس از اتمام کار، CPU به فرآیند قبلی تخصیص داده می شود. زمانبندی طبق این مکانیسم به عنوان زمانبندی پیشگیرانه شناخته میشود. اگر فرآیند در حال اجرا، قابل قطع نباشد و اجرای فرآیند در حال اجرا اجباری باشد، به آن زمانبندی غیر پیشگیرانه میگویند.این مقاله تفاوت بین زمانبندی پیشگیرانه و غیرپیشگیرانه در یک سیستم عامل را مورد بحث قرار میدهد. زمانبندی پیشگیرانه مکانیزم زمانبندی فرآیند است که از طریق آن فرآیندی میتواند توسط فرآیند دیگری در میانهی اجرای آن قطع شود. زمانبندی غیر پیشگیرانه مکانیزم زمانبندی فرآیند است که از طریق آن یک فرآیند تنها پس از پایان فرآیند قبلی اجرا را آغاز میکند. این تفاوت کلیدی بین برنامه ریزی پیشگیرانه و غیر پیشگیرانه در سیستم عامل است.
زمانبندی پیشگیرانه در سیستم عامل چیست؟
برنامه ریزی دور رابین نمونه ای از زمان بندی پیشگیرانه است. هر فرآیند مقدار کمی از زمان CPU را دریافت می کند. معمولاً 10 تا 100 میلی ثانیه است. این واحد کوچک داده به عنوان کوانتوم زمان نیز شناخته می شود. پس از سپری شدن این زمان، این فرآیند از قبل انتخاب می شود و به انتهای صف آماده اضافه می شود. فرض کنید 4 فرآیند به عنوان P1، P2، P3 و P4 وجود دارد. زمان انفجار CPU بر حسب میلی ثانیه به شرح زیر است. کوانتوم زمان 20 است.
شکل 01: نمونه ای از برنامه ریزی دور رابین
فرآیند P1 تا 20 اجرا می شود. 33 میلی ثانیه دیگر باقی مانده است. سپس P2 اجرا می شود. از آنجایی که کوانتوم زمانی 20 و زمان مورد نیاز P2 17 میلی ثانیه است، P2 برای 17 میلی ثانیه اجرا می شود. بنابراین، فرآیند P2 تکمیل شده است. سپس این شانس به P3 داده می شود. برای 20ms اجرا خواهد شد. بقیه 48 میلیثانیه است. سپس P4 به مدت 20 میلی ثانیه اجرا می شود. 4 میلی ثانیه برای تکمیل کل فرآیند دارد. مجدداً P1 برای 20 میلی ثانیه اجرا می شود. 13 میلیثانیه دیگر برای تکمیل فرآیند دارد.تغییر به P3 داده می شود. برای 20 میلی ثانیه اجرا می شود و 28 میلی ثانیه دیگر برای اتمام کامل دارد. P4 اجرا می شود. فقط 4 میلیثانیه دارد. بنابراین، P4 اجرا را کامل می کند. P2 و P4 قبلاً تمام شده اند. فرآیندهای باقی مانده P1 و P3 هستند. این شانس به P3 داده شده است. 13 میلیثانیه برای تکمیل داشت، بنابراین کامل میشود. اکنون تنها فرآیند باقی مانده P3 است. 28 میلیثانیه برای تکمیل دارد. بنابراین P3 برای 20ms اجرا خواهد شد. بقیه 8 میلیثانیه است. تمام فرآیندهای دیگر قبلاً اجرا شده اند. بنابراین، دوباره بقیه 8 میلیثانیه P3 اجرا میشود. به همین ترتیب، هر فرآیند فرصتی برای اجرا دارد.
زمانبندی غیر پیشگیرانه در سیستم عامل چیست؟
زمانبندی First Come First Served (FCFS) را میتوان به عنوان نمونهای از زمانبندی غیر پیشگیرانه در نظر گرفت. فرآیندی که ابتدا درخواست می کند ابتدا به CPU اختصاص داده می شود. این زمان بندی به راحتی توسط صف اول ورودی اول (FIFO) مدیریت می شود. اگر فرآیندهایی به ترتیب P1، P2 و P3 وجود داشته باشد، ابتدا این شانس به P1 داده می شود. پس از تکمیل، P2 اجرا می شود.وقتی P2 کامل شد، P3 اجرا می شود. فرض کنید 3 فرآیند به عنوان P1، P2 و P3 با زمان انفجار CPU در میلی ثانیه به شرح زیر وجود دارد.
شکل 02: نمونه ای از زمانبندی FCFS
با توجه به موارد فوق، P1 اجرا خواهد شد. پس از تکمیل، فرآیند P2 به مدت 3 میلی ثانیه اجرا می شود. اکنون روند باقی مانده P3 است. سپس اجرا خواهد شد. زمان انتظار برای P1 صفر است. فرآیند P2 باید 24 میلیثانیه و فرآیند P3 باید 27 میلیثانیه صبر میکرد. اگر فرآیندها به ترتیب P2، P3 و P1 رسید، ابتدا P2 تکمیل می شود. P3 بعدی تکمیل می شود و در نهایت P1 تکمیل می شود.
شباهت بین زمانبندی پیشگیرانه و غیر پیشگیرانه در سیستم عامل چیست؟
زمانبندی پیشگیرانه و غیر پیشگیرانه در سیستم عامل مکانیسمهایی برای زمانبندی فرآیندها در رایانه هستند
تفاوت بین برنامه ریزی پیشگیرانه و غیر پیشگیرانه در سیستم عامل چیست؟
برنامهریزی پیشگیرانه در مقابل غیر پیشگیرانه در سیستم عامل |
|
زمانبندی پیشگیرانه مکانیزم زمانبندی فرآیند است که از طریق آن یک فرآیند میتواند توسط فرآیند دیگری در میانه اجرای آن قطع شود. | زمانبندی غیر پیشگیرانه مکانیسم زمانبندی فرآیند است که از طریق آن یک فرآیند فقط پس از پایان فرآیند قبلی اجرا را آغاز میکند. |
وقفه در فرآیند | |
در زمانبندی پیشگیرانه، فرآیندها میتوانند قطع شوند. | در برنامه ریزی غیر پیشگیرانه، فرآیندها می توانند قطع شوند. |
استفاده از CPU | |
در زمانبندی پیشگیرانه، استفاده از CPU بیشتر از زمانبندی غیرپیشگیرانه است. | در زمانبندی غیر پیشگیرانه، استفاده از CPU در مقایسه با زمانبندی پیشگیرانه حداقل است. |
انعطاف پذیری | |
برنامهریزی پیشگیرانه انعطافپذیر است. | برنامهریزی غیر پیشگیرانه انعطافپذیر نیست. |
خلاصه - زمانبندی پیشگیرانه در مقابل برنامهریزی غیر پیشگیرانه در سیستم عامل
بر روی یک کامپیوتر چندین فرآیند در حال اجرا هستند. هنگامی که هر فرآیند اجرا می شود، CPU به آن فرآیند خاص اختصاص می یابد.گاهی اوقات لازم است اجرای فرآیند جاری متوقف شود و به فرآیند دیگری اولویت داده شود. مکانیسم های زمان بندی فرآیندها می توانند پیشگیرانه یا غیر پیشگیرانه باشند. زمانبندی پیشگیرانه مکانیزم زمانبندی فرآیند است که از طریق آن فرآیند میتواند توسط فرآیند دیگری در میانه اجرای آن قطع شود. زمانبندی غیر پیشگیرانه مکانیزم زمانبندی فرآیند است که در آن یک فرآیند تنها پس از پایان فرآیند قبلی اجرا را آغاز میکند. این تفاوت بین زمانبندی پیشگیرانه و غیرپیشگیری در سیستم عامل است.
دانلود PDF برنامهریزی Preemptive vs Nonpreemptive Scheduling در سیستم عامل
می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت استنادی از آن برای اهداف آفلاین استفاده کنید. لطفاً نسخه PDF را از اینجا دانلود کنید: تفاوت بین زمانبندی پیشگیرانه و غیر پیشگیرانه در سیستم عامل