Changes between Version 32 and Version 33 of Archi-1-TD10
- Timestamp:
- Nov 17, 2023, 11:49:22 AM (15 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Archi-1-TD10
v32 v33 343 343 {{{#!xml 344 344 +----------+ 345 | $31 | Nous allons exécuter jal un peu pluset perdre $31, il faut le sauver345 | $31 | Nous allons exécuter jal et perdre $31, il faut le sauver 346 346 +----------+ 347 347 | C0_EPC | C'est l'adresse de retour du syscall 348 348 +----------+ 349 | C0_SR | le registre status est modifié plus loin, il faut le sauver pour le restaurer350 +----------+ 351 | $2 | C'est le numéro de syscall qui pourra être accédé par la fonction appelée en 5e argument349 | C0_SR | le registre status est modifié, il faut le sauver pour le restaurer 350 +----------+ 351 | $2 | numéro de syscall qui peut être lu par la fonction appelée (5e arg) 352 352 +----------+ 353 353 | | place réservée pour le 4e argument actuellement dans $7 … … 359 359 $29 → | | place réservée pour le 1e argument actuellement dans $4 360 360 +----------+ 361 }}} 361 }}}X 362 362 - L'instruction ligne 44 met `0` dans le registre `c0_sr`. Ce qui a pour conséquence de mettre à `0` les bits `UM`, `EXL` et `IE`. On est donc en mode kernel avec interruptions masquées. 363 363 - ''Notez qu'interdire les interruptions pendant l'exécution des syscall est un choix important. Pour le moment, ce n'est pas un problème puisque nous ne traitons pas les interruptions, mais si nous les traitions, elles seraient masquées. En conséquence, il serait interdit aux fonctions qui traitent les appels système d'exécuter des attentes longues (comme une boucle qui attend le changement d'état d'un registre de périphérique) car sinon, le noyau serait figé (plus rien ne bougerait). Nous verrons comment faire au prochain cours.''\\ \\