Académique Documents
Professionnel Documents
Culture Documents
Introduction
Les ordinateurs permettent de réaliser plusieurs taches. Par exemple collecter, stocker et
échanger des données avec d’autres ordinateurs en plus d’autres multitudes de fonctions.
L’ordinateur est formé d’une partie logicielle et d’une partie matérielle. Pour qu'un ordinateur
soit capable de faire fonctionner un programme informatique (appelé parfois application ou
logiciel), la machine doit être en mesure d'effectuer un certain nombre d'opérations
préparatoires afin d'assurer les échanges entre le processeur, la mémoire, et les ressources
physiques qui sont les périphériques. Le système d'exploitation est chargé d'assurer la liaison
entre les ressources matérielles, l'utilisateur et les applications (traitement de texte, jeu vidéo,
...).
I) Définition
Le système d’exploitation noté SE en abréviation ou Os qui signifie en anglais « operating
system » est un ensemble de programmes qui joue le rôle d’intermédiaire entre l’utilisateur,
le matériel et les applications (traitement de texte, jeux vidéo,…) .
Le système d’exploitation (SE) assure le lien entre la machine et l'utilisateur.
C’est le premier programme que l’ordinateur charge en mémoire RAM, lors de la mise en
route de l’ordinateur.
c’est un logiciel qui, dans un appareil électronique pilote les dispositifs matériels et reçoit
des instructions de l’utilisateur ou d’autres logiciels. Ces logiciels doivent être adaptés au
système d’exploitation.
Le système d’exploitation (SE) est donc une partie importante de tout système informatique. En
effet, on peut diviser grossièrement un système informatique en trois composants : le
matériel, le système d’exploitation et les programmes d’application
1
II) Histoire des systèmes d’exploitation :
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. 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. Ces ordinateurs
servaient uniquement pour les calculs scientifiques et commerciaux. Apparition du spoule
(spool, Simultaneous Peripheral Opération 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 ; naissance du système MULTICS (MULTiplexed Information and
Computing Service) pour ordinateur central.
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
2
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).
3
automatiquement d’un programme à un autre. Mais comment le moniteur résident pouvait-il savoir
quel programme exécuter ?. Réponse : Grâce aux cartes de contrôle.
• En effet, même avec l’enchaînement automatique des travaux, l’UC est souvent inactive. Le
problème réside dans la vitesse des périphériques d’E/S mécaniques qui sont intrinsèquement
plus lents que les dispositifs électroniques.
risque d'attendre une tâche, comme le montage d’une bande, une donnée frappée au clavier
commute simplement sur un autre travail et l’exécute. Quand ce travail a besoin d’attendre,
l’UC est connectée sur un autre travail et ainsi de suite. Ainsi tant qu’il existera un travail à
4
utilisateurs peuvent dialoguer avec chaque programme pendant son exécution. Un système
informatique interactif permet la communication en ligne entre l’utilisateur et le système.
L’utilisateur donne des instructions au système d’exploitation ou directement à un programme et
reçoit une réponse immédiate. Les systèmes en temps partagé ont été développés pour fournir une
utilisation interactive du système informatique. Un SE en temps partagé utilise le scheduling de
l’UC et la multiprogrammation pour fournir à chaque utilisateur une petite portion de temps.
l’ordinateur simultanément. Comme le système commute très vite d’un utilisateur à un autre,
chaque utilisateur a l’impression qu’il possède son propre ordinateur, alors qu’en réalité
5
Les systèmes à temps réel sont une autre forme de SE spécialisés. Un système à temps
réel est utilisé quand il existe des exigences impérieuses de temps de réponse pour le
fonctionnement d’un processeur ou pour le jeu de données. Il est souvent employé comme
dispositif de contrôle dans une application dédiée. Les capteurs amènent des données à
l’ordinateur. Celui-ci doit analyser les données et éventuellement régler les contrôle pour
Un système d’exploitation à temps réel possède des contraintes de temps fixes. Le traitement doit être
effectué dans les contraintes définies.
6
WINDOWS XP/Seven : multitâche mono-utilisateur
WINDOWS server 2003/2008 ….. : multitâche multi-utilisateur
UNIX/Linux : multitâche multi-utilisateur
Ainsi une couche i peut utiliser tous les objets (variables et routines) des couches inférieure j
Le principal avantage de l’approche en couches est la modularité. Les couches sont
sélectionnées de telle sorte que chacune utilise seulement les fonctions (opérations) et
services des couches de niveau inférieur. Cette approche simplifie le débogage et la
vérification du système.
Définition d’un appel système :
Un appel système (ou appel superviseur) ou appel noyau est un appel d’une des fonctions du noyau
du système d’exploitation (implémenté au niveau d’une des couches). Les appels systèmes peuvent
être grossièrement classés en cinq catégories principales :
7
- Contrôle de processus (arrêter, charger, exécuter un processus, …).
- Gestion du processeur (ou des processus): le système d'exploitation est chargé de gérer l'allocation
du processeur entre les différents programmes grâce à un algorithme d'ordonnancement. Le type
d'ordonnanceur est totalement dépendant du système d'exploitation, en fonction de l'objectif visé.
-Gestion de la mémoire vive : le système d'exploitation est chargé de gérer l'espace mémoire alloué à
chaque application et, le cas échéant, à chaque usager.
-Gestion des entrées/sorties : le système d'exploitation permet d'unifier et de contrôler l'accès des
programmes aux ressources matérielles par l'intermédiaire des pilotes (appelés également
gestionnaires de périphériques ou gestionnaires d'entrée/sortie).
- Gestion de l'exécution des applications : le système d'exploitation est chargé de la bonne exécution
des applications en leur affectant les ressources nécessaires à leur bon fonctionnement. Il permet à ce
titre de «tuer» une application ne répondant plus correctement.
- Gestion des droits : le système d'exploitation est chargé de la sécurité liée à l'exécution des
programmes en garantissant que les ressources ne sont utilisées que par les programmes et
utilisateurs possédant les droits adéquats.
-Gestion des fichiers : le système d'exploitation gère la lecture et l'écriture dans le système de fichiers
et les droits d'accès aux fichiers par les utilisateurs et les applications.
8
Chapitre 2 GESTION DES PROCESSUS
On peut trouver plusieurs appellations possibles des activités que peut avoir un processeur.
Un système de traitement par lots exécute des travaux, tandis que un système en temps
partagé possède des programmes utilisateurs ou des tâches.
2.1.1 Définition :
On peut définir un processus (process) comme un programme en exécution. Autrement dit,
un programme par lui-même n’est pas un processus. Un programme est une entité passive,
comme le contenu d’un fichier stocké sur disque, tandis qu’un processus est une entité
active, avec un compteur d’instructions spécifiant l’instruction suivante à exécuter et un
ensemble de ressources associées.
Evidemment, il est possible d’avoir plusieurs processus différents associés à un même
programme. C’est le cas , par exemple, de plusieurs utilisateurs qui exécutent chacun une
copie du programme de messagerie. Il est également courant qu’un processus génère à son
tour plusieurs processus lors de son exécution.
2.1.2 Etats d’un processus
Durant son séjour dans un SE, un processus peut changer d’état à plusieurs reprises. Ces
états peuvent être résumés dans le schéma suivant :
9
1. Le processus se bloque en attente de donnés.
3. Activation du processus.
• Prêt: le processus est placé dans la file d’attente des processus prêts, en attente
d’affectation du processeur.
exécution.
10
Fig. Bloc de contrôle de processus
11
du processus, les pointeurs sur les files d’attente de scheduling, …
Les processus concurrents s’exécutant dans le système d’exploitation peuvent être des
processus coopératifs ou indépendants.
♦ Un processus est indépendants’il n’affecte pas les autres processus ou ne peut pas être
♦ Un processus qui ne partagent pas de données avec d’autres processus est indépendant
♦ Un processus est coopératifs’il peut affecter les autres processus en cours d’exécution ou
♦ Un processus qui partage des données avec d’autres processus est un processus coopératif
♦ Les données partagées par les processus coopératifs peuvent se trouver en mémoire
Le problème rencontré dans certains programmes le plus souvent est dû aux conflits d’accès
au même fichier. Ces accès sont en lecture et en écriture. Evidemment, il ne peut y avoir de
conflit si les accès aux données ne sont qu’en lecture seule.
On appelle section critique la partie d’un programme où se produit le conflit d’accès
12
♦ Il faut une exclusion mutuelle qui empêche les autres processus d’accéder à des
13
4-LES INTERRUPTIONS
Lorsqu'une machine fonctionne, sous le contrôle d’un système d’exploitation, l'unité centrale
est en permanence susceptible d’exécuter un programme. Le problème se pose alors de savoir
à quel moment l'unité centrale va pouvoir prendre en compte les événements extérieurs à la
séquence d'instructions qu'elle exécute: requête d’un périphérique, frappe d'une touche sur
un clavier, insertion d'une disquette, fin d'impression, passage d’un objet devant un capteur,
système d’alarme, etc.
Comment prendre en compte un événement, comment provoquer une rupture de
séquence d'exécution d'un processus dans un délai très court? Une solution : les
interruptions.
Une interruption est un signal déclenché par un événement interne à la machine ou externe,
provoquant l'arrêt d'un programme en cours d'exécution à la fin de l'opération courante, au
profit d'un programme plus prioritaire appelé programme d'interruption.
Ensuite, le programme interrompu reprend son exécution à l'endroit où il avait été
interrompu. Le système d'interruption est le dispositif incorporé au séquenceur qui
détecte les signaux d'interruption. Ces signaux arrivent de façon asynchrone, à n'importe
quel moment, mais ils ne sont pris en compte qu'à la fin de l'opération en cours.
Mécanisme général : Lorsqu'une interruption survient, le processeur achève l'exécution de
l'instruction en cours pour les interruptions externes (cf. plus loin), puis il se produit :
14
2-Chargement du contexte du programme d'interruption(contexte actif) et passage en
mode
système (ou superviseur)
3-Exécution du programme d'interruption
4-Retour au programme interrompu en restaurant le contexte (commande Assembleur
IRET) et en repassant en mode utilisateur.
15
L'intérêt de ce système est la solution de problèmes tels que :
• arrivée de plusieurs signaux d'interruption pendant l'exécution d'une instruction,
• arrivée d'un signal d'interruption pendant l'exécution du signal de traitement d'une
interruption précédente.
On peut utiliser un contrôleur d'interruptions pour regrouper les fils d'interruptions,
gérer les priorités entre les interruptions et donner les éléments de calcul d'adresse au
processeur.
Certaines interruptions présentent tellement d'importance qu'il ne doit pas être possible
d'interrompre leur traitement. On masquera alors les autres interruptions pour empêcher leur
prise en compte. Certaines interruptions sont non-masquables : on les prend obligatoirement
en compte.
Une interruption masquée n'est pas ignorée : elle est prise en compte dès qu'elle est
démasquée.
Au contraire, une interruption peut-être désarmée : elle sera ignorée. Par défaut, les
interruptions sont évidemment armées.
16
Chapitre 3 l’ordonnancement de processus
3.1 Introduction
Un ordinateur possède forcément plusieurs processus en concurrence pour l’obtention
du temps processeur, cette situation se produit lorsque 2 ou plusieurs processus sont en état
prêt simultanément.
L’Ordonnanceur(planificateur, scheduler) est la partie (un programme) du système
d’exploitation responsable de régler les états des processus (Prêt, Actif,…etc.) et de gérer
les transitions entre ces états; c’est l’allocateur du processeur aux différent processus, il
alloue le processeur au processus en tête de file des Prêts.
3.2 Objectifs d’un Ordonnanceur
Les objectifs d’un Ordonnanceur sont :
- Maximiser l’utilisation du processeur
- Présenter un temps de réponse acceptable
- Respecter l’équité entre les processus selon le critère d’ordonnancement utilisé.
3.3 Critères d’ordonnancement
L’objectif d’un algorithme d’ordonnancement consiste à identifier le processus qui
conduira à la meilleure performance possible du système. Certes, il s’agit là d’une évaluation
subjective dans laquelle entrent en compte différents critères à l’importance relative variable.
La politique d’ordonnancement détermine l’importance de chaque critère. Un certain nombre
d’algorithmes ont fait leur preuve dans la mise en œuvre d’une politique d’ordonnancement.
La liste qui suit passe en revue des critères d’ordonnancement fréquemment utilisés.
Utilisation de l’UC : Pourcentage de temps pendant lequel l’UC exécute un processus.
L’importance de ce critère varie généralement en fonction du degré de partage du système.
Utilisation répartie : Pourcentage du temps pendant lequel est utilisé l’ensemble des
ressources (outre l’UC, mémoire, périphérique d’E/S…)
Débit :Nombre de processus pouvant être exécutés par le système sur une période de
temps donnée.
Temps de rotation :durée moyenne qu’il faut pour qu’un processus s’exécute. Le temps
de rotation d’un processus comprend tout le temps que celui-ci passe dans le système. Il
est inversement proportionnel au débit.
Temps d’attente : durée moyenne qu’un processus passe à attendre. Mesurer la
17
performance par le temps de rotation présente un inconvénient : Le temps de production
du processus accroît le temps de rotation ; Le temps d’attente représente donc une mesure
plus précise de la performance.
Temps de réponse : Temps moyen qu’il faut au système pour commencer à répondre
aux entrées de l’utilisateur.
Equité : degré auquel tous les processus reçoivent une chance égale de s’exécuter.
Priorités :attribue un traitement préférentiel aux processus dont le niveau de priorité est
supérieur.
3.4 Types d’ordonnancement
Il existe 2 types d’ordonnancement
a. Ordonnancement préemptif : Avec réquisition où l’Ordonnanceur peut
interrompre un processus en cours d’exécution si un nouveau processus de priorité
plus élevée est inséré dans la file des Prêts.
Si l’ordonnancement est préemptif, la transition de l’état élu vers l’état prêt est autorisée:
un processus quitte le processeur s’il a terminés on exécution, s’il se bloque ou si le
processeur est réquisitionné.
L’ordonnancement est fait dans l'ordre d'arrivée en gérant une file unique des processus
sans priorité ni réquisition : chaque processus s’exécute jusqu’à son terme ; le processus élu
est celui qui est en tête de liste des Prêts : le premier arrivé. Cet algorithme est facile à
implanter, mais il est loin d'optimiser le temps de traitement moyen
18
Critique de la méthode :
La méthode FCFS tend à pénaliser les travaux courts: L’algorithme du FCFS n’effectue pas
de réquisition. C’est à dire qu’une fois que le processeur a été alloué à un processus, celuici le
garder jusqu’à ce qu’il le libère, soit en terminant, soit après avoir demandé une E/S.
L’algorithme FCFS est particulièrement incommode pour les systèmes à temps partagé, où il
est important que l’utilisateur obtienne le processeur à des intervalles réguliers. Il peut
paraître désastreux de permettre qu’un processus garde le processeur pendant une période
étendue.
19
c-. L’algorithme du Scheduling avec priorité
Cet algorithme associe à chaque processus une priorité, et le processeur sera affecté au
processus de plus haute priorité. Cette priorité varie selon les systèmes et peut aller de 0 à
127.
Les priorités peuvent être définies en fonction de plusieurs paramètres : le type de
processus, les limites de temps, les limites mémoires, …etc.
Exemple: On dispose de 5 processus ayant des priorités différentes, comme le montre ce
tableau :
20
Critique de la méthode :
Une situation de blocage peut survenir si les processus de basse priorité attendent
indéfiniment le processeur, alors que des processus de haute priorité continuent à affluer.
Pour éviter une telle situation, on peut utiliser la technique dite du vieillissement. Elle
consiste à incrémenter graduellement la priorité des processus attendant dans le système
pendant longtemps. Par exemple, nous pourrions incrémenter de 1 la priorité d’un processus
en attente toutes les 15 minutes. En fin de compte,même un processus ayant une priorité
initiale égale à 0 aurait la plus haute priorité dans le système et serait exécuté.
21
La performance de l’algorithme de Round Robin dépend largement de la taille du quantum. Si
le quantum est très grand , la politique Round Robin serait similaire à celle du FCFS. Si le
quantum est très petit, la méthode Round Robin permettrait un partage du processeur
:
Chacun des utilisateurs aurait l’impression de disposer de son propre processeur . Cependant
le quantum doit être choisi de sorte à ne pas surcharger le système par de fréquentes
commutations de contexte.
Exemple: On dispose d’un processus P dont le temps d’exécution est de 10 ms. Calculons
le nombre de commutations de contexte nécessaires pour un quantum égal respectivement
à : 12, 6 et 1.
22
Temps de séjour = temps fin d'exécution - temps d'arrivée
23
Chapitre 4 SECURITE DANS LES SYSTEMES D’EXPLOITATION
1- Authentification de l'utilisateur
En général par un mot de passe. On peut aussi utiliser des systèmes physiques Comme la
biométrie ou des cartes à puces.
Fragilité des mots de passe :
De nombreux logiciels permettent de cracker les mots de passe.
Les principes qu’ils utilisent sont les suivants :
– Utiliser des dictionnaires standards
– Utiliser le contenu du fichier de mots de passe pour générer des mots de
passe potentiels, comme le login
– Utiliser le nom de l’utilisateur et toutes ses données associées
– Utiliser un langage de description de modifications permettant de définir les
transformations des mots de passe potentiels
– Construire des statistiques à propos de la constitution des mots de passe déjà
cassés.
24
1-1 Sécurité des mots de passe sous Windows
– Les mots de passe sont placés dans le fichier SAM (Security Accounts Manager)
– Il sont cryptés par deux algorithmes différents (LANMAN et NTLM)
– Le 1er crypte par DES le mot de passe mis en majuscules et complété par des
0 pour atteindre 14 caractères puis séparé en 2 moitiés
– Le 2ème crypte le mot de passe exprimé en UNICODE (le résultat est sur 16 octets).
1-2 Sécurité des mots de passe sous LINUX
– A la création on ajoute au mot de passe un code sur 12 bits (salt) aléatoire
– Le mdp concaténé au salt sont cryptés
– Ces codes et les salts sont placés dans le fichier /etc/shadow qui n’est
accessible que par root
La liste de contrôle d'accès ACL (Access Control List) spécifie pour chaque répertoire qui, quels
utilisateurs et groupes ont accès à ce répertoire.
Un jeu de privilèges similaire est défini sur les répertoires :
25
– Aucun n'accorde aucun accès au répertoire.
– Lire autorise l’affichage des noms de fichiers et de sous-répertoires
– Écrire autorise l’ajout de fichiers et de sous-répertoires
– Exécuter autorise la modification des sous-répertoires
– Supprimer autorise la suppression de sous-répertoires.
– Modifier les autorisationsautorise le changement des autorisations du
répertoire
– Appropriation autorise l’appropriation du répertoire.
3-Virus
• Définition :
« Programme capable “d’infecter” d’autres programmes en les modifiant de façon à inclure
une copie de lui-même, potentiellement évoluée » Frederick B. Cohen 1972
• Généralement les virus sont cachés dans un logiciel parfaitement
fonctionnel
• Actuellement, l’objectif est de gagner de l’argent :
– Vol d’informations bancaires
– Appel de n°s de téléphone
– Spam
– Bots pour le déni de service
– Rançon (virus police, virus hadopi, …)
26
– Les Rootkits : dissimulent des objets sur les ordinateurs (processus,
fichiers …). Ils sont souvent utilisés par d’autres virus pour se cacher
– Les Exploits : exploitent une faille de sécurité dans un logiciel, un
système d'exploitation ou un protocole de communication
– Les Adwares : affichent des publicités
– Les Spywares : collectent et transfèrent des informations
4-Les antivirus
Un antivirus est un programme capable de détecter la présence de virus et, dans la mesure du
possible, de désinfecter ce dernier. On parle ainsi d'éradication de virus pour désigner la
procédure de nettoyage de l'ordinateur.
Il existe plusieurs méthodes d'éradication :
– La suppression du code correspondant au virus dans le fichier
infecté (pas toujours possible)
– La suppression du fichier infecté
– La mise en quarantainedu fichier infecté : le déplacer dans un
emplacement où il ne pourra pas être exécuté (permet de le
27
restaurer si on est sûr qu’il n’est pas dangereux, fausse alerte).
28