Skip to content

Instantly share code, notes, and snippets.

@fotonmoton
Last active February 19, 2016 17:33
Show Gist options
  • Save fotonmoton/40e4bb0666133a0bf48e to your computer and use it in GitHub Desktop.
Save fotonmoton/40e4bb0666133a0bf48e to your computer and use it in GitHub Desktop.
first come first serve algorithm (Linux)
// Compile with: gcc fcfs_linux.c -lncurses -o lol
// if you doesn't have ncurses lib type in terminal: sudo apt-get install libncurses5-dev
// http://www.ssau.ru/files/education/metod_1/%D0%9A%D1%83%D0%BF%D1%80%D0%B8%D1%8F%D0%BD%D0%BE%D0%B2%20%D0%90.%D0%92.%20%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B%20%D0%BF%D0%BB%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.pdf
#include<stdio.h>
#include <stdlib.h>
#include <ncurses.h>
int main()
{
int bt[20], wt[20], tat[20], i, n;
float wtavg, tatavg;
system("clear");
printf("\nEnter the number of processes -- ");
scanf("%d", &n);
for(i=0;i<n;i++)
{
printf("\nEnter Burst Time for Process %d -- ", i);
scanf("%d", &bt[i]);
}
wt[0] = wtavg = 0;
tat[0] = tatavg = bt[0];
for(i=1;i<n;i++)
{
wt[i] = wt[i-1] +bt[i-1];
tat[i] = tat[i-1] +bt[i];
wtavg = wtavg + wt[i];
tatavg = tatavg + tat[i];
}
printf("\t PROCESS \tBURST TIME \t WAITING TIME\t TURNAROUND TIME\n");
for(i=0;i<n;i++)
printf("\n\t P%d \t\t %d \t\t %d \t\t %d", i, bt[i], wt[i], tat[i]);
printf("\nAverage Waiting Time -- %f", wtavg/n);
printf("\nAverage Turnaround Time -- %f", tatavg/n);
getch();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment