TP n°2 : Sleep et Entrées / sorties

Les TPs 1 et 2 doivent être rendus ensemble sur AMETICE
au plus tard le vendredi 25 novembre 2022 à 23h.

Vous devez rendre ces TP (seul(e) ou avec une autre personne) sous la forme d'une archive ZIP dont le nom est composé à partir de votre numéro de groupe suivi de vos noms de famille (en majuscules) et vos prénoms (en minuscules). Par exemple G1_NOM1_prenom1_NOM2_prenom2.zip pour le groupe 1. Merci.

Ajouter un processus idle

Nous avons un ordonnanceur et nous avons déjà exécuté deux processus en simultané. Nous allons en ajouter un troisième (qui boucle sans rien faire) afin de s'assurer que nous aurons toujours au moins un processus prêt à choisir et à exécuter.

Travail à faire :

Endormir des threads

On se propose de réaliser l'appel système sysc Ri,SYSC_SLEEP qui va endormir le thread courant pendant Ri seconde(s).

Travail à faire :

La fonction getchar

On se propose de réaliser l'appel système SYSC Ri,SYSC_GETCHAR qui va lire un caractère sur l'entrée standard et le placer dans Ri ou attendre l'arrivée d'un caractère.

Nous ne pouvons pas réellement utiliser le clavier car cela impose de contrôler parfaitement les arrivées de caractères. La couche matérielle (cpu.c) simule l'arrivée d'un caractère toutes les trois secondes et signale cet événement par une interruption clavier. Le caractère en question peut être récupéré par le système au moyen de la fonction get_keyboard_data (voir cpu.h).

Travail à faire :