-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathconfigLoad.c
More file actions
executable file
·142 lines (115 loc) · 4.3 KB
/
configLoad.c
File metadata and controls
executable file
·142 lines (115 loc) · 4.3 KB
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "configLoad.h"
// global variables
config_t config;
int readfile (void) {
FILE *fr; /* declare the file pointer */
char line[80];
int linea; /* Numero de linea leido en el archivo de texto */
fr = fopen("Parametros.txt", "r"); /* open the file for reading */
if (fr == NULL) {
printf("Couldn't open file!!\n");
exit(0);
}
/* inicializacion de variables */
linea = 1;
config.preemptive = 0;
config.tickets[0] = 0;
config.tickets[1] = 0;
config.tickets[2] = 0;
config.tickets[3] = 0;
config.tickets[4] = 0;
config.workLoad[0] = 0;
config.workLoad[1] = 0;
config.workLoad[2] = 0;
config.workLoad[3] = 0;
config.workLoad[4] = 0;
config.quantum = 0;
config.totalwork = 0;
config.totaltickets = 0;
while(fgets(line, 80, fr) != NULL)
{
/* get a line, up to 80 chars from fr. done if NULL */
printf("%s",line);
if (line[0] != '#') {
if (linea == 1) {
/*sscanf (line, "%d", &preemptive);*/
if (line[0] == '1') config.preemptive = true;
else config.preemptive = false;
linea = (linea + 1);
} else
if (linea == 2) {
sscanf (line, "%d", &config.tickets[0]);
linea = (linea + 1);
} else
if (linea == 3) {
sscanf (line, "%d", &config.tickets[1]);
linea = (linea + 1);
} else
if (linea == 4) {
sscanf (line, "%d", &config.tickets[2]);
linea = (linea + 1);
} else
if (linea == 5) {
sscanf (line, "%d", &config.tickets[3]);
linea = (linea + 1);
} else
if (linea == 6) {
sscanf (line, "%d", &config.tickets[4]);
linea = (linea + 1);
} else
if (linea == 7) {
sscanf (line, "%d", &config.workLoad[0]);
linea = (linea + 1);
} else
if (linea == 8) {
sscanf (line, "%d", &config.workLoad[1]);
linea = (linea + 1);
} else
if (linea == 9) {
sscanf (line, "%d", &config.workLoad[2]);
linea = (linea + 1);
} else
if (linea == 10) {
sscanf (line, "%d", &config.workLoad[3]);
linea = (linea + 1);
} else
if (linea == 11) {
sscanf (line, "%d", &config.workLoad[4]);
linea = (linea + 1);
} else
if (linea == 12) {
sscanf (line, "%d", &config.quantum);
linea = (linea + 1);
}
} /* close if (line[0] != '#') */
} /* Close While */
fclose(fr); /* close the file */
/* Despliegue de informacion obtenida del archivo */
if (config.preemptive) printf ("Modo de operacion: No Expropiativo\n");
else printf ("Modo de operacion: Expropiativo\n");
printf ("\n");
printf ("Boletos thread 1: %4d", config.tickets[0]);
printf (" Unidades de trabajo thread 1: %4d\n", config.workLoad[0]);
printf ("Boletos thread 2: %4d", config.tickets[1]);
printf (" Unidades de trabajo thread 2: %4d\n", config.workLoad[1]);
printf ("Boletos thread 3: %4d", config.tickets[2]);
printf (" Unidades de trabajo thread 3: %4d\n", config.workLoad[2]);
printf ("Boletos thread 4: %4d", config.tickets[3]);
printf (" Unidades de trabajo thread 4: %4d\n", config.workLoad[3]);
printf ("Boletos thread 5: %4d", config.tickets[4]);
printf (" Unidades de trabajo thread 5: %4d\n", config.workLoad[4]);
printf ("\n");
if (config.preemptive) {
printf ("Tamaño del quantum: %d", config.quantum);
printf ("ms\n");
}
else {
printf ("Porcentaje de trabajo para ceder CPU: %d", config.quantum);
printf ("%%\n");
}
printf ("\n");
config.totaltickets = (config.tickets[0]+config.tickets[1]+config.tickets[2]+config.tickets[3]+config.tickets[4]);
printf ("Total de tiquetes: %d\n", config.totaltickets);
printf ("\n");
return 0;
}