Abstraction
Abstraction
Abstraction
L'abstraction La plus simple consiste à ne pas faire d’abstraction du tout. Les ordx tœurs d'avant 1960,
les mini-ordinateurs d’avant 1970 et les micro-ordinim d avant 1980 ne disposaient pas d’abstraction de
la mémoire. Chaque program vovaxt tout simplement la mémoire physique. Face à une instruction
comme
maximale, chaque adresse désignant une cellule contenant un certain nombre debf huut en genéral).
I n était pas possible d’avoir deux programmes s’exécutant en même temps. En eff! H un nrnoramme
écrit nine rertaine valeur
À l’une des extrémités du spectre, on trouve les systèmes d’exploitation des mainframes, œs
ordinateurs qui remplissent une pièce et que l’on trouve encore dans les centres de calcul de certaines
grandes sociétés. Ces machines se distinguent principalement des ordinateurs personnels de par leurs
capacités d’E/S. Il n’est pas rare de voir un mainframe gérer un millier de disques pour plusieurs
téraoctets de mémoire au total. Les mainframes vivent en outre une seconde jeunesse en tant que
serveurs
L'accent est mis dans leurs systèmes d’exploitation sur la capacité à gérer de manière optimale plusieurs
jobs en même temps, chacun d’eux demandant de grandes ressources d'E/S. Ils offrent typiquement
trois types de services : le batch, le transactionnel et le temps partagé. Un système batch exécute des
jobs sans interaction avec
l'utilisateur. La gestion des déclarations dans une compagnie d’assurances ou les statistiques de ventes
dans une chaîne de magasins sont des exemples de ce type de travail.
Le transactionnel doit gérer en permanence un très grand nombre de petites requêtes concurrentes. Le
traitement des chèques dans une banque ou un système de réservation de billets d’avion en sont deux
exemples types. Le temps partagé permet à plusieurs utilisateurs, éventuellement distants, d'exécuter
des travaux en même temps sur la même machine. Ces trois fonctions sont étroitement reliées, et les
systèmes
ur mainframes sont fréquemment capables de rendre les trois types de services, à l'image de l'OS/390,
un descendant d’OS/360 d’IBM. Il faut toutefois noter que les systèmes pour mainframes sont
progressivement remplacés par des variantes du système UNIX comme Linux.
Un cran au-dessous des précédents, on trouve les systèmes d’exploitation des serveurs. Ils fonctionnent
sur des machines-serveurs, qui sont soit de gros micro-ordinateurs, soit des stations de travail, voire des
mainframes. Ils servent en parallèle de nombreux utilisateurs à travers le réseau et permettent à ces
derniers de partager des ressources matérielles et logicielles. Ils proposent en général un service
d’impression, un service de fichiers ou un service Web. Les fournisseurs d’accès à l'internet utilisent
nombre de ces machines pour servir leurs clients. Les sites Web en utilisent pour stocker et distribuer
des pages HTML et gérer les requêtes clientes. Les représentants courants de cette famille sont Solaris,
FreeBSD, Linux et Windows Serveur 200x.
Le recours à plusieurs processeurs sur une même plate-forme pour augmenter la puissance de calcul est
une technique de plus en plus courante. En fonction du type de connexions, et de ce qui est partagé, on
appelle ces systèmes « ordinateurs parallèles », multi-ordinateurs ou multiprocesseurs. Ils nécessitent
des systèmes d’exploitation spéciaux qui sont le plus souvent des variantes de systèmes serveurs,
améliorés au niveau de la connectivité et des communications.
L'arrivée des circuits multicœurs au sein des PC et des agendas électroniques influe sur leurs SE qui
s’imprègnent de plus en plus des concepts des systèmes multiprocesseurs. C’est le cas notamment de
Windows et de Linux.
Leur rôle est de fournir à l’utilisateur une interface conviviale. Ils sont principalement dédiés au
traitement de texte, à l’utilisation de tableurs et à l’accès à l’internet. Les systèmes les plus
représentatifs sont Windows 2000, Windows Vista, Mac OS, FreeBSD et Linux. Ils sont si répandus qu'il
n’est sans doute pas nécessaire d’en dire beaucoup plus. Nombreux sont d’ailleurs les utilisateurs qui
pensent qu’ils constituent la seule catégorie existante de systèmes d'exploitation. Les systèmes les plus
modernes supportent la multiprogrammation et permettent l'exécution simultanée d’une douzaine de
programmes.
38 © Systèmes d'exploitation
En descendant l'échelle de taille, on trouve les assistants numériques personnels ( plus simplement,
assistants personnels) et les systèmes embarqués. Un assistant per. sonnel ou PDA (Personal Digital
Assistant) est un petit ordinateur qui tient dans Une poche et sert de carnet d'adresses électronique, de
bloc-notes, etc. Les PDA et les télé. phones mobiles sont en train de converger : ils ont tous deux des
processeurs 32 b; et des SE sophistiqués et ne diffèrent essentiellement que par le poids, la taille et les
tapacités d’E/S (écran/clavier).
C'est ainsi que les SE des assistants personnels permettent, outre les fonctions classiques d’agenda et de
carnet d’adresses, de téléphoner, de prendre des photos, d'écouter de la musique, etc. Certains offrent
en outre la possibilité d’exécuter de petites applica. tions. Ces systèmes d’exploitation commencent à
ressembler à ceux des PC d'il ya une dizaine d'années. La majeure différence entre assistant personnel et
PC se situe au niveau des capacités mémoire centrale et disque dur. Les deux représentants types de
leurs systèmes d'exploitation sont Symbian OS et Palm OS.
Les systèmes embarqués tournent sur des ordinateurs qui pilotent des périphériques, lesquels
d’ordinaire ne sont pas dépendants d’un ordinateur, comme une télévision, un four à micro-ondes, un
téléphone portable ou un lecteur MP3. Ils ont souvent des Caractéristiques temps réel mais leurs
dimensions, taille mémoire et restrictions en termes d'alimentation électrique les rangent à part. Vis-à-
vis des assistants personnels ces systèmes n'autorisent aucunement l’exécution d’un programme
quelconque externe. On ne peut bien entendu pas modifier, ni charger un nouveau programme Sur un
four à micro-ondes dont le programme de fonctionnement est inscrit en mémoire ROM. Les systèmes
QNX et VxWorks sont deux célèbres systèmes d’exploitation embarqués.
1.47 Les systèmes d'exploitation des objets communicants
Les réseaux d’objets communicants (capteurs, etc.) sont en plein développement. Ces objets, nœuds de
communications, sont de véritables petits ordinateurs qui commu niquent par radio entre eux et avec
une station centrale (appelée station de base) qui se trouve dans leur environnement. Ces réseaux sont
par exemple utilisés pour mettre en place des systèmes de protection ou de surveillance d’immeuble, de
site industrieb
Ces Objets sont alimentés par pile, ont une puissance limitée et peuvent fonctiongé sur Une Jongue
période de temps. Ils disposent d’un processeur, de mémoires RAM d ROM: et d’un petit système
d'exploitation temps réel leur permettant de répon mt. d'agff face à des événements extérieurs qu'ils
peuvent détecter ou mesurer. T0
ee ” come les systèmes embarqués, leur progrämme d application st a TS mémPire ROM à la fabrication
et ils n’acceptent pas d'exécuter au |
Introduction @ 39
Ces systèmes sc caractérisent par le respect de strictes contraintes temporelles. Par exemple, dans un
système de contrôle de processus, des ordinateurs temps réel doivent regrouper des données relatives à
un processus de fabrication pour contréler les machines dans une usine. Il y a fréquemment des limites
qui doivent impérativement être respectées (on parle de temps réel « dur »). Ainsi, dans le cas d’un
robot soudeur, une soudure faite trop tôt ou trop tard peut sérieusement compromettre un véhicule.
Sur une chaîne de montage automobile, si une action doit absolument avoir lieu à tel instant (ou dans
un certain délai), on se trouve dans une situation de temps réel dur.
L'autre catégorie relève du temps réel mou, dans lequel il est admissible de dépasser occasionnellement
certains délais. Les systèmes audionumériques et multimédias se rangent dans cette catégorie, de
même que les systèmes de téléphones numériques.
Comme le respect des délais est très strict sur les systèmes temps réel, leurs systèmes d'exploitation
sont souvent réduits à la plus simple expression : des bibliothèques associées aux programmes
d’application, avec des couplages relativement forts entre les différents éléments. Le système e-Cos est
un représentant type de système d'exploitation temps réel.
Les systèmes d’exploitation des assistants personnels, des systèmes embarqués et des systèmes temps
réel ont nombre de points en commun. Presque tous ont des orientations temps réel. Les programmes
qu’exécutent les systèmes embarqués et les assistants personnels sont uniquement ceux intégrés à la
conception. Les utilisateurs ne peuvent pas y intégrer leurs propres programmes, ce qui rend leur
protection plus simple à réaliser. Bien qu’ils aient des points en commun, les assistants personnels
comme les systèmes embarqués sont principalement destinés au grand public, tandis que les systèmes
temps réel sont plutôt à usage industriel.
Les plus petits systèmes d'exploitation se trouvent sur les smart cards, ou cartes à puce, des
périphériques de la taille d’une carte de crédit contenant un processeur. Selon le mode de lecture, on
rencontre des cartes à contact (introduction de la carte dans un lecteur) ou sans contact (la carte est
passée devant un lecteur sans qu’il y ait contact mécanique). Ces systèmes sont sujets à de sévères
contraintes de mémoire et de puissance de calcul. Certains ne savent remplir qu’une seule tâche, par
exemple le paiement électronique, mais ce n’est pas toujours le cas. Leur SE est le plus souvent «
propriétaire ».
Certaines smart cards reposent sur Java : la ROM de la carte contient une machine virtuelle Java (JVM,
Java Virtual Machine). Les applets Java (de petits programmes Java) sont téléchargés sur la carte et
interprétés par la JVM. Certaines cartes peuvent gérer plusieurs applets concurrents, ce qui oblige à
utiliser la multiprogrammation et à mettre en place une politique d’ordonnancement des tâches. La
gestion de ressources et la protection deviennent également, dans ce cas, d’actualité. Le système
d’exploitation, même primitif, de la carte doit alors prendre en charge ces fonctionnalités
supplémentaires.
l'exécution de plusieurs programmes sans abstraction de mémoire
Même sans abstraction de la mémoire, il est cependant possible d'exécuter quas simultanément
plusieurs programmes. Le système d'exploitation doit alors recopie sur disque l'intégralité du contenu
de la mémoire avant de charger et d'exécuter le programme suivant. Tant qu’à un instant donné un seul
programme est en mémoire, il ne peut y avoir de conflit. Cette idée (va-et-vient ou swapping) est
présentée un peu Plus loin.
En ajoutant un peu de matériel spécialisé, on peut aller plus loin. Sur les premiers modeles d'IBM 360, la
mémoire était divisée en blocs de 2 Ko à chacun desquels était affectée une clé de protection de 4 bits
contenue dans des registres spéciaux de l’UC. Pour une machine dotée de 1 Mo, il fallait 512 registres de
4 bits et donc 256 octets de #iockage, Le mot d’état du programme contenait lui aussi cette clé et, dès
qu’un procherchait à accéder à la mémoire avec une clé d'accès differente, le matériel 360 rovoquait un
déroutement, Comme seul le système d ‘exploitation pouvait Les clés de protection, les utilisateur
L] ‘« . s
Finalement, faire voir aux processus la mémoire physique présente plusieurs inconvéments. D'abord, si
les programmes de l'utilisateur peuvent adresser chaque octet de la mémoire, on prend le risque d’un
plantage général (sauf mise en place d’un matériel spécial comme avec l’IBM 360). Ce problème existe
même avec un seul programme qui s'exécute. Ensuite, si l’on veut exécuter plusieurs programmes
(chacun à leur tour punqu'i n'y a qu’une UC), ce n’est pas très fucile, Sur les PC, il est courant que plure
programmes soient ouverts en même temps (traitement de texte, courrier élec omique, navigateur
Web...) : un seul programme est actif à un instant donné mais sutre peuvent être réactivés d'un clic,
Suns abatraction de la mémoire, on voit mal nt faire
la même façon que le concept de processus crée une sorte d’'UC abstraite exécut un programme,
l’espace d’adressage est une sorte de mémoire abstraite d’un p gramme prêt à l'exécution. C’est
l’ensemble des adresses qu'un processus peut utili pour adresser la mémoire. Chaque processus a son
propre espace d’adressage, in pendant de celui des autres (sauf cas où l’on souhaite partager la
mémoire).
Les espaces d’adressage ne sont pas forcément numériques. L'ensemble des domaine .com de l'internet
est également un espace d’adressage qui comprend toutes les combinaisons de 2 à 63 caractères
(lettres, chiffres, tirets) suivies de .com. Finalement, w espace d’adressage est quelque chose d'assez
simple. D est plus difficile de donner à chaque programme son propre espace d’adressag, c'est-à-dire de
faire en sorte que l'adresse 28 de l’un corresponde à un emplacemeñ différent de l'adresse 28 de
l’autre. Il existe une solution assez simple, qui a été fort utilisée mais est tombée en désuétude en raison
des nouvelles capacités des ue modernes.