Conseil : cloner ce dépôt et travailler directement dans le répertoire cloné.
git clone git@gaufre.informatique.univ-paris-diderot.fr:klimann/systL3_2019-2020.git
...
git pull
amphi | Ines Klimann | klimann@irif.fr |
TP groupe 1 | Stefano Zacchiroli | stefano.zacchiroli@irif.fr |
TP groupes 2+4 | Dominique Poulalhon | dominique.poulalhon@irif.fr |
TP groupes 3+MI | Claude Stolze | claude.stolze@irif.fr |
- présentation globale du cours
- disgression de programmation autour des tampons; sources associés : copie_inefficace.c, copie_plus_efficace.c, tab.h, ecrire.c, lire.c
- processus : mode noyau / mode utilisateur
- fichiers : i-nœuds sur disque et en mémoire,
open
,close
,read
,write
; sources : comparaison_temps.c, up.c, wc.c, alphabet.c - gestion des erreurs :
perror
,errno
; sources : erreur1.c, erreur2.c
- mémoire d'un processus; sources : tas_pile.c, memory1.c, memory2.c
- états d'un processus
- création d'un processus :
fork
; sources : ex1_fork.c, ex2_fork.c, test_fork_write.c - écrasement de code :
exec
; sources : ex1_exec.c, ex2_exec.c - synchronisation père/fils :
wait
; source : ex_wait.c
- retour sur
wait
; source : ex_wait.c - synchronisation père/fils : tubes anonymes; sources : test2_tube.c, tube_plein.c, tube_sans_lecteur.c
- attente sur plusieurs descripteurs :
select
; source : selection.c
- compléments sur les tubes :
PIPE_BUF
- redirections :
dup2
etdup
; sources : redirection.c, count_grep.c, yes_head.c - statut d'un fichier :
stat
,fstat
etlstat
; sources : inode_number.c, inode_type.c - parcours de répertoire :
opendir
,readdir
etclosedir
; sources : ls_a.c, ls_a2.c - parcours d'arborescence :
getcwd
,chdir
; source : directory_depth.c
Concernant le problème rencontré en cours sur count_grep
quand on
oubliait de fermer l'écriture pour le processus lecteur sur le tube : le
problème n'en était pas vraiment un. En fait le processus qui
exécutait wc -l
était bien bloqué sur la lecture du tube (parce
qu'il était lui-même écrivain), mais le shell avait repris la main
parce que le processus lancé (celui qui exécutait grep ...
) était
terminé. En échangeant le rôle du père et du fils, la démonstration
aurait été plus parlante!
-
TP nº1 (tampons et archivage) : énoncé + (exceptionnellement) correction du premier exercice en haut-niveau et bas-niveau pour vous aider à avancer
-
TP nº2 (lecture/écriture bas-niveau) : énoncé
-
TP nº3 (duplication de processus) : énoncé
-
TP nº4 (synchronisation père-fils) : énoncé
-
TP nº5 (
select()
) : énoncé
Remarque : ces feuilles de TD en markdown sont faites pour être lues directement sur l'interface web du gitlab de l'UFR. On profite ainsi de la coloration syntaxique, des liens hypertextes, etc. Mais la syntaxe markdown étant assez légère, ces feuilles de TD peuvent être ouvertes dans votre éditeur de texte favori.