32
NFP136 – Systèmes d’exploitation d’exploitation Cours 2 Cnam 2012/2013 – C. Coquery / E. Soutif

NFP136 cours systemes 2 - Deptinfo

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NFP136 cours systemes 2 - Deptinfo

NFP136 – Systèmes d’exploitationd’exploitation

Cours 2

Cnam 2012/2013 – C. Coquery / E. Soutif

Page 2: NFP136 cours systemes 2 - Deptinfo

Plan de l’exposé

1. Introduction à Unix

2. Structure d'un système

3. Les processus

4. La mémoire

Bibliographie

2

� BOUZEFRANE Samia Les Systèmes d’exploitation : cours et exercices corrigés UNIX, Linux et Windows XP avec C et Java Dunod 2003

� Pour une étude avancée : SILBERSCHATZ,GALVIN,GAGNE Operating System Concepts withJava Wiley 2007

� RIFLET La programmation sous Unix Ediscience

� Historique :

� GOODHEART,COX The Magic Garden Explained. The Internals of Unix system V release 4 Prentice Hall 1994

� C.KAISER Systèmes Informatiques Cours B4 Polycopié CNAM

NFP136 - Systèmes d'exploitation – Cours 2

Page 3: NFP136 cours systemes 2 - Deptinfo

1 - Introduction à Unix3

� Origines d'Unix Deux principales versions :� 1969 Naissance d'Unix Ken

Thompson , puis Dennis Ritchie PDP-11 Laboratoires Bell → Unix Système V

� 1978 Université de Berkeley VAX

NFP136 - Systèmes d'exploitation

� 1978 Université de Berkeley VAX → 4.4 BSD

� Standardisation de l'interface des appels systèmes Norme POSIX

� Unification système OSF/1

� 1991 Naissance de Linux Linus Thorvalds conçu pour PC et Internet

Page 4: NFP136 cours systemes 2 - Deptinfo

Principes de conception d'Unix4

� Système conçu par et pour des programmeurs

� Modularité et flexibilité

� Simplicité des algorithmes

� Interactivité et outils d'aide à la programmation

NFP136 - Systèmes d'exploitation

� Interactivité et outils d'aide à la programmation

� Portabilité la plupart des programmes sont écrits en C

� il suffit de disposer d'un compilateur C pour la machine cible

� Programmation de bas niveau à partir de C

Page 5: NFP136 cours systemes 2 - Deptinfo

Caractéristiques5

� Systèmes multiprocessus : multiutilisateurs, multitâches

� Organisation basée sur un système de fichiers hiérarchisé : arborescence

� Environnement d'exécution d'un utilisateur � sous-arbre (répertoire)

� l'interpréteur du langage de commande (shell) est un processus

NFP136 - Systèmes d'exploitation

� l'interpréteur du langage de commande (shell) est un processus utilisateur

� Machine virtuelle pour l'utilisateur � Uniformisation des mécanismes d'accès aux objets externes :

� "Tout est fichier" :� programmes, données des utilisateurs

� programmes systèmes

� périphériques

Page 6: NFP136 cours systemes 2 - Deptinfo

2 – Interface de programmation6

� Appels systèmes

� Types d’appels système

� Manipulation de fichiers

� accès par un chemin dans l'arborescence des répertoires Unix

� périphériques /etc/ttys

programmes systèmes /usr/bin

NFP136 - Systèmes d'exploitation

� programmes systèmes /usr/bin

� fichiers utilisateurs /usr/...

� appels : create, open, read, write, close etc...

� Gestion des processus

� fork, exec, exit , kill, wait, sleep,wake-up...

� Signaux

� conditions exceptionnelles → interruption logicielle

� référence mémoire invalide, alarme, instruction machine illégale

� exemple ctrl Z → SIGINT suspension du processus en cours

Page 7: NFP136 cours systemes 2 - Deptinfo

3 – Les processus7

� Programme en exécution

� code, données + mot d’état programme et contexte d'exécution

� Le mot d’état programme (PSW) : état de la machine

� compteur du programme (Compteur Ordinal)

� registres de l'UC

NFP136 - Systèmes d'exploitation

� registres de l'UC

� Le contexte d’exécution

� statut d'accès à l'UC (priorité)

