@@ -4090,6 +4090,58 @@ <h1>Exercices</h1>
4090
4090
< summary > Correction Q1.b.</ summary >
4091
4091
< p > 11, 11, 20, 20, 32, 32, 11, 11, 32</ p >
4092
4092
</ details >
4093
+ < details class ="success ">
4094
+ < summary > Correction Q2.a.</ summary >
4095
+ < div class ="highlight "> < pre > < span > </ span > < code > < span class ="n "> liste_attente</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="n "> Processus</ span > < span class ="p "> (</ span > < span class ="mi "> 11</ span > < span class ="p "> ,</ span > < span class ="mi "> 4</ span > < span class ="p "> ),</ span > < span class ="n "> Processus</ span > < span class ="p "> (</ span > < span class ="mi "> 20</ span > < span class ="p "> ,</ span > < span class ="mi "> 2</ span > < span class ="p "> ),</ span > < span class ="n "> Processus</ span > < span class ="p "> (</ span > < span class ="mi "> 32</ span > < span class ="p "> ,</ span > < span class ="mi "> 3</ span > < span class ="p "> )]</ span >
4096
+ </ code > </ pre > </ div >
4097
+ </ details >
4098
+ < details class ="success ">
4099
+ < summary > Correction Q2.b.</ summary >
4100
+ < div class ="highlight "> < pre > < span > </ span > < code > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> execute_un_cycle</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
4101
+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> reste_a_faire</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> reste_a_faire</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span >
4102
+
4103
+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> change_etat</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> nouvel_etat</ span > < span class ="p "> ):</ span >
4104
+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> etat</ span > < span class ="o "> =</ span > < span class ="n "> nouvel_etat</ span >
4105
+
4106
+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> est_termine</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
4107
+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> reste_a_faire</ span > < span class ="o "> ==</ span > < span class ="mi "> 0</ span >
4108
+ </ code > </ pre > </ div >
4109
+ </ details >
4110
+ < details class ="success ">
4111
+ < summary > Correction Q2.c.</ summary >
4112
+ < div class ="highlight "> < table class ="highlighttable "> < tr > < td class ="linenos "> < div class ="linenodiv "> < pre > < span > </ span > < span class ="normal "> 1</ span >
4113
+ < span class ="normal "> 2</ span >
4114
+ < span class ="normal "> 3</ span >
4115
+ < span class ="normal "> 4</ span >
4116
+ < span class ="normal "> 5</ span >
4117
+ < span class ="normal "> 6</ span >
4118
+ < span class ="normal "> 7</ span >
4119
+ < span class ="normal "> 8</ span >
4120
+ < span class ="normal "> 9</ span >
4121
+ < span class ="normal "> 10</ span >
4122
+ < span class ="normal "> 11</ span >
4123
+ < span class ="normal "> 12</ span >
4124
+ < span class ="normal "> 13</ span >
4125
+ < span class ="normal "> 14</ span >
4126
+ < span class ="normal "> 15</ span >
4127
+ < span class ="normal "> 16</ span > </ pre > </ div > </ td > < td class ="code "> < div > < pre > < span > </ span > < code > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> tourniquet</ span > < span class ="p "> (</ span > < span class ="n "> liste_attente</ span > < span class ="p "> ,</ span > < span class ="n "> quantum</ span > < span class ="p "> ):</ span >
4128
+ < span class ="n "> ordre_execution</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
4129
+ < span class ="k "> while</ span > < span class ="n "> liste_attente</ span > < span class ="o "> !=</ span > < span class ="p "> []:</ span >
4130
+ < span class ="n "> processus</ span > < span class ="o "> =</ span > < span class ="n "> liste_attente</ span > < span class ="o "> .</ span > < span class ="n "> pop</ span > < span class ="p "> (</ span > < span class ="mi "> 0</ span > < span class ="p "> )</ span >
4131
+ < span class ="n "> processus</ span > < span class ="o "> .</ span > < span class ="n "> change_etat</ span > < span class ="p "> (</ span > < span class ="s1 "> 'En cours d exécution'</ span > < span class ="p "> )</ span >
4132
+ < span class ="n "> compteur_tourniquet</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span >
4133
+ < span class ="hll "> < span class ="k "> while</ span > < span class ="n "> compteur_tourniquet</ span > < span class ="o "> <</ span > < span class ="n "> quantum</ span > < span class ="ow "> and</ span > < span class ="ow "> not</ span > < span class ="n "> processus</ span > < span class ="o "> .</ span > < span class ="n "> est_termine</ span > < span class ="p "> ():</ span >
4134
+ </ span > < span class ="hll "> < span class ="n "> ordre_execution</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> processus</ span > < span class ="o "> .</ span > < span class ="n "> pid</ span > < span class ="p "> )</ span >
4135
+ </ span > < span class ="n "> processus</ span > < span class ="o "> .</ span > < span class ="n "> execute_un_cycle</ span > < span class ="p "> ()</ span >
4136
+ < span class ="n "> compteur_tourniquet</ span > < span class ="o "> =</ span > < span class ="n "> compteur_tourniquet</ span > < span class ="o "> +</ span > < span class ="mi "> 1</ span >
4137
+ < span class ="hll "> < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="n "> processus</ span > < span class ="o "> .</ span > < span class ="n "> est_termine</ span > < span class ="p "> ():</ span >
4138
+ </ span > < span class ="n "> processus</ span > < span class ="o "> .</ span > < span class ="n "> change_etat</ span > < span class ="p "> (</ span > < span class ="s1 "> 'Suspendu'</ span > < span class ="p "> )</ span >
4139
+ < span class ="n "> liste_attente</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> processus</ span > < span class ="p "> )</ span >
4140
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
4141
+ < span class ="hll "> < span class ="n "> processus</ span > < span class ="o "> .</ span > < span class ="n "> change_etat</ span > < span class ="p "> (</ span > < span class ="s1 "> 'Terminé'</ span > < span class ="p "> )</ span >
4142
+ </ span > < span class ="k "> return</ span > < span class ="n "> ordre_execution</ span >
4143
+ </ code > </ pre > </ div > </ td > </ tr > </ table > </ div >
4144
+ </ details >
4093
4145
</ div >
4094
4146
< div class ="admonition abstract ">
4095
4147
< p class ="admonition-title "> Exercice 7</ p >
0 commit comments