Changes between Version 46 and Version 47 of AS6-TME-B5


Ignore:
Timestamp:
Feb 22, 2022, 7:47:32 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B5

    v46 v47  
    382382
    383383
    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`.
     384Pour 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
     386Pour 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{{{
     38901_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}}}
    385418
    386419== Etat du code par une lecture directe