Systèmes centralisés. Philippe Quéinnec. 18 mai 2017

Documents pareils
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Programmation C. Apprendre à développer des programmes simples dans le langage C

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS

Cours de Système : Gestion de Fichiers

Unix/Linux I. 1 ere année DUT. Université marne la vallée

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation impérative

Concept de machine virtuelle

Exécutif temps réel Pierre-Yves Duval (cppm)

Cours 14 Les fichiers

L informatique en BCPST

La mémoire. Un ordinateur. L'octet. Le bit

Outils pour la pratique

Plan du cours. Historique du langage Nouveautés de Java 7

Système de Gestion de Fichiers

Algorithmique et Programmation, IMA

Un ordinateur, c est quoi?

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Traduction des Langages : Le Compilateur Micro Java

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Programmation système de commandes en C

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

Le système de gestion des fichiers, les entrées/sorties.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

1 Lecture de fichiers

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Compilation (INF 564)

Architecture des ordinateurs

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Structure d un programme

Ordinateurs, Structure et Applications

Tablette Pegasus PC Notes. Code : Conrad sur INTERNET Version 02/ Conditions du système.

Bases de programmation. Cours 5. Structurer les données

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Conception de circuits numériques et architecture des ordinateurs

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Systèmes d exploitation

Le langage C. Séance n 4

IV- Comment fonctionne un ordinateur?

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Introduction à l informatique en BCPST

TwinCAT Backup. Mise en œuvre rapide

Introduction aux Systèmes et aux Réseaux

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

TP1 - Prise en main de l environnement Unix.

Plan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF.

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Programmation système en C/C++

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Temps Réel. Jérôme Pouiller Septembre 2011

Rappels Entrées -Sorties


On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Initiation. àl algorithmique et à la programmation. en C

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Éléments d'architecture des ordinateurs

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

Implémentation des SGBD

Introduction au langage C

Serveurs de noms Protocoles HTTP et FTP

ELP 304 : Électronique Numérique. Cours 1 Introduction

UE Programmation Impérative Licence 2ème Année

Organiser le disque dur Dossiers Fichiers

VidZone, qu est-ce que c est? INSTALLATION DE VidZone

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Cours 1 : La compilation

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

TP 1 Prise en main de l environnement Unix

Organiser les informations ( approche technique )

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Programmation système I Les entrées/sorties

Eclipse atelier Java

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Les diagrammes de modélisation

Ordinateurs, Structure et Applications

Structure fonctionnelle d un SGBD

Cours Informatique 1. Monsieur SADOUNI Salheddine

Structure de base d un ordinateur

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Chapitre 2 : Abstraction et Virtualisation

Cours 3 : L'ordinateur

Les structures de données. Rajae El Ouazzani

Démarrer et quitter... 13

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

LES BIBLIOTHEQUES DE WINDOWS 7

Conventions d écriture et outils de mise au point

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

La technologie Java Card TM

Dossier I Découverte de Base d Open Office

Transcription:

Systèmes centralisés Philippe Quéinnec 18 mai 2017

Déroulement de l enseignement Introduction, rappel des concepts (Philippe Quéinnec) L API système en C (Patrick Amestoy) L API système en ligne de commande (Philippe Quéinnec) Conception interne d un système (Philippe Quéinnec) Contrôle des processus Mémoire virtuelle Système de fichiers 2 / 39

Plan Notion d interface Système d exploitation Appels système 1 Notion d interface Système d exploitation Appels système 2 3 4 3 / 39

Interfaces Notion d interface Système d exploitation Appels système Un service est caractérisé par son interface L interface est l ensemble des fonctions accessibles aux utilisateurs du service Chaque fonction est définie par son format (la description de son mode d utilisation) - sa syntaxe sa spécification (la description de son effet) - sa sémantique Ces descriptions doivent être précises, complètes (y compris les cas d erreur) et non ambiguës Principe de base : séparation entre interface et réalisation Les descriptions de l interface d un service doivent être totalement indépendantes du mode de réalisation du service Facilite la portabilité Permet de remplacer une réalisation du service par une autre, à condition qu elle réalise la même interface 4 / 39

