الگوریتم زمانبندی FCFS در جاوا (First Come First Serve)

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

  1. آشنایی با متد در جاوا
  2. آشنایی با حلقه for در جاوا
  3. آشنایی با آرایه در جاوا

الگوریتم زمانبندی FCFS

الگوریتم First Come First Served یا به اختصار FCFS یکی از ساده‌ترین الگوریتم‌های زمانبندی است. این الگوریتم به فرآیند‌های ورودی، به ترتیب، CPU اختصاص می‌دهد. هر فرآیندی زودتر وارد شود زودتر به آن CPU اختصاص داده خواهد شد. در این الگوریتم برای هر فرآیند پارامترهای زیر تعریف می‌شود:

  • Completion Time : زمانی که یک فرآیند به اتمام می‌رسد.
  • Arrival Time : زمانی که یک فرآیند وارد صف نوبت دهی CPU می‌شود.
  • Burst Time : مدت زمان مورد نیاز یک فرآیند برای اجرا در CPU .
  • Turn Around Time : اختلاف زمانی بین Completion Time و Arrival Time .
  • Waiting Time : اختلاف زمانی بین Turn Around Time و Burst Time .

فرمول‌های زیر برای هر فرآیند می‌توان تعریف کرد:

Turn Around Time = Completion Time – Arrival Time;

Waiting Time = Turn Around Time – Burst Time;

الگوریتم زمانبندی FCFS در جاوا

برای پیاده سازی FCFS ابتدا دو پارامتر Arrival Time و Burst Time را باید به عنوان ورودی به برنامه بدهیم در خروچی Completion Time و Turn Around Time و Waiting Time را چاپ می‌کنیم. پیاده سازی این برنامه به صورت  Non-Preemptive می‌باشد. کد الگوریتم زمانبندی FCFS در جاوا به صورت زیر می‌باشد:

بیشتر بخوانید:  pdf آموزش Constructor در جاوا (Constructor in Java)

متدهای مورد استفاده در کد بالا به صورت زیر می‌باشد:

  • findWaitingTime : این متد جهت محاسبه Wating Time هر فرآیند می‌باشد.
  • findTurnAroundTime: برای محاسبه Turn Around Time فرآیندها از این متد استفاده می‌شود.
  • Display : جهت چاپ فرآیندها در خروجی استفاده می‌شود.
  • FindavgTime : نحوه کار این متد و دلیل پیاده سازی آن را به شما واگذار می‌کنیم….

متغیرهای مورد استفاده در کد فوق:

  • Process: یک کد برای هر فرآیند در این آرایه ذخیره می‌گردد.
  • N: تعداد فرآیندها
  • Arrival_time یا at : زمان ورود هر فرآیند به صف.
  • Burst_Time یا bt: مدت زمان مورد نیاز فرآیند برای اجرا در CPU
  • Wt: منظور همان Watining Time است.
  • Tat: منظور همان Turn around time برای هر فرآیند است.
  • service_time : زمان تخصیص CPU به یک فرآیند. برای محاسبه این متغیر برای یک فرآیند، Burst time و Service Time فرآیند قلبی را با هم جمع می‌کنیم.

خروجی برنامه فوق به صورت زیر می‌باشد:

الگوریتم زمانبندی FCFS در جاوا

مثال الگوریتم زمانبندی FCFS

فرض کنید فرآیند‌های زیر وارد صف برای تخصیص CPU می‌شوند.

الگوریتم زمانبندی FCFS در جاوا

گانت چارت تخصیص CPU برای فرآیند‌های فوق به صورت زیر می‌باشد:

الگوریتم زمانبندی FCFS در جاوا

پسورد: www.codegate.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *