3
Syst` emes d’exploitation et Programmation syst` eme (RS) Lucas Nussbaum <[email protected]> Supports de cours, TD et TP largement bas´ es sur ceux de Martin Quinson <[email protected]> Telecom Nancy – 2 i` eme ann´ ee http://members.loria.fr/lnussbaum/rs.html ` A propos de ce document Document diffus´ e selon les termes de la licence Licence Creative Commons version 3.0 France (ou ult´ erieure) Attribution ; Partage dans les mˆ emes conditions http://creativecommons.org/licenses/by-sa/3.0/fr/ Remerciements Sacha Krakoviack pour son cours et Bryant et O’Hallaron pour leur livre Les (autres) emprunts sont indiqu´ es dans le corps du document Aspects techniques Document L A T E X (classe latex-beamer), compil´ e avec latex-make Sch´ emas : Beaucoup de xfig, un peu de inkscape Site du cours : http://members.loria.fr/lnussbaum/rs.html TD/TP, exams et projets (sources disponibles aux enseignants sur demande) (2/217) ` A propos de moi. . . Lucas Nussbaum Formation : ing´ enieur ENSIMAG (2005), Doctorat (2008) Depuis 2009 : Enseignant-chercheur (Maˆ ıtre de conf´ erences) ` a l’univ. de Lorraine Principalement en licence professionnelle ASRALL (Administration de Syst` emes, R´ eseaux et Applications ` a base de Logiciel Libre) Chercheur dans l’´ equipe RESIST du LORIA Recherche : Syst` emes distribu´ es, calcul ` a haute performance, Cloud Contributeur au logiciel libre Debian (Project Leader 2013-2015, Quality Assurance ), Ruby Plus d’infos : http://members.loria.fr/lnussbaum/ ([email protected]) (3/217) Organisation pratique du module Module en deux parties Partie syst` eme (intervenant en cours : Lucas Nussbaum) 5 cours, 3 TD, 3 TP Examen sur table (mi octobre) Documents interdits sauf un A4 recto/verso manuscrit un projet (pour d´ ecembre) Binˆomes et Git obligatoires Le sujet arrive bientˆot... Partie r´ eseaux (intervenant en cours : Isabelle Chrisment) Implication Manipulation : programmez ! Exp´ erimentez ! Questions bienvenues : pendant/apr` es le cours, par mail, etc. (4/217)

Systemes d'exploitation et Programmation systeme (RS)

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Systemes d'exploitation et Programmation systeme (RS)

Systemes d’exploitation et Programmation systeme(RS)

Lucas Nussbaum <[email protected]>

Supports de cours, TD et TP largement bases sur ceux deMartin Quinson <[email protected]>

Telecom Nancy – 2ieme annee

http://members.loria.fr/lnussbaum/rs.html

A propos de ce document

Document diffuse selon les termes de la licence

Licence Creative Commons version 3.0 France (ou ulterieure)

Attribution ; Partage dans les memes conditions

http://creativecommons.org/licenses/by-sa/3.0/fr/

RemerciementsI Sacha Krakoviack pour son cours et Bryant et O’Hallaron pour leur livre

I Les (autres) emprunts sont indiques dans le corps du document

Aspects techniquesI Document LATEX (classe latex-beamer), compile avec latex-make

I Schemas : Beaucoup de xfig, un peu de inkscape

Site du cours : http://members.loria.fr/lnussbaum/rs.htmlI TD/TP, exams et projets (sources disponibles aux enseignants sur demande)

(2/217)

A propos de moi. . .

Lucas NussbaumI Formation : ingenieur ENSIMAG (2005), Doctorat (2008)

I Depuis 2009 :I Enseignant-chercheur (Maıtre de conferences) a l’univ. de Lorraine

I Principalement en licence professionnelle ASRALL(Administration de Systemes, Reseaux et Applications a base de Logiciel Libre)

I Chercheur dans l’equipe RESIST du LORIA

I Recherche : Systemes distribues, calcul a haute performance, Cloud

I Contributeur au logiciel libreDebian (Project Leader 2013-2015, Quality Assurance), Ruby

I Plus d’infos :I http://members.loria.fr/lnussbaum/ ([email protected])

(3/217)

Organisation pratique du module

Module en deux partiesI Partie systeme (intervenant en cours : Lucas Nussbaum)

I 5 cours, 3 TD, 3 TPI Examen sur table (mi octobre)

I Documents interdits sauf un A4 recto/verso manuscritI un projet (pour decembre)

I Binomes et Git obligatoiresI Le sujet arrive bientot. . .

I Partie reseaux (intervenant en cours : Isabelle Chrisment)

ImplicationI Manipulation : programmez ! Experimentez !

I Questions bienvenues : pendant/apres le cours, par mail, etc.

(4/217)

Page 2: Systemes d'exploitation et Programmation systeme (RS)

Pourquoi un cours de systeme ?

I Quatre concepts fondamentaux de l’Informatique (G. Dowek) :Information, Machine, Algorithme, Langage

I Les architectures et infrastructures modernes sont complexesI Wikipedia : 1145 serveurs, 30 900 CPUsI OVH : 250 000 serveursI OpenStack (pile logicielle permettant de creer un Cloud prive)

(5/217)

Pourquoi un cours de systeme ? (2)

I Noyau Linux (et outils d’observation)

(6/217)

