Upload
m4kn4sh
View
1.037
Download
2
Embed Size (px)
Citation preview
1
RRRééésssuuummmééé dddeeesss sssllliiidddeeesss ––– SSSyyyssstttèèèmmmeee ddd’’’eeexxxpppllloooiiitttaaatttiiiooonnn
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
2
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.
3
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 ?
4
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
5
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
6
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
7
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
8
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
9
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
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
10
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
11
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
12
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