نماذج اسئلة مسابقة مهندس دولة في الاعلام الآلي
نماذج اسئلة مسابقة مهندس دولة في الاعلام الآلي
Ecrire le moniteur Synchro tel que les codes
des processus P1 et P2 sont comme suit Ÿ
Processus P1 :
……………
Elaborez(A)
Synchro. Fin_Ecrire
……………
Processus P2 :
……………
Synchro. Début_Lire
Utilisez(A)
……………
Solutoin:
Moniteur Synchro var attente : Condition donnee : Entier procedure Début_Lire() début si donnee = null alors attendre(attente) fin si donnee <- null fin procedure procedure Fin_Ecrire() début donner(attente) fin procedure fin Moniteur Processus P1 : début Elaborer(A) Synchro.Fin_Ecrire() fin Processus P2 : début Synchro.Début_Lire() Utiliser(A) finDans cette solution, le moniteur Synchro permet de synchroniser les processus P1 et P2 pour l'échange de la donnée A. Le processus P1 écrit la donnée A en appelant la procédure
Fin_Ecrire()
du moniteur, ce qui déclenche la condition d'attente de P2. P2, quant à lui, attend que la donnée A soit disponible en appelant la procédureDébut_Lire()
du moniteur, qui va vérifier si la donnée est disponible ou non. Si la donnée n'est pas disponible, P2 est mis en attente jusqu'à ce que la procédureFin_Ecrire()
soit appelée par P1 pour donner le signal à P2 qu'il peut utiliser la donnée A. Ensuite, P2 utilise la donnée A en appelant la procédureUtiliser(A)
.Pour l'exécution de ces processus, il est important que P1 exécute la procédure
Fin_Ecrire()
avant que P2 ne soit bloqué sur la procédureDébut_Lire()
, sinon P2 restera bloqué indéfiniment en attendant la donnée A.Une brève explication de l'idée de l'exercice
L'exercice consiste à écrire un moniteur appelé "Synchro" qui permet de synchroniser deux processus, P1 et P2, en utilisant une donnée A. Le processus P1 écrit la donnée A dans le moniteur Synchro, tandis que le processus P2 lit la donnée A à partir du moniteur Synchro. Le but est de garantir que P2 attendra que P1 ait écrit la donnée A avant de la lire.
شرح فكرة التمرين باختصار
يتم استخدام المونيتور في برمجة المتزامنة لحل مشاكل التزامن بين العمليات. يتكون المونيتور من مجموعة من المتغيرات والإجراءات التي تعمل على تنظيم وتحكم الوصول إلى المتغيرات، مما يسمح بتنظيم التزامن وتفادي مشاكل السباقات وظروف التنافس على الوصول إلى المتغيرات.في مثال المونيتور المذكور، يستخدم Synchro لتنظيم التزامن بين P1 و P2. عندما ينتهي P1 من توليد البيانات، يتم استدعاء Synchro.Fin_Ecrire لإنهاء عملية الكتابة وإخطار P2 أن البيانات جاهزة. وعندما يريد P2 استخدام البيانات، يتم استدعاء Synchro.Début_Lire للحصول على الوصول الحصري إلى البيانات.هذا يسمح بتحقيق التزامن الصحيح بين العمليتين، مما يضمن عدم حدوث مشاكل السباقات أو التنافس على الوصول إلى البيانات.
تعليقات
إرسال تعليق