0% ont trouvé ce document utile (0 vote)
11 vues10 pages

Cours sur les Systèmes d'Exploitation

Ce support de cours sur les systèmes d'exploitation vise à enseigner aux étudiants de Master 1 GL les concepts fondamentaux des systèmes multitâches, y compris la mémoire virtuelle et la programmation de processus parallèles. Le cours comprend des travaux pratiques sur la synchronisation des processus en C et aborde des éléments d'administration système. Les étudiants apprendront à installer, configurer et exploiter des systèmes d'exploitation, notamment Linux.

Transféré par

boodjougtelaismaella
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues10 pages

Cours sur les Systèmes d'Exploitation

Ce support de cours sur les systèmes d'exploitation vise à enseigner aux étudiants de Master 1 GL les concepts fondamentaux des systèmes multitâches, y compris la mémoire virtuelle et la programmation de processus parallèles. Le cours comprend des travaux pratiques sur la synchronisation des processus en C et aborde des éléments d'administration système. Les étudiants apprendront à installer, configurer et exploiter des systèmes d'exploitation, notamment Linux.

Transféré par

boodjougtelaismaella
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

INSTITUT SUPERIEUR DES SCIENCES DE MANAGEMENT DE

TECHNOLOGIE ET D’AGRICULTURE DE BERTOUA

SUPPORT DE COURS
SYSTEME D’EXPLOITATION
Spécialité : Master 1 GL

Réalisé par :
Dr. VAGSSA Pascal, PhD

Année Académique : 2025-2026


OBJECTIF :

A l'issue de ce cours, l'étudiant maîtrisera les concepts des systèmes d’exploitation multitâches en
termes d'utilisation et de structure interne de ces systèmes. Il sera en particulier familier avec la notion
de mémoire virtuelle et la programmation de processus parallèles coopérants. Des travaux pratiques
portant sur la synchronisation de processus (en C) complètent le cours. Par ailleurs des éléments
pratiques d'administration système (gestion du système, gestion des utilisateurs, protection des
ressources, etc.) sont également présentés.

PRÉREQUIS :
• Architecture des ordinateurs ;
• Algorithmique et Programmation

COMPÉTENCES À ACQUÉRIR :

• Installer, configurer et exploiter les systèmes d’exploitation


• Exploiter les systèmes d’exploitation Linux

REFERENCES :
- Systèmes d’exploitation (collection SCHAUM’S) [Link] HARRIS EdiScience, 2002
- Systèmes d'exploitation » par Andrew Tanenbaum – cet ouvrage est régulièrement
réédité. Référence incontournable (pour les cours de système d'exploitation de
première, deuxième et ...)
- Principes des Systèmes d’Exploitation, Pages Bleues, les Manuels de l’Etudiant,
2007
- Système d’Exploitation, Mécanismes de Base", OPU, 2005
- [Link]
- [Link]

PROGRAMME :

Chapitre 1 : Généralités
Chapitre 2 : Gestion des processus et des threads
Chapitre 3 : Gestions des ressources
Chapitre 4 : Gestion de l’environnement des applications
Travaux Pratiques sous Linux

Page 1|9
CHAPITRE 1 : GÉNÉRALITÉS SUR LES SYSTÈMES D’EXPLOITATION

Introduction
Les ordinateurs permettent de collecter des données, de réaliser des calculs, de stocker des informations et de
communiquer avec d’autres ordinateurs.
Un ordinateur est formé d’une partie matérielle et d’une partie logicielle. Cette dernière comporte des logiciels
qui sont classés en deux catégories : les programmes d'application des utilisateurs et les programmes système
qui permettent le fonctionnement de l'ordinateur. Parmi ceux-ci, le système d'exploitation (SE).
Le système d’exploitation est le logiciel qui prend en charge les fonctionnalités élémentaires du matériel et qui
propose une plateforme plus efficace en vue de l’exécution des programmes. Il gère les ressources matérielles,
offre des services pour accéder à ces ressources et crée des éléments abstraits de niveau supérieur, tels que
des fichiers, des répertoires et des processus.

