SMB101
Titre Officiel Cnam : Systèmes d'exploitation : principes, programmation et virtualisation
-
Nombre d’heures
51
-
Modalités
Enseignement à distance
-
Crédits ects
6
Prérequis :
Elèves ayant des connaissances de base en systèmes informatiques vues en UTC502 au Cnam ou équivalent, ainsi que des connaissances en programmation (de préférence en langage C).
Objectifs :
Ce cours a pour objectif de présenter les concepts des systèmes d'exploitation et leur programmation en étudiant les mécanismes de base des systèmes d'exploitation classiques mais aussi ceux des systèmes temps réel, des systèmes embarqués et des objets connectés. Les principes de virtualisation des systèmes d'exploitation sont aussi abordés dans ce cours. Il s'agit de: Comprendre les principaux concepts et paradigmes des systèmes d'exploitation modernes.
Etudier les mécanismes de base mis en oeuvre dans le noyau de systèmes tels que Linux ou Unix BSD. Obtenir des bases dans la compréhension des mécanismes de gestion du parallélisme utilisés dans les noyaux des systèmes. Comprendre les principaux concepts des systèmes temps réel et leur programmation
Notion de tâche et de handler et programmation des applications temps réel Algorithmes d'ordonnancement temps réel Comprendre les principaux concepts des systèmes embarqués et des objets connectés
Etudier quelques exemples de microcontrôleurs Programmation embarquée (Arduino, Raspberrypi, STM32, etc.) Comprendre et maîtriser les objectifs et les principes de la virtualisation de systèmes et de la conteneurisation
Etude des différentes techniques mises en oeuvre dans les hyperviseurs logiciels (VMWare, Xen, KVM) Etude du support de la virtualisation intégré dans les architectures matérielles récentes : processeurs Intel-VT, mécanismes de Direct I/Os, fonctions PCI virtuelles. Etude des principes de conteneurisation et de l'orchestration des conteneurs (Docker container et Kubernetes)
Etudier les mécanismes de base mis en oeuvre dans le noyau de systèmes tels que Linux ou Unix BSD. Obtenir des bases dans la compréhension des mécanismes de gestion du parallélisme utilisés dans les noyaux des systèmes. Comprendre les principaux concepts des systèmes temps réel et leur programmation
Notion de tâche et de handler et programmation des applications temps réel Algorithmes d'ordonnancement temps réel Comprendre les principaux concepts des systèmes embarqués et des objets connectés
Etudier quelques exemples de microcontrôleurs Programmation embarquée (Arduino, Raspberrypi, STM32, etc.) Comprendre et maîtriser les objectifs et les principes de la virtualisation de systèmes et de la conteneurisation
Etude des différentes techniques mises en oeuvre dans les hyperviseurs logiciels (VMWare, Xen, KVM) Etude du support de la virtualisation intégré dans les architectures matérielles récentes : processeurs Intel-VT, mécanismes de Direct I/Os, fonctions PCI virtuelles. Etude des principes de conteneurisation et de l'orchestration des conteneurs (Docker container et Kubernetes)
Délais d'accès :
Inscription 1er semestre et annuel :
- Modalité présentiel/hybride : de juillet à mi-octobre
- Modalité FOAD (100% à distance) : de juillet à mi-novembre
Inscription 2ème semestre :
- Modalité présentiel/hybride : de juillet à mi-février
- Modalité FOAD (100% à distance) : de juillet à mi-mars
Compétences visées :
Conception et programmation de tout type de système d'exploitation (système classique comme Linux, système temps réel, système embarqué pour objets connectés).
Architecture et fonctionnement des systèmes d'exploitation tels que Unix et Linux mais aussi des systèmes embarqués (comme par exemple Raspberry pi, Arduino, STM32, ou Android) et des systèmes temps réel (dans le domaine de l'avionique, des automobiles, etc.) pour maîtriser leur administration et le développement d'applications.
Maîtrise des principes sous-jacents à la virtualisation de systèmes afin de faciliter l'intégration et l'administration de ce type de service dans un système informatique (Cloud Computing, Haute Disponibilité, Tolérance aux pannes, etc.).
Architecture et fonctionnement des systèmes d'exploitation tels que Unix et Linux mais aussi des systèmes embarqués (comme par exemple Raspberry pi, Arduino, STM32, ou Android) et des systèmes temps réel (dans le domaine de l'avionique, des automobiles, etc.) pour maîtriser leur administration et le développement d'applications.
Maîtrise des principes sous-jacents à la virtualisation de systèmes afin de faciliter l'intégration et l'administration de ce type de service dans un système informatique (Cloud Computing, Haute Disponibilité, Tolérance aux pannes, etc.).
L'avis des auditeurs :
Les dernières réponses à l'enquête d'appréciation pour cet enseignement :
Fiche synthétique au format PDF
Nous contacter
Fiche synthétique au format PDF
Modalités d’enseignement :100% à distanceMixte : à distance + cours en sallePrésentiel
Méthodes et modalités pédagogiques
Pédagogie qui combine apports académiques, études de cas basées sur des pratiques professionnelles et expérience des élèves.
Équipe pédagogique constituée pour partie de professionnels. Un espace numérique de formation (ENF) est utilisé tout au long du cursus.
Programme :
Concepts et paradigmes des systèmes d'exploitation classiques.
Mécanismes de mise en oeuvre des primitives dans le noyau de systèmes tels que Linux ou Unix BSD : notion de processus, de thread, parallélisme et synchronisation, ordonnancement, gestion de la mémoire virtuelle, gestion des signaux, etc.
- Concepts et paradigmes des systèmes temps réel.
Architecture, notion de tâche périodique et apériodique, gestion des interruptions, politiques d'ordonnancement temps réel, gestion des handlers, etc.
- Concepts et paradigmes des systèmes embarqués et objets connectés.
Etude de quelques exemples microcontrôleurs
Programmation d'un système embarqué et d'un objet connecté
Principes de l'internet des objets
- Concepts et principes de la virtualisation de systèmes et de la conteneurisation
Etude des différentes techniques mises en oeuvre dans les hyperviseurs logiciels (VMWare, Xen, KVM).
Support matériel de la virtualisation de systèmes.
Etude du support de la virtualisation intégré dans les architectures matérielles récentes : processeurs Intel-VT, mécanismes de Direct I/Os, fonctions PCI virtuelles.
Etude des principes de la conteneurisation et de l'orchestration des conteneurs (exemple de Docker containers et Kubernetes)
Les séances de cours sont suivies de séances de TP permettant d'illustrer les concepts étudiés. En plus de TP sous Linux, des TPs peuvent être proposés sur d'autres plates-formes comme FreeRTOS pour les systèmes temps réel, Raspberry pi ou Arduino pour illustrer la programmation des systèmes embarqués et les plates-formes mobiles (Android par exemple) comme exemple d'objets connectés. La virtualisation traitera de la gestion des machines virtuelles à l'aide d'hyperviseurs mais aussi de solutions de virtualisation avec empreinte plus légère comme les Container Docker. Ainsi des TPs sur la virtualisation et la conteneurisation (exemple de Kubernetes) viennent illustrer les concepts étudiés en séances de cours.
Mécanismes de mise en oeuvre des primitives dans le noyau de systèmes tels que Linux ou Unix BSD : notion de processus, de thread, parallélisme et synchronisation, ordonnancement, gestion de la mémoire virtuelle, gestion des signaux, etc.
- Concepts et paradigmes des systèmes temps réel.
Architecture, notion de tâche périodique et apériodique, gestion des interruptions, politiques d'ordonnancement temps réel, gestion des handlers, etc.
- Concepts et paradigmes des systèmes embarqués et objets connectés.
Etude de quelques exemples microcontrôleurs
Programmation d'un système embarqué et d'un objet connecté
Principes de l'internet des objets
- Concepts et principes de la virtualisation de systèmes et de la conteneurisation
Etude des différentes techniques mises en oeuvre dans les hyperviseurs logiciels (VMWare, Xen, KVM).
Support matériel de la virtualisation de systèmes.
Etude du support de la virtualisation intégré dans les architectures matérielles récentes : processeurs Intel-VT, mécanismes de Direct I/Os, fonctions PCI virtuelles.
Etude des principes de la conteneurisation et de l'orchestration des conteneurs (exemple de Docker containers et Kubernetes)
Les séances de cours sont suivies de séances de TP permettant d'illustrer les concepts étudiés. En plus de TP sous Linux, des TPs peuvent être proposés sur d'autres plates-formes comme FreeRTOS pour les systèmes temps réel, Raspberry pi ou Arduino pour illustrer la programmation des systèmes embarqués et les plates-formes mobiles (Android par exemple) comme exemple d'objets connectés. La virtualisation traitera de la gestion des machines virtuelles à l'aide d'hyperviseurs mais aussi de solutions de virtualisation avec empreinte plus légère comme les Container Docker. Ainsi des TPs sur la virtualisation et la conteneurisation (exemple de Kubernetes) viennent illustrer les concepts étudiés en séances de cours.
Modalités de validation :
Examen écrit
Cette unité d'enseignement est valorisable dans les certifications suivantes :
- CC13800A - Certificat de compétence Analyste en cybersécurité
- LG02501A-1 - Licence informatique Parcours Systèmes et réseaux - Sécurité virtualisation - L3
- LG02501A-4 - Licence informatique sécurité des systèmes d'information - L3
- LG025B21 - Bloc de compétences Concevoir et réaliser l'architecture applicative d'un système d'information
- LG02501A-3 - Licence informatique développement objet et Web - L3
- CPN8401A - Titre RNCP Niveau 6 Concepteur en architecture informatique Réseaux et systèmes
- CPN8402A-2 - Titre RNCP Niveau 6 Systèmes d'information (ISI)
- CPN8403A - Titre RNCP Niveau 6 Concepteur en architecture informatique parcours Cybersécurité
- CYC9101A - Diplôme d'ingénieur Architecture et ingénierie des systèmes et des logiciels (AISL)
- CYC9104A - Diplôme d'ingénieur Informatique, réseaux, systèmes et multimédia (IRSM)
- CYC9105A - Diplôme d'ingénieur Systèmes d'information