• Aucun résultat trouvé

Notion de système d’exploitation

Les principaux constituants

1. Notion de système d’exploitation

Un ordinateur est constitué de matériel (hardware) et de logiciel (software). Cet ensemble est à la disposition de un ou plusieurs utilisateurs. Il est donc nécessaire que quelque chose dans l’ordinateur permette la communication entre l’homme et la machine. Cette entité doit assurer une grande

souplesse dans l’interface et doit permettre d’accéder à toutes les fonctionnalités de la machine. Cette entité douée d’une certaine intelligence de communication se dénomme " la machine virtuelle ". Elle est la réunion du matériel et du système d’exploitation (que nous noterons OS par la suite pour Operating System).

Le système d’exploitation d’un ordinateur est chargé d’assurer les fonctionnalités de communication et d’interface avec l’utilisateur. Un OS est un logiciel dont le grand domaines d’intervention est la gestion de toutes les ressources de l’ordinateur :

 mémoires,  fichiers,  périphériques,  entrée-sortie,

Un système d’exploitation n’est pas un logiciel unique mais plutôt une famille de logiciels. Une partie de ces logiciels réside en mémoire centrale (nommée résident ou superviseur), le reste est stocké en mémoire de masse (disques durs par exemple).

Afin d’assurer une bonne liaison entre les divers logiciels de cette famille, la cohérence de l’OS est généralement organisée à travers des tables d’interfaces architecturées en couches de programmation (niveaux abstraits de liaison). La principale tâche du superviseur est de gérer le contrôle des échanges d’informations entre les diverses couches de l’OS.

1.1 Historique des principaux types d’ OS

Nous avons vu dans le tableau synoptique des différentes générations d’ordinateurs que les OS ont subi une évolution parallèle à celle des architectures matérielles. Nous observons en première

approximation qu’il existe trois types d’OS différents, si l’on ignore les systèmes rudimentaires de la 1èregénération.

MONOPROGRAMMATION :

La 2èmegénération d’ordinateurs est équipée d’OS dits de "

monoprogrammation " dans lesquels un seul utilisateur est présent et a accès à toutes les ressources de la machine pendant tout le temps que dure son travail. L’OS ne permet le passage que d'un seul programme à la fois.

A titre d’exemple, supposons que sur un tel système 5 utilisateurs exécutent chacun un programme P1, P2, P3, P4, P5 :

Dans l’ordre de la figure ci-haut, chaque Piattend que le Pi+1précédent ait terminé son exécution pour être exécuté à son tour.

Exemple de diagramme des temps d’exécution de chaque programme Pide la figure de gauche.

L’axe des abscisses du diagramme des temps d'exécution, indique l’ordre de passage précédent (P5, puis P4etc...) nous voyons que les temps d’attente d’un utilisateur ne dépendent pratiquement pas de

Une vision abstraite et synthétique d’un tel système est de considérer que 5 tables suffisent à le décrire. La table :

 des unités logiques,  des unités physiques,  des états,

 de ventilation des interruptions,  des canaux.

Relativement aux temps d’attente, un système de monoprogrammation est injuste vis à vis des petits programmes.

MULTIPROGRAMMATION :

La 3èmegénération d’ordinateur a vu naître avec elle les OS

de multiprogrammation. Dans un tel système, plusieurs utilisateurs peuvent être présents en " même temps " dans la machine et se partagent les ressources de la machine pendant tout leur temps

d’exécution.

En reprenant le même exemple que précédemment, P1, P2, P3, P4, P5sont exécutés cycliquement par l’OS qui leur alloue les ressources nécessaires (disque, mémoire, fichier,...) pendant leur tranche de temps d’exécution. Nous exposons dans l'exemple ci-dessous uniquement des exécutions ne

nécessitant jamais d’interruptions, ni de priorité, et nous posons comme hypothèse que le temps fictif alloué pour l’exécution est de 1 seconde :

Dans la figure ci-haut, chaque Pise voit allouer une tranche de temps d'exécution (1 seconde), dès que ce temps est écoulé, l'OS passe à l'exécution du Pi+1suivant etc…

Exemple de diagramme des temps d’exécution cyclique de chaque programme Pide la figure de gauche.

Nous observons dans le diagramme des temps d'exécution que le système exécute P5pendant 1 seconde, puis abandonne P5et exécute P4pendant 1 seconde, puis abandonne P4..., jusqu'à l'exécution de P1, lorsqu’il a fini le temps alloué à P1, il recommence à parcourir cycliquement la liste (P5, P4, P3, P2, P1)et réalloue 1 seconde de temps d’exécution à P5etc... jusqu'à ce qu’un programme ait terminé son exécution et qu’il soit sorti de la table des programmes à exécuter.

Une vision abstraite déduite du paragraphe précédent et donc simplificatrice, est de décrire un tel système comme composé des 5 types de tables précédentes en y rajoutant de nouvelles tables et en y incluant la notion de priorité d’exécution hiérarchisée. Les programmes se voient affecter une priorité qui permettra à l’OS selon les niveaux de priorité, de traiter certains programmes plus complètement ou plus souvent que d’autres.

Relativement aux temps d’attente, un système de multiprogrammation rétablit une certaine justice entre petits et gros programmes.

TEMPS-PARTAGE :

Il s’agit d’une amélioration de la multiprogrammation orientée vers le

transactionnel. Un tel système organise ses tables d’utilisateurs sous forme de files d’attente.

L’objectif majeur est de connecter des utilisateurs directement sur la machine et donc d’optimiser les temps d’attente de l’OS (un humain étant des millions de fois plus lent que la machine sur ses temps de réponse).

La 4èmegénération d’ordinateur a vu naître les réseaux d’ordinateurs connectés entre eux et donc de nouvelles fonctionnalités, comme l’interfaçage réseau, qui ont enrichi les OS déjà existants. De nouveaux OS entièrement orientés réseaux sont construits de nos jours.

1.2 Systèmes d'exploitation actuels

De nos jours, les systèmes d'exploitation sont des systèmes de multi-programmation dirigés vers certains type d'applications, nous citons les trois types d'application les plus significatifs.

Système inter-actif

Un tel système a vocation à permettre à l'utilisateur d'intervenir pratiquement à toutes les étapes du fonctionnement du système et pendant l'exécution de son programme (Windows Xp, Linux sont de tels systèmes).

Système temps réel

Comme son nom l'indique, un système de temps réel exécute et synchronise des applications en tenant compte du temps, par exemple un système gérant une chaîne de montage de pièces à assembler doit tenir compte des délais de présentation d'une pièce à la machine d'assemblage, puis à celle de soudage etc…

Système embarqué

C'est un système d'exploitation dédié à des applications en nombre restreint et identifiées : par exemple un système de gestion et de contrôle des mesures à l'intérieur d'une sonde autonome, un système pour assistant personnel de poche, système pour téléphone portables se connectant

Les principales caractéristiques d'un système d'exploitation de multi-programmation sont fondées sur la gestion des processus et la gestion de la mémoire à allouer à ces processus.