Changes between Version 4 and Version 5 of smc4


Ignore:
Timestamp:
Jan 25, 2019, 1:34:28 PM (5 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • smc4

    v4 v5  
    5656== Questions
    5757
    58 1. Démarrez le simulateur et exécuter l'application idbg.elf `load /bin/user/idbg.elf`. Cette application permet d'afficher dans la fenêtre '''term0''' l'état de certaines structures du noyau. La commande `h` permet d'obtenir de l'aide.
    59    a. Avec la commande `p`, déterminer le nombre de processus sur le cluster 0.
    60    a. Avec la commande `s`, déterminer le nombre de threads alluoués au core 0 du cluster 0.
     581. Démarrez le simulateur et exécuter l'application idbg.elf `load /bin/user/idbg.elf`. Cette application permet d'afficher dans la fenêtre '''term0''' l'état de certaines structures du noyau.
     59   a. La commande `h` permet d'obtenir de l'aide.
     60   a. La commande `p`, déterminer le nombre de processus sur le cluster 0.
     61   a. La commande `s`, déterminer le nombre de threads alluoués au core 0 du cluster 0.
    6162
    62632. Modifiez dans le fichier `kernel/kernel_config.h` l'état des variables `DEBUG_PROCESS_DESTROY`, `DEBUG_PROCESS_MAKE_EXEC` et `DEBUG_PROCESS_MAKE_FORK`, recompilez ALMOS-MKH et exécutez le simulateur (il n'est pas nécessaire de le recompiler le simulateur si vous ne modifiez pas la plateforme).
    63    a. Les étapes du fork et de l'exec des process ksh s'affichent dans `term0`, commentez les messages concernant le `ksh[1]` (le code des fonctions fork et exec (dans le noyau) se trouve [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/process.h kernel/kern/process.h] et [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/process.c kernel/kern/process.c].
     64  * Les étapes du fork et de l'exec des process ksh s'affichent dans `term0`, commentez les messages concernant le `ksh[1]` (le code des fonctions fork et exec (dans le noyau) se trouve [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/process.h kernel/kern/process.h] et [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/process.c kernel/kern/process.c].
    6465
    65 3. Modifiez la plateforme pour avoir deux clusters de 1 core en changeant de `1` à `2` l'état de la variable `Y_SIZE` du fichier `almos-mkh/params-hard.mk`. Modiifiez l'état des variables `DEBUG_RPC_PROCESS_MAKE_FORK` et `DEBUG_RPC_THREAD_KERNEL_CREATE` du fichier `kernel/kernel_config.h` pour voir les commandes RPC. Recompilez le ALMOS-MKH, le préloader (dans `tsar/softs/tsar_boot/`) et le simulateur, puis exécutez avec `./simul -THREADS 2`. Remaquez que puisqu'il y a deux clusters, on demande 2 threads d'OpenMP sur 2 cores du PC. 
     663. Pour avoir deux clusters de 1 cores, il faut modifier la plateforme  en changeant de `1` à `2` l'état de la variable `Y_SIZE` du fichier `almos-mkh/params-hard.mk`.  Il faut ensuiten recompiler le systeme ALMOS-MKH pour produire le disque, le préloader (dans `tsar/softs/tsar_boot/`) pour produire la rom et le simulateur, puis exécuter avec `./simul -THREADS 2`. Remaquez que puisqu'il y a deux clusters, on demande 2 threads d'OpenMP sur 2 cores du PC (votre PC a 6 cores). Pour voir Modiifiez l'état des variables `DEBUG_RPC_PROCESS_MAKE_FORK` et `DEBUG_RPC_THREAD_KERNEL_CREATE` du fichier `kernel/kernel_config.h` pour voir les commandes RPC.
     67 * Comme il y a deux clusters, il y a de la réplication pendant la phase de boot (avant l'affichage de la banière). Notez ce qui est répliqué et à quel moment.
    6668
    67 {{{
    68 #!protected
    69 a. Questions sur la réplication du noyau dans le boot dans les deux clusters.
    70 b.
    71 
    72 
    73 }}}
    74  
    75 {{{
    76 #!protected
    77 * programmer la fonction user sleep() qui met en attente une tache pour un nombre de secondes (approximatives).
    78 }}}
     694. Je vous propose de suivre la création du process hello.elf, grâce aux messages écrits par le noyau et dans le code du noyau. Pour faciliter le parcours du code, je vous propose d'utiliser visual studio et d'ouvrir le répertoire almos-mkh. Tous les fichiers d'almos-mkh apparaissent à gauche. Vous pouvez par exemple ouvrir kernel/kern/process.c et ensuite parcourir le code en hypertext.
     70 * Avec `idbg.elf` (ou juste avec les messages du noyau) dîtes comment sont répartis les threads de l'application `hello.elf`.
     71 * Représenter le graphe d'appel des fonctions `sys_fork()`, `sys_exec()` et `sys_thread_create()`. Dans ce graphe, vous ne faites pas figurer les arguments (c'est pour savoir quelles sont les fonctions appelées), vous ne mettez pas non plus le code DEBUG.
     72 * Représenter en pseudo-code la trace d'exécution du lancement de l'application `hello.elf`.
    7973
    8074