Notion d interface Système d exploitation Appels système Qu est-ce qu un système d exploitation? Le système d exploitation est l intermédiaire entre l ordinateur matériel et les applications qui l utilisent. emacs compilateur navigateur Système d'exploitation Interface Matériel 5 / 39

Rôles Notion d interface Système d exploitation Appels système Adaptation d interface Le système fournit une interface plus commode à utiliser que celle du matériel : plus haut niveau d abstraction dissimulation des limitations physiques et du partage des ressources entre utilisateurs Gestion de ressources Gère les ressources matérielles : mémoire, processeurs, disques... Gestion = allocation, partage, protection 6 / 39

Un mal nécessaire Notion d interface Système d exploitation Appels système Le système d exploitation est indispensable : pour gérer efficacement l exécution des programmes pour assurer le confinement des erreurs en cours d exécution pour gérer efficacement les ressources : processeurs, mémoires... pour offrir une interface d utilisation «agréable» aux usagers pour garantir une protection des données entre usagers 7 / 39

Un programme difficile à développer Notion d interface Système d exploitation Appels système Des programmes complexes qui ont eu un impact Sur le génie logiciel : Modularité Couches de logiciel Machine virtuelle Parallélisme Sur les architectures matérielles Notion de mode d exécution Mécanismes de protection mémoire Notion d interruption, de déroutement 8 / 39

Histoire Notion d interface Système d exploitation Appels système Source : S. Krakowiak «Introduction aux systèmes et réseaux informatiques». 9 / 39

Notion d interface Système d exploitation Appels système Interfaces d un système d exploitation Un système d exploitation présente en général plusieurs interfaces : interface de programmation (Application Programming Interface) utilisable depuis des programmes s exécutant sur le système ensemble d appels systèmes interface utilisateur (interface de commande) utilisable par un usager humain ensemble de commandes textuelles (exemple : rm foo.*) graphiques (exemple : déplacer l icône d un fichier vers la corbeille) l interface utilisateur est programmée au moyen de l interface de programmation 10 / 39

Exemples d interfaces sur Unix Notion d interface Système d exploitation Appels système Interface de programmation en C... while (nbbytes!= 0) { int lu = read (from, buf, MSGSIZE); if (lu <= 0) return ERROR; nbbytes -= lu; char *p = buf; while (lu!= 0) { int ecrit = write (to, p, lu); if (ecrit == -1) return ERROR; p += ecrit; lu -= ecrit; } } Interface textuelle de commande cp fic1 fic2 Interface graphique de commande Sélectionner l icône de fic1, appuyer sur la touche ctrl + déplacer l icône vers le dossier destination 11 / 39

API/ABI Notion d interface Système d exploitation Appels système ABI Application Binary Interface : définition d une interface au niveau du code exécutable : taille des types, convention d appels des fonctions, format des fichiers de code... API Application Programming Interface : définition d une interface au niveau du code source : noms des fonctions, types des paramètres... API système : API offerte par le système d exploitation (= les «appels systèmes») fd = open("toto.txt", O_RDONLY); read(fd, buf, 100); close(fd); API langage : API du langage de programmation, implantée via l API système open(fichier, Name => "toto.txt"); get_line(fichier, chaine); close(fichier); 12 / 39

Appels système Notion d interface Système d exploitation Appels système Le système d exploitation implante une machine abstraite système Tout programme exécutable peut faire appel aux instructions du noyau durant son exécution : appels système ou primitives du noyau Ces primitives implantent une machine système permettant d utiliser des concepts de haut niveau : processus, exceptions, mémoire virtuelle, fichiers, pipes, sockets, etc Ces primitives définissent une machine abstraite indépendante de la configuration matérielle sous-jacente Portabilité des programmes Ces primitives sont du code partagé par tout programme qui s exécute 13 / 39