1. Historique
Tout système d'exploitation dépend étroitement de l'architecture de l'ordinateur sur lequel il fonctionne.
• La 1ère génération (1945 - 1955) : les tubes à vide et les cartes enfichables
Il n'existait pas de système d'exploitation. Les utilisateurs travaillaient chacun leur tour sur l'ordinateur qui
remplissait une salle entière. Ils étaient d'une très grande lenteur. Ils étaient d'une très grande fragilité.
• La 2ème génération (1955 - 1965) : les transistors et le traitement par lots
Le passage aux transistors rendait les ordinateurs plus fiables. Ils pouvaient être vendus à des utilisateurs
(grandes compagnies, université ou administrations). Mais devant les coûts d'équipement élevés on réduisit les
temps grâce au traitement par lots.
• La 3ème génération (1965 - 1980) : les circuits intégrés et la multiprogrammation.
Amélioration des coûts et des performances (circuits intégrés). Une famille d'ordinateurs compatibles entre eux.
Une seule architecture et un même jeu d'instructions. Des ordinateurs uniques pour les calculs scientifiques et
commerciaux. Apparition du spoule (spool, Simultaneous Peripheral Operation On Line) pour le transfert des
travaux des cartes vers le disque. Apparition de la multiprogrammation (partitionnement de la mémoire pour
des tâches différentes).
Mais, un système d'exploitation énorme et très complexe pour satisfaire tous les besoins (plusieurs millions de
lignes d'assembleur). Apparition du partage de temps, une variante de la multiprogrammation (chaque utilisateur
possède un terminal en ligne) ; naissance du système MULTICS (MULTiplexed Information and Computing
Service) pour ordinateur central. Apparition des mini-ordinateurs (DEC PDP-1 en 1961, 4K mots de 18 bits, pour
un prix de 120 000 $).
K. Thompson écrivit une version simplifiée (mono-utilisateur) de MULTICS ; B. Kernighan l'appela avec humour
UNICS (Uniplexed Information and Computer Service) ; ce nom allait devenir UNIX1. D. Ritchie se joignit à K.

Page 2|9
Thompson pour réécrire UNIX en langage C ; ce système d'exploitation a été le plus porté sur toutes sortes de
machine.
• La 4ème génération (1980 - 1990) : les ordinateurs personnels.
Ils sont dus au développement des circuits LSI (Large Scale Integration) contenant des centaines de transistors
au cm². Ils ont la même architecture que les mini-ordinateurs mais leur prix est beaucoup moins élevé. Il existe
deux systèmes d'exploitation principaux : MS-DOS (Microsoft Inc.) et UNIX. MS-DOS intègre petit à petit des
concepts riches d'UNIX et de MULTICS. Dans le milieu des années 80, on voit l'apparition de réseaux
d'ordinateurs individuels qui fonctionnent sous des systèmes d'exploitation en réseau ou des systèmes
d'exploitation distribués.
• La 5ème génération (1990 - ????) : les ordinateurs personnels portables et de poche.
Apparition des PIC (Personal Intelligent Communicator de chez Sony) et des PDA (Personal Digital Assistant,
comme le Newton de chez Apple), grâce à l'intégration des composants et l'arrivée des systèmes d'exploitation
de type « micro-noyau ». Ils sont utiles pour les « nomades » et les systèmes de gestion des informations
(recherche, navigation, communication). Ils utilisent la reconnaissance de caractère (OCR) et les modes de
communication synchrone et asynchrone (mode messagerie).
Très bon marché, ils sont capables de se connecter à des ordinateurs distants et performants. Les systèmes
d'exploitation de type « micro-noyau » sont modulaires (un module par fonction) ; ils peuvent être réalisés avec
plus ou moins de modules et donc adaptables à des très petites machines (PDA et PIC).

2. Les systèmes d’exploitation


2.1. Rôle et définition
Un système d’exploitation (SE) est présent au cœur de l’ordinateur coordonnant les tâches essentielles à la
bonne marche du matériel. C’est du système d’exploitation que dépend la qualité de la gestion des ressources
(processeur, mémoire, périphériques) et la convivialité de l’utilisation d’un ordinateur. Un SE résout les problèmes
relatifs à l’exploitation de l’ordinateur en garantissant :
• Une gestion efficace, fiable et économique des ressources physiques de l’ordinateur
(notamment les ressources critiques telles que processeur, mémoire…) : il ordonne et contrôle
l'allocation des processeurs, des mémoires, des icônes et fenêtres, des périphériques, des réseaux
entre les programmes qui les utilisent. Il assiste les programmes utilisateurs. Il protège les
utilisateurs dans le cas d'usage partagé.
• Il propose à l'utilisateur une abstraction plus simple et plus agréable que le matériel : une
machine virtuelle permettant l’interaction avec les utilisateurs en leur présentant une machine
plus simple à exploiter que la machine réelle