� information sur la mémoire allouée au processus

� informations statistiques

� Informations d'E/S (fichiers,périphériques alloués)

� etc…

Page 8: NFP136 cours systemes 2 - Deptinfo

Les processus8

� Etats d'un processus en multiprogrammation

NFP136 - Systèmes d'exploitation

� Ordonnancement des processus

� Files d'attente + ordonnanceur pour chaque ressource

Page 9: NFP136 cours systemes 2 - Deptinfo

Les processus9

� Opérations sur les processus� Création

� Terminaison normale ou erreur

� Suspension, réveil

� Coopération entre processusProcessus concurrents : indépendants ou coopérants

NFP136 - Systèmes d'exploitation

� Processus concurrents : indépendants ou coopérants� partage d'information exemple fichier partagé� synchronisation : division d'un programme en plusieurs tâches

concurrentes

� Communication entre processus : outils IPC� partage de mémoire

� messages

Page 10: NFP136 cours systemes 2 - Deptinfo

Représentation d'un processus en mémoire10

� pile noyau : exécution de programmes systèmes pour l'utilisateur lors d'appels système

� contexte utilisateur : � contexte UC (registres généraux,

pointeur de pile, pointeur table des pages)

NFP136 - Systèmes d'exploitation

des pages)

� environnement

� table des pages

� table des processus

� pile utilisateur � variables temporaires,

� adresse retour de procédures ...

Page 11: NFP136 cours systemes 2 - Deptinfo

Vue d'un processus par le système11

NFP136 - Systèmes d'exploitation

Page 12: NFP136 cours systemes 2 - Deptinfo

Création de processus12

� Appel système fork() :

� crée une copie du processus appelant : contexte, pile, code, données, un lien dans la table des processus de l'utilisateur

� Remarques

� En fait, le code n'est pas dupliqué mais partagé (réentrance des programmes), les données ne sont copiées que si elles sont modifiées par le père ou par le fils, le fils aura toujours initialement la vue des données lors du fork

Les fichiers du père ouverts au moment du fork sont partagés entre le père et le fils

NFP136 - Systèmes d'exploitation

� Les fichiers du père ouverts au moment du fork sont partagés entre le père et le fils

� Comment savoir si un processus exécute le code du père ou du fils ?

� fork renvoie un identifiant de processus pid

pid=fork(); si fork réussit pid>=0si pid<0 alors échecsinon si pid>0 alors code du pèresinon code du fils

� Un processus peut avoir un arbre de descendants

� La commande ps permet de connaître les processus d'un utilisateur et les processus système s'exécutant pour lui

Page 13: NFP136 cours systemes 2 - Deptinfo

Création de processus13

� Exemple : gestion de terminaux

� A l'initialisation, init est activé -- lecture /etc/ttys

� Création d'un fils pour chaque terminal;

� mise en veille de init jusqu'à ce qu'un fils se termine

� exécution des fils

NFP136 - Systèmes d'exploitation

� exécution des fils

� programme login

� création du processus shell

� tant que non terminé faire

� attente d'une commande

� création du processus commande

� exécution de commande

Page 14: NFP136 cours systemes 2 - Deptinfo

Création d'un processus pour exécuter un programme

14

� création appel système fork()

� exécution des commandes : appel système exec()

� charge un nouvel exécutable en mémoire

� terminaison d'un processus exit()

NFP136 - Systèmes d'exploitation

� attente de la terminaison d'un fils wait()

Page 15: NFP136 cours systemes 2 - Deptinfo

Les états d’un processus15

NFP136 - Systèmes d'exploitation

Page 16: NFP136 cours systemes 2 - Deptinfo

Ordonnancement du processeur16

� Temps partagé : allocation par quantum de temps (0.1s) aux processus

� Ordonnancement selon priorités : à chaque est associée une priorité� processus du noyau plus forte priorité

(p<0), non préemptible

NFP136 - Systèmes d'exploitation

(p<0), non préemptible

� processus utilisateurs plus faible priorité (p>0), préemptible,

� périodiquement (1 s) réévaluation des priorités

� File d'attente des processus prêts� tableau de files par priorité

� recyclage dans la file en fin de quantum (tourniquet)

� Activation de l'ordonnanceur� interruption horloge

� demande d'E/S

� fin d'E/S

� attente d'un événement

Page 17: NFP136 cours systemes 2 - Deptinfo

Notion de thread ou processus léger17

� Définition : un thread est un fil d’exécution au sein d’un processus :� Identificateur

� Compteur de programme

� Registres

Pile

� Avantages de l’utilisation de threads

� commutation de contexte allégée

� temps de réponse amélioré, parallélisme des tâches

� partage des ressources

� utilisation de multiprocesseurs

NFP136 - Systèmes d'exploitation

� Pile

� Un thread partage avec les autres threads appartenant au même processus� le code

� les données

� les ressources du processus(fichiers ouverts, signaux…)

� utilisation de multiprocesseurs

� Mais attention à la synchronisation

� Threads utilisateurs via des API (interfaces de programmation)

� Les bibliothèques

� POSIX pthreads Unix, Linux langage C

� Win32 Windows

� Threads JAVA uilisent les API Windows ou UNIX

Page 18: NFP136 cours systemes 2 - Deptinfo

4 – La mémoire18

� Espaces d’adressage d’un programme� Espace d'adressage physique : ensemble des adresses en mémoire centrale des

instructions et des objets que le programme référence

� Espace d'adressage logique (virtuel) : En général, le programme est enregistré sur disque comme un fichier binaire exécutable, l’ensemble d’adresses mémoire ne prenant pas en compte l’implantation du programme en mémoire.

� Correspondance entre les espaces d' adressage logique et physique

NFP136 - Systèmes d'exploitation

� Correspondance entre les espaces d' adressage logique et physique

� Quand ?� à la compilation :

� adresse d'implantation en mémoire connue

� code absolu adresses du programme=adresses mémoire

� Inconvénient si l'adresse d'implantation change, il faut recompiler

� au chargement :� code relatif (relogeable, translatable)

� à l'exécution : le programme peut changer de place en mémoire en cours d'exécution.

� Un dispositif matériel spécifique (Memory Management Unit) transforme une adresse logique en une adresse physique au moment de l’exécution.

Page 19: NFP136 cours systemes 2 - Deptinfo

Va-et-vient (swapping)19

� Principe

� Manque de mémoire : transfert de l'image mémoire du processus sur disque ⇒ Va

NFP136 - Systèmes d'exploitation

sur disque ⇒ Va (swapping out)

� Assez de mémoire :chargement du processus ⇒ Vient (swapping-in)

Page 20: NFP136 cours systemes 2 - Deptinfo

Swapping20

� Fonctionnement� Manque de mémoire : allocation dynamique de mémoire :

processus augmente son espace mémoire au cours de son exécution, l'espace libre diminue au détriment d'autres processus

� Le choix d'un processus : réalisé par le

NFP136 - Systèmes d'exploitation

� Le choix d'un processus : réalisé par le "swapper"(ordonnancement des processus pour la mémoire)

� Périodiquement (4s) réévaluation des processus à retirer et à charger

� Critères de choix :� retrait : inactivité d'un processus depuis longtemps, taille du

programme, ancienneté de chargement� chargement : swappé depuis longtemps, petit programme

Page 21: NFP136 cours systemes 2 - Deptinfo

Swapping21

� Les actions du système� Retrait :

� mise à jour du descripteur de processus, libération de la � mémoire, libération des ressources allouées au processus� problèmes : entrées sorties pendantes, attente d'un événement

� Chargement :

NFP136 - Systèmes d'exploitation

� Chargement :� mise à jour du descripteur, allocation de mémoire, allocation d'autres

ressources

� Remarques� Le swapping n'est en général utilisé qu'en dernier ressort dans les

systèmes Unix (Version Berkeley) coût de transfert d'un processus en mémoire; la gestion est en amont par le mécanisme de pagination

Page 22: NFP136 cours systemes 2 - Deptinfo

La pagination22

� Principe

� Allocation par blocs de taille fixe :

� Mémoire physique = suite de blocs de taille fixe : cases

� Mémoire logique = suite de blocs de taille fixe : pages

� Taille case = taille page

NFP136 - Systèmes d'exploitation

� Taille case = taille page

� Correspondance par le MMU (Memory Management Unit)

