Red de conocimiento informático - Conocimiento informático - El diseño del curso de algoritmo de programación en tiempo real debe utilizar lenguaje C

El diseño del curso de algoritmo de programación en tiempo real debe utilizar lenguaje C

#includelt; stdio.hgt;

int main()

{

int A, B; , el tiempo de llegada del proceso B

int cycA, cycB, saveA, saveB; // El tiempo de ciclo y el tiempo de servicio del proceso

float m;

int i , j, a=0, b=0, ka=0, kb=0; //ka, kb son interruptores, i, j, a, b son subíndices de proceso

int numa= 0, numb=0; //Tiempo de servicio acumulado

printf("Ingrese el tiempo de ciclo del proceso A, tiempo de servicio: "); cycA, amp; saveA);

printf ("Ingrese el tiempo de ciclo del proceso B, tiempo de servicio: "); servirB

m=(float)serveA/cycA (float)serveB/cycB;

for(int T=0; Tlt; =100; T )

{

if(m-1gt; 1e-6)

{

printf("¡Excede la capacidad de procesamiento de la CPU!\n" );

return 0;

}

if(numa==serveA) //El proceso A se completa

{

numa= servirA 1;

printf("Cuando T=d", T

printf("El anuncio del proceso termina\n", a); /p>

if(numblt; serverB)

{

printf("Llamando al proceso bd\n", b

kb=1);

}

ka=0

}

if(numb==serveB)

{

numb=serveB 1;

printf("Cuando T=d", T);

printf("El proceso Bd finalizó\n", b) ;

if(numalt; serverA)

{

printf("Llamada al proceso Ad\n", a);

ka =1;

p>

}

kb=0

}

if(TcycA==0 amp; amp; TcycB ==0)

{

A=B=T;

j= a

i=

printf(" Cuando T=d, el proceso Ad y el proceso Bd se generan al mismo tiempo. En este momento, ", T, j, i

if (cycAlt; =);

cycB)

{

printf("Llamando al proceso Ad, bloqueando el proceso Bd\n", j, i

ka=1; >

kb=0;

}

else

{

printf("Llamando al proceso Bd, bloqueando el proceso Ad\ n", i, j);

ka=0;

kb=1;

}

numa=numb=0 ;

}

if(TcycA==0amp;amp;TcycB!=0)

{

A=T;

printf("Cuando T=d", T);

printf("Se genera el anuncio del proceso", a); //Es imposible competir con el proceso A por el procesador.

numa=0;

if(numblt;serveB) //El proceso B no se completa

if(B cycBgt;A cycA) //Si el proceso B tiene la fecha límite más temprana Mayor que el proceso A

{

printf("El proceso Ad se ejecuta.\n",

ka=1;

kb=0;

}

else //Si la fecha límite más temprana del proceso B es menor o igual a la del proceso A

printf("El proceso Bd continúa ejecutándose.\ n", b);

else //El proceso B se completa

{

printf( "Procesar anuncio se ejecuta.\n", a);

p>

ka=1

}

}

if; (TcycA!=0amp; amp; TcycB==0)

{

B=T

printf("Cuando T=d", T) ;

printf("Se genera el proceso Bd", , b); //Es imposible competir con el proceso B por el procesador

numb=0; p> if(numalt;serveA) //El proceso A no se completa

if(B cycBgt;=A cycA) //La fecha límite más temprana del proceso A no es menor que B

printf("El anuncio de proceso continúa ejecutándose. \n", a);

else

{

printf("Se ejecuta el proceso Bd.\n", b);

kb=1;

ka=0;

}

else //El proceso A se completa

{

printf("Se ejecuta el proceso Bd.

\n", b);

kb=1;

}

}

if(ka)

numa ;

if(kb)

entumecido ;

}

}