Cours du CNAM 2011-2012 (2ème semestre) NSY103
Méthodes de programmation systèmes
Cet espace permet aux auditeurs du cours du CNAM NSY103 (méthodes de programmation système) du deuxième semestre 2011/2012 de Nancy-Metz (formation de type FOD) d’accéder aux notes de cours et autres documentations concernant ce cours. Sauf contre-indication, l’ensemble de ces documents est sous licence libre FDL. En cas de problème, n’hésitez-pas à écrire à : emmanuel@desvigne.org
Documents administratifs :
-
Plan du cours (format PDF)
Notes du cours NSY103 :
-
Notes de cours (version 1.0b du 23/04/2008) (format Word)
-
Notes de cours (version 1.0b du 23/04/2008) (format Text Open Document – Open Office)
-
Notes de cours (version 1.0b du 23/04/2008) (format PDF)
Sujets de projets et d’examens de l’année 2011-2012 :
-
Projet (coef. 1/3) : le sujet pour Nancy-Metz est << Mise à jour d’un robot-jouet >> (
format PDF). Le projet est à rendre au plus tard AVANT de début de l’examen de juin – date à préciser – (sur CD-ROM avant la distribution du sujet, ou par e-mail, toute réception d’e-mail donnera lieu à un accusé de réception).
-
Examen (coef. 2/3) : date de l’examen : lundi 28 juin 2012 18h15-20h15, sites de Nancy et de Metz. Voici :
- le sujet de juin 2012 (format PDF) ;
- la correction de l’examen de juin 2012 (format PDF).
-
Session de rattrapage de septembre : date de l’examen de rattrapage : 22 septembre 2012 09h00. Voici :
- le sujet de septembre 2012 (format PDF) ;
- la correction de l’examen de rattrapage de septembre 2012 (format PDF).
Anales des sujets de projets et examens soumis les précédentes années, avec leur correction :
-
Année 2006-2007 :
- Sujet du projet 2007, proposition de correction du projet 2007 (archive au format ZIP, lire le fichier _Lisez-moi.pdf contenu dans l’archive ZIP pour les détails),
- Sujet de l’examen de juin 2007, correction de l’examen de juin 2007,
- Sujet de la session de rattrapage de septembre 2007, correction de la session de rattrapage de septembre 2007 ;
-
Année 2007-2008 :
-
Année 2008-2009 :
- Sujet du projet 2009 (pas de correction type),
- Sujet de l’examen de juin 2009, correction de l’examen de juin 2009,
- Pas de session de rattrapage en septembre 2009 (aucun inscrit).
-
Année 2009-2010 :
- Sujet du projet 2010 (pas de correction type),
- Sujet de l’examen de juin 2010, correction de l’examen de juin 2010,
- Pas de session de rattrapage en septembre 2010 (aucun auditeur présent).
-
Année 2010-2011 :
Codes sources des corrections de TP (avec les sujets) :
-
Sujet et correction du TP n°1 sur les signaux (classiques et temps réel) (format ZIP)
-
Sujet et correction du TP n°2 sur les tubes anonymes (format ZIP)
-
Sujet et correction du TP n°3 sur les tubes nommés (format ZIP)
-
Sujet et correction du TP sur les files de messages (MSQ) (format ZIP)
-
Exemples de communication avec des sockets (par datagramme – UDP – et par connexion – TPC -) (format ZIP)
-
Exemple (tout simple) d’utilisation de sémaphore sous Linux (format ZIP)
-
Exemple d’utilisation des threads POSIX, des MUTEX, et des variables condition (format ZIP)
Bibliographie et fond documentaire :
!!! Cette section contient des scans d’articles provenant de revues commerciales. Ces articles ne sont présent qu’à des fins d’enseignement, afin d’illustrer les propos du cours par des exemples pratiques de la vie réelle. Ils ne doivent en aucun cas être utilisés à d’autres fins (dans ce cas, je vous invite vivement à vous abonner aux revues en questions, le contenu méritant largement ce modeste investissement). Il va de soit que si un ayant droit des revues citées ici souhaite voir disparaître des docuements, ceux-ci seront retirés immédiatement sur simple demande à emmanuel@desvigne.org.
-
Bibliographie :
-
Joëlle Delacroix : « Linux : programmation système et réseau« , Dunod 2003
-
Nils Schaefer : « Programmation système sous Unix« , sN Informatique (non édité, mais possibilité de commander sur le site)
-
Andrew Tanenbaum : « Systèmes d’exploitation« , Pearsoneducation 2003
-
Jean-Marie Rifflet : « La programmation sous Unix – 3ème édition« , Ediscience 1993
-
Jean-Marie Rifflet : « La communication sous Unix – 2ème édition« , Ediscience 1994
- Mark Mitchell, Jeffrey Oldham, Alex Samuel : « Programmation avancée sous Linux » : excellent livre sous « Open Publication Licence« , traduit en français par Sébastien Le-Ray. La version proposée ici est le premier jet de la traduction ; une version plus récente sera certainement disponible sur ce site.
-
-
Fond documentaire :
-
Un pointeur sachant pointer… : article sur l’utilisation des pointeurs en C (Linux Mag n°50, mai 2003, 8 pages)
-
Un pointeur sachant pointer… (et on recommence) : suite de l’article sur les pointeurs en C du n°50 (Linux Mag n°52, juillet-août 2003, 8 pages)
-
Briques de bases en C : interruptions, errorno, signaux… (Linux Mag n°39, mai 2002, 9 pages)
-
Série de 9 excellents articles (certains sont en 2 parties) parus sur Linux Magazine entre juin 2004 et février 2006 sur « comment construire un système d’exploitation« , avec une mise en pratique : construction d’un OS light (Simple OS), et comparaisons avec Linux :
-
Construisez votre propre OS – Art 1 : boot (Linux Mag n°62, juin 2004)
-
Construisez votre propre OS – Art 2 : interruptions et exceptions (Linux Mag n°63, juillet/août 2004)
-
Construisez votre propre OS – Art 3 : gestion de la mémoire physique (Linux Mag n°64, septembre 2004)
-
Construisez votre propre OS – Art 4 : gestion de la pagination (Linux Mag n°65, octobre 2004)
-
Construisez votre propre OS – Art 5 : gestion de la mémoire virtuelle du noyau (Linux Mag n°66, novembre 2004)
-
Construisez votre propre OS – Art 6, part 1 : pile et changement de contexte (Linux Mag n°68, janvier 2005)
-
Construisez votre propre OS – Art 6, part 2 : threads/noyau, ordonnancement et synchronisation (Linux Mag n°69, février 2005)
-
Construisez votre propre OS – Art 7, part 1 : threads/applications utilisateur, changement de privilège, appels systeme (Linux Mag n°70, mars 2005)
-
Construisez votre propre OS – Art 7, part 2 : gestion de l’espace utilisateur (mmap and co, malloc utilisateur), fork, exec (Linux Mag n°72, mai 2005)
-
Construisez votre propre OS – Art 8 : Virtual File System (read-write, mount, link-symlink and co) (Linux Mag n°74, juillet-août 2005)
-
Construisez votre propre OS – Art 9, part 1 : Pilotes de périphériques caractère (mknod, /dev/mem, /dev/zero, tty, pilotes clavier, série, écran) (Linux Mag n°79, janvier 2006)
-
Construisez votre propre OS – Art 9, part 2 : Pilotes de périphériques bloc (cache de blocs, cache de pages, disques durs, partitions, contrôleur IDE) (Linux Mag n°80, février 2006)
-
-
Petite introduction théorique au temps réel : article sur les systèmes temps-réel (Linux Mag n°82, avril 2006, 4 pages)
-
Le temps réel sous Linux (Linux Mag n°52, juillet-août 2003)
-
Structure interne du noyau Linux version 2.4 (Ce document a été réalisé comme support de cours donné en interne par l’auteur -Tigran Aivazian- chez VERITAS Software Ltd.)
-
Le langage C : Allocateur de mémoire – principes généraux sur comment fonctionnent les primitives malloc() & cie (Linux Mag n°29, mai 2001)
-
Le noyau Linux 2.6, le gestionnaire de mémoire – comment fonctionne en pratique dans le noyau 2.6 l’allocation mémoire et la mémoire virtuelle (Linux Mag n°67, décembre 2004)
-
Comprenez et maîtrisez le multithreading – théorie des threads, implémentation dans les noyaux 2.4 et 2.6, threads Posix (Linux Mag n°63, juillet-août 2004)
-
Modélisation d’un système séquentiel par les threads – exemples d’utilisation des threads (Linux Mag n°50, mai 2003)
-
-
Vidéos officielles :
Ces vidéos correspondaient au support de cours officiel de l’année 2006-2007 (enregistrement des cours de Joëlle Delacroix donnés à Paris). Vous pouvez regarder ces vidéos directement ici en streaming (plugin flash nécessaire), ou télécharger leur version MP4 (en cliquant sur les liens VDO n°X) :
VDO n°2 : processus, processus Linux, threads VDO n°3 : Unix – communication interne entre processus VDO n°4 : outils de communication entre les processus, les signaux VDO n°5 : gestion de la mémoire centrale, allocation de la mémoire physique VDO n°6 part. 1 : synchronisation et communication entre processus VDO n°6 part. 2 : synchronisation et communication entre processus (suite) VDO n°7 : les entrées/sorties