Introduction aux systèmes d'exploitation
Généralités
Un système informatique est un système complexe dont la gestion directe par l’utilisateur est quasi
impossible (par exemple, l’utilisateur doit-il se préoccuper de la manière dont un fichier est enregistré sur
disque ?). Il y a donc nécessité d’intercaler une couche logicielle de "gestion" de la machine ce qui nous
amène au concept de machine virtuelle. Un système informatique peut alors être représenté comme une
superposition de couches :
On peut entrevoir deux finalités (a priori) pour un système d’exploitation :
transformer une machine physique en une machine confortable pour l'utilisateur
gérer les ressources de la machine
Les premiers ordinateurs ne possédaient pas de systèmes d'exploitation ; les utilisateurs de l'époque
devaient entrer manuellement et dans le système binaire leurs données et leurs programmes. La situation
est maintenant bien différente et l'utilisateur a, à sa disposition, une interface, généralement graphique,
qui lui permet une utilisation très confortable de l'ordinateur. Le système d'exploitation rend à l'utilisateur
une gamme de services : assistance dans la création de programmes, exécution de programmes, accès aux
dispositifs d'entrées/sorties, accès contrôlé au système informatique, accès contrôlé aux fichiers,
détection d'erreurs, comptabilité des temps d'utilisation de ressources, ...
En ce qui concerne la seconde fonctionnalité, considérons, sur une machine, plusieurs programmes qui
doivent utiliser des ressources : processeur(s), mémoire, horloges, disques, terminaux, imprimantes,... Il est
clair qu’un chef d’orchestre est nécessaire; c’est le système d’exploitation qui jouera ce rôle en tant que
gestionnaire des ressources (contrôle et ordonnancement). Par exemple si trois programmes veulent
imprimer sur la même imprimante, il ne faut pas que leurs sorties se mélangent; le système d’exploitation
effectuera les tâches suivantes : stockage des fichiers de sortie, attribution de priorités, prise en main
des sorties, destruction des fichiers tampons après impression.
Historique
1ère génération d’ordinateurs ( 1945 - 1955)
Les machines de cette époque préhistorique étaient constituées de tubes à vide et il n’y avait pas de
système d'exploitation. Les programmes étaient écrits en langage machine (houla !) car les langages de
programmation étaient encore inconnus et étaient mémorisés à l’aide de "clés". L’utilisation de cartes
perforées a considérablement amélioré le contact avec les machines. Les programmes étaient exécutés les
uns après les autres en deux temps : chargement + exécution :
2ème génération d’ordinateurs ( 1955 - 1965)
Les machines sont constituées de transistors et le mode de traitement est le traitement par lot (Batch
Processing). FORTRAN (inventé par John Backus) est le premier langage de programmation ; les
programmes sont écrits dans ce langage sur cartes perforées (une instruction par carte) ce qui constitue un
"job".
Pour réduire le temps d’attente, le Batch a utilisé une découverte de l’époque : les bandes magnétiques.
Entrées et sorties sont mises sur bandes ce qui réduit considérablement les temps d’attente et permet de
rentabiliser l’unité centrale.
Les premiers systèmes sont FMS ( Fortran Monitor System) et IBSYS ( sur IBM 7094).
3ème génération d’ordinateurs ( 1965 - 1980)
Les machines sont constituées de circuits intégrés et utilisent le concept de multiprogrammation. De plus
les machines évoluent dans le cadre de familles "compatibles" (exemple IBM 360 -> 370 -> 4300 -> 3080 ->
3090). Les faits nouveaux sont :
la présence en mémoire de plusieurs programmes ou morceaux de programmes : la
mémoire est découpée en partitions :
job 3
job 2
job 1
O.S.
l’utilisation d’ordinateurs secondaires (canaux) pour les entrées/sorties
Les différents "jobs" sont exécutés jusqu’à ce qu’une opération d’entrée/sortie survienne.
Dans ce cas, l’exécution du "job" courant est interrompue et c’est un autre "job" qui sera
exécuté.
Les caractéristiques de ces systèmes à multiprogrammation sont :
complexité grandissante du système; plus grande taille
gestion de la mémoire partagée
meilleure équilibrage de la charge des différentes ressources
meilleures performances (temps de réponse) pour les travaux courts.
Les systèmes à temps partagés (time sharing) sont des variantes modernes des systèmes à
multiprogrammation. Chaque programme se voit attribuer un quantum de temps D ; il gardera
le bénéfice du processeur pendant ce temps, mais ensuite il devra laisser la place à un autre
programme; il retrouvera le processeur plus tard pour une nouvelle exécution pendant le
temps D .
Tout se passe, sur ces systèmes, comme si un utilisateur (programme) a la machine pour lui
tout seul (mais fonctionnant plus lentement). De fait, l’utilisateur ne se rend pas compte qu’il
n’est pas seul à utiliser la machine ; dans les applications interactives cela se voit encore
moins. Le temps d’élaboration T1 d’une requête (y compris la réflexion de l’utilisateur) est
nettement plus long que le temps d’exécution T2 de la requête; on peut donc utiliser le temps
T1 pour servir d’autres usagers.
Les premiers systèmes utilisant le concept de time sharing ont été :
CTSS (MIT 1962 sur IBM 7094)
MULTICS : le projet MULTICS (MULTiplexed Information and Computing Service) a
été conduit par le MIT, Bell Labs et GE ; ce projet très lourd a produit des idées
neuves, mais des partenaires ont abandonné (comme GE).
UNIX (1970 Thompson et Ritchie) a repris des idées de MULTICS dans le cadre d’un
système moins ambitieux mais plus réaliste.
4ème génération d’ordinateurs ( 1980 - 1994)
C’est l’époque des ordinateurs personnels et des réseaux. La miniaturisation s’accentue (LSI, VLSI, ULSI) ;
la fabrication industrielle en grande série fait baisser les prix. On voit apparaître des stations de travail
(généralement non Intel, UNIX) et des micro-ordinateurs (généralement Intel, MS DOS).
Les réseaux suscitent des systèmes d’exploitation nouveaux :
systèmes d’exploitation de réseaux ( le réseau n’est pas transparent)
systèmes d’exploitation répartis ( le réseau est transparent)
Concepts de base
Processus
1 / 22 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !