Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation les exploite. Plan des systèmes d’exploitation Processus,

Slides:



Advertisements
Présentations similaires
Active Directory Windows 2003 Server
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
PC / Traitement numérique / Contrôle Environnement logiciel
Module 5 : Implémentation de l'impression
Erratum C Surcharge For(int x=0; … 2.
TECHNOLOGIE DES ORDINATEURS
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Types des systèmes d’exploitation
Chapitre I : Systèmes d’exploitation
Chapitre 3: Système d’exploitation
Formation Technique 6èmepartie.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Le Concept du programme enregistré
Mémoire & Processus Cours SE - SRC
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Architecture de machines Principes généraux
Systèmes d’exploitation
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Active Directory Windows 2003 Server
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
LA CARTE MERE PROJET REALISER PAR : BELGHITI ALAOUI Anas.
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Informatique générale
Module 1 : Préparation de l'administration d'un serveur
Les Systèmes d’Exploitation
Synchronisation et communication entre processus
II. Chaînage, SDD séquentielles
Réalisée par :Samira RAHALI
Serveurs Partagés Oracle
Système d’exploitation
Configuration de Windows Server 2008 Active Directory
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Allocation de mémoire Allocation de mémoire.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Logiciel gratuit à télécharger à cette adresse :
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
IFT 6800 Atelier en Technologies d’information
Module 1 : Installation de Windows 2000 ou mise à niveau vers Windows 2000.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Réalisé par Mr CALVO du Lycée Bon Secours à PERPIGNAN
Les Systèmes d’Exploitation
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Systèmes d’exploitation
Qu’est-ce qu’un système d’exploitation ?
Systèmes d’exploitation
Le langage C Rappel Pointeurs & Allocation de mémoire.
Introduction aux systèmes d’exploitation
SYSTEMES D’EXPLOITATION
Gérer la sécurité des mots de passe et les ressources
Cours des Systèmes d’exploitations
Architecture Chapitre 4 Interruptions. 2 Plan Principe Schéma d’acquisition Les états d’une interruption Décentralisation des interruptions Exemples.
Module 8 : Surveillance des performances de SQL Server
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
AFPA CRETEIL 1-1 Windows NT Environnement Windows NT Chapitre 1.
B.Shishedjiev -Logiciels
Cours de Systèmes d’exploitations
La programmation système
Programmation Système et Réseau
ISBN Chapitre 10 L'implémentation des sous- programmes.
Structure de stockage et relations
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
1.1: notions de bases de l’informatique
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Transcription de la présentation:

Système Exploitation Après avoir vu les machines, nous voyons comment le système d’exploitation les exploite. Plan des systèmes d’exploitation Processus, ordonnancement Commutation de contexte Gestion Fichiers Utilitaires Système répartis Présentation Windows NT

Introduction Un « Ordinateur » ne peut fonctionner qu’avec un Système d’exploitation : son rôle. Gestion de l’information : stockage, rechercher, communication Exploitation des programmes : lancer, arrêter, gérer,.. L'exécution des commandes d'entrée/sortie : Pas d’accès direct au matériel. la gestion de la mémoire, y compris la virtuelle. la gestion des fichiers la multi-programmation (« multi-tâche ») :

Questions Comment exécuter plusieurs programmes à la fois ? Et si ces programmes veulent tous accéder à l 'imprimante en même temps ? Et s'ils doivent échanger des informations Comment exécuter un seul programme avec plusieurs processeurs ? la sécurité (gestion des accès,...)

Tâches d’un Système Exploitation Exécution des commandes, avec un langages Gestion de la mémoire Gestion des fichiers Multi programmation Plusieurs programmes à la fois Accéder plusieurs à la fois sur la même ressource La sécurité

le rôle d’un système d’exploitation Offre aux utilisateurs une machine virtuelle plus simple d’emploi que la machine réelle (appels systèmes). Il gère et contrôle le matériel Gérer les “périphériques” Interface avec les moniteurs de ces équipements

Que doit faire l’OS ? Assurer le chargement du programme en mémoire “Chargeur”, ou “loader” Fourniture de la mémoire “Gérer” le programme chargé en mémoire Permettre son interruption, son redémarrage… Enchaînement des travaux Exemple : compilation, édition de liens, chargement et exécution

En supplément du SE Un langage de commande Divers utilitaires (compilateurs, éditeurs, outils, communication, gestion fichiers, sauvegardes, ...) Une interface graphique pour l'utilisateur

Quelques SE

Caractéristiques de l’ordinateur nu Matériel : processeur, mémoire, périphériques Gestion de ces éléments Un périphérique tel qu’un disque est extrêmement compliqué à gérer Imprimante pour plusieurs machines Ligne de connexion à distance… Il faut disposer au minimum d’un ensemble de “sous- programmes” sachant prendre en charge ces tâches fastidieuses et répétitives

Qu’est-ce qu’un “équipement” ? Un accessoire de la périphérie d’un ordinateur disque imprimante modem… Une carte, avec des circuits spécialisés pour la gestion de l’équipement, des circuits de communication avec l’ordinateur principal, et un “moniteur” gérant un micro- processeur Moniteur ou driver

Moniteur Un moniteur a une vocation déterminée Service bien défini et toujours le même Programme chargé de contrôler un équipement ROM : contient le programme sous une forme inaltérable RAM : mémoire de travail Fournit une interface “standard” du point de vue logiciel Le matériel est “propriétaire” L’interface répond à une spécification “universelle” Exemples : disque à la norme SCSI, IDE imprimante “postscript”

Difficulté de réaliser les entrées/sorties sur la machine nue Appel de sous-programmes utilitaires liés avec le programme principal Chargement à chaque exécution, taille importante des applications Exemple : printf Appel de sous-programmes “systèmes” toujours présents “Noyau” [kernel] du système d’exploitation méthodes “spéciales” d’appel : “appel système” une instruction spécifique génère une interruption (trap)

Appel système Similaire à un appel de sous-programme : Passer des paramètres Réaliser une fonction Obtenir un résultat [code de retour] Différence : “changement de mode” Passage du “mode utilisateur” au “mode système”

Modes kernel ou “mode système” Permet l’utilisation d’instructions “privilégiées” interdites en mode programme et provoquent une erreur [exception] permet l’accès à toutes les ressources de la machine gestion des périphériques ensemble de la mémoire L’accès aux matériel oblige de passer par le mode Noyau ce qui protège la machine.

Gestion du changement de mode Sauvegarder l’état du programme courant Registres Indicateurs d’état : PSW “Program Status Word” Passer en “mode système” Décoder la raison d’être du changement Décoder les paramètres

Passage en “mode système” Évènements synchrones Instruction spéciale Requête au système Erreur du programme : “exception” Instruction illégale Écriture dans une zone de mémoire protégée Évènements asynchrones Interruption “extérieure” Provoquée par l’utilisateur [bouton reset] Provoquée par un moniteur gérant un périphérique externe

Comment fonctionne une interruption ? Une interruption arrive “n’importe quand” Provoquée par le moniteur, ou le contrôleur d’une carte périphérique Changement de niveau électrique sur une/+ pattes du processeur Matériel : la “nature”, ou le “niveau” sont pris en compte Ensemble d’adresses de sous-programmes spécialisés pour chaque type d’interruption : le “vecteur d’interruption” Instruction de “retour” d’interruption

Gérer l’interruption Être complètement transparente au programme en cours - au moins pour une E/S Attente de la fin de l’instruction en cours Sauvegarde : registres, pile, indicateurs d’état, pointeur d’instruction Un code spécifique gère l’interruption Peut-on interrompre ce code ? Masquage/démasquage des interruptions Différents niveaux d’interruptions : priorités relatives des interruptions

Les interruptions du 80x86 16 interruptions et exceptions prédéfinies “vecteurs” 0 à 8, 10 à 14, 16, 18 224 “interruptions” définissables par l’utilisateur 0 Division par zéro 1 Debug 2 Interruption Externe non masquable 3 Breakpoint [INT 3] 4 Overflow 6 Code opération illégal 7 Processeur mathématique absent 13 Protection mémoire 19-31 Réservé

Vision applicative du 80x86 Registres et mémoire visibles par le programmeur Mémoire 4 Go EIP

Un exemple : le BIOS du PC “Basic Input/Output System” A quoi sert le BIOS ? Mise en œuvre du PC au démarrage “POST” : Power-On Self Test Charger des programmes depuis une disquette ou un disque dur Charger le DOS - Système d’opération du PC Assurer une gestion élémentaire des périphériques Clavier, Écran, Ports d’E/S, cartes vidéo, etc...

Sous quelle forme se présente le BIOS En général, une ROM Utilise une partie de la RAM Gère une mémoire CMOS rémanente Décrit la “configuration” du système Tous les BIOS sont différents : cartes mères, périphériques, bus, constructeur…

Système Exploitation : Le DOS “Disk Operating System” MS-DOS Conçu par Microsoft à la demande d’IBM Première version : 1980 But : Gestion de plus haut niveau des périphériques Gestion du système de fichiers Enchaînement des tâches

Les services du DOS S’obtiennent à travers l’instruction INT 21h Paramètres dans des registres Un certain registre (ah) contient un numéro de fonction Autres paramètres éventuels dans des registres MS-DOS préserve les valeurs des registres (sauf s’il fournit des résultats dans certains d’entre eux)

Autres types de fonctions Gestion de l’heure / date Lire, écrire les informations concernant l’heure et la date Maintenues par un mécanisme spécifique : RTC, “real time clock” Gestion de la mémoire Allouer un bloc de mémoire Libérer un bloc de mémoire Modifier la taille d’un bloc de mémoire Possibilité d’influer sur les stratégies d’allocation

Gestion du système de fichiers Fonctions de haut niveau Ouverture de fichiers Nom du fichier, nature de l’accès [lecture, écriture, màj] Création de fichiers Fermeture de fichiers Effacement, renommage de fichiers Lecture, écriture, déplacement de pointeur, etc... Traitement des anomalies, comptes-rendus

Résumé : BIOS et DOS BIOS : un “moniteur résident” qui offre des fonctions de bas niveau, et permet le chargement de DOS Fournit à DOS une vision “standard” de la machine DOS : un système d’exploitation qui : Assure l’enchaînement & la gestion des tâches Fournit aux programmes des services de haut niveau : gestion de la mémoire gestion des périphériques en particulier, système de fichiers

Notion de “Tâche” DOS ne permet qu’un “travail” à la fois : Le programme de l’utilisateur, ...ou DOS lui-même, réalisant une opération pour le compte de ce programme Système monotâche Avantages : simplicité de conception, taille raisonnable, etc. Inconvénient : utilisation médiocre des ressources de la machine

Système Multitâches Partage les ressources entre plusieurs processus Ressources : mémoire, processeur, périphériques… Processus : un programme en cours d’exécution Caractéristiques : Système plus complexe Nécessite des ordinateurs disposant de plus de ressources Permet une meilleure utilisation des caractéristiques de la machine Exemple : programmes réalisant des E/S

Système Multi-utilisateurs Notion d’utilisateur : Personne “autorisée” à utiliser la machine Mécanisme d’authentification Notions de droits relatifs à une ressource [ex: fichier] Problèmes de protection et de partage des ressources. Peu de différences avec un système multi-tâches

Que partager : L’unité centrale Plusieurs programmes peuvent s’exécuter en même temps Une seule CPU, mais... un programme réalise des E/S, pendant lesquelles la CPU est “inactive” un autre programme peut utiliser la CPU pendant ces attentes Comment s’assurer d’un partage de temps équitable Permettre à tous les programmes de progresser régulièrement pouvoir interrompre un programme, par exemple à intervalles de temps fixes : les horloges, “timers” Utiliser au mieux la CPU

Que partager : La mémoire centrale Plusieurs programmes peuvent cohabiter en mémoire “bonne programmation” mécanismes de protection mutuelle système de gestion matérielle de la mémoire Comment fournir aux programmes la mémoire dont ils ont besoin, au moment où ils en ont besoin ? gestion de la mémoire Les périphériques Les périphériques physiques Imprimante :queues d’impression, ou “spool” Disques :systèmes de gestion de fichiers

Comment partager : File d’attente Imprimante, requêtes disque Les données à imprimer sont conservées dans une file d’attente espace mémoire, espace disque, priorités, etc... Les requêtes passent par l’intermédiaire de “tampons” une suite d’écritures de petite taille sur un fichier est transformée en une seule écriture d’élément de taille plus importante

Périphériques Non directement connectés au bus Grande variété des équipements La CPU ne peut “connaître” tous les types/modèles de périphériques : commandes très variées Débits non compatibles avec celui du bus Différentes représentations des données Module(s) d’entrée/sortie Assurer l’interface entre : CPU & Mémoire Équipement

Module d’entrée/sortie Interface processeur/équipement Vision “standard” d’une catégorie d’équipement disque, imprimante, etc Réalise une partie de la “gestion” du périphérique libère la CPU pour d’autres tâches Interface fournissant : Contrôle État Données

Mémoire : les besoins L’informatique a toujours besoin de plus de mémoire Programmes plus ambitieux Programmes plus gourmands en mémoire A l’échelle d’une machine : plus de mémoire = plus de ressources, meilleure utilisation de celles-ci A l’échelle d’un programme : plus de mémoire = plus de “puissance individuelle” besoins multipliés par 1.7 chaque année

Mémoire : les besoins de l’OS De la mémoire, encore plus de mémoire Besoins propres du système : TSM [1976] : 8 ko. Solaris 2.4 [1996] : 14 Mo. Besoins “auxiliaires” du système : Outils divers [mail, serveurs ftp, http, gestionnaire de fenêtres…] Répondre aux besoins des utilisateurs Les applications deviennent de plus en plus grosses, tout comme les données manipulées Le multi-tâche encourage à exécuter plusieurs applications simultanément

Mémoire : les besoins des programmes Mémoire Globale Variables et tableaux : toujours plus Mémoire locale Allocation automatique [connue du compilateur] Allocation dans la pile [alloca] Mémoire dynamique Allocation dynamique sous contrôle du programme new/delete, malloc/free Allocation “transparente” [sous-programmes système, E/S, fenêtres…]

La vision “utilisateur” Gestion dynamique de la mémoire C : malloc, free C++ : new, delete Comment : l’allocateur de mémoire Procédures qui : reçoivent les requêtes de l’application gèrent de la mémoire, statique ou demandée au système divisent les gros blocs pour répondre à des demandes fines rassemblent les petits blocs libres si possible

malloc(), free() Allocation dynamique de mémoire dans le tas Fournir un bloc de mémoire de la taille demandée, situé à une adresse mémoire “convenable” void * malloc(size_t size); Prise en compte des particularités d’adressage du processeur Libérer un bloc de mémoire void free(void * ptr); ptr doit être null ou l’adresse d’un bloc fourni par malloc

new, delete() Vision C++ Création d’un objet = allocation de mémoire + initialisation Destruction d’un objet = gestion de la destruction + libération de la mémoire Primitives de “haut niveau” On peut utiliser new, delete, malloc et free dans un même programme Les objets créés par new doivent être libérés par delete La mémoire allouée par malloc doit être libérée par free

Gestion de mémoire par chaînage Informations de contrôle zone libre après deux allocations après une libération après une troisième allocation après une quatrième allocation La mémoire devient fragmentée. Une nouvelle demande de mémoire peut échouer car il ne reste plus de bloc de mémoire contiguë de taille suffisante

Aspects Type d’allocation First fit : le premier rencontré en partant du début de la liste Next fit : un first fit où l’on explore à partir de la position courante Best fit : on parcourt toute la liste pour trouver le “meilleur” libre Worst fit : on parcourt tout et on choisit le plus gros… Curieux ? Fragmentation de la mémoire Beaucoup de petits morceaux ne remplacent pas un gros bloc On ne peut, en général, pas déplacer les blocs de manière “transparente” aux programmes Influer sur l’algorithme d’allocation n’est qu’un pis-aller

Améliorations possibles Caractéristiques du chaînage Simple : allocation/désallocation plus rapide Double : réunification des blocs plus simple Séparer la liste des blocs libres et des blocs utilisés Listes multiples On maintient les blocs libres dans différentes listes, en fonction de leur “classe” de taille allocation plus rapide libération plus complexe

Bugs typiques dans les programmes Utiliser de la mémoire qui n'est pas/plus allouée Fournir en résultat d’une fonction l’adresse d’une variable locale Oublier de désallouer une zone allouée par malloc() Désallouer deux fois une zone allouée par malloc() Déborder d’une zone allouée par malloc() Ne pas tester le résultat de malloc() Utiliser alloca() sans en comprendre le fonctionnement Mélanger les allocations de haut et de bas niveau malloc/free et new/delete etc…

Commande de procédés industriels. Temps réel Un ordinateur qui contrôle un procédé industriel doit veiller sur un ensemble de paramètres physiques et engager des actions en fonction de leurs valeurs. Les délais de réponse peuvent être très courts et doivent être toujours garantis Les informations doivent être acquises sur les différents dispositifs d'entrés périodiquement. Le traitement de ces informations est effectué en un temps maximum T. Les fonctions de sécurité sont prioritaires avec un outil de gestion des priorités.

Systèmes transactionnels Gérer un ensemble d'informations structurées de grande dimension (Go), appelé base de données . Ces informations sont consultées, modifiées simultanément à partir d'un grand nombre de points d'accès, terminaux ou micro-ordinateurs. En cas d'interruption du service il faut pouvoir redémarrer les nombreuses activités parallèles de façon cohérente sans perte d'information, dans l'état exact où était le système avant cette interruption. On mesure les performances en nombre de transactions par secondes (TPS)

Systèmes en temps partagé Donner aux utilisateurs l'impression qu'ils sont chacun seul en face de la machine. Il faut donc ajouter les services adéquats pour tenir compte de l’utilisation par un grand nombre de personnes. Exemple : 90% du temps est utilisé pour la réflexion, soit 10% d’utilisateurs actifs. Si le SE alloue des tranches de temps de 50 ms à chacun temps d'attente moyen = 0,5s pour 10 utilisateurs

Donner un exemple de SE pour chaque type Ordinateur individuel DOS, Windows 95, 98 ,Millénium, Linux Temps réel MVS, RTE, … Systèmes transactionnels Gros Système, VMS Systèmes en temps partagé Les UNIX, Windows NT Server, W2000, XP à voir?