Vous êtes sur la page 1sur 11

Vendredi, le 13 mai 2022

Cours sur les Systèmes d’Exploitation Séance 2


Avec le Dr NLONG

Gestion des processus


Un processus est une instance d’un programme en cours d’exécution.
Un programme est une séquence d’instructions s’exécutant dans un ordre.
Un programme a besoin d’accéder aux ressources de l’ordinateur : CPU, mémoire,
I/O …
L’OS décide des ressources utilisées par chaque programme lors de l’exécution de plusieurs
programmes par le processeur;

Les informations sur le processus sont enregistrées dans une structure données appelée
Descripteur de processus qui capte la dynamique du processus.
Descripteur de processus, une structure de données maintenue par le noyau du
système d’exploitation.

Un appel système est un processus s’exécutant en mode utilisateur ;


C’est une fonction ou procédure d’un sous-programme qui est intégrée au noyau du système
d’exploitation ;

Trois (03) sortes d’interruptions :


Interruptions externes : panne, intervention de l’opérateur … ;
Déroutements qui proviennent d’une situation exceptionnelle ou d’une erreur liée à
l’instruction en cours d’exécution (division par 0, débordement,…)
Appels systèmes

Le microprocesseur est composé de :


Unité de de Contrôle
Unité Arithmétique et Logique

L’unité de contrôle est composée de :


Compteur ordinal
Interface d’adresse
Interface de données
Registre d’instruction
Décodeur de fonctions
Interface de contrôle

L’unité de traitement est composé de :


Accumulateur
UAL
Registre d’état

Les caractéristiques qui diffèrent dans les processeurs 8bits, 32bits, 64bits, … sont :
Nombre de bits de registre
Nombre de bits des bus de données interne
Nombre de bits des bus de données externe
Nombre de bits des bus d’adresses
Nombre de bit de l’espace adressable

C’est ainsi qu’on distingue les processeurs : Intel 80386 SX 16 MHz (Processeur 16/32bits),
Intel 80486 66 MHz (Processeur 32bits), Pentium IV 3 GHz (Processeur 16/32bits), Athlon
64 3,8 GHz (Processeur 32/64bits), Itanium 1,5 GHz (Processeur 64bits).

L'exécution d'une instruction demande le stockage temporaire de données. La mémoire


interne de la CPU est découpée en 2 types de registres :
les registres visibles par l'utilisateur qui permettent au programmeur d'optimiser les
références à la mémoire
les registres de contrôle et de statuts, utilisés par l'unité de commandes pour
contrôler l'activité de la CPU et par des programmes du système d'exploitation pour
contrôler l'exécution des programmes.

Registres visibles par l'utilisateur Une registre utilisateur est un registre référençable par les
instructions exécutées par la CPU. On trouve différentes catégories :
données : ne peuvent pas être employés pour le calcul d'adresses ;
adresses : souvent dévolus à un mode d'adressage particulier (contenant des valeurs
de base ou d'index) ;
conditions (flags) : constitués d'une suite de bits indépendants dont chacun est
positionné en fonction du résultat d'une opération ;
autres : n'ont pas de fonction spécifique.

Registres de contrôle et de statuts


En général, les registres ne sont pas visibles par l'utilisateur. 4 registres sont essentiels a
l'exécution d'une instruction, ils sont utilisés pour l'échange avec la mémoire principale :
le compteur ordinal (PC, pour Program Counter) : contient l'adresse de la prochaine
instruction a exécuter ;
le registre d'instruction (IR) : contient l'instruction du fetch le plus récent ;
le registre d'adresse mémoire (MAR) : contient une adresse memoire. Est
directement connecté au bus d'adresse ;
le registre tampon mémoire (MBR) : contient un mot de données à écrire en
mémoire ou un mot lu récemment. Est directement connecté au bus de données.
Fait le lien avec les registres visibles par l'utilisateur.

Cycle instruction
Le cycle de l'instruction fait référence à la façon dont la machine exécute une instruction.
Ce travail est effectué par la CPU et consistes-en :
recherche de l'instruction (fetch) : l'instruction est lue depuis la mémoire
interprétation de l'instruction (decode) : l'instruction est décodée pour déterminer à
quelle action elle correspond
exécution (execute) :
recherche des données (fetch data) : l'exécution de l'instruction peut demander la
lecture de données dans la mémoire ou depuis un module d'E/S
traitement des données (process data) : l'exécution de l'instruction peut demander
des opérations arithmétiques ou logiques sur les données
écriture des données (write data) : l'exécution de l'instruction peut demander
l'écriture du résultat dans la mémoire ou depuis un module d'E/S