2.2. Classes de systèmes d’exploitation


• Mono- tâche (DOS) :
Page 3|9
A tout instant, un seul programme est exécuté ; un autre programme ne démarrera, sauf conditions
exceptionnelles, que lorsque le premier sera terminé.
• Multi- tâches (Windows, Unix, Linux, VMS) :
Plusieurs processus (i. e. un « programme » en cours d’exécution) peuvent s’exécuter simultanément (systèmes
multiprocesseurs) ou en quasi- parallélisme (systèmes à temps partagé)
• Mono- session (Windows 98,2000) :
Au plus un utilisateur à la fois sur une machine. Les systèmes réseaux permettent de différencier plusieurs
utilisateurs, mais chacun d’eux utilise de manière exclusive la machine (multi- utilisateurs, mono- session)
• Multi- sessions (Windows XP, Unix, Linux, VMS) :
Plusieurs utilisateurs peuvent travailler simultanément sur la même machine.

2.3. Structure en couches d’un SE moderne

2.3.1. Le noyau
• Réside en mémoire (fréquence élevée des interventions)
• Petite taille
• Gestion du processeur : reposant sur un allocateur ( dispatcher ) responsable de la répartition du
temps processeur entre les différents processus, et un planificateur ( scheduler ) déterminant les
processus à activer, en fonction du contexte.

Page 4|9
• Gestion des interruptions : les interruptions sont des signaux envoyés par le matériel, à
destination du logiciel, pour signaler un évènement.
• Gestion du multi- tâches: simuler la simultanéité des processus coopératifs (i. e. les processus
devant se synchroniser pour échanger des données) et gérer les accès concurrents aux ressources
(fichiers, imprimantes, ...)
2.3.2. Le système de gestion de fichiers
Le concept de fichiers est une structure adaptée aux mémoires secondaires et auxiliaires permettant de
regrouper des données.
Le rôle d’un système d’exploitation est de donner corps au concept de fichiers (les gérer, c’est- à- dire les créer,
les détruire, les écrire (modifier) et les lires, en offrant la possibilité de les désigner par des noms symboliques).
2.3.3. Les Entrées/ Sorties
Il s’agit de permettre le dialogue (échange d’informations) avec l’extérieur du système. La tâche est rendue
ardue, par la diversité des périphériques d’entrées- sorties et les multiples méthodes de codage des informations
(différentes représentations des nombres, des lettres, etc.)
Concrètement, la gestion des E/S implique que le SE mette à disposition de l’utilisateur des procédures standard
pour l’émission et la réception des données, et qu’il offre des traitements appropriés aux multiples conditions
d’erreurs susceptibles de se produire (plus de papier, erreur de disque, débit trop différent, ...)
2.3.4. L’invite des commandes ou shell
Nécessaire pour interagir avec l’utilisateur, il peut être Graphique, Console interpréteur de commandes (langage
de commande interprété).
Il attend les ordres que l’utilisateur transmet par le biais de l’interface, décode et décompose ces ordres en
actions élémentaires, et finalement réalise ces actions en utilisant les services des couches plus profondes du
système d’exploitation.
Outre l’interaction « directe » (au moyen de terminaux ou de consoles dans le cas d’Unix ou MS DOS), les
systèmes offrent le « traitement par lots » (batch). Ce mode de traitement non- interactif est obtenu en
regroupant les commandes dans un fichier alors appelé script.
2.3.5. La mémoire virtuelle
La mémoire centrale a toujours été une ressource critique: initialement très coûteuse et peu performante (tores
magnétiques), elle était de très faible capacité.
Pour pallier le manque de mémoire centrale, l’idée est venue d’utiliser des mémoires secondaires (de type disque
dur), plus lentes, mais de beaucoup plus grandes capacités.
La mémoire virtuelle repose sur une décorellation entre la mémoire physique (centrale ou secondaire), présente
sur la machine, et l’espace mémoire mis à disposition des programmes par le système d’exploitation (la mémoire
virtuelle, ou logique).
3. Eléments de base d’un système d’exploitation :
Les principales fonctions assurées par un SE sont les suivantes :
Page 5|9
• gestion de la mémoire principale et des mémoires secondaires,
• exécution des E/S (périphériques) à faible débit ou haut débit
• multiprogrammation, temps partagé, parallélisme
• interruption, ordonnancement, répartition en mémoire, partage des données,
• lancement des outils du système (compilateurs, environnement utilisateur,...)
• lancement des outils pour l'administrateur du système
• protection, sécurité ;
• réseaux

