Новости, советы, вдохновение которым вы можете доверять

Программа на "C" для реализации планирования процессора SJF

Эта программа объясняет политику планирования, известную как SJF (Shortest Job First), используемую центральным процессором (центральным процессором) компьютеров, которая выбирает ожидающий процесс с наименьшим временем выполнения для выполнения первым из нескольких процессов, которые должны выполняться центральным процессором одновременно.

Введение :

Эта программа выполняет эту задачу по определению того, какой процесс должен быть выполнен первым в ряде программ, использующих SJF (Shortest Job First), используя три шага:-

Сначала определяется количество процессов, которые должны выполняться центральным процессором (центральным процессором) одновременно.

Затем он считывает имя, время пакета и время прибытия каждого процесса.

Затем он оценивает TAT (время оборота) и WT (время ожидания) каждого процесса.

Затем, вычисляя среднее время пакета и время поворота, он решает, какой из процессов должен быть выполнен первым среди нескольких процессов.

Эта методология использовалась старыми процессорами для одновременного выполнения нескольких задач. Раньше они выбирали задачу, для завершения которой требуется меньше времени, а затем выполняли ее. После этого они использовали для выбора следующего кратчайшего задания и так далее. В настоящее время эта методология не используется процессорами. Теперь они используют методологию разделения времени, т.Е. Разделяют время между процессами, например, 1 секунду для каждой задачи в 1 цикле.

Программа:
#enable
#enable

cancel sjf(int,int[],int[],char p[10][10]);

void main()
{
 char p[10][10];
 int bt[10],i,at[10],n;
 clrscr();
printf("OUTPUT:\n\n");
printf("Enter the number of processes:");
scanf("%d",&n);
 printf("Enter the name, packet time, and arrival time for processes \n");
 for (i = 0;i {
 printf("Enter process name:");
scanf("%s",&p[i]);
 printf("Enter the arrival time for process P%d in ms:", i+1);
 scanf("%d",&at[i]);
 printf("Enter batch processing time for process P%d in ms:", i+1);
 scanf("%d",&bt[i]);
 }
 sjf(n,at,bt,p);
 getch();
}

void sjf(int n,int at[],int bt[],char p[10][10])
{
 char temp[10];
 int tat[10],wt[10], i, j,temp1;
 float totaltat=0, totalwt= 0,avgtat,avgwt;

 for (i = 0;i {
 for(j= i + 1;j {
 if(bt [i]>bt [j])
 {
 temp1=bt [i];
 bt[i]=bt [j];
 bt [j]=temp1;
 strcpy(temp,p [i]);
 strcpy(p [i],p[j]);
 strcpy(p[j],temp);
 }
}
}
for (i=0;i {
 tat[i]= 0;
 for (j = i; j> = 0;j--)
{
tat[i]= tat[i]+ bt[j];
}
tat[i]=tat[i]-at[i];
w

Вывод

Результат вышеупомянутой программы :

Enter the number of processes: 3
Enter the name, package time, and arrival time for the processes
Enter the process name: p1
Enter the arrival time for process P1 in ms: 0
Enter the batch time for process P1 in ms: 10
Enter the process name: p2
Enter the arrival time for the P2b process ms: 0
Enter the batch time for process P2 in ms: 5
Enter the process name: p3
Enter the arrival time for process P3 in ms: 0
Enter the batch time for the P3 process in ms: 3

The process in BT TAT WT
--------------------------------------
p3 0 ms 3 ms 3 ms
0 ms p2 0 ms 5 ms 8 ms 3 ms
p1 0 ms 10 ms 18 ms 8 ms

Average turning time = 9.67 ms
Average waiting time = 3.67 ms

Категория: Интернет | Добавил: Dexs (14.03.2023)
Просмотров: 91 | Рейтинг: 0.0/0