12
1 R R é é s s u u m m é é d d e e s s s s l l i i d d e e s s S S y y s s t t è è m m e e d d e e x x p p l l o o i i t t a a t t i i o o n n 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

Résumé Slides - OS

  • Upload
    m4kn4sh

  • View
    1.037

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Résumé Slides - OS

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

Page 2: Résumé Slides - OS

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.

Page 3: Résumé Slides - OS

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 ?

Page 4: Résumé Slides - OS

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

Page 5: Résumé Slides - OS

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

Page 6: Résumé Slides - OS

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

Page 7: Résumé Slides - OS

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

Page 8: Résumé Slides - OS

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

Page 9: Résumé Slides - OS

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

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

Page 10: Résumé Slides - OS

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

Page 11: Résumé Slides - OS

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

Page 12: Résumé Slides - OS

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