Application

Page 6|9
CHAPITRE 2 : GESTION DES PROCESSUS

Le système d’exploitation (Linux, Windows, MacOs…) est un programme particulier situé entre le matériel et les
applications qui a pour de rôle de coordonner l’ensemble des tâches qui sont exécutées par l’ordinateur. Cette
année, nous allons voir comment le système d’exploitation charge les programmes dans la mémoire de masse
et lance leur exécution en leur créant des processus afin de pouvoir les gérer lors de leur exécution.

1 Différence entre programme et processus


Un programme est statique : c’est un fichier contenant une suite d’instructions qui lorsqu’elles sont
exécutées modifient l’état du processeur et de la mémoire afin de réaliser une tâche donnée.
Un même programme peut être exécuté plusieurs fois sur une même machine, il faut alors allouer à chacune de
ces exécutions des ressources de mémoire et de processeur distinctes au cours de ces exécutions. C’est le
système d’exploitation qui gère l’allocation de ces ressources.
Un processus est dynamique: c’est une instance d’exécution d’un programme sur une machine de
son lancement jusqu’à sa fin.
Les systèmes d’exploitation permettent à l’utilisateur de visualiser et gérer les processus grâce à un
gestionnaire de processus.

2 Les états d’un processus


Un processus n’a pas seulement besoin d’accéder au processeur, mais il a souvent besoin d’accéder à des
ressources autres comme :
• La mémoire vive : RAM,
• La mémoire de masse : disques durs, clés USB, mémoire flash…
• La lecture ou l’écriture d’un fichier…
• Les périphériques d’entrée et de sortie : clavier, souris, écran, imprimante…
Ces ressources externes étant beaucoup moins rapides que le processeur, elles bloquent les processus lors de
leur exécution.
Ainsi, lors de la vie d’un processus, celui-ci peut passer par trois états :
• PRÊT : le processus est lancé et attend l’accès au processeur.
• ÉLU : le processus a obtenu l’accès au processeur : il peut s’exécuter.
• BLOQUÉ : le processus est en cours d’exécution, mais attend une ressource en mémoire par exemple,
il quitte le processeur pour libérer les ressources.

Page 7|9
Les trois états d'un processus, et le passage d'un état à un autre.
3 Ordonnancement
À un instant donné, il y a souvent davantage de processus à exécuter que de processeurs.
Lors de leur lacement les processus sont placés dans une file d’attente.
L’ordonnanceur désigne le composant du noyau du système d’exploitation choisissant l’ordre d’exécution des
processus sur les processeurs d’un ordinateur.
Il existe divers algorithmes d’ordonnancement :
• La méthode du tourniquet (Round Robin): l’ordonnanceur traite la file d’attente comme une file
circulaire et alloue successivement un temps processeur à chacun des processus de la file.
• FIFO: First In First Out (voir le cours sur les files)
• SJF Shortest job first (SJF, ou SJN -Shortest Job Next-).

4. Interblocage
Un interblocage (ou étreinte fatale, deadlock en anglais pour impasse) est un phénomène qui peut se produire
en programmation concurrente lorsque des processus s’attendent mutuellement.

Exemple
Un exemple concret d’interblocage peut se produire lorsque deux processus essayent d’acquérir deux ressources
dans un ordre différent.

Page 8|9
• P1 acquiert R1.
• P2 acquiert R2.
• P1 attend pour acquérir R2 (qui est détenu par P2).
• P2 attend pour acquérir R1 (qui est détenu par P1).
Dans cette situation, les deux processus sont définitivement bloqués.
Il existe plusieurs façons de gérer les interblocages :
• les ignorer ce qui était fait initialement par UNIX qui supposait que la fréquence des interblocages était
faible et que la perte de données encourue à chaque fois est tolérable.
• les détecter: Un algorithme est utilisé pour suivre l’allocation des ressources et les états des processus,
il annule et redémarre un ou plusieurs processus afin de supprimer le blocage détecté
• les éviter: des algorithmes sont utilisés pour supprimer une des quatre conditions nécessaires à la
possibilité de l’interblocage(Conditions de Coffman)

Page 9|9

Vous aimerez peut-être aussi