Systèmes d’exploitation (Operating Systems)

Rôles du SE

Le système d’exploitation joue deux rôles :
1. d’une machine virtuelle (abstraite)
Le SE présente au programmeur une interface d’accès aux ressources de l’ordinateur (sous forme d’appels système). Ainsi le programmeur peut faire abstraction des détails de fonctionnement des ressources.
Cette interface est fondée sur des objets abstraits dont les plus importants sont les fichiers et les processus. Par exemple, le programmeur voit un disque comme une collection de fichiers q ui peuvent être lus, écrits et fermés
2. d’un administrateur de ressources
Le SE gère l’utilisation des ressources par différents utilisateurs et les éventuels conflits.

Buts d’un SE

1. Fournir un environnement où l’utilisateur puisse exécut er des programmes
2. Rendre le système informatique pratique pour l’utilisateur
3. Utiliser le matériel de façon efficace
Definitions´ des syst emes` d’exploitation
Programme d’allocation des ressources: gérer et allouer des ressources
Programme de controle:ˆ contrôler l’exécution des programmes des utilisateurs et l’opération des dispositifs d’entrée/sortie
Noyau (Kernel): le programme qui est exécuté tout le temps (tout les autres sont des programmes d’application)

Évolution des SE

SE: développé pour faciliter l’utilisation du matériel
Projet et utilisation des SE ont engendré des modifications du matériel
Vision historique des SE: les problèmes des SE ont engendré des innovations du matériel
Les SE ont une histoire ancienne qui commence au moment où ils ont commencé à remplacer les opérateurs des ordinateurs jusqu’à aujourd’hui avec des systèmes multiprogrammation.
Tâches d’un système d’exploitation
Gestion de processus
Gestion de la mémoire
Gestion des fichiers
Gestion des E/S
Les programmes utilisateurs peuvent accéder à ces différentes fonctionnalités à l’aide des appels système.
Pour créer un système aussi grand et complexe qu’un SE, il estnécessaire de le découper en pièces plus petites
Pour partager les ressources, comment les SE peuvent assurer qu’un programme qui fonctionne mal ne va pas causer des problèmes à l’exécution d’autres programmes?
Avec une protection matérielle : le mode double.
Le matériel permet 2 modes de fonctionnement:
Mode moniteur ou superviseur ou systeme` ou privilegi´e´ (Monitor mode, supervisor mode, system mode): exécution de la part du SE Instructions privilégiées: instructions machine risquant de nuire. Les instructions privilégiées sont exécutées seulement enmode superviseur.
Mode utilisateur (User Mode): exécution de la part de l’utilisateur. S’il se produit une tentative d’exécuter une instruction privilégiée, le matériel ne la réalise pas mais traite l’instruction comme illégale et bloque le SE.

Fonctionnement en mode double

Au moment d’initialiser le système, le matériel démarre en mode superviseur
Ensuite le SE est chargé et démarre les processus utilisateurs en mode utilisateur
Chaque fois qu’un déroutement (trap) ou une interruption se produit, le matériel commute du mode utilisateur au mode superviseur
⇒ Chaque fois que le SE prend le contrôle de l’ordinateur, il est en mode superviseur
⇒ Le système commute toujours au mode utilisateur avant de donner la main à un programme utilisateur
Certaines instructions sont privilégiées, comme les instructions E/S.
Comment un programme utilisateur peut donc exécuter des E/S?
En utilisant les appels système

Appels système (1)

Un appel système est une fonction fournie par le noyau (kernel ) d’un SE et utilisée par les programmes s’exécutant dans l’espace utilisateur (en d’autres termes, tous les programmes distincts du noyau).
Le rôle du noyau est de gérer les ressources matérielles et defournir aux programmes une interface uniforme pour l’accès à ces ressources.
Quelques appels systèmes classiques :
open, read, write et close qui permettent les manipulations sur les systèmes de fichiers, alloc, free pour allouer et désallouer de la mémoire.
Sur la majorité des systèmes d’exploitations, les appels système peuvent être utilisés comme de simples fonctions écrites en C.
Sur la plupart des noyaux (notamment les noyaux monolithiques comme le Noyau Linux) les appels systèmes sont implémentés par une instruction machine (interupt, supervisor call, …) qui fait basculer le processeur dans le noyau en mode superviseur (en ayant convenablement passé les paramètres de l’appel système, par exemple dans les registres).
Vu du programme applicatif, un appel système est atomique (il s’est exécuté -éventuellement en erreur- ou pas).
Catégories:
1- Contrôle de processus:
charger, exécuter, créer, terminer des processus, obtenir, signaler des événements, libérer de la mémoire, etc
2- Manipulation de fichiers:
créer, supprimer, ouvrir, fermer, lire, écrire, repositionner, etc 3- Gestion de périphériques:
demander, libérer, obtenir, attacher, etc 4- Entretient d’information: obtenir, définir l’heure ou la date, définir les données du systèmes 5- Communications créer, supprimer des connexions de communication, envoyer, recevoir de messages, transférer des informations sur les états, etc

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *