Vous êtes sur la page 1sur 12

R

Rééssuum
méé ddeess sslliiddeess –– S
Syyssttèèm
mee dd’’eexxppllooiittaattiioonn
1. Quelles sont les 2 fonctions d'un système d'exploitation ?
=>
- Machine étendue : présente une interface simple au programmeur, à base de fichiers à
lire et/ou à écrire et lui évite à devoir entrer des instructions de bas niveau.
- Gestionnaire de ressources : gère de manière équitable et optimale l'allocation des
processeurs, de la mémoire et des périphériques d'Entrées/Sorties aux différents
programmes concurrents qui les sollicitent.
2. Qu'est-ce que la multiprogrammation ?
=>
La multiprogrammation est l'échange rapide du processeur entre plusieurs processus en
mémoire. Elle sert essentiellement à occuper le processeur pendant qu'un ou plusieurs
processus exploite(nt) les E/S (Entrées/Sorties). Maintenant c’est le multitâche.
3. Qu'est-ce que le spoulage ? Pensez-vous que les ordinateurs personnels intégreront le
spoulage de manière systématique dans l'avenir ?
=>
Le spoulage d'entrée est la technique d'emmagasinement des tâches, par exemple, à partir
des cartes, sur le disque. Ainsi, lorsque les processus en cours d'exécution sont terminés,
le processeur ne se trouve pas sans travail. Le spoulage de sortie consiste à copier les
fichiers imprimables sur un disque avant de les imprimer, au lieu de les imprimer
directement au moment où la sortie est générée. Sur un ordinateur personnel, on exploite
rarement le spoulage d'entrée mais en revanche, on utilise le spoulage de sortie.
4. Sur les premiers ordinateurs, chaque octet de données lu ou écrit était géré par l'UC (c'est
à dire qu'il n'y avait pas de DMA). Quelles conséquences cela a-t-il sur la
multiprogrammation ?
=>
Le principal objectif de la multiprogrammation est d'occuper le processeur en attendant la
fin des E/S. S'il n'y a pas de DMA, le processeur est pleinement occupé par les E/S et la
multiprogrammation n'apporte rien (du moins en termes d'utilisation du processeur).
Quelle que soit la quantité d'E/S réalisée par un programme, le processeur est occupé à
100%. Cela suppose que le principal délai est occasionné par la copie de données. Le
processeur pourrait effectuer d'autres tâches si les E/S étaient ralenties pour d'autres
raisons.
5. L'idée de famille d'ordinateurs a été introduite dans les années 1960 avec les mainframes
IBM/360. Cette idée a-t-elle été abandonnée définitivement ou est-elle encore d'actualité
?
=>
Elle est toujours d'actualité. Par exemple, Intel fabrique le Pentium I, II, III ainsi que
quatre processeurs offrant une variété de propriétés différentes, dont la vitesse et la
consommation électrique. L'architecture de toutes les machines est compatible. Elles
diffèrent uniquement par leur prix et leurs performances, ce qui représente l'essence
même de cette idée de famille.
6. Parmi ces instructions, lesquelles ne devraient être autorisées qu'en mode noyau ?
a. Désarmer toutes les interruptions.
b. Lire l'horloge donnant la date.
c. Écrire l'horloge donnant la date.
d. Changer la carte de l'espace d'adressage.
=>
a, b, d

1
7. Énoncer quelques différences entre un système d'exploitation par ordinateur personnel et
pour un mainframe.
=>
- mainframe : grandes capacités d'Entrées/Sorties, + stable, système de batch (= exécute
les jobs sans interaction avec l'utilisateur), besoin de + de protections car plusieurs
utilisateurs.
- ordinateur personnel : interactif, besoin de moins de protection,...
8. Quelle est la différence majeure entre un déroutement et une interruption ?
=>
Le programme crée un déroutement avec lequel il est synchronisé. Si l'on exécute de
nouveau le programme, le déroutement se produit toujours exactement à la même
position dans le flot d'instructions. L'interruption est, quant à elle, provoquée par un
événement externe et sa synchronisation n'est pas reproductible.

(PS : L'instruction de déroutement est une instruction qui force l'UC à passer au mode
noyau)

9. Pourquoi une table de processus est-elle nécessaire dans un système à temps partagé ?
Est-elle également requise dans un système personnel où un seul processus existe, avec
accès à toute la machine durant son exécution ?
=>
La table de processus sert à stocker l'état d'un processus suspendu, qu'il soit prêt ou
bloqué. Elle n'est pas nécessaire dans un système à processus unique, puisque celui-ci
n'est jamais suspendu.
10. Quelle est la différence majeure entre un fichier spécial en mode bloc et un autre en mode
caractère ?
=>
Les fichiers spéciaux en mode bloc se composent de blocs numérotés, chacun pouvant
être lu ou écrit indépendamment de tous les autres. Il est possible de rechercher un bloc
quelconque et de recommencer à lire ou à écrire. C'est impossible avec les fichiers
spéciaux en mode caractère.
11. Pour un programmeur, un appel système ressemble à n'importe quel appel à une
procédure. Est-ce important pour lui de savoir quelles procédures déclenchent
effectivement un appel système ? Dans quels cas et pourquoi ?
=>
Dans le cadre de la logique du programme, il n'est pas important de savoir si un appel à
une procédure de bibliothèque est un appel système. Mais dans les cas où les
performances comptent beaucoup, le programme s'exécutera plus rapidement si l'on
accomplit la tâche sans appel système. Tout système exige du temps système pour
permuter entre le contexte utilisateur et le contexte du noyau. En outre, sur un système
multiutilisateur, le système d'exploitation peut planifier l'exécution d'un autre processus
lorsque l'appel système est terminé, ralentissant davantage la progression en temps réel
d'un processus appelant.

2
Résumé :

Introduction (1er PDF)

La place de l’OS dans un ordinateur :

Le microprocesseur :

Cerveau de l'ordinateur
Registres visibles
 Program Counter : PC
(Adresse prochaine instruction)
 Stack Pointer : SP
(Adresse du stack en mémoire)
 Program Status Word :
PSW (contient bits de contrôle)
Mode Kernel / Mode User

Exercice 1
Un ordinateur possède un pipeline à 3 niveaux.
Chaque niveau met le même temps à s'exécuter (1ns).
Combien d'instructions par seconde cette machine peut-elle exécuter ?

3
Réponse :
Le pipeline sort une instruction toutes les nanosecondes ->
La machine exécute 109 soit 1.000.000.000 (1 milliard) d'instructions par seconde.
L'important est le nombre d'instructions terminées qui sortent du pipeline.

Exercice 2
Un relecteur remarque une faute d'orthographe répétée dans un manuscrit d'ouvrage
sur les systèmes d’exploitation prêts à être mis sous presse. Le livre fait 700 pages
contenant chacune 50 lignes de 80 caractères.
Combien de temps prendra la vérification électronique du livre entier, si on suppose
que la totalité du texte est (tour à tour) dans chacun des niveaux de mémoire décrits
dans la figure ci-dessus ?
Temps lecture donné par blocs de :
 Mémoire interne : 1 caractère
 Disque : 1024 caractères
 Tape : 1er accès, accès suivants en même temps que l'accès au disque.

Réponse :
Taille du fichier à lire 80 * 50 * 700 = 2.800.000 caractères
Si le fichier était dans les registres (impossible actuellement sur le plan technologique)
2.800.000 ns soit 2,8 ms
Taille du fichier en blocs : 2.800.000 / 1024 = 2.734,375 soit 2.735 blocs
A partir du disque : 2.735 * 10 ms = 27.350 ms soit +- 27,4 secondes
A partir du tape : 100 secondes pour l'amener au disque + accès disque = 127 secondes
=> 2 minutes et 7 secondes

Processus = Programme en cours d'exécution


Espace d'adressage mémoire (de 0 à limite spécifique)
 Programme exécutable
 Données
 Pile (stack)
 Ensemble des registres
Systèmes temps partagé => Table des Processus
Arrêt d'un processus
Sauvegarde de son contexte (hors espace adressage)
 Fichiers ouverts
 Pointeurs position fichier

4
Création des processus sous forme d'arborescence
Père (racine)
Enfants (child)
UID et GID
Super-utilisateur (superuser = root (unix))
Importance de la communication interprocessus
Synchronisation des actions
Echange d'informations
Envoi de signaux aux processus (Trap)
 ex. : communication entre 2 processus sur 2 ordinateurs distants...

Historique des PC – Génération 0

Babbage – (1792 – 1871)


“Machine Analytique”
 Eviter les erreurs dans tables mathématiques
 Automatiser la chaine de calcul
 Séparation entre le module de calcul et la
mémorisation
 Utilisation de cartes perforées
 Engagement assistant “Ada Lovelace” =>
ADA
 Problèmes technologiques

Historique des PC – Première génération (1945-1955)

Génération des relais mécaniques et tubes à vide


 Intensification des efforts pendant la seconde guerre mondiale
 Relais mécaniques -> Temps de cycles en
secondes
 Remplacement par des tubes à vide
