Formation indisponible à l'heure actuelle

Systèmes d'exploitation : principes, programmation et virtualisation

Formation

À Montpellier ()

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

Missions, moyens et organisation
Le Cnam est placé sous la présidence de Jean-Paul Herteman, P-DG du groupe Safran, et dirigé par Olivier Faron.
Il remplit trois missions principales:
la formation professionnelle supérieure tout au long de la vie,
la recherche technologique et l'innovation,
la diffusion de la culture scientifique et technique.
Le Cnam offre des formations développées en étroite collaboration avec les entreprises et les organisations professionnelles afin de répondre au mieux à leurs besoins et à ceux de leurs salariés. Cette UE apparaît dans les diplômes et certificats suivants : Entrée
CYC12p-1 Ingénieur diplômé de l'école d'ingénieurs du Cnam Spécialité informatique, parcours Systèmes d'information (ISI)
Centres d'enseignement Entrée
CYC14p-1 Ingénieur diplômé de l'école d'ingénieurs du Cnam Spécialité informatique, parcours Réseaux, systèmes et multimédia (IRSM)
Centres d'enseignement Entrée
CYC15p-1 Ingénieur diplômé de l'école d'ingénieurs du Cnam Spécialité informatique, parcours Modélisation et ingénierie mathématique
Centres d'enseignement Entrée
CYC45p-1 Ingénieur diplômé de l'école d'ingénieurs du Cnam Spécialité informatique, parcours Architecture et ingénierie des systèmes et des logiciels (AISL)
Centres d'enseignement Entrée
CYC47p-1 Ingénieur diplômé de l'école d'ingénieurs du Cnam Spécialité informatique, parcours Informatique modélisation optimisation (IMO)
Centres d'enseignement Entrée
DIE43p-1 Diplôme d'établissement Concepteur en architecture informatique
Centres d'enseignement Entrée
LG025p1 Licence Sciences, technologies, santé, parcours mention informatique générale
Centres d'enseignement Public et conditions d'accès Elèves avec les connaissances de la programmation, du langage C et des systèmes informatiques vues  en premier cycle du Cnam ou équivalent

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Les matières

  • Exploitation
  • Ingénieur du son
  • Mise en réseau
  • Réseau
  • Gestion
  • C++
  • Modélisation
  • Techniques du son
  • Ingénierie formation
  • Infrastructures
  • Ingénierie
  • SA
  • Unix
  • Techniques de formation
  • Langage c

Le programme

Contenu 1. Principes de base d'un système d'exploitation
Rappel sur l'architecture des ordinateurs :
modes d'exécution, interruptions, gestion des périphériques, entrés/sorties en mode DMA, pile d'exécution, etc.
Environnement de développement et conception modulaire de programmes : compilation croisée, éditions de liens statique et dynamique, bibliothèques partagées. Exemple des "shared object" du système Linux
Présentation de la notion de processus et de contexte d'exécution indépendant, d'espace d'adressage séparé, de chargement dynamique de programme.
Introduction au parallélisme et à la programmation concurrente. Notions de thread et de processus multi-threads. Description des politiques d'ordonnancement pour l'attribution des processeurs.

2. Gestion mémoire
Introduction à la notion d'espace d'adressage (physique, virtuel).

Analyse des architectures de type NUMA (Non Uniform Memory Architecture) et de la prise en compte de leurs propriétés lors de la conception de logiciels critiques.

Etude du mécanisme matériel de protection de la mémoire physique de type MPU (Memory Protection Unit) introduit dans les processeurs dédiés aux systèmes enfouis (automobile, transport).

Etude des techniques d'allocation mémoire.
Tout d'abord des méthodes d'allocations classiques "historiques" : allocateurs first-fit, best-fit et worst-fit.
Puis des allocateurs mémoire modernes à 2 étages.

Etude de la pagination et de la gestion des espaces d'adressage paginés dans les systèmes Unix et Linux. Fonctionnement d'une MMU (Memory Management Unit) et d'un TLB (Translation Lookaside Buffer). Méthodes de gestion des défauts de page, principes du va-et-vient (swapping) et algorithmes de remplacement de pages.

Principes de fonctionnement des caches mémoire et de leur mise en oeuvre dans les architectures modernes à base de processeurs multi-coeurs. Techniques logicielles d'exploitation des caches mémoire pour l'optimisation des performances des systèmes.

3. Gestion du parallélisme et mécanismes de synchronisation
Présentation des différents paradigmes de la concurrence et des mécanismes de synchronisation associés.

