Qu’est-ce qu’un système d’exploitation ? Ensemble de programmes permettant de faire “ travailler ” un ordinateur, de le commander Utilisateur 1 Compilation Utilisateur 2 Utilisateur 3 assembleur éditeur Programmes d’applications Utilisateur n gestion BD Système d’exploitation Matériel 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é Processus A Processus B A en E/S Perte de temps Multiprogrammation Les programmes sont exécutés “ simultanément ” Processus A Processus B A en E/S Le processeur est utilisé à 100% 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 tutilisé occ ttotal Taux d’efficacité des calculs ec t processus tutilisé Taux efficace du processeur ep t processus ttotal 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 Commutateur : 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