Synchronisation avec sémaphore
Lors d’un examen de TP, les candidats doivent attendre dans une salle d’attente de capacité 12.Quand ils sont appelés par un examinateur, ils passent dans une salle de préparation où ils tirent au hasard un sujet et enfilent une blouse. Un seul étudiant à la fois peut se trouver dans la salle de préparation. Une fois prêt, le candidat pénètre dans la salle de TP, et est pris en charge par un examinateur. P candidats au maximum peuvent se trouver simultanément dans la salle de TP. Enfin, quand l’épreuve est terminée, l’étudiant rend son compte-rendu puis quitte la salle de TP. L’examinateur lit alors le compte-rendu et y met une note. Les procédures modélisant les candidats et les examinateurs sont décrites ci-après :
Écrire les procédures Candidat et Examinateur en utilisant des sémaphores qui seront soigneusement définis (sémantique et valeur initiale) et les primitives: s_asseoir, tirer_sujet_mettre_blouse, entrer_dans_la_salle_de_preparation, surveiller_TP, entrer_salle_TP, partir, rendre_compte_rendu, installer_candidat, réaliser_TP, noter_compte-rendu. Écrire les procédures Candidat et Examinateur en utilisant des sémaphores qui seront soigneusement définis (sémantique et valeur initiale) et les primitives: s_asseoir, tirer_sujet_mettre_blouse, entrer_dans_la_salle_de_preparation, surveiller_TP, entrer_salle_TP, partir, rendre_compte_rendu, installer_candidat, réaliser_TP, noter_compte-rendu. Ecrire un programme qui permet à plusieurs processus de s’exécuter jusqu’à un point de rendez vous et de continuer dans l’ordre inverse de leur ordre d’arrivée. Pour résoudre ce problème, les processus utilisent une zone de mémoire partagée à partir de laquelle ils partagent..