Millions de fois moins performant que les
petits PC actuels...
Simples calculs numériques (tables de sinus
ou log)
Programmation par câble
Pas de système d'exploitation.
Utilisateurs travaillaient chacun à leur tour sur l'ordinateur qui remplissait une salle
entière.
Grande lenteur.
Grande fragilité.
Création de l'ENIAC (Electronic Numerical
Integrator and Computer) par P. Eckert et J.
Mauchly. La programmation de ce calculateur
s'effectue en recablant entre eux ses différents
éléments. Composé de 19000 tubes, il pèse 30

5
tonnes, occupe une surface de 72 m2 et consomme 140 kilowatts. Horloge : 100 KHz.
Vitesse : environ 330 multiplications par seconde.
Apparition du terme “Bug” !

Historique des PC – Deuxième génération (1955-1965)

Appellation Mainframe
Le passage aux transistors rendait les ordinateurs plus fiables.
Ils pouvaient être vendus à des utilisateurs (grandes compagnies, universités ou
administrations).
Mais devant les coûts d'équipement élevés on réduisit les temps de traitement grâce au
traitement par lots (batch).

Les utilisations principales étaient le calcul scientifique et l'ingénierie (équations


différentielles).
Apparition du JCL (Job Command Language)
Langage : Fortran et Assembler
OS : FMS (Fortran Monitor System) – IBSYS

Historique des PC – Troisième génération (1965-1980)

Apparition Circuits Intégrés


 Amélioration rapport coût/performance
 Apparition de familles de machines <> ordinateurs propriétaires
Recherche au niveau des systèmes d'exploitation “génériques”
 Scientifique et commercial
 Programmes batch ou Interactifs
Réponse IBM 360
MULTIPROGRAMMATION
 Switch de contexte

6
 CPU en attente IO -> basculement
 Scientifique peu d'I/O
 Commercial énormément d'I/O 80 à 90 % du temps d'attente

SPOULAGE
 Stockage sur disques des jobs écrits sur cartes au fur et à mesure de l'arrivée
 Plus de perte de temps entre fin d'un JOB et démarrage d'un autre
 SPOOL – Simultaneous Peripheral Operation On Line
TEMPS PARTAGE (Time Sharing)
 Frustration des développeurs des systèmes batch
 Temps d'attente entre compile et résultats...
 Création de CTSS (Concurrent Time-Sharing System) suivi par MULTICS
(MULTIplexed Information and Computing Services)
 Multics – 1 machine pour supporter des centaines d’users...
Apparition des mini-ordinateurs (DEC PDP-1 en 1961, 4K mots de 18 bits, pour un
prix de 120000$).
Thompson écrivit une version simplifiée (mono-utilisateur) de MULTICS ; Kernighan
l'appela avec humour UNICS (Uniplexed Information and Computer Service) ; ce nom
allait devenir UNIX1.
D. Ritchie se joignit à K. Thompson pour réécrire UNIX en langage C ; système
d'exploitation le plus porté sur toutes sortes de machine.

Historique des PC – Quatrième génération (1980-1990)

LES ORDINATEURS PERSONNELS


Développement des circuits LSI (Large Scale Integration circuits)
Apparition de puces comportant des milliers de transistors sur un millimètre carré de
silicium
Même architecture que les mini-ordinateurs mais leur prix est beaucoup moins élevé.
Deux systèmes d'exploitation principaux : MS-DOS (Microsoft Inc.) et UNIX.
Dans le milieu des années 80, apparition de réseaux d'ordinateurs individuels qui
fonctionnent sous des système d'exploitation en réseau ou des systèmes d'exploitation
distribués.
1974 – Intel – 8080 (processeur 8 bits)
 OS orienté disque (CP/M) (Control Program for Microcomputers) – Création
Digital Research
1977 – CP/M récrit pour supporter différents processeurs (Intel 8080, Zilog Z80, ...)
1980 – IBM PC – Gates story...
 Mise en contact avec Digital Research
 Refus de DR
 Achat de DOS

7
 Modifications MS-DOS
1985 – 1995 – Windows = couche graphique
1995 – Windows 95
 Utilise MS-DOS pour démarrage
 Exécution des anciens programmes
1999 – Windows 2000 (win NT 4) – 32 bits
2001 – Windows XP – Réunification ???
6 années
2007 – VISTA
 Nouveau GUI (IHM) et nouvelles fonctionnalités
 Challenge – Unification chaîne MSFT.
UNIX
 Plus positionné dans le monde des serveurs et des stations de travail.
 UNIX supporte un système de fenêtrage appelé X Window System (connu sour
X11)
 Prend de plus en plus d'importance sur les Desktop (Inde et Chine)
 Linux est installé de plus en plus sur les PC
 GNOME et KDE sont des IHM (GUI) tournant sur X11