Appels système Notion d interface Système d exploitation Appels système open(...) Mode utilisateur Mode noyau ou privilégié trap Application interface système i open(...) { // implantation de // l'appel système... return } 14 / 39

Appels système Notion d interface Système d exploitation Appels système Effectuer des opérations contrôlées, qu une application ne peut pas faire en mode utilisateur Droits différents entre mode applicatif et mode privilégié Similaire à un appel de procédure, mais vers du code noyau Interface noyau prédéfinie Support processeur pour basculer en mode privilégié (trap) Généralisation : anneaux de protection Distinguer les appels systèmes (open, write...) et les fonctions de plus haut niveau construites avec (en C : fopen, printf...) 15 / 39

Plan 1 Notion d interface Système d exploitation Appels système 2 3 4 16 / 39

apportés par l OS Gestion d activités déroulement de l exécution processeur processus Gestion d information conservation de l information partage de l information mémoire principale + disque mémoire virtuelle disque fichier Gestion des interactions interface avec l utilisateur impression, connexion réseau, périphériques d E/S écran, clavier, souris système de fenêtrage imprimante, réseau,... flot de données 17 / 39

Un processus est l entité dynamique représentant l exécution d un programme. Programme = description statique processus = activité dynamique Intérêt abstraction de la notion d exécution séquentielle, indépendance de la disponibilité effective d un processeur représentation des activités parallèles unité d allocation des ressources unité de protection et d isolation unité comptable 18 / 39

Forme d un programme Programme source int main() { printf("coucou"); } Fichier binaire exécutable En-tête Section de données initialisées Section de code... Table des symboles Table de relocation Table des identificateurs et chaînes Image en mémoire Segment de données initialialisées Segment de données non initialisées Segment de code... Segment Pile - Tas 19 / 39

Parallélisme et pseudo parallélisme P1 P2 exécution séquentielle P1 P2 exécution parallèle (2 processeurs) P1 P1 P2 P2 exécution pseudo-parallèle (1 processeur) une autre exécution pseudo-parallèle 20 / 39

(Pseudo-)parallélisme Faire s exécuter plusieurs processus à la fois (ou comme si) Ne pas bloquer le système quand un processus se bloque (entrée/sortie) Se protéger contre un processus qui boucle indéfiniment sans libérer le processeur Préemption Communiquer avec l environnement Flot de données Se protéger contre un processus qui lit ou écrit n importe où en mémoire (données d un autre processus ou données du système) Protection mémoire Donner l illusion que chaque processus a autant de mémoire qu il le souhaite Mémoire virtuelle 21 / 39

Préemption Ordonnanceur créé admission prêt sélection en exécution fin terminé interruption réalisation de l'e/s bloqué E/S ou attente d'événement partage du temps processeur interruption forcée du processus en cours pour libérer le processeur nécessité de sauvegarder le contexte d exécution du processus politique d allocation / sélection 22 / 39

Communications avec l environnement Un processus communique avec son environnement : par interruptions ou déroutements : signaux directement par flots de données entre processus (tube ou pipe) indirectement par flots de données liés à des données rémanentes : fichiers 23 / 39

Protection mémoire : un exemple élémentaire Verrou Verrou Verrou Verrou Verrou Verrou Verrou 11 11 11 01 01 00 00 11 Etat processeur 01 00 01 Clé Besoin d une clé passe-partout Nécessité d interdire la programmation des verrous et du registre clé : Modes d exécution Solution actuelle : les Unités de Gestion Mémoire (MMU : Memory Management Unit) 24 / 39

Mémoire virtuelle Mémoire virtuelle d un processus Ensemble des emplacements accessible à ce processus, via une adresse dite virtuelle. Fenêtre sur l ensemble des informations accessibles (le processeur ne peut adresser qu un espace limité) Gestion économique des ressources : l espace disque est beaucoup moins cher que la mémoire RAM Indépendance et protection des processus : chaque processus a sa propre mémoire virtuelle 25 / 39

Mémoire virtuelle Source : S. Krakowiak «Introduction aux systèmes et réseaux informatiques». 26 / 39

Fichier Ensemble d informations regroupées en vue de leur conservation et de leur utilisation ultérieure Système de gestion de fichiers (SGF/FS) Partie du système d exploitation qui conserve les fichiers et permet d y accéder Conservation permanente des fichiers = indépendamment de l exécution des programmes et de l intégrité de la mémoire principale Organisation logique et désignation Partage et protection des fichiers 27 / 39

Organisation du SGF Désignation système Interfaces langage C noms symboliques noms symboliques descripteurs de fichier inodes adresses sur disque langage de commande Gestion logique Gestion Physique commandes appels système interface interne Entrées-sorties physiques libc 28 / 39

Désignation symbolique Organisation hiérarchique Les noms forment une arborescence Nœuds intermédiaires = répertoires/directories (ce sont aussi des fichiers) Nœuds terminaux = fichiers simples (toto.c) Nom absolu = chemin d accès depuis la racine (/home/queinnec/toto.c) Nom relatif = chemin relatif au répertoire courant (../queinnec/toto.c) 29 / 39

Flot de données Tout accès à l information «fichier» est faite exclusivement par des flots de données : séquence d octets non structurés lire = consomme dans le flot / écrire = ajoute dans le flot s oppose à un accès mémoire (RAM = accès «aléatoire») ou un accès structuré (base de données) exemple de flots = entrée clavier / fichier sur disque / lien réseau des bibliothèques utilisateur peuvent fournir des interfaces plus adaptées (e.g. lignes de caractères) 30 / 39

Flots de données... proc. écran? fichier Un processus peut ouvrir/fermer dynamiquement des connexions à des sources ou puits de données, via la notion de canal de communication = descripteur de fichier. Un processus hérite à sa création d un environnement de communication standard 31 / 39

Interruptions Interruptions externes : fin d E/S, horloge... Interruptions internes : division par zéro, branchement illégal... déroutement vers une routine Traitement interne au noyau : p.e. défaut de page mémoire utilisateur synchrone : p.e. E/S bloquante utilisateur asynchrone : p.e. signal 32 / 39

Plan 1 Notion d interface Système d exploitation Appels système 2 3 4 33 / 39

Démarrage / boot Si le système d exploitation est un programme qui permet le démarrage et l exécution des programmes, qui démarre le système? 1 À la mise sous tension, un programme en ROM s exécute (le BIOS sur PC) ; 2 Ce programme consulte les périphériques permanents (disque dur en général), charge en mémoire le premier bloc (master boot record) du premier périphérique présent et exécute le code contenu dans ce bloc ( 400 octets) ; 3 Ce code contient l emplacement + le code pour charger un second chargeur (de taille arbitraire) : après chargement, il transfère le contrôle à ce chargeur ; 4 Ce second chargeur peut présenter un menu de sélection entre plusieurs OS, charge en mémoire l image de l OS choisi (ou par défaut), et lui transfère le contrôle ; 5 L OS récupère la mémoire utilisée par les chargeurs initiaux. 34 / 39

Les processus La machine à processus 1 couche contexte d exécution 2 couche pseudo-parallèle (coroutine = contexte indépendant du matériel) 3 couche parallèle (processus) 4 ordonnanceur Mémoire virtuelle 1 principe 2 lien avec l ordonnanceur 35 / 39

Système de fichiers Les couches 1 couche physique : accès blocs disque 2 couche gestion des blocs (allocation/libération) 3 couche bufferisation des blocs en mémoire 4 couche inodes 5 couche accès fichier : descripteur de fichier 6 couche désignation/nommage 36 / 39

Plan 1 Notion d interface Système d exploitation Appels système 2 3 4 37 / 39

Un système d exploitation... est un (ensemble de) logiciel(s) qui fournit : des unités d exécution et d allocation de ressources (processus) la gestion des données temporaires (mémoire virtuelle) la gestion des données rémanentes (fichiers) en masquant le plus possible les détails matériels. 38 / 39

Un programme un peu particulier Réactif : requête réponse Indispensable : sans lui, difficile de faire exécuter un programme à une machine Service commun utilisable par tous les autres programmes Cohabitation de programmes en mémoire centrale Robuste vis-à-vis des programmes exécutés Parallèle : entrelace l exécution de plusieurs programmes De taille respectable Discret (performance, adpatations nécessaires) Très fiable 39 / 39