Changes between Version 61 and Version 62 of SoclibCourseTp5


Ignore:
Timestamp:
Dec 28, 2010, 7:01:17 PM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp5

    v61 v62  
    322322[[Image(soclib_tp5_transpose.png)]]
    323323
    324  * La tâche '''load''' lit une image sur le disque et copie cette image dans le tampon '''buf_in'''.
    325  * La tâche '''transpose''' lit l'image présente dans le tampon '''buf_in''', effectue la transposition et écrit l'image résultante dans le tampon '''buf_out'''.
    326  * La tâche '''display''' lit l'image présente dans le tampon '''buf_out''', et affiche cette image sur le frame buffer.
    327 Les deux tampons de communication '''buf_in''' et '''buf_out''' sont protégés par les deux variables de synchronisation '''buf_in_empty''' et
     324 * La tâche '''load''' lit une image sur le disque et copie cette image dans le tampon buf_in.
     325 * La tâche '''transpose''' lit l'image présente dans le tampon buf_in, effectue la transposition et écrit l'image résultante dans le tampon buf_out.
     326 * La tâche '''display''' lit l'image présente dans le tampon buf_out, et affiche cette image sur le frame buffer.
     327Les deux tampons de communication buf_in et buf_out sont protégés par les deux variables de synchronisation '''buf_in_empty''' et
    328328'''buf_out_empty''', qui supportent un protocole de synchronisation de type SET/RESET en mode utilisateur:
    329329 * La tâche productrice attend que la variable de synchronisation passe à 0 avant d'écrire, et force cette variable à 1 quand elle a fini de remplir le tampon.
    330330 * La tâche consommatrice attend que la variable de synchronisation passe à 1 avant de lire, et force cette variable à 0 quand elle a fini de vider le tampon.
    331331
    332 '''Question''' : Modifiez le fichier '''reset.s''' pour que les tâches '''load''', '''transpose''', et '''display''' s'exécutent sur les processeurs 0, 1 et 2 respectivement.
     332'''Question''' : Modifiez le fichier '''main.c''' dans le répertoire '''soft_transpose''' pour introduire les synchronisations manquantes dans le code des tâches.
     333
     334'''Question''' : Modifiez le fichier '''reset.s''' dans le répertoire '''soft_transpose''' pour que les tâches '''load''', '''transpose''', et '''display''' s'exécutent sur les processeurs 0, 1 et 2 respectivement.
    333335
    334336'''Question''' : Lancez la simulation. Quelle est la téquence d'affichage? (inverse du nombre de cycles entre deux affichages).
    335337
     338'''Question''' : Expliquez pourquoi, dans le fichier '''tp5_cluster_top.cpp''' décrivant l'architecture matérielle, le segment '''seg_data''' a été défini comme non cachable.
     339
    336340'''Question''' : L'inconvénient du mécanisme de synchronisation par bascule SET/RESET est que les deux tâches productrice et consommatrice ne peuvent s'exécuter en parallèle. Comment peut-on modifier l'application logicielle pour augmenter le parallélisme et augmenter ainsi la fréquence d'affichage des images?
    337341