Résumé des slliides – Système d’’explloiitatiion Résumé des s des – Système d exp o tat on

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. 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. 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. 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. 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. 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.

3.

4.

5.

6.

1

7.

8.

É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,... 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

Sign up to vote on this title
UsefulNot useful