| 384 | | Pour la partie pratique de la séance, je ne vous fais pas modifier, ou pire écrire, la gestion des threads, mais je vous invite à lire le code. Vous allez changer la manière de lire les caractères du TTY pour la rendre plus efficace. Tous les changements seront faits dans le fichier `kernel/harch.c`. |
| | 384 | Pour la suite de la séance, récupérez [htdocs:files/tp3.tgz l'archive du tp3] et placez là à côté des tp1 et tp2. Le code est fonctionnel, vous pouvez le tester. Je ne vous fais pas modifier, ou pire écrire, la gestion des threads, mais je vous invite à lire le code, c'est très commenté. Les principaux fichiers modifiés sont `kernel/hcpua.S` pour les fonctions `thread_load()`, `thread_save()` et `thread_launch()` (`app_launch()` a disparu, elle n'est plus utile). Des fichiers sont nouveaux : `kernel/kthread.h` qui contient le code de `thread_create_kernel()`, `thread_yield()`, `thread_exit()`, `sched_switch()` et quelques autres. `common/thread.h' qui contient les prototypes de fonctions communes au noyau et à l'utilisateur et 'ulib/thread.c' qui contient aussi les fonctions `thread_create()`, `thread_yield(), `thread_exit()` mais avec des appels système. Je vous invite vraiment à lire le code, c'est un bon exercice de lire le code des autres, croyez-moi. |
| | 385 | |
| | 386 | Pour la partie pratique, vous allez changer la manière de lire les caractères du TTY pour la rendre plus efficace. Tous les changements seront faits dans le fichier `kernel/harch.c`. |
| | 387 | |
| | 388 | {{{ |
| | 389 | 01_gameover/ 01_threads |
| | 390 | |-- common |-- common |
| | 391 | | `-- syscalls.h | |-- syscalls.h |
| | 392 | |-- kernel | `-- thread.h |
| | 393 | | |-- harch.c |-- kernel |
| | 394 | | |-- harch.h | |-- harch.c |
| | 395 | | |-- hcpua.S | |-- harch.h |
| | 396 | | |-- hcpuc.c | |-- hcpua.S |
| | 397 | | |-- hcpu.h | |-- hcpuc.c |
| | 398 | | |-- kernel.ld | |-- hcpu.h |
| | 399 | | |-- kinit.c | |-- kernel.ld |
| | 400 | | |-- klibc.c | |-- kinit.c |
| | 401 | | |-- klibc.h | |-- klibc.c |
| | 402 | | |-- ksyscalls.c | |-- klibc.h |
| | 403 | | `-- Makefile | |-- ksyscalls.c |
| | 404 | |-- Makefile | |-- kthread.c |
| | 405 | |-- tags | `-- Makefile |
| | 406 | |-- uapp |-- Makefile |
| | 407 | | |-- main.c |-- uapp |
| | 408 | | `-- Makefile | |-- main.c |
| | 409 | `-- ulib | `-- Makefile |
| | 410 | |-- crt0.c `-- ulib |
| | 411 | |-- libc.c |-- crt0.c |
| | 412 | |-- libc.h |-- libc.c |
| | 413 | |-- Makefile |-- libc.h |
| | 414 | `-- user.ld |-- Makefile |
| | 415 | |-- thread.c |
| | 416 | `-- user.ld |
| | 417 | }}} |