Chapitre 1 : Introduction Chapitre 2 : Processus Chapitre 3

  • Published on
    05-Jan-2017

  • View
    218

  • Download
    4

Embed Size (px)

Transcript

  • Chapitre 1 : Introduction

    Chapitre 2 : Processus

    Chapitre 3 : Ordonnancement

    Chapitre 4 : Outils de communication centraliss entre processus

    Chapitre 5 : Allocation mmoire

    Chapitre 6 : Mmoire virtuelle

    Chapitre 7 : Interblocage

    Chapitre 8 : Synchronisation entre processus

    Chapitre 9 : Inversion de Priorit

    Chapitre 10 : Communication inter processus sur le rseau

    Chapitre 11 : Programmation socket

    Table des figures

  • Chapitre 1 : Introduction Ce chapitre constitue une introduction aux systmes d'exploitation multiprogramms.

    Cours : Introduction aux systmes d'exploitation

    Evolution de la prise en compte des entres sorties par la machine matrielle : vers la machine multiprogramme

    Le mode programm Les interruptions Le DMA ou Direct Memory Access

    Rles du systme d'exploitation dans un environnement multiprogramm. Dfinition. Fonctions d'un systme d'exploitation Les diffrentes classes de systme

    Un peu plus sur les systmes temps rel Notions de base

    Interfaces du systme d'exploitation Modes d'excutions et Commutations de contexte

    Un premier test

    Table des figures

  • Introduction>Introduction aux systmes d'exploitation

    1 Cours : Introduction aux systmes d'exploitation

    Ce chapitre constitue une introduction aux systmes d'exploitation multiprogramms. Aprs un rappel sur

    l'volution de la prise en compte des entres/sorties par la machine physique, nous donnons la dfinition

    d'un systme d'exploitation., puis nous listons les diffrentes fonctions qui le composent. Les diffrents

    types de systmes d'exploitation sont ensuite prsents et une attention toute particulire est alors porte

    sur les systmes temps rel. Nous finissons par un rappel sur les notions de base.

    1.1 Evolution de la prise en compte des entres sorties par la machine matrielle : vers la machine multiprogramme

    Nous nous intressons l'volution de la prise en charge des entres/sorties au niveau matriel. Trois

    modes sont possibles : le mode programm, les interruptions et le Dma. Nous allons voir que le dernier

    mode libre compltement le processeur de la ralisation d'une entre sortie et permet alors de faire

    excuter celui-ci d'autres oprations durant celle-ci : le systme pourra alors tre multiprogramm, c'est--

    dire pourra permettre le traitement de plusieurs programmes : l'une en entres/sorties, l'autre en calcul.

    1.1.1 Le mode programm Le premier mode de gestion des entres/sorties est le mode programm. Dans ce mode, l'unit d'change

    qui interface le priphrique au bus et au processeur, ne sait pas dlivrer d'informations sur son tat. Pour

    savoir si l'unit d'change est prte recevoir ou dlivrer une nouvelle donne, le processeur doit

    rgulirement lire le contenu du registre d'tat RE de l'unit d'change. Le processeur est donc

    compltement occup durant l'entre sortie par la ralisation de cette boucle de scrutation dont la logique

    est donne sur la figure 1 en mmoire centrale. On ne peut donc concevoir quun systme

    monoprogramm.

    http://nefertiti/mps/ns/chap1/intro_lecon0.html

  • Fig 1 : Le mode programm

    1.1.2 Les interruptions Une premire amlioration provient du mcanisme d'interruption : l'unit d'change dlivre alors une

    interruption destination du processeur lorsqu'elle est prte dlivrer ou recevoir une nouvelle donne. Le

    processeur, la prise en compte de cette interruption, va excuter la routine associe qui lit la donne

    prsente dans RD (lecture) ou met dans RD la donne suivante crire. Le processeur ne doit donc plus

    scruter le registre d'tat RE de l'unit d'change pour savoir si celle-ci est prte. Cependant, il reste le seul

    pouvoir accder la mmoire centrale et doit donc encore grer l'entre sortie dans le sens o il doit se

    charger des transferts mmoire centrale registre de donne.

  • Fig 2 : Entre/sortie et interruption

    Complment : Nous rappelons brivement le mcanisme des interruptions. Le processeur excute un programme lambda. L'interruption n3 survient, dclenche par une unit priphrique. Le processeur arrte alors l'excution du programme lambda. Il sauvegarde le contexte du processeur en mmorisant notamment l'adresse de la prochaine instruction excuter dans le programme lambda (ici 1002). Puis il dtermine grce une table appele la table des vecteurs d'interruptions, l'adresse de la routine associe l'interruption n3. : ici 0017. Il charge alors le CO avec cette adresse, excute la routine d'interruption qui se termine par l'instruction machine RTI (return Interrupt) : cette instruction restaure le contexte sauvegard lors de la prise en compte de l'interruption : le CO est charg avec l'adresse 1002 et le programme lambda reprend son excution l o il avait t interrompu.

  • Traitement d'une interruption

    1.1.3 Le DMA ou Direct Memory Access L'ajout d'un dispositif de DMA (Direct Memory Access) permet l'unit d'change d'accder par elle-mme

    la mmoire centrale. Le DMA com port e quatre registres qui servent dcrire l'opration

    d'entres/sorties raliser (nombre d'octets transfrer nb, adresse du premier octet @m, sens de

    l'opration, .adresse du priphrique concern @p). Combiner au mcanisme d'interruption, le DMA

    permet de dcharger le processeur de toute la ralisation des entres/sorties. Celui-ci n'a plus qu'

    initialiser l'opration en initialisant le contenu des registres du DMA tel que cela est dcrit sur la figure 3. Le

    DMA se charge ensuite d'effectuer l'opration d'entres/sorties, en lisant ou crivant lui-mme en mmoire

    centrale les donnes transfres par l'unit priphrique. Lorsque l'opration d'entres sorties est termine,

    le DMA met une interruption pour le signaler au processeur.

    Fig 3 : DMA et entre sortie

    Le chronogramme de la figure 4 illustre l'activit du processeur et du DMA lorsque le systme est

    monoprogramm. Le programme Prog s'excute et fait du calcul : le processeur est actif et le DMA inactif.

    A un instant t, le programme Prog demande une opration d'entres/sorties (Lire/Ecrire). Le Dma, une fois

    initialis par le processeur, devient actif et le processeur inactif, puisqu'il n'y a qu'un seul programme en

    mmoire centrale et que le DMA gre seul l'opration d'entres sorties. Le processeur demeure donc inactif

    jusqu ce que le DMA ait fini l'entre sortie; ce moment l le processeur reoit l'interruption mise par le

    DMA, redevient actif, traite l'interruption puis reprend l'excution du programme Prog..

  • Fig 4 : Activit du CPU et du DMA sur un systme monoprogramm

    Laisser le processeur inactif conduit une mauvaise utilisation de cette ressource matrielle. On choisit

    donc de "monter" plusieurs programmes en mmoire centrale : ainsi comme le montre la figure 5, lorsque le

    DMA ralise une opration d'entres sorties pour le programme ProgA, le processeur peut excuter un

    autre programme qui demande du calcul : ProgB. Le systme est devenu multiprogramm.

  • Fig 5 : Activit du CPU et du DMA sur un systme multiprogramm

  • Introduction>Introduction aux systmes d'exploitation>Role du systeme

    1.2 Rles du systme d'exploitation dans un environnement multiprogramm. Dfinition.

    Le systme est multiprogramm : plusieurs programmes coexistent en mmoire centrale et utilisent le

    processeur pour effectuer des calculs et le DMA pour raliser les oprations d'entres sorties. On distingue

    en mmoire centrale un programme particulier : le systme d'exploitation, charg en mmoire haute avec le

    vecteur d'interruptions. Le premier rle du systme d'exploitation dans un systme multiprogramm est de

    grer le partage de la machine physique et des ressources matrielles entre les diffrents programmes.

    Cette gestion doit assurer l'quit d'accs aux ressources matrielles et assurer galement que les accs

    des programmes ces ressources s'effectuent correctement (protection des ressource s). Plus

    prcisment, la gestion du partage de la machine physique et des ressources matrielles doit permettre de

    rpondre aux questions suivantes :

    partage du processeur unique : parmi tous les programmes chargs en mmoire centrale, lequel doit

    s'excuter ?

    partage de la mmoire centrale : comment allouer la mmoire centrale aux diffrents programmes.

    Comment assurer la protection entre ces diffrents programmes utilisateurs ? Comment protger le

    systme d'exploitation des programmes utilisateurs ? Par protection, on entend ici veiller ce qu'un

    programme donn n'accde pas une plage mmoire alloue un autre programme.

    partage des priphriques

    Le second rle du systme d'exploitation est de faciliter l'accs la machine physique pour l'utilisateur de

    celle-ci. En effet sur une machine physique brute, pour raliser par exemple une opration d'entres

    sorties, il est ncessaire de connatre la manire dont le priphrique est gr (DMA, interruption ?). De

    mme pour faire excuter un programme, il faut charger celui-ci en mmoire centrale et connatre la

    manire dont l'allocation des mots mmoire est gre. Ceci est fastidieux et compliqu pour l'utilisateur de

    la machine. Le systme d'exploitation offre l'utilisateur une interface destine masquer les caractristiques

    matrielles. Cette interface est compose d'un ensemble de primitives qui grent elles-mmes les

    caractristiques matrielles sous-jacentes et offrent un service l'utilisateur. Un utilisateur souhaitant

    raliser une opration d'entres sorties fait appel une primitive unique ECRIRE sans se soucier du type

    de gestion associe au priphrique. C'est la primitive qui prendra en charge la spcificit du priphrique.

    L'ensemble des primitives offertes par le systme d'exploitation cre une machine virtuelle au dessus de la

    machine physique plus simple d'emploi et plus conviviale. On distingue deux types de primitives : les

    appels systmes et les commandes.

    http://nefertiti/mps/ns/chap1/intro_lecon0.html

  • Dfinition : Systme d'exploitationC'est un ensemble de programmes qui ralise l'interface entre le matriel de l'ordinateur et les utilisateurs. Il a deux objectifs principaux :

    construction au-dessus du matriel d'une machine virtuelle plus facile d'emploi et plus conviviale prise en charge de la gestion de plus en plus complexe des ressources et partage de celle-ci

    Comme son nom le suggre, le systme dexploitation a en charge l'exploitation de la machine pour en faciliter l'accs, le partage et pour l'optimiser

  • Introduction>Introduction aux systmes d'exploitation>Fonction du systme

    1.3 Fonctions d'un systme d'exploitation

    Le systme d'exploitation (figure 6) prsente donc comme une couche logicielle place entre la machine

    matrielle et les applications. Il s'interface avec la couche matrielle, notamment par le biais du mcanisme

    des interruptions. Il s'interface avec les applications par le biais des primitives qu'il offre : appels systme et

    commandes. Le systme d'exploitation peut tre dcoup en plusieurs grandes fonctions prsentes sur la

    figure ci-dessous Dans une premire approche, ces fonctions qui seront tudies plus en dtails dans les

    chapitres suivants du cours sont :

    Gestion du processeur : le systme doit grer l'allocation du processeur aux diffrents programmes

    pouvant s'excuter. Cette allocation se fait par le biais d'un algorithme d'ordonnancement qui planifie

    l'excution des programmes. Selon le type de systme d'exploitation, l'algorithme d'

    ordonnancement rpond des objectifs diffrents

    Gestion de la mmoire : le systme doit grer l'allocation de la mmoire centrale entre les diffrents

    programmes pouvant s'excuter (pagination/segmentation). Comme la mmoire physique est

    souvent trop petite pour contenir la totalit des programmes, la gestion de la mmoire se fait selon le

    principe de la mmoire virtuelle : un instant donn, seules sont charges en mmoire centrale, les

    parties de code et donnes utiles l'excution

    Gestion des entres/sorties : le systme doit grer l'accs aux priphriques, c'est--dire faire la

    liaison entre les appels de haut niveau des programmes utilisateurs (exemple getchar()) et les

    oprations de bas niveau de l'unit dchange responsable du priphrique (unit dchange clavier)

    : c'est le pilote d'entres/sorties (driver) qui assure cette correspondance

    Gestion de la concurrence : Comme plusieurs programmes coexistent en mmoire centrale, ceux-ci

    peuvent vouloir communiquer pour changer des donnes. Par ailleurs, il faut synchroniser l'accs

    aux donnes partages afin de maintenir leur cohrence. Le systme offre des outils de

    communication et de synchronisation entre programmes

    Gestion des objets externes : La mmoire centrale est une mmoire volatile. Aussi, toutes les

    donnes devant tre conserves au-del de l'arrt de la machine, doivent tre stockes sur

    une mmoire de masse ( disque dur, disquette, cdrom...). La gestion de l'allocation des mmoires

    de masse ainsi que l'accs aux donnes stockes s'appuient sur la notion de fichiers et de systme

    de gestion de fichiers (SGF).

    Gestion de la protection : le systme doit fournir des mcanismes garantissant que ses ressource s

    (CPU, mmoire, fichiers) ne peuvent tre utilises que par les programmes auxquels les droits

    ncessaires ont t accords. Il faut notamment protger le systme et la machine des programmes

    utilisateurs (mode d'excution utilisateur et superviseur)

    http://nefertiti/mps/ns/chap1/intro_lecon0.html

  • Fig 6 : Les grandes fonctions du systme dexploitation

  • Introduction>Introduction aux systmes d'exploitation>Classe des systmes

    1.4 Les diffrentes classes de systme

    Les systmes d'exploitation multiprogramms peuvent tre classs selon diffrents types qui dpendent

    des buts et des services offerts par les systmes. On distingue principalement trois grandes classes de

    systmes

    les systmes multiutilisateurs interactifs : l'utilisateur est "derrire son clavier et son cran" ; il

    soumet des excutions et attend les rsultats : il faut donc rduire au maximum le temps d'attente et

    faire croire l'utilisateur qu'il est seul utiliser la machine. Ce sont des systmes adapts la mise

    au point de programmes (exemple : UNIX, Linux)

    les systmes traitements par lots (batch) : les programmes sont excuts en diffr, les uns la

    suite des autres. Ce sont des systmes ddis aux travaux de production (exemple : MVS...). On

    peut noter que beaucoup de systmes offrent simultanment un service de temps partag et un

    service de traitement par lots (VMS)

    les systmes temps rels : les programmes en excution sont soumis des contraintes de temps,

    c'est--dire que leurs excutions doivent tre imprativement acheves une date butoir appele

    chance. Comme ces systmes sont souvent interfacs un environnement dynamique (procd)

    dlivrant des vnements synchrones ou asynchrones auxquels ils doivent ragir, on parle aussi de

    systmes ractifs. Ce sont des systmes adapts la commande de procd (exemple : LynxOS...)

    1.4.1 Un peu plus sur les systmes temps rel

    Dfinition : Application temps relUne application temps rel est une application pour laquelle le facteur temps est la principale contrainte respecter. L' application doit fournir un rsultat juste mais si celui-ci est fourni hors dlai, alors il ne pourra pas tre valid.

    Il ne sagit pas par contre, de rendr...

Recommended

View more >