Reduced Instruction Set Computers


Une raison majeure de l'avènement des RISC est la constatation que les compilateurs
produisent surtout des instructions simples (les instructions complexes des CISC sont donc
rarement exploitées et peuvent souffrir d'être recodées par des instructions plus simples).
Les caractéristiques communes aux architectures RISC sont les suivantes :

● vers une instruction par cycle : les instructions peuvent être réalisées par le matériel ;
● des opérations registre-registre dans une architecture de type chargementrangement ;
● des modes d'adressage simples et peu nombreux, les modes d'adressages complexes
pouvant être réalisés à partir des modes d'adressages simples ;
● des formats d'instructions simples et peu nombreux, taille d'instruction fixe, possédant
des champs fixes. Le tout résulte en des instructions et une unité de contrôle simples.

Cours sur les Systèmes d’Exploitation Séance 3


Avec le Dr NLONG

Etats d’un processus


Un processus n’utilise pas toujours le processeur out le temps que dure son exécution :
Il fait des E/S
Il attend des ressources qui ne sont pas toujours disponibles

L’efficacité du processeur se définit comme le pourcentage du temps pendant lequel il


exécute des instructions.

Diagramme de transition
L’état d’un Processus Bloqué
Fin d’E/S Blocage

Préemption sortie
En
Terminé
exécution

Election
Prêt
Système Batch
Ordonnancement de processus: PAPS

Premier arrivé premier servi (FIFO).

Ordonnancement de processus: PCT

Plus court d’abord

Exercice : Montrer que l’ordonnancement PCT minimise le temps d’attente


moyen des processus.

Pour n processus le temps d’attente global est :


T= ((n-1)P1 + (n-2)P2+ … +Pn-1)/n avec P1<P2<Pn

Ordonnancement de processus : PCTTR

Plus court temps de traitement restant

Ordonnancement de processus : Tourniquet

Ordonnancement de processus : Priorités

Dans certains systèmes les activités qui se déroulent peuvent exhiber une certaine
criticité.

Inter-blocage : plusieurs processus se bloquent mutuelllement.

Communications inter-processus
Le modèle général de processus confine chaque processus dans un espace protégé.
On ne peut faire un appel système qui tend à violer la protection d’un processus.

Déroutement : Un processus tente d’accéder l’espace protégé d’un autre processus.

L’OS met en place un certain nombre de mécanismes permettant aux processus de


communiquer :
Echange de données
Synchronisation
IPC : Echange de données
On peut la faire via :
Les fichiers ;
Une mémoire partagée ;
sockets : canal de communication entre deux processus distants (Echanger les
données des processus qui ne sont pas dans une même machine à travers un
réseau). On parle d’échange de message.

IPC : Synchronisation
Dans plusieurs situations les deux processus ne peuvent accéder simultanément à la même
ressource
Problème du producteur-consommateur
Problème des rédacteurs
Comment faire pour que les exécutions se déroulent dans le bon ordre ?
 Attente active ?
 Priorité ?
 Intervention de l’OS ?

Attente active :
Les processus partagent une variable, qui commande l’accès à la ressource critique
int lock = 0; // initialisation
while (lock);// Attente active lock = 1; // on verrouille
……
…….
…….
lock = 0;// on déverrouille

On parle d’attente active parce que les processus utilisent quand-même la ressource
processeur pendant les tests répétés de la variable

Sémaphores :
Variable partagée par différents processus qui garantit un accès séquentiel à sa
manipulation.
Deux processus ne peuvent pas manipuler le sémaphore en même temps.

Verrous :
Mécanisme permettant à des processus de se synchroniser.
Utilisés en particulier pour l’accès aux fichiers et aux bases de données.
On peut avoir une granularité fine ou grande.
Le verrou est un objet du système d’exploitation.
L’OS gère ainsi le blocage et le réveil des processus.
Signaux :
Moyen d’informer le processus sur la suite des évènements.
Notification asynchrone envoyée à un processus pour lui signaler un événement.

Processus et threads
Un processus est la dynamique d’un programme pendant son exécution
Ce fonctionnement hérité de la multiprogrammation suppose que deux
programmes dans un système sont indépendants, du point de vue de leur
conception
 Ils n’ont donc rien à partager, à part les ressources nécessaires à l’exécution
de chacun
Un processus est normalement créé à partir d’un autre déjà existant (son père)
Mais en général pour faire autre chose que ce que son père fait (la plupart des
processus sont créés à partir de l’interface utilisateur)
L’appel système fork() est utilisé pour cela

Création de processus
● Fork – Crée un processus identique à l’appelant – Transmet le PID du fils au père –
Retourne 0 au fils à sa création – Le fils hérite de tous le contexte du père (duplication) –
Donc le fils et le père s’exécutent par la suite de la même façon exactement

Chargement d’un nouvel exécutable


● Exec – Remplace le contexte de l’appelant par les données du nouveau programme –
Par copie à partir du fichier exécutable associé – On garde donc le même PID, mais la
mémoire change – Le CO pointe sur la première instruction du nouveau programme –
On a donc une nouvelle personnalité

● Le concept de thread
– Plusieurs fils d’exécution à l’intérieur d’un même processus – Le thread n’a pas vocation à
être un processus lourd – Il est généralement créé pour exécuter une tâche et disparaître à
la fin de cette tâche – La tâche est une procédure ordinaire dans un programme – Mais qui
doit pouvoir accéder aux données globales du programme – Et fournir son (ses) résultat(s)
comme données globales aussi – Les threads doivent donc partager l’espace d’adressage
global – Mais avoir chacun sa pile !
● (zone mémoire où sont stockées les données locales de fonctions)

Cours sur les Systèmes d’Exploitation Séance 4


Avec le Dr NLONG

Ordonnancement : permet de partager le processeur entre différents processus.


Pourquoi suspendre un processus :
 Lorsque la ressource demandée est indisponible
 Lorsque le temps d’exécution alloué au processus est écoulé

Gestion de la Mémoire

Introduction
La mémoire est une suite d’octets.

Adresse logique et physique


L’adresse logique ou adresse virtuelle est une adresse générée par la CPU
L’adresse physique est une adresse vue par l’unité de mémoire.
MMU (Memory Management Unit) est un dispositif matériel qui fait la conversion des
adresses virtuelles à physiques.

Monoprogrammation
Un seul programme est exécuté à la fois.
Tout le travail revient au programmeur pour pouvoir charger un autre programme.

Multiprogrammation
Partitions fixes :
L’exécution de processus multiples se passe en même temps.
On subdivise la mémoire en n partitions de taille fixe, chaque partition peut contenir
exactement 1 processus.
Lorsqu’un processus est loqué en attente d’une E/S, un autre peut utiliser la CPU.
Le SE au démarrage se charge de configurer les partitions.
Lorsqu’on a mis un programme dans une partition, on le gère par les caractéristiques base
(Début) et limite (Fin).
Un trou (hole) est une partition vide : Bloc de mémoire disponible.

Une ou plusieurs files :

Swapping :
Capacité à transférer un processus de la mémoire principale vers le disque et vice-versa.

Partitions Variables :
On crée une partition suite à la demande d’un processus.

Fragmentation :
Fragmentation : espace vide d’une partition ???
Mémoire Virtuelle :
 Principe de la mémoire virtuelle : la taille de l’ensemble formé par le programme, les
données et la pile peut dépasser la capacité disponible de mémoire physique.

Pagination (Paging) :
Un défaut de page est une situation où l’instruction en cours d’exécution fait
référence à une adresse dans une page qui n’est pas en mémoire physique.

Segmentation :

Protection et partage :

Cours sur les Systèmes d’Exploitation Séance 5


Avec le Dr NLONG

Systèmes de fichiers
Types de fichiers :
 Data
 Numeric, …
 Program
 Document

Définition
Pour l’OS le fichier est une séquence de mots ou d’octets.
Le fichier est aussi un tableau ou structure d’enregistrement.
Il est aussi une structure complexe (définir comment reconnaitre les éléments d’un fichier
par exemple en gras, en italic , etc …).

Attributs d’un fichier


 Nom
 Identifiant
 Type
 Emplacement
 Taille
 Protection
 Temps, les données et l’identifiant de l’utilisateur

Type de fichier- nom.extension


Les fichiers .com sont des fichiers exécutables très courts qui peuvent se tenir sur un
segment ;
Les fichiers .exe sont tout autre type de fichier exécutable sur Windows.
Sur linux il s’agit des fichiers .bin (Binary)

Opérations sur les fichiers


Un fichier est une attraction des types de données. Il est défini par les opérations :
 Créer
 Ecrire
 Lire
 Reposision within file- file seek (Tête de lecture)
 Supprimer
 Truncate un fichier : couper la fin d’un fichier
 Ouvrir
 Fermer

Informations dans le répertoire


 Nom de fichier
 Type de fichier

Organisation logique des répertoires


 Retrouver ou rechercher rapidement un fichier
 Avoir une image convenable pour les utilisateurs
 Grouper les fichiers dans un centre d’intérêt

Chemin relatif et chemin absolu


 Chemin absolu depuis la racine (/monfichier.txt : Racine)
 Chemin relatif depuis le fichier courant (./monfichier.txt : Répertoire actuel,
../monfichier.txt : répertoire parent)

NB : / sur Windows et autre, \ sur Unix

Un répertoire est un dossier.

Méthodes d’accès aux fichiers


 Séquentiel
 Direct

? Différence entre les formats de systèmes fichiers NTFS, FAT32, etc …


Implémentation des systèmes de fichiers
Une structure de fichiers est une unité de stockage logique avec une collection relatant
l’information.
Le système de fichiers réside sur la mémoire secondaire (disque)
Il est organisé en couches.
Une partition a toujours un et un seul système de fichier.

Allocation contigüe
Il n y a pas de fichier intermédiaire entres les espaces de fichiers.

Liens des allocations

Système de fichier FAT

Supprimer un fichier c’est déclarer l’espace vide des blocs.

Défragmentation d’un disque


Il s’agit de réorganiser les blocs dispersés dans un disque.

C’est le système de fichier qui définit le nombre de blocs ainsi que leur taille.

Qu’est-ce qu’un Anode ?


C’est une structure de contrôle qui contient toutes les informations clé d’accès à un fichier
sauf son nom qui est contenu dans le répertoire.

Cours sur les Systèmes d’Exploitation Séance 6


Avec le Dr NLONG

Gestion des Entrées/Sorties


Contrôleur E/S : Assure la communication entre les modules du processeur et les
périphériques.
Double nature :
 Communication avec la mémoire centrale et le processeur à l’aide des bus systèmes,
etc…
 Communication avec les périphériques

Il existe trois (03) modes de gestion des E/S


La liaison programmée
C’est le modèle le plus simple dans lequel le contrôleur E/S est connecté à une paire de
registre E/S (Données Adresses) dans le CPU via un bus.
Le processeur fait une attente active ; il attend que le périphérique soit libre en exécutant
des instructions.
Le mode de gestion est inefficace.
Dans ce mode, le code ASCII du caractère tapé au clavier est envoyé au processeur qui le
met dans l’accumulateur.

Le Buffer est l’endroit où est stocké le signal envoyé par le périphérique, lequel est envoyé
ensuite au module du processeur par le contrôleur E/S.

L’accumulateur est un registre qui garde les données encours d’utilisation.

Les entrées-sorties pilotées par les interruptions


Comment l’ordinateur identifie le périphérique demandant une interruption ?
 Scrutation
Identification du composant par scrutation, en interrogeant, tous les périphériques
 Interruption “vectored”
Le périphérique après avoir déposé un signal d’interruption, place sur le bus de
communication l’identification de l’interruption
Matériel supplémentaire

Accès direct à la mémoire


Le dispositif DMA est un composant matériel permettant d’effectuer des échanges entre
mémoire centrale et unité d’échange sans utilisation du processeur.
Petit processeur associé au contrôleur pour pouvoir accéder à la mémoire.

Bus
Un bus est un groupement de conducteurs électriques permettant une connexion physique
et le transport de signaux entre les différents composants de l’ordinateur.
Exemple de périphérique : Le disque dur
Les registres les plus évolués sont de 64bits.

Les blocs dans un disque sont définis par le système de formatage et non le constructeur.

Vous aimerez peut-être aussi