Liens sur la page

Systèmes 1 L3 informatique

Modalité de contrôle de connaissances

Le projet

Voilà le sujet du projet systèmes.

La date de remise de projet est repoussée jusqu'à 2 janvier 2012 à 23h59. D'autres modalités ne changent pas. Les soutenances auront lieu le jeudi 12 janvier 2012 salle T (548C). Les inscriptions au secrétariat de L3.

Examen

le 11 janvier 2012, 8h30-11h30, salle 13E

Documents autorisés pendant l'examen: vous pouvez imprimer et utiliser pendant l'examen les deux aide-mémoires données ci-dessous. De plus chacun peut ramener et utiliser une seule feuille manuscrite avec ses propres notes (chacun peut y mettre ce qu'il/elle juge utile pour examen). Cette feuille doit être signée avec votre nom. Tous les autres documents sont interdits.

Aide-mémoires

  1. les fichiers.
  2. les processus.

Avertissement : ces aide-mémoires peuvent contenir des erreurs (surtout d'orthographe, mais pas uniquement).

Pour s'entrainer

le sujet d'examen janvier 2011

Cours

jeudi 12h00-1400 l'amphi 6C Halle aux farines

Quelques livres et liens utiles :

COURS

  1. le 22 septembre
    • rappel de C : arithmétique de pointeurs,
    • allocation dynamique de mémoire : malloc(), calloc(), realloc(), free() ,
    • tableau comme paramètre d'une fonction : réduction vers un pointeur.
    • Un simple Makefile.
  2. le 29 septembre
    • les entrées et sorties standard, les flots FILE *,
    • ouvrir et fermer le flot : fopen, fclose,
    • lecture et écriture de caractères fgetc getc getchar, fputc putc putchar
    • lecture et écriture de chaînes de caractères,
    • entrées sorties binaires fread fwrite,
    • contrôle de tampon : setvbuf setbuf fflush.
    • Exemple : copier un fichier lire_var. Exécutez ce programme avec time: time lire_var fichier_in fichier_out taille_tampon avec les différentes tailles du tampon. Comparer le temps d'exécution.
  3. le 6 octobre
    • Généralité sur UNIX.
    • Gestion des erreurs : errno, strerror(), perror().
    • Descripteurs de fichier. Types de fichiers. La structure de système de fichier sous UNIX.
    • open close creat pour ouvrir, fermer et créer un fichier ordinaires.
    • read() readv() write() writev() pread() pwrite().
    • Exemple : copier un fichier
    • .
    • Position courante dans un fichier régulier : lseek()
  4. le 13 octobre
    • Création, suppression et lecture d'un répertoire : mkdir() rmdir() opendir(), closedir(), readdir().
    • Exemple : afficher un répertoire.
    • Le retour sur les droits d'accès : umask.
    • La structure de système de fichiers, le concept de i-node. Les informations stockées dans un i-node.
    • Liens physiques (liens durs)
    • Création, suppression et déplacement d'un lien physique. Les fonctions link() unlink() rename().
    • Organisations de fichiers ouverts de points de vue de processus : tables de descripteurs, la table de fichiers ouverts, la table de v-nodes.
  5. le 20 octobre
    • Le répertoire courant de processus : les fonctions getcwd() chdir().
    • La lecture des informations stockées dans un i-node, les fonctions stat() fstat().
    • La structure struct stat
    • Exemple: un programme qui lit et affiche certaines informations de i-node.
    • Les notions de propriétaire réel et propriétaire effectif d'un processus. Les bits: set-uid, set-gid, sticky.
  6. le 27 octobre
    • Les fonctions chmod, fchmod, chown, fchown, utime, localtime.
    • Comment trouver les information sur un utilisateur (son nom login, son numéro ID, le répertoire d'accueil. Les fonctions getpwuid() getpwnam().
    • Exemple : parcours d'un répertoire et des ses sous-répertoires. (Pour parcourir récursivement les sous répertoires utilisez l'option -R. Les liens symboliques ne sont pas traités correctement.)
  7. le 3 novembre
    • Les liens symboliques. La comparaison des liens symboliques avec les liens physiques. Les fonctions symlink() readlink() lstat().
    • Verrouillage de fichiers réguliers. La structure struct flock et la fonction fcntl()
  8. le 10 novembre
    • Création de processus : fork().
    • exemple.
  9. le 17 novembre
    • Communiction entre les processus par un tube nommé. Exemples -- lecture et écriture bloquante et non bloquante dans un tube.
    • Processus zombie. La fonction wait().
  10. le 24 novembre
    • Processus zombie - suite. La fonction waitpid().
    • Recouvrement : les primitives de la famille exec
  11. le 1 décembre
    • Duplication de descripteurs, les primitives dup() et dup2().
    • Applications : redirections des entrées et sorties. Exemples.
  12. le 8 décembre
    • Tubes anonymes. Exemples - plusieurs versions d'un programme qui communique avec ses fils par un tube anonyme.