-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReport.c
84 lines (75 loc) · 3.81 KB
/
Report.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
void R(int TIME, PCB *ProcessCB, int PCB_size, Gestor *gest)
{ //onde vou buscar os processos em execução
printf("TEMPO ATUAL: %d\n", TIME);
printf("%s- PROCESSO EM EXECUÇÃO:%s\n", Azul, Normal);
for (int i = 0; i < PCB_size; i++)
{
if (gest->RunningState == ProcessCB[i].PID && ProcessCB[i].estado == 1 && gest->RunningState != 0)
{ //verificar o processo em execução
printf("Nome do processo: %s\n", ProcessCB[i].nome_processo);
printf("PID: %d\n", ProcessCB[i].PID);
printf("PPID: %d\n", ProcessCB[i].PPID);
printf("Valor da variável: %d\n", ProcessCB[i].variavel);
printf("PC: %d\n", ProcessCB[i].PC);
printf("ESTADO: %d\n", ProcessCB[i].estado);
printf("Prioridade: %d\n", ProcessCB[i].prioridade);
printf("Tempo de inicio: %d\n", ProcessCB[i].tempo_chegada);
printf("Número de instruções: %d\n", ProcessCB[i].tempo_burst);
printf("Tempo do CPU: %d\n", ProcessCB[i].tempo_cpu);
}
}
printf("%s- PROCESSOS BLOQUEADOS:%s \n", Amarelo, Normal);
for (int i = 0; i < gest->bloqueados_size; i++)
{
for (int e = 1; e < PCB_size; e++)
{
if ((gest->Bloqueados[i]) == ProcessCB[e].PID && ProcessCB[e].estado == 2)
{ //verificar quais os processos que já terminaram a execução
printf("Nome do processo: %s\n", ProcessCB[e].nome_processo);
printf("PID: %d\n", ProcessCB[e].PID);
printf("PPID: %d\n", ProcessCB[e].PPID);
printf("Valor da variável: %d\n", ProcessCB[e].variavel);
printf("Prioridade: %d\n", ProcessCB[e].prioridade);
printf("Tempo de inicio: %d\n", ProcessCB[e].tempo_chegada);
printf("Número de instruções: %d\n", ProcessCB[e].tempo_burst);
printf("Tempo do CPU: %d\n", ProcessCB[e].tempo_cpu);
}
}
}
printf("%s- PROCESSOS PRONTOS:%s \n", Verde, Normal);
for (int i = 0; i < gest->prontos_size; i++)
{
for (int e = 1; e < PCB_size; e++)
{
if ((gest->Prontos[i]) == ProcessCB[e].PID && ProcessCB[e].estado == 1 /*&& ProcessCB[e].PID != gest->RunningState*/)
{ //verificar quais os processos que já terminaram a execução
printf("Nome do processo: %s\n", ProcessCB[e].nome_processo);
printf("PID: %d\n", ProcessCB[e].PID);
printf("PPID: %d\n", ProcessCB[e].PPID);
printf("Valor da variável: %d\n", ProcessCB[e].variavel);
printf("Prioridade: %d\n", ProcessCB[e].prioridade);
printf("Tempo de inicio: %d\n", ProcessCB[e].tempo_chegada);
printf("Número de instruções: %d\n", ProcessCB[e].tempo_burst);
printf("Tempo do CPU: %d\n", ProcessCB[e].tempo_cpu);
}
}
}
printf("%s- PROCESSOS TERMINADOS:%s \n", Vermelho, Normal);
for (int i = 0; i < gest->terminados_size; i++)
{
for (int e = 1; e < PCB_size; e++)
{
if ((gest->terminados[i]) == ProcessCB[e].PID && ProcessCB[e].estado == -1)
{ //verificar quais os processos que já terminaram a execução
printf("Nome do processo: %s\n", ProcessCB[e].nome_processo);
printf("PID: %d\n", ProcessCB[e].PID);
printf("PPID: %d\n", ProcessCB[e].PPID);
printf("Valor da variável: %d\n", ProcessCB[e].variavel);
printf("Prioridade: %d\n", ProcessCB[e].prioridade);
printf("Tempo de inicio: %d\n", ProcessCB[e].tempo_chegada);
printf("Número de instruções: %d\n", ProcessCB[e].tempo_burst);
printf("Tempo do CPU: %d\n", ProcessCB[e].tempo_cpu);
}
}
}
}