SystemeExploitation - jdelbecque

publicité
Delbecque Julien
3ieme Année d’EXIA
CAHIER D’ÉTUDE ET DE RECHERCHE
1
Table des Matières
I) Définition ------------------------------------------------------------------------- 3
II) Historique et évolution des OS ------------------------------------------------- 4
III) Structure et rôle de l’OS ----------------------------------------------------- 6
IV) La gestion multiprocessus ------------------------------------------------------ 9
V) Conclusion ------------------------------------------------------------------------ 11
2
I)
Définition :
Operating System :
Ou système d’exploitation est un ensemble cohérent de logiciels permettant
d’utiliser un ordinateur et tous ces éléments (périphériques). Il assure le
démarrage de celui-ci et fournit aux programmes les interfaces pour
contrôler les éléments de l’ordinateur.
Noyau :
Kernel en anglais. C’est la partie fondamentale d’un système d’exploitation, il
est gestionnaire de ressources de la machine, qui permet aux éléments
matériels et logiciels de fonctionner ensemble. C’est pour ça qu’il est le
premier logiciel à être chargé en mémoire.
Processus :
Process en anglais. C’est un ensemble d’instruction à exécuter. C’est une
instance d’un programme en cours d’exécution par un processeur. Mais il sert
aussi a faire plusieurs activités en même temps comme faire travailler
plusieurs utilisateurs sur la même machine ou compiler tout en regardant ses
mails.
Thread :
Ou processus légers. C’est l’exécution d’un ensemble d’instructions du langage
machine d’un processeur qui se déroule en parallèle. Il peut y avoir plusieurs
threads dans un même processus.
Service :
C’est un ensemble d’opérations, accessible par une ou plusieurs interfaces, qui
permet à un utilisateur de définir une action pour lui. Il peut être fourni par
un serveur. Voici quelques exemples : ftp, http, Telnet.
Multitâche :
Un OS est dit multitâche s’il permet d’exécuter, apparemment simultanément,
plusieurs programmes d’un ordinateur en partageant le temps du
microprocesseur.
Outils Système :
Se sont des programmes utilitaires qui aident l’utilisateur :
- à tirer profit de l’OS
- planifier des tâches
- configurer des périphériques
- créer et gérer des configurations d’utilisateurs
3
II)
Historique et évolution des OS :
Les systèmes d'exploitation existent depuis le milieu des années 50 ;
ils ont considérablement évolué depuis.
La première génération des OS est apparue entre 1936 et 1955. C’est
l’apparition des premiers ordinateurs, programmé par tableaux de connecteur,
puis par cartes perforées au début des années 50. C’est aussi l’apparition du
terme « bug ».
La deuxième génération des OS est apparue entre 1955 et 1965. Avec
l’apparition des transistors, les ordinateurs sont devenus plus fiables. Les
programmes s’exécutés par lots : « batch ». Un interpréteur de commandes
permettait le changement et l’exécution des programmes dans l’ordinateur.
Les gros ordinateurs disposaient de trois dérouleurs de bandes : un
pour conserver la bande du système d’exploitation, un pour le programme à
exécuter et ses données, et le dernier pour recueillir les données en sortie.
En amont et en aval se trouvait deux calculateurs plus petits, chargés l’un de
transcrire sur bande les cartes perforées apporté par le programmeur, et l’autre
d’imprimer sur papier les résultats contenus sur les bandes de sortie de données.
Ces ensembles étaient servis par des operateurs, dont le rôle était
d’alimenter les ordinateurs en bandes, cartes, papier.
La troisième génération des OS est apparue entre 1965 et 1980.
L’avancée technologique majeure de cette génération est l’apparition des circuits
intégrés qui ont permis de diminuer le rapport cout/performance.
4
La standardisation apportée par les circuits intégrés s’est également
appliquée aux machines. Afin de rentabiliser l’utilisation des machines, les
travaux ont pu être stocké sur le disque de l’ordinateur, sans passer par des
ordinateurs annexes et des manipulations de bandes (Spool : Simultaneous
Peripheral Operation On Line).
Ensuite, s’est développé l’usage de la multiprogrammation : la mémoire
physique était partitionnée en segments de tailles fixées à l’avance, dont chacune
pouvait accueillir un programme différent. Ainsi, lorsqu’une tache attendait la fin
d’une entrée/sortie, le processeur pouvait basculer sur une autre tache.
La quatrième génération des OS est apparue entre 1980 et 2000. Le
développement des circuits LSI (Large Scale Integration), puis VLSI, a permis
l’envolé des ordinateurs personnels, qui ne diffère que très peu des miniordinateurs de la génération précédente. Les réseaux de communication sont pris
en compte par les systèmes d’exploitation en réseau, et complètement intégré
dans les systèmes d’exploitation distribués.
Au taux actuel de croissance de l’intégration des composants, le
système atomique devrait être mise en place d’ici 2010-2015 et la vitesse de la
lumière constitue toujours une limite infranchissable. Les composants
analogiques optiques lasers sont également étudiés.
Au niveau des systèmes d’exploitation, l’interface Homme-Machine et
les interconnexions entre programmes devraient être les grands bénéficiaires
des efforts actuels.
5
III) Structure et rôle de l’OS :
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, …). Ainsi lorsqu’un programme désire accéder à une ressource matérielle, il
n’est pas nécessaire d’envoyer des informations spécifiques au périphérique. Il
lui suffit d’envoyer les informations au système d’exploitation qui se charge de
les transmettre au périphérique concerné via son pilote.
Le système d’exploitation (l’ensemble des programmes système) sert
d’interface entre les applications et la couche matérielle.
6
Le système d’exploitation a deux types de rôle :
- un rôle actif : gestion de l’enchainement et ordonnancement des
processus
- un rôle passif : sépare les actions potentiellement dangereuses
(accès aux ressources, mémoire, disque) des actions courantes
(calcul) pour préserver le système
Les fonctions des systèmes d’exploitation :

Gestion du processeur : 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 à chaque usager. En cas
d'insuffisance de mémoire physique, le système d'exploitation peut créer une
zone mémoire sur le disque dur, appelée «mémoire virtuelle». La mémoire
virtuelle permet de faire fonctionner des applications nécessitant plus de
mémoire qu'il n'y a de mémoire vive disponible sur le système. Cette mémoire est
beaucoup plus lente.

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.

Gestion des informations : le système d'exploitation fournit un certain nombre
d'indicateurs permettant de diagnostiquer le bon fonctionnement de la machine.
7
Un système d’exploitation est composé essentiellement :
- d’un noyau
- d’un interpréteur de commande (Shell) : permettant la communication avec
le système d’exploitation par l’intermédiaire d’un langage de commande,
pour que les utilisateurs puissent piloter les périphériques en ignorant
tous les caractéristiques qu’il utilise.
- D’un système de fichiers : permettant d’enregistrer les fichiers dans une
arborescence.
Le noyau :
C’est un programme qui est lancé au démarrage de l’ordinateur. Mais il ne faut
pas le confondre avec l’interface qui est lancé au démarrage, car c’est grâce au noyau
que cette interface s’affiche.
Le noyau est le système d’exploitation car c’est lui qui gère la communication
entre les logiciels et le matériel. En effet, des que l’on fait quelque chose, les
informations passe par celui-ci, qui traite les demandes et agit sur le matériel concerné
(mémoire, périphériques, …). Ces demandes sont transmises par un interpréteur de
commandes, des outils systèmes ou par l’appel des fonctions systèmes directement.
Le noyau (l’OS) assure les fonctionnalités suivantes :
- gère les processus
- gère l’allocation de la mémoire
- gère le contrôle des entrées/sorties (périphériques)
Il existe des systèmes sans noyaux, comme MS-DOS. Ces systèmes sont
généralement adaptés à des applications très ciblées mais posent des problèmes variés,
comme par exemple la sécurité et sont actuellement inadaptés pour une utilisation dans
des serveurs ou ordinateurs de bureau.
La présence d’un noyau incite à la partition de la mémoire physique en deux.
L’une est destinée au noyau et l’autre aux applications (espace utilisateur).
8
IV)
La gestion multiprocessus :
L’Ordonnanceur :
Celui d’un système d’exploitation n’a de sens qu’en système multitâche. Il gère
l’ordre dans lequel les instructions de différentes tâches sont exécutées et est
responsable de la restauration et de la sauvegarde du contexte des tâches.
L'algorithme d'ordonnancement détermine quelle tâche doit s'exécuter en
priorité et sur quel processeur. Cet algorithme doit permettre d'utiliser efficacement
les ressources de la machine.
Il peut être du type :
- coopératif : les tâches doivent être écrites de manière à coopérer les
unes avec les autres et ainsi accepter la suspension pour l'exécution d'une
autre tâche
- préemptif : l'Ordonnanceur a la responsabilité de l'interruption des
tâches et du choix de la prochaine à exécuter
Un système d’exploitation est dit multitâche s’il permet d’exécuter plusieurs
programmes simultanément sur un ordinateur.
Le multitâche coopératif :
C’est une forme simple de multitâche ou chaque processus doit à une autre
tâche de s'exécuter. Cette approche simplifie l'architecture du système d'exploitation
mais présente plusieurs inconvénients :
- Si un des processus ne redonne pas la main à un autre processus.
- Le partage des ressources peut être inefficace.
Le multitâche préemptif :
Le processeur signale au système d'exploitation que le processus en cours
d'exécution doit être mis en pause pour permettre l'exécution d'un autre processus. Le
système doit sauver l'état du processus en cours; le processus est placé dans une file
d'attente ; lorsqu'il est en bout de file, son contexte d'exécution est restauré.
9
Voici différentes stratégies pour exécuter les processus :
- La méthode FIFO : « First In First Out », c’est-à-dire que le premier
entré et le premier sortie.
- La méthode du Tourniquet (Round Robin) : Les processus accèdent au
processeur, chacun à leur tour, pour un temps déterminé a l’avance (le
quantum).
- La méthode du Tourniquet multi niveaux : avant d’accéder au processeur,
les processus sont rangés dans des files correspondant à leur niveau de
priorité. Les files de plus haute priorité passent en premières.
10
V)
Conclusion :
L’OS gère les fichiers à l’aide d’un système de fichier, qui stocke les
fichiers dans une arborescence.
On a besoin d’un OS dans un ordinateur car c’est lui qui démarre le PC.
Le noyau est l’OS, s’il y en a un. Mais il existe des systèmes sans noyau.
L’OS gère les erreurs.
L’OS ne dépend pas du matériel, il le gère plutôt.
L’OS découpe les processus en processus légers : « les threads ».
L’OS a une file d’attente, il dépend de l’Ordonnanceur.
Il existe une base commune a tous les OS, tel que le noyau, le système
de fichiers et un interpréteur de commande.
Il existe plusieurs langages, tel que l’assembleur, le C, le Shell (dans le
noyau), et les autres langages pour réaliser différentes applications.
Un OS sert à communiquer entre les logiciels et le matériel. C’est une
couche indispensable au bon fonctionnement de la machine.
11
Téléchargement