Systèmes d'Exploitation : Rôles, Processus et Mémoire

Classé dans Informatique

Écrit le en français avec une taille de 8,8 KB

Le Système d'Exploitation : Couche d'Abstraction

Le système d'exploitation (SE) agit comme une couche d'abstraction, permettant aux applications de fonctionner sans être spécifiques à chaque appareil.

  • Application : N'a pas besoin d'être spécifique à chaque appareil.
  • Matériel : Nécessite le développement de pilotes spécifiques au système d'exploitation.

Le Système d'Exploitation : Gestionnaire de Ressources

Le SE est un gestionnaire de ressources essentiel pour le bon fonctionnement d'un système informatique.

Répartition des ressources limitées

Il est responsable de la répartition équitable des ressources limitées, telles que :

  • Le temps CPU
  • La mémoire
  • Les périphériques

Cohabitation des processus, utilisateurs et matériels

Le SE assure la cohabitation harmonieuse de plusieurs processus, utilisateurs et matériels grâce à :

  • La protection de la mémoire
  • La gestion des droits d'accès
  • L'allocation des ressources

Un processus doit toujours passer par le système d'exploitation pour accéder aux ressources.

Gestion des Processus

Le SE gère le cycle de vie des processus :

  • Création, destruction, suspension, synchronisation et communication des processus.
  • Attribution continue du processeur.

Gestion de la Mémoire

Le SE est en charge de la gestion de la mémoire :

  • Répartition de l'espace mémoire.
  • Gestion de l'espace libre et des demandes d'allocation.
  • Décision du passage en mémoire distante (swapping).

Gestion des Fichiers

Le SE assure la gestion des fichiers et répertoires :

  • Création, manipulation et destruction des fichiers et répertoires.
  • Gestion de l'espace disque libre.
  • Gestion des droits d'accès aux fichiers.

Gestion des Périphériques

Le SE gère les périphériques connectés au système :

  • Gestion de la mémoire tampon (cache, tampons).
  • Gestion de l'énergie.
  • Utilisation de pilotes spécifiques.
  • Répartition des ressources entre processus.

Les Appels Système

Les appels système sont l'interface entre les applications et le noyau du système d'exploitation.

Modes d'exécution

Le système d'exploitation fonctionne en deux modes principaux :

  • Mode Noyau (0) : Le système d'exploitation a l'exclusivité des mécanismes matériels.
  • Mode Utilisateur (1) : Les processus sont isolés et ont des privilèges limités.

Les appels système sont le seul moyen pour un processus d'interagir avec le système d'exploitation, les périphériques et d'autres processus.

Les Interruptions Matérielles

Les interruptions matérielles permettent au matériel de signaler des événements au système d'exploitation.

Le système d'exploitation gère les interruptions, et le noyau les traite.

Types de fautes (interruptions logicielles)

Le CPU déclenche une faute en cas de :

  • Instruction inconnue.
  • Opérande invalide (par ex. division par zéro).
  • Violation de privilège.

Les Horloges Système

Trois types d'horloges sont essentiels au fonctionnement du système :

Horloge programmable

Utilisée pour lever des interruptions et comme minuterie.

Horloge de signal

Rythme le fonctionnement électronique (RAM, CPU, etc.), agissant comme un métronome.

Horloge temps réel

Fournit la date et l'heure réelles.

Les Processus

Un processus est une instance d'un programme en cours d'exécution.

Chaque processus possède un PID (Process IDentifier) et un processus parent.

Le processus init est la racine de tous les processus (PID = 1).

États d'un processus

Un processus peut se trouver dans l'un des états suivants :

  • Actif : Possède la ressource processeur et est en cours d'exécution.
  • Prêt : Manque de processeur pour s'exécuter, mais est prêt à le faire.
  • Bloqué : Manque d'une autre ressource (par ex. attente d'une opération d'E/S).

Un changement de contexte intervient lorsque le processeur est attribué à un autre processus.

Création des Processus

Les processus peuvent être créés par différentes sources :

  • Le démarrage du système (démons, serveurs, services).
  • La demande d'un utilisateur (double-clic, shell, tâche).
  • La demande d'un programme (via un appel système).

Un processus peut lancer d'autres processus, à l'exception de init qui est créé directement par le système.

  • fork(2) : Crée un clone (copie du processus demandeur).
  • execve(2) : Charge un nouveau programme dans le processus courant.

Outils en Ligne de Commande pour les Processus

Des outils permettent de visualiser et gérer les processus :

  • ps(1) et top(1) : Fournissent des informations détaillées sur les processus (PID, PPID, START, TIME, COMMAND).

Le Pseudo-Système de Fichiers /proc

C'est un pseudo-système de fichiers qui contient un sous-répertoire par processus, identifié par son PID, offrant des informations sur son état.

Les Threads

Un thread est une unité d'exécution indépendante au sein d'un processus.

Plusieurs threads partagent le même programme, contexte et ressources, permettant une exécution concurrente.

Avantages des threads

  • Moins coûteux à créer que des processus.
  • Changement de contexte moins cher.
  • Partage de données facilité entre threads du même processus.

Inconvénients des threads

  • Synchronisation difficile entre threads.
  • Un thread corrompu peut corrompre les autres threads du même processus.

Types de threads

Threads système (1:1)

  • Le langage expose les threads système, manipulés directement par le programmeur.

Threads utilisateur (N:1)

  • 100% gérés par le processus.
  • Portables entre systèmes d'exploitation.
  • Changement de contexte utilisateur complexe.
  • Les opérations d'entrées-sorties bloquent tout le processus.
  • Profitent mal des threads systèmes et des architectures multicœurs.

Modèle hybride (M:N)

La Mémoire des Processus

Le système d'exploitation est responsable de la cohérence et du nettoyage de la mémoire (dépend des capacités matérielles).

Un processus ne voit que son propre espace mémoire.

Règles d'accès à la mémoire

  • Accès interdit aux autres processus.
  • Tout est autorisé dans son propre espace mémoire.
  • Un processus peut corrompre ses propres données, mais pas celles des autres processus.

Les Segments Mémoire

Les principaux segments mémoire d'un processus sont : Code, Données statiques, Tas, Pile.

La Pile (Stack)

Contient les variables locales, les paramètres des fonctions, les valeurs de retour et les arguments de ligne de commande (argv).

Le Tas (Heap)

Mémoire réservée dynamiquement, nécessaire pendant l'exécution et libérée lorsqu'elle n'est plus utilisée. Gérée par des fonctions de bibliothèque ou des mots-clés (par ex. new, delete en C++).

Les Droits d'Accès à la Mémoire

Les droits d'accès à la mémoire définissent les opérations autorisées sur les segments mémoire :

  • Lecture (r)
  • Écriture (w)
  • Exécution (x) : Nécessite un compteur ordinal pour l'exécution.

La configuration des droits est effectuée par le système d'exploitation et via des appels système.

Exemples de droits typiques :

  • Code machine : r-x (lecture, exécution)
  • Tas : rw- (lecture, écriture)
  • Pile : rw- (lecture, écriture)

L'Appel Système fork()

L'appel système fork() crée une copie du processus appelant. Le processus parent et le processus enfant ont le même code mais une exécution indépendante.

Copie de la mémoire

La mémoire est "copiée" telle quelle (souvent implémenté via la technique de "copy-on-write" pour l'efficacité).

Entrées associées :