Qu’est-ce qu’un système d’exploitation ? Ensemble de programmes permettant de faire “ travailler ” un ordinateur, de le commander Compilation assembleur éditeur gestion BD Programmes d’applications Système d’exploitation Matériel Utilisateur 1 Utilisateur 2 Utilisateur 3 Utilisateur n Un système informatique (vue abstraite) Système d’exploitation + outils système et services fournis par le constructeur = logiciel de base
Point de vue de l’utilisateur L’interpreteur de commande les appels systèmes (primitives système)
Divers systèmes d’exploitation Système mono-tâche, mono-utilisateur (micro-ordinateur) Système multi-tâches, multi-utilisateurs en temps partagé (mini ou gros ordinateurs) Parallélisme (machines multi-processeurs) Système distribué (réseau de machine)
LE SYSTEME : Un gestionnaire de ressources Gestion des processus Gestion des fichiers sécurité du système Gestion des entrées-sorties Gestion de la mémoire
Les processus La mono et la multiprogrammation les problèmes d’ordonnancement les problèmes d’interblocage et de synchronisation Définitions Un processus Est l’abstraction d’un programme en cours d’exécution (entité dynamique) Un programme Est une entité statique (fichier situé sur un disque)
Monoprogrammation Les programmes sont exécutés les uns après les autres Durant les attentes (E/S, …) le processeur est inutilisé
Multiprogrammation Les programmes sont exécutés “ simultanément ”
Le partage du temps La multiprogrammation donne une illusion de parallélisme, comme le temps partagé donne à chaque utilisateur l'impression d'être le seul à utiliser la machine. Dans une machine monoprocesseur, il y a du vrai parallélisme: certaines entrées-sorties sont réalisées par des processeurs spécialisés pendant que le processeur central exécute une autre tâche. Les machines multiprocesseurs sont appelés machine parallèles et présentent la véritable notion de processus exécutés en parallèle.
Réalisation de la multiprogrammation * Hiérarchie des processus * Etats des processus * réalisation à l'aide de tables * Ordonnancement
Hiérarchie des processus Dans les systèmes évolués les processus sont crées et détruits dynamiquement Unix: appel de la primitive système "fork" Les processus forment une arborescence issue du processus “ 1 ”, le processus “ init ”.
Etats des processus Un processus peut ne pas être actif pour deux raisons différentes: - attente de données (exemple progl | prog2) - attente “ d’unité centrale ” (un autre processus est actif)
Etats des processus
Opérations sur les processus Un système d'exploitation doit être capable d'exécuter les opérations suivantes - la création d'un processus - la destruction d'un processus - la suspension d'un processus - la reprise d1un processus - le changement de priorité d'un processus - le blocage d'un processus - le réveil d'un processus Créer un processus nécessite les opérations suivantes : - nommer un processus - insérer un processus dans la liste des processus - déterminer la priorité initiale d'un processus - allouer les ressources de départ d'un processus
Réalisation a l’aide d’une table La mise en œuvre pratique se fait par l'intermédiaire de tables Tables des processus informations sur l’état du processus compteur ordinal pointeur de pile allocation mémoire état des fichiers etc… Cette table permet de sauvegarder les informations nécessaires aux changements de contextes
Partage du processeur 2 sortes de multiprogrammation : Préemptive (interruption à temps fixe) Non préemptive Commutation sur certains appels système (ex E/S)
Indices de performance / utilisation du processeur Quand une tâche ne peut pas s’exécuter, le processeur rentre dans une boucle nop (no operation) Taux d’occupation Taux d’efficacité des calculs Taux efficace du processeur Attention, pour être précis il faudrait tenir compte de l’Overhead
Ordonnancement Un processus libère le processeur quand Son quantum est fini Il fait une E/S Question : Quel est le nouveau processus à élire ? Avec comme contrainte choisir très vite. Réponse : le premier processus de la file d’attente des processus prêts File d’attente des processus prêts : Un processus prêt : Si on lui laisse le processeur, il pourra l’utiliser Commutation : Sauver et restaurer le contexte. Bloc de description de processus (Bdp) : Structure de donnée du SE, qui mémorise le contexte d’un processus, son état, etc…
Commutateur et Ordonnanceur Commute un processus actif par un processus de la file d’attente des processus prêts Ordonnanceur : Réordonne la file d’attente des processus prêts Le commutateur intervient à chaque quantum et chaque E/S L’ordonnanceur est appelé beaucoup moins souvent.
Stratégies d’allocation C’est le travail de l’ordonnanceur Tourniquet (Round Robin) Une seule file des processus Priorité statique Chaque processus reçoit à la création une priorité qu’il garde jusqu’à ça mort Un file d’attente par priorité On choisit le processus prêt de plus forte priorité (La plus forte 0) Attention risque de famine Priorité dynamique : Il reçoit une priorité qui change suivant l’occupation du processeur qu’il a eu
Indice de performance de l’allocation Temps d’exécution = le temps nécessaire au processus pour s’exécuter en monotâche Temps de réponse = le temps écoulé entre le moment où le processus est soumis et celui où il est terminé Taux d’efficacité du processeur Temps de réponse/temps d’exécution Valeur moyenne et maximale du temps de réponse pour les processus Comportement du système en cas de surcharge Possibilité de famine