Historique des PC – Cinquiè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, le Newton de chez Apple)
Utiles pour les « nomades » (recherche, navigation, communication)
Très bon marché et capables de se connecter à des ordinateurs distants et performants.
Systèmes d'exploitation de type « micronoyau» :
 Modulaires (un module par fonction)
 Réalisés avec plus ou moins de modules
 adaptables à des très petites machines (PDA et PIC).

Types d’OS

Il n'existe pas d'OS efficace pour tous les contextes...


MONO-UTILISATEURS
 1 seul utilisateur à 1 moment donné
 Machine virtuelle simple
 Possibilité d'être multitâche
 Pas de notion de protection
CONTROLE DE PROCESSUS
 Milieu industriel
 Contrôle de dispositifs complexes
 Réagir en temps réel -> garantir
CONTROLE DE PROCESSUS
 Caractéristiques:
 Fiabilité
 Tolérant aux pannes
SERVEURS DE FICHIERS
 Gestion de gros ensemble d'informations
 Interrogeable à distance

8
 Faire des mises à jour à la volée
 Temps de réponse court
 Disques de type RAID (Redundant Arrays of Inexpensive Disks)
ORDINATEUR DE POCHE
 PDA (Personal Digital Assistant) = petit ordinateur
 Agenda
 Carnet d'adresse
 Mail
 Basés sur CPU 32 bits
SMART CARD
 La puce contient une JVM
 Lors du contact, exécutions des programmes
TRANSACTIONNEL
 Accès à des grandes bases de données
 Modifications fréquentes
 Assurer la cohérence
 Assurer les accès concurrents (conflits)
 Exemple des produits
GENERAL
 Multiutilisateurs
 Multitâches
 Système de gestion de fichiers sophistiqués
 Système E/S variés
 Offre software très variée (éditeurs, compilateurs, tableurs, ...)

Structure interne des OS

SYSTEMES MONOLITHIQUES
 Les plus répandus
 Pas de structures
 Protection uniquement fournie par le mode User/Kernel
 Structure naturelle à 3 niveaux
 Procédure principale
Déclenche les appels systèmes
 Procédures de services qui gèrent les appels systèmes
 Procédures utilitaires qui assistent les services
SYSTEMES EN COUCHES
 Formalisation de la structure monolithique

9
MACHINES VIRTUELLES
Séparation de
 La multiprogrammation (partage CPU)
 La machine étendue (abstraction)

SYSTEMES “MICROKERNELS”
 Diminution des modules tournant en mode Kernel

SYSTEMES CLIENT-SERVEUR
 Approche Horizontale <> Verticale

VMware
 Serveurs complexes (mails, web, intranet, extranet, ...)
 Performance des systèmes
 Partager les machines sans prendre de risques de crash

10
FIN DU PREMIER SYLLABUS (ET VOUS POURREZ CONSTATER QUE LES
QUESTIONS QU’IL NOUS A DONNÉES SONT TOUT SIMPLEMENT À LA FIN DE CE
SYLLABUS)

Gestion des processus – Aspect généraux

Essai de définition :
“Un processus est la représentation d'une instance d'un programme séquentiel en train
de s'exécuter avec les valeurs du compteur ordinal, des registres et des variables”
Différence entre un processus et un programme
 Processus (objet dynamique) <> Programme (statique)
 Analogie avec informaticien gastronome
 Cuisine équipée, recette, ingrédients
Recette = programme (algorithme)
Informaticien = processeur
Ingrédients = données
Simultanéité
 Pseudo-parallélisme
 Exécution enchevêtrée de plusieurs processus sur un seul processeur
 Parallélisme
 Nombre de processeurs = ou > au nombre de processus
Processus = activité incluant :
 Un programme
 Une entrée
 Une sortie
 Un état

Modèle conceptuel

Vitesse d'exécution variable au niveau des processus.


Ordonnancement variable suite aux différentes interruptions pouvant survenir.
 Vitesse d'un processus donné n'est pas forcément identique à plusieurs exécutions

11
Création d’un processus

Les événements provoquant la création d'un processus sont :


1) Initialisation du système (deamons + Gui)
2) Appel système de demande de création de processus par un processus en cours
d'exécution (Split de tâches)
3) Requête utilisateur sollicitant la création d'un nouveau processus (double clic et/ou
shell de commande)
4) Initiation d'un travail en traitement par lot (mainframe “job submission”) (Job
Spooling)
Un processus est techniquement toujours créé par un autre processus SAUF init qui est
le premier

Modèle conceptuel

Vitesse d'exécution variable au niveau des processus.


Ordonnancement variable suite aux différentes interruptions pouvant survenir.
 Vitesse d'un processus donné n'est pas forcément identique à plusieurs exécutions

12