1
0

fixer de manière auto MAX_PROCESSES

This commit is contained in:
florian.sauzeat 2024-10-15 11:15:59 +02:00
parent aee7447c21
commit 1e66a95fbd

View File

@ -4,7 +4,7 @@
#define RR_QUANTUM 2 #define RR_QUANTUM 2
#define CNTXT_SWITCH 1 #define CNTXT_SWITCH 1
#define MAX_PROCESSES 10 int MAX_PROCESSES = 0;
enum pstate { enum pstate {
WAITING, WAITING,
@ -364,8 +364,8 @@ struct perf_info schedule_RR(struct pinfo *processes) { // Déclaration de la fo
} }
void write_file(struct pinfo * process, struct perf_info * perf) { void write_file(struct pinfo * process, struct perf_info * perf) {
FILE *myStream_execution = fopen("executionPr.csv", "w"); FILE *myStream_execution = fopen("executionRR1.csv", "w");
FILE *myStream_performance = fopen("performancePr.csv", "w"); FILE *myStream_performance = fopen("performanceRR1.csv", "w");
if (myStream_execution == NULL || myStream_performance == NULL) { if (myStream_execution == NULL || myStream_performance == NULL) {
perror("Erreur à l'ouverture des fichiers"); perror("Erreur à l'ouverture des fichiers");
@ -404,6 +404,8 @@ struct pinfo * read_file() {
struct pinfo * process; struct pinfo * process;
while (fgets(line, buf_size, file)) { while (fgets(line, buf_size, file)) {
MAX_PROCESSES += 1;
pid_str = strtok(line, " "); pid_str = strtok(line, " ");
arrival_str = strtok(NULL, " "); arrival_str = strtok(NULL, " ");
execution_str = strtok(NULL, " "); execution_str = strtok(NULL, " ");
@ -431,7 +433,10 @@ struct pinfo * read_file() {
} }
free(line); free(line);
fclose(file); fclose(file);
printf("Maximum des processus : %d\n", MAX_PROCESSES);
return first; return first;
} }
void free_processes(struct pinfo * next) { void free_processes(struct pinfo * next) {
@ -449,8 +454,8 @@ int main() {
struct pinfo * processes = read_file(); struct pinfo * processes = read_file();
//struct perf_info perf = schedule_FCFS(processes); //struct perf_info perf = schedule_FCFS(processes);
//struct perf_info perf = schedule_RR(processes); struct perf_info perf = schedule_RR(processes);
struct perf_info perf = schedule_Pr(processes); //struct perf_info perf = schedule_Pr(processes);
compute_waiting_time(processes); compute_waiting_time(processes);