version 1.84, 2013/03/21 14:39:09
|
version 1.123, 2025/04/15 10:17:49
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.13 |
RPL/2 (R) version 4.1.36 |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
Copyright (C) 1989-2025 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 323 initialisation_instructions(struct_proce
|
Line 323 initialisation_instructions(struct_proce
|
INSTRUCTION("EGV", instruction_egv); |
INSTRUCTION("EGV", instruction_egv); |
INSTRUCTION("END", instruction_end); |
INSTRUCTION("END", instruction_end); |
INSTRUCTION("ENG", instruction_eng); |
INSTRUCTION("ENG", instruction_eng); |
|
INSTRUCTION("EQV", instruction_eqv); |
INSTRUCTION("EXP", instruction_exp); |
INSTRUCTION("EXP", instruction_exp); |
INSTRUCTION("FC?", instruction_fc_test); |
INSTRUCTION("FC?", instruction_fc_test); |
INSTRUCTION("FFT", instruction_fft); |
INSTRUCTION("FFT", instruction_fft); |
Line 513 initialisation_instructions(struct_proce
|
Line 514 initialisation_instructions(struct_proce
|
INSTRUCTION("RECV", instruction_recv); |
INSTRUCTION("RECV", instruction_recv); |
INSTRUCTION("REGV", instruction_regv); |
INSTRUCTION("REGV", instruction_regv); |
INSTRUCTION("REPL", instruction_repl); |
INSTRUCTION("REPL", instruction_repl); |
|
INSTRUCTION("RGDL", instruction_rgdl); |
|
INSTRUCTION("RGDR", instruction_rgdr); |
INSTRUCTION("RNRM", instruction_rnrm); |
INSTRUCTION("RNRM", instruction_rnrm); |
INSTRUCTION("ROLL", instruction_roll); |
INSTRUCTION("ROLL", instruction_roll); |
//INSTRUCTION("ROOT") |
//INSTRUCTION("ROOT") |
Line 772 initialisation_instructions(struct_proce
|
Line 775 initialisation_instructions(struct_proce
|
INSTRUCTION("RCLSWI", instruction_rclswi); |
INSTRUCTION("RCLSWI", instruction_rclswi); |
INSTRUCTION("RECALL", instruction_recall); |
INSTRUCTION("RECALL", instruction_recall); |
INSTRUCTION("RECODE", instruction_recode); |
INSTRUCTION("RECODE", instruction_recode); |
|
INSTRUCTION("RECORD", instruction_record); |
INSTRUCTION("REDRAW", instruction_redraw); |
INSTRUCTION("REDRAW", instruction_redraw); |
INSTRUCTION("REMOVE", instruction_remove); |
INSTRUCTION("REMOVE", instruction_remove); |
INSTRUCTION("REPEAT", instruction_repeat); |
INSTRUCTION("REPEAT", instruction_repeat); |
Line 803 initialisation_instructions(struct_proce
|
Line 807 initialisation_instructions(struct_proce
|
//INSTRUCTION("BESTFIT") |
//INSTRUCTION("BESTFIT") |
//Instruction HP48 (choisit le meilleur modèle de régression) |
//Instruction HP48 (choisit le meilleur modèle de régression) |
INSTRUCTION("CLRFUSE", instruction_clrfuse); |
INSTRUCTION("CLRFUSE", instruction_clrfuse); |
|
INSTRUCTION("CLRSOCK", instruction_clrsock); |
INSTRUCTION("CONVERT", instruction_convert); |
INSTRUCTION("CONVERT", instruction_convert); |
INSTRUCTION("CRSMPHR", instruction_crsmphr); |
INSTRUCTION("CRSMPHR", instruction_crsmphr); |
INSTRUCTION("CURRENC", instruction_currenc); |
INSTRUCTION("CURRENC", instruction_currenc); |
Line 822 initialisation_instructions(struct_proce
|
Line 827 initialisation_instructions(struct_proce
|
INSTRUCTION("INQUIRE", instruction_inquire); |
INSTRUCTION("INQUIRE", instruction_inquire); |
INSTRUCTION("MEMLOCK", instruction_memlock); |
INSTRUCTION("MEMLOCK", instruction_memlock); |
INSTRUCTION("MTXLOCK", instruction_mtxlock); |
INSTRUCTION("MTXLOCK", instruction_mtxlock); |
|
INSTRUCTION("NBRCPUS", instruction_nbrcpus); |
INSTRUCTION("PERSIST", instruction_persist); |
INSTRUCTION("PERSIST", instruction_persist); |
INSTRUCTION("PLOTTER", instruction_plotter); |
INSTRUCTION("PLOTTER", instruction_plotter); |
INSTRUCTION("PRIVATE", instruction_private); |
INSTRUCTION("PRIVATE", instruction_private); |
Line 964 analyse_instruction(struct_processus *s_
|
Line 970 analyse_instruction(struct_processus *s_
|
void |
void |
analyse(struct_processus *s_etat_processus, void (*fonction)()) |
analyse(struct_processus *s_etat_processus, void (*fonction)()) |
{ |
{ |
static logical1 initialisation = d_faux; |
|
|
|
real8 attente; |
real8 attente; |
real8 pourcentage; |
real8 pourcentage; |
real8 temps_cpu; |
real8 temps_cpu; |
Line 1161 analyse(struct_processus *s_etat_process
|
Line 1165 analyse(struct_processus *s_etat_process
|
{ |
{ |
if ((*s_etat_processus).test_instruction == 'N') |
if ((*s_etat_processus).test_instruction == 'N') |
{ |
{ |
if ((*s_etat_processus).nombre_interruptions_non_affectees != 0) |
if (pthread_mutex_lock(&(*s_etat_processus).mutex_interruptions) |
|
!= 0) |
{ |
{ |
affectation_interruptions_logicielles(s_etat_processus); |
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
} |
|
else |
|
{ |
|
if ((*s_etat_processus).nombre_interruptions_non_affectees != 0) |
|
{ |
|
affectation_interruptions_logicielles(s_etat_processus); |
|
} |
|
|
|
if (pthread_mutex_unlock(&(*s_etat_processus) |
|
.mutex_interruptions) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
} |
} |
} |
|
|
if (((*s_etat_processus).nombre_interruptions_en_queue != 0) && |
if (((*s_etat_processus).nombre_interruptions_en_queue != 0) && |
Line 1196 analyse(struct_processus *s_etat_process
|
Line 1214 analyse(struct_processus *s_etat_process
|
|
|
gettimeofday(&horodatage_final, NULL); |
gettimeofday(&horodatage_final, NULL); |
|
|
if (initialisation == d_vrai) |
if ((*s_etat_processus).initialisation_scheduler == d_vrai) |
{ |
{ |
temps_reel = ((real8) (horodatage_final.tv_sec - |
temps_reel = ((real8) (horodatage_final.tv_sec - |
horodatage_initial.tv_sec)) + |
horodatage_initial.tv_sec)) + |
Line 1253 analyse(struct_processus *s_etat_process
|
Line 1271 analyse(struct_processus *s_etat_process
|
} |
} |
else |
else |
{ |
{ |
initialisation = d_vrai; |
(*s_etat_processus).initialisation_scheduler = d_vrai; |
|
|
horodatage_initial = horodatage_final; |
horodatage_initial = horodatage_final; |
usage_initial = usage_final; |
usage_initial = usage_final; |
Line 1261 analyse(struct_processus *s_etat_process
|
Line 1279 analyse(struct_processus *s_etat_process
|
} |
} |
else |
else |
{ |
{ |
initialisation = d_faux; |
(*s_etat_processus).initialisation_scheduler = d_faux; |
} |
} |
|
|
/* |
/* |