Etude du problème de l'exclusion mutuelle pour l'accès cohérent à des ressources partagées entre entités d'exécution concurrentes.
Exemple des mécanismes de synchronisation de type mutex dans le contexte des applications multi-threads.

Etude de réalisations d'un mécanisme de synchronisation de type mutex dans un noyau de système basées sur les méthodes suivantes :
   - le masquage des interruptions sur un mono-processeur
   - le masquage de la préemption de thread sur un mono-processeur
   - l'utilisation d'instructions atomiques et d'instructions de type "test-
      and-set" dans les architectures multi-processeurs.

Etude comparée des politiques de synchronisation de type " coarse-grained locking " et de type " fine-grained locking ".
Probléme de l'inversion de priorité et ses solutions.
Problème de l'inter-blocage ("deadlock" en anglais) et ses solutions.

Le cours sur la mise en oeuvre de la concurrence et des mécanismes de
synchronisation est basé sur un exemple concret (écrit en langage C)
d'un allocateur mémoire dans un noyau de système.

4. Virtualisation de Systèmes
Historique et objectifs de la virtualisation de systèmes : utilisation optimale des ressources, exécution simultanée de plusieurs systèmes hétérogènes sur une seule machine, etc.

Description des notions de machine virtuelle, de virtualisation hébergée ("hosted virtualisation") ou autonome ("standalone virtualisation"), de systèmes invités et de systèmes hébergeur, d'hyperviseur.

Virtualisation par émulation transparente du matériel - exemple de Qemu.

Virtualisation transparente du matériel (VMware) :
virtualisation du CPU - problème des instructions critiques
virtualisation de MMU par la technique des “shadow page tables”
virtualisation des entrées/sorties par émulation de périphériques.

Para-virtualisation (Xen) et entrées/sorties à travers des périphériques virtuels (Ethernet, disques).

Support matériel de la virtualisation de système.
Exemple de l'architecture Intel-VT intégrant le support de machine virtuelles (extension de la virtualisation VMX).
Virtualisation de périphériques PCI et fonctions PCI virtuelles partagées entre systèmes invités.
Exemple de Ethernet et des communications entre machines virtuelles et/ou des machines virtuelles avec l'extérieur.
Etude de la virtualisation de systèmes dans les systèmes embarqués s'appuyant
sur l'exemple des téléphones intelligents ("Smartphones") fonctionnant sous le système Android de Google.
Conclusion sur l'évolution des techniques de la virtualisation de système, des défis posés par sa diffusion (logiciel libre, open source, etc.)

5) Mise en oeuvre de la virtualisation de systèmes dans le contexte de l'infrastructure des télécommunications et de l'Internet
Notion de Network Function Virtualization (NFV). Etude des avantages de la virtualisation de fonctions réseau, et des défis posés par leur mise en oeuvre dans des machines virtuelles. Exemple de la virtualisation d'un Broadband Remote Access Server (BRAs).
Principe d'un commutateur réseau virtuel, intégration de la solution Open Virtual Switch (OVS) dans un hyperviseur.

Notion de Software Defined Network (SDN) permettant le contrôle centralisé des infrastructures réseau, de la solution OpenFlow et de sa mise en oeuvre dans des infrastructures réseau virtualisées.

Présentation du DPDK (Data Plane Development Kit)
  Projet open-source pour le développement de piles de protocoles réseau à haut-débit.
  Mise en oeuvre du DPDK dans les infrastructures de réseau virtualisées pour en optimiser les performances.
 
Modalités de l'évaluation Examen écrit
Bibliographie
  • S. Bouzefrane : Les systèmes d'exploitation, Unix, Linux et Windows XP, avec C et Java, Dunod 2003 (566 pages), ISBN : 2100071890
  • : POSIX Threads - Linux Tutorial : http:///TUTORIALS/LinuxTutorialPosixThreads.html
  • R. H. Carver, Kuochung Tai : Modern Multithreading Wiley 2005 (465 pages)
  • M. Divay : Unix, Linux et les systèmes d'exploitation, Dunod 2004 (429 pages)
  • D. Bovet, M. Cesati : Le noyau Linux, O' Reilly 2006 (1007 pages), ISBN 2841772438
  • A.S. Tanenbaum : Systèmes d'exploitation, Pearson Education 2008 (1052 pages)
  • J.E. Smith, R. Nair : Virtual Machines “versatile platforms for systems and processes”, Elsevier

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Systèmes d'exploitation : principes, programmation et virtualisation

Prix sur demande