در این نوشته قصد بررسی الگوریتم fcfs را داریم این الگوریتم که به اختصار خروج به ترتیب ورود می باشد. بعد از توضیحات این الگوریتم با زبان برنامه نویسی java قصد اجرای این الگوریتم را داریم.
الگوریتم FCFS چیست ؟
ساده ترین الگوریتم زمانبندی CPU در بین الگوریتم های متفاوت الگوریتم FCFS می باشد.این الگوریتم از روش انحصاری استفاده می کند که به سادگی توسط صف ها قابل پیاده سازی هستند. در این پردازش هنگامی که CPU یک پردازش را شروع کند تا پایان آن CPU را رها نمی کند. FCFS یا FIFO یکی از روشهای سازماندهی کنترل داده با توجه به زمان و اولویتبندی ورود آنها است. FCFS در واقع پردازش صف یا برآورده کردن تقاضای عرضه شده به وسیله شعار ” اولین ورودی ، اولین دریافت کننده خدمات ” است.
در واقع الگوریتم FCFS شبیه رفتار صف بندی انسانها در مکان های مختلف است؛ جاییکه افراد صف را به ترتیب ورودشان ترک مینمایند، یازمانیکه در پشت چراغ راهنمایی منتظر نوبت خود میشوند.
الگوریتم FCFS نیز نام دیگری برای الگوریتم زمانبندی سیستم عامل FIFO است. روشی که به هر فرایندی زمانی از زمان پردازنده را مطابق با ترتیب ورودش اختصاص میدهد. در واقع الگوریتم FCFS متضاد الگوریتم LIFO است. با در نظر گرفتن واژه FILO به معنای ” اولین ورودی، آخرین خروجی ” تفاوت این دو واژه به طور کامل آشکار میشود. در این دو الگوریتم داده ها تفاوتی ندارند در واقع نوع بررسی آنها با یکدیگر متفاوت اند.
موضوع آموزش :
پیاده سازی الگوریتم FCFS توسط زبان JAVA
کد ::
فایل Main : ( فایل main.java )
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("Please Enter NumberNo : "); int index = Integer.parseInt(scan.next()); System.out.print("Please Enter StartTime : "); int start = Integer.parseInt(scan.next()); fcfs p = new fcfs(index+1); p.setstart(start); for ( int i = 0 ; i <= index-1 ; i++ ) { System.out.print("Please ProgramBursting_ " + i + " : "); p.setp(i, Integer.parseInt(scan.next())); } System.out.println(p.WaitingTimeAvg()); } }
فایل Class : ( فایل fcfs.java )
{public class fcfs private int[] p; private int index; private int start; public fcfs(int index) { index--; p = new int[index]; setindex(index); } public int WaitingTimeAvg() { int sum = getstart(); for( int i = 0 ; i <= getindex()-2 ; i++ ) { sum += sum + getp(i); } return sum / getindex(); } public void setstart(int start) { this.start = start; } public int getstart() { return start; } public void setp(int index, int p) { this.p[index] = p; } public int getp(int index) { return p[index]; } public void setindex(int index) { this.index = index; } public int getindex() { return index; } }
توضیحات :
- کد بالا به زبان جاوا می باشد .
- دارای یک فایل Main و یک فایل Class می باشد.
- دو فایل فوق باید در کنار یکدیگر در دو فایل مجزا تعریف شوند.
- برنامه ی بالا با دستورات javac و java در محیط io یا console اجرا می شوند.
- نام فایل Class حتما باید fcfs.java و نام فایل Main باید main.java باشد در غیر اینصورت با خطا روبرو خواهید شد. ( * علت این موضوع آن است در زبان برنامه نویسی جاوا نام کلاس هر فایل باید با نام آن فایل برابر باشد. )
خب کد بالا می تواند مرجع مناسبی برای طراحی الگوریتم FCFS به طور کامل باشد در صورت تکمیل این کد حتما آن را برای ما ارسال کنید تا در اختیار دیگران هم قرار بگیرد.
موفق و پیروز باشید.
ثبت نظر