� Adresse logique :

� n° de page

� déplacement

Page 23: NFP136 cours systemes 2 - Deptinfo

La pagination : conversion adresse virtuelle en adresse physique

23

NFP136 - Systèmes d'exploitation

Page 24: NFP136 cours systemes 2 - Deptinfo

Modèles de pagination de la mémoire logique et physique

24

NFP136 - Systèmes d'exploitation

Page 25: NFP136 cours systemes 2 - Deptinfo

Mémoire virtuelle25

� Objectif : offrir à l'utilisateur un espace d'adressage supérieur à la place mémoire allouée

� Principe de localité

� un processus exécute pendant un certain temps une partie du code (localité temporelle) et utilise une partie

NFP136 - Systèmes d'exploitation

partie du code (localité temporelle) et utilise une partie des données (localité spatiale).

� Idée : ne maintenir en mémoire que le code et les données utiles, l'ensemble du programme étant conservé sur disque de pagination

�⇒ allocation d'espace disque à la création des processus

Page 26: NFP136 cours systemes 2 - Deptinfo

Mémoire virtuelle paginée26

NFP136 - Systèmes d'exploitation

Page 27: NFP136 cours systemes 2 - Deptinfo

Fonctionnement du MMU27

� Recherche d'une instruction ou d'un opérande en mémoire� si page présente en mémoire alors adresse= n°case +

déplacement

� sinon défaut de page

� Défaut de page ⇒ appel système gestion des défauts de pages

NFP136 - Systèmes d'exploitation

pages� si case libre alors charger page dans la case

� sinon libérer une case : choisir une case occupée;

� transférer la page correspondante sur disque;

� charger la page en défaut dans la case;

� Choix d'une case ⇒ algorithme de remplacement de pages, par exemple choisir la page la plus anciennement référencée (LRU)

Page 28: NFP136 cours systemes 2 - Deptinfo

Compléments : les fichiers sur Unix28

� Le fichier logique� Vu par le programme, c’est une collection

d’enregistrements éventuellement structurée

� Les opérations élémentaires (lire, écrire) manipulent un

NFP136 - Systèmes d'exploitation

� Les opérations élémentaires (lire, écrire) manipulent un ensemble de données minimal l’enregistrement ou article

� Le fichier physique� C’est le fichier logique mémorisé sur le support magnétique

Page 29: NFP136 cours systemes 2 - Deptinfo

Implantation sur disque29

� Structuration d’un disque

Une tête (300 km/h!)

Les disques tournent à 7200 tours/min

Les deux faces

sont utili sées

Un secteur

NFP136 - Systèmes d'exploitation

BRAS

sont utili sées

une piste

Uncylindre

Typiquementde 2 à 20 faces

Un disque = plusieurs GoUn secteur = 512 à 8192 octets

Page 30: NFP136 cours systemes 2 - Deptinfo

Unix : allocation par blocs de taille fixe, à plusieurs niveaux

30

NFP136 - Systèmes d'exploitation

Page 31: NFP136 cours systemes 2 - Deptinfo

Allocation par blocs de taille fixe31

� Les nœuds d’index (i-node)- Systèmes Unix

� Une table à n entrées. Une entrée par fichier appelée i-node.

� Chaque entrée contient les informations suivantes :

• type du fichier

• nombre de liens sur le fichier

NFP136 - Systèmes d'exploitation

• nombre de liens sur le fichier

• identité du propriétaire, du groupe

• taille du fichier en octets

• dates de création, dernier accès

• 12 adresses de blocs : 10 de données et 2 d’indirection

Page 32: NFP136 cours systemes 2 - Deptinfo

Notion de répertoire (système unix)32

� Le système de fichiers UNIX est organisé en une arborescence de répertoires.

� Chaque feuille est un fichier.

� Un répertoire est un fichier texte dont chaque ligne décrit un fichier ou un sous répertoire :

numéro d’i-nœud

NFP136 - Systèmes d'exploitation

� numéro d’i-nœud

� nom du fichier ou du répertoire

� L’accès à un fichier est le parcours d’un chemin dans l’arborescence� Exemple : /usr/local/prog

� / i-nœud racine

� puis recherche de l’i-nœud usr dans racine etc…