Pourquoi un cours de systeme ? (3)

Machine (126GB total)

NUMANode P#0 (63GB)

Socket P#0

L3 (20MB)

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#0

PU P#0 PU P#16

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#1

PU P#2 PU P#18

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#2

PU P#4 PU P#20

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#3

PU P#6 PU P#22

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#4

PU P#8 PU P#24

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#5

PU P#10 PU P#26

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#6

PU P#12 PU P#28

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#7

PU P#14 PU P#30

PCI 1000:005f

sda sdb

PCI 8086:154d

eth2

PCI 8086:154d

eth3

PCI 8086:10fb

eth0

PCI 8086:10fb

eth1

PCI 8086:8d62

PCI 8086:1521

eth4

PCI 8086:1521

eth5

PCI 102b:0534

PCI 8086:8d02

NUMANode P#1 (63GB)

Socket P#1

L3 (20MB)

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#0

PU P#1 PU P#17

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#1

PU P#3 PU P#19

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#2

PU P#5 PU P#21

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#3

PU P#7 PU P#23

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#4

PU P#9 PU P#25

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#5

PU P#11 PU P#27

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#6

PU P#13 PU P#29

L2 (256KB)

L1d (32KB)

L1i (32KB)

Core P#7

PU P#15 PU P#31

Host: grisou-9.nancy.grid5000.fr

Indexes: physical

Date: Mon 05 Sep 2016 01:38:32 PM CEST

I Systeme dual-socket Intel recent (2x Intel E5-2630v3, 8 cœurs/CPU)I Hierarchie de caches entre les processeurs et la memoire

I Partages (L3) ou non (L1, L2) entre cœurs physiques

I Plusieurs files d’attente pour le meme cœur physique (Hyperthreading)I Memoire separee en deux, chaque moitie reliee a un processeur different

I Architecture NUMA : Non-Uniform Memory Access

I Peripheriques PCI relies a un seul des deux processeurs

I Pour l’exploiter pleinement, il faut en comprendre les details

(7/217)

Pourquoi un cours de systeme ? (4)

Comment les utiliser efficacement ? Comment les concevoir ?; Performances, securite, resilience, efficacite energetique

Metiers (a la sortie de TELECOM Nancy) :I IT Operations / Administration systeme et reseaux

; Assurer le maintien en conditions operationnelles d’une infrastructure(suivi des incidents, montees de version, etc.)

I Mouvement vers le modele DevOps (≈Google Site Reliability Engineers)I Suppression des silos software development vs operationsI Infrastructure as Code : cloud, pet vs cattleI Iterations rapides, tests automatiques, deploiement automatiques et continus

Competences necessaires : developpement logiciel, comprehension profondedes systemes (combinaison tres recherchee sur le marche du travail)

I Systemes embarques / enfouis : domotique, automobile, appliances

I Securite informatique (souvent lie a des aspects systeme/reseau)

I Meme comme pur developpeur, savoir ce qui se passe sous le capot est utile !

(8/217)

Page 3: Systemes d'exploitation et Programmation systeme (RS)

Objectif du module

Utiliser efficacement le systeme d’exploitation

Contenu et objectifs du moduleI Grandes lignes du fonctionnement d’un systeme d’exploitation (OS)

Focus sur UNIX (et Linux) par defaut, mais generalisations

I Concepts cles des OS : processus, fichier, edition de liens, synchronisation

I Utilisation des interfaces systeme : programmation pratique, interface POSIX

I Programmation systeme (et non programmation interne du systeme)Plutot du point de vue de l’utilisateur (conception d’OS en RSA)

MotivationsI OS = systemes complexes les plus courants ; Concepts et abstractions claires

I Impossible de faire un programme efficace sans comprendre l’OS

I Comprendre ceci aide a comprendre les abstractions superieures

Prerequis : Pratique du langage C et du shell UNIX

(9/217)

Bibliographie succincte (pour cette partie)

LivresI Bryant, O’Hallaron : Computer Systems, A Programmer’s Perspective.

Autres cours disponibles sur InternetI Introduction aux systemes et aux reseaux (S. Krakowiak, Grenoble)

Source de nombreux transparents presentes ici.http://sardes.inrialpes.fr/~krakowia/Enseignement/L3/SR-L3.html/

I Programmation des systemes (Ph. Marquet, Lille)http://www.lifl.fr/~marquet/cnl/pds/

I Operating Systems and System Programming (B. Pfaff, Stanford)http://cs140.stanford.edu/

Sites d’informationI http://systeme.developpez.com/cours/

Index de cours et tutoriels sur les systemes

URL du cours : http://members.loria.fr/lnussbaum/rs.html

(10/217)

Plan de cette partie du module :

Systemes d’exploitation et programmation systeme1 Introduction

Systeme d’exploitation : interface du materiel et gestionnaire des ressources.

2 ProcessusProcessus et programme ; Utilisation des processus UNIX et Realisation ; Signaux.

3 Fichiers et entrees/sortiesFichiers et systemes de fichiers ; Utilisation ; Realisation.

4 Execution des programmesSchemas d’execution : interpretation (shell) et compilation (liaison et bibliotheques)

5 Synchronisation entre processusProblemes classiques (competition, interblocage, famine) ; Schemas classiques.

6 Programmation concurrenteQu’est ce qu’un thread ; Modeles d’implementation ; POSIX threads.

(11/217)