Red de conocimiento informático - Conocimiento sistemático - Solicitar a un experto que utilice VC++ para escribir un código que proteja el proceso

Solicitar a un experto que utilice VC++ para escribir un código que proteja el proceso

vc++

#Incluye "stdio.h"

#Incluye "stdlib.h"

#Incluye "string.h"

Nodo de estructura Typedef/*Crear PCB*/

{ char name[10];/*ID de proceso */

int prio/*Prioridad de proceso*/

int cputime/*tiempo de CPU ocupado por el proceso*/

int needtime/*Tiempo requerido para completar el proceso*/

int count; >

Estado de carga; /*Estado del proceso*/

Nodo de estructura* siguiente/*Puntero de cadena*/

} PCB

PCB * Completo, *Listo, *Cola, *En ejecución;

int N;

Firstin() /*Crear puntero de encabezado de cola listo*/

{

En ejecución=Listo;

En ejecución->state=' R

Listo=Listo->Siguiente;

}

Void prt(char algo) /*Programación de procesos de demostración*/

{

PCB * p;

printf(" NOMBRE CPUTIME NEEDTIME estado de prioridad\ n ");

if (ejecutar!=null)

printf(" %-10s %-10d %-10d %-10d % c \n ",ejecutar-> nombre,

ejecutar->cputime, ejecutar->lleva tiempo, ejecutar->prio,ejecutar->status);

p = listo;

mientras (p!=null)

{ printf(" %-10s %-10d %-10d %-10d % c \ n ", p-> nombre,

p->; cputime, p-> tiempo requerido, p-> prio, p-> >}

p = completo

y (p!=null)

{ printf(" %-10s %-10d %-10d %-10d % c \ n ",p->Nombre,

p->;cputime,p->Lleva tiempo, p->prio, p->status);

p = p->next;

}

getch() ;

}

Insertar (PCB *q )

{

PCB *p1, *s, * r;

int b

s =

p 1 = listo;

r = p 1;

b = 1;

Y ((p1! = NULL)&&b)

if(p 1->prio>= s->prio)

{

r = p 1;

p 1 = p 1->;Siguiente;

}

Otro

b = 0;

si(r !=p1)

{

r-& gt;siguiente = s;

s-& gt;siguiente = p 1;

}

Otro

{

s-& gt; siguiente = p 1;

listo = s;

}

}

<

p>Void create(char alg) /*Crear varios procesos*/

{

PCB * p;

int i, time

char na[10];

listo = vacío;

finish = NULL

ejecutar = NULL

for(I = 1;i<= N;i++)

{

p = malloc(sizeof(PCB));

printf("Ingrese el nombre del proceso: \ n "

scanf("%s ", na);

printf("Tiempo de proceso de entrada (menos de 50):\ n "); scanf("%d", & tiempo);

strcpy(p->nombre,na);

p->;cputime = 0;

p>

p->; needtime = time;

p->; state = 'w

p->; la suma del tiempo necesario es 50*/

If (prepare!=null)

Insertar (p);

Otros

{

p->; siguiente = listo

listo = p; clr SCR();

printf("Visualización de progreso:\ n ");

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

PRT(alg) ;

En ejecución = listo;

Listo = listo->Siguiente;

En ejecución->estado = ' R

}

Prioridad (char alg) /*Programación del algoritmo de prioridad*/

{

Y (ejecutar! = NULL & amp& amp ejecutar - >prio>=0 )

{

Ejecutar->cputime = ejecutar->cputime+1;

Ejecutar-& gt; necesita tiempo-1

Ejecutar-& gt; necesitar tiempo==0)

{

Ejecutar-& gt; next=finish;

finish=run;

ejecutar -> >

ejecutar = NULL

if (¡preparar! = NULL)

primero en();

}

Otro

if ((¡Listo! = NULL)& amp ;& (Ejecutar->prio<Ready->prio))

{

Ejecutar->state = ' W

Insertar(ejecutar);

primero en();

}

PRT(alg);

}

}

main()

{ char algo

clr SCR();

loop: printf("Entrada Número total de PCB (menos de 10 es bueno) : \ n ");

scanf("%d ", & ampn);

Si (

N & gt10)

{printf("Demasiado grande, elija un número pequeño.\n ");

Ir al bucle;}

Crear (algo );

Prioridad (algoritmo);

}

¡Ayuda a que te guste!