Reword and syntax corrections
This commit is contained in:
parent
ed9e311212
commit
5f643e866f
1 changed files with 22 additions and 19 deletions
|
@ -8,9 +8,10 @@ categories: ["Systèmes d'exploitation", "Cours"]
|
||||||
## Qu'est ce que c'est?
|
## Qu'est ce que c'est?
|
||||||
|
|
||||||
D'après
|
D'après
|
||||||
[Wikipedia](https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation), "un
|
[Wikipedia](https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation) "
|
||||||
système d'exploitation est est un ensemble de programmes qui dirige
|
|
||||||
l'utilisation des ressources d'un ordinateur par des logiciels applicatifs."
|
> un système d'exploitation est est un ensemble de programmes qui dirige
|
||||||
|
> l'utilisation des ressources d'un ordinateur par des logiciels applicatifs.
|
||||||
|
|
||||||
Il permet l'abstraction matérielle *(via les pilotes de périphériques)*, la
|
Il permet l'abstraction matérielle *(via les pilotes de périphériques)*, la
|
||||||
gestion des processus *(et leur séparation, permettant à un processus défectueux
|
gestion des processus *(et leur séparation, permettant à un processus défectueux
|
||||||
|
@ -26,17 +27,17 @@ le premier étant une partie du second.
|
||||||
|
|
||||||
## Les interruptions
|
## Les interruptions
|
||||||
|
|
||||||
D'après [Wikipedia](https://fr.wikipedia.org/wiki/Interruption_(informatique)),
|
D'après [Wikipedia](https://fr.wikipedia.org/wiki/Interruption_(informatique)) :
|
||||||
"une interruption est une suspension temporaire de l'exécution d'un programme
|
|
||||||
informatique par le microprocesseur afin d'exécuter un programme prioritaire
|
|
||||||
(appelé service d'interruption)."
|
|
||||||
|
|
||||||
|
> une interruption est une suspension temporaire de l'exécution d'un programme
|
||||||
|
> informatique par le microprocesseur afin d'exécuter un programme prioritaire
|
||||||
|
> (appelé service d'interruption)."
|
||||||
|
|
||||||
Les interruptions peuvent être envoyées par les périphériques ou le CPU
|
Les interruptions peuvent être envoyées par les périphériques ou le CPU
|
||||||
lui-même. Lors de l'envoi d'une interruption, aucun message n'est envoyé,
|
lui-même. Lors de son envoi, aucun message n'est envoyé, seulement son numéro,
|
||||||
seulement son numéro, le CPU fait alors un saut vers une routine définie par
|
le CPU fait alors un saut vers une routine définie par **la table
|
||||||
**la table d'interruption**. Cette table est mise en place par le *noyau* en
|
d'interruption**. Cette table est mise en place par le *noyau* en RAM. Cette
|
||||||
RAM. Cette table contient une entrée par interruption.
|
table contient une entrée par interruption.
|
||||||
|
|
||||||
Il existe deux grand type
|
Il existe deux grand type
|
||||||
d'interruption:
|
d'interruption:
|
||||||
|
@ -55,28 +56,30 @@ ne peuvent pas être ignorées)*.
|
||||||
### Le cas du timer
|
### Le cas du timer
|
||||||
|
|
||||||
C'est une interruption déclenchée à intervalle régulier, en général toutes les
|
C'est une interruption déclenchée à intervalle régulier, en général toutes les
|
||||||
10ms. Ainsi un processus ne peut pas monopoliser indéfiniment le CPU. Ainsi le
|
10ms. Ainsi un processus ne peut pas monopoliser indéfiniment le CPU. Le noyau
|
||||||
noyau peut stopper, voire tuer un processus trop gourmand.
|
peut stopper, voire tuer un processus trop gourmand lors de son passage sur le
|
||||||
|
CPU.
|
||||||
|
|
||||||
## Les privilèges
|
## Les privilèges
|
||||||
|
|
||||||
Nous avons besoin de contrôler ce que font les processus, seult le noyau doit
|
Nous avons besoin de contrôler ce que font les processus, seul le noyau doit
|
||||||
être tout-puissant. Le contrôle des instructions autorisée ou non ne peut se
|
être tout-puissant. Le contrôle des instructions autorisées (ou non) ne peut se
|
||||||
faire **qu'au niveau du matériel** et donc du CPU.
|
faire **qu'au niveau du matériel** et donc du CPU.
|
||||||
|
|
||||||
Ainsi ce dernier disponse de deux modes de fonctionnement:
|
Ainsi ce dernier disponse de deux modes de fonctionnement:
|
||||||
|
|
||||||
* **protégé**: seul un nombre restreint d'instruction sont disponibles
|
* **protégé**: seul un nombre restreint d'instructions sont disponibles
|
||||||
* **réel** (ou noyau) toutes les instructions sont disponibles.
|
* **réel** (ou noyau) toutes les instructions sont disponibles.
|
||||||
|
|
||||||
Si une instruction privilégiée est exécutées par un processus, une exception
|
Si une instruction privilégiée est exécutées par un processus, une exception
|
||||||
(sorte d'interruption) est lancée.
|
(sorte d'interruption) est lancée.
|
||||||
|
|
||||||
Pour des questions de sécurité, un processus ne doit pas pouvoir exécuter des
|
Pour des questions de sécurité, un processus ne doit pas pouvoir exécuter des
|
||||||
instructions privilegiées. En effet le rôle du noyau ets aussi de faire
|
instructions privilegiées. En effet le rôle du noyau est aussi de faire
|
||||||
abstraction du matériel, lui seul y a accès. Cependant certains processus ont
|
abstraction du matériel, lui seul y a accès. Cependant certains processus ont
|
||||||
besoin d'y accéder **un affichage** avec `printf` ou la **saisie d'un texte au
|
besoin d'y accéder **un affichage** avec `printf` ou la **saisie d'un texte au
|
||||||
clavier** ou encore **créer un processus**.
|
clavier** ou encore **créer un processus**, et utiliser des instructions du mode
|
||||||
|
réel.
|
||||||
|
|
||||||
### Les appels systèmes
|
### Les appels systèmes
|
||||||
|
|
||||||
|
@ -97,6 +100,6 @@ numéro. Les paramètres necessaires aux appels sont eux stockés sur la pile.
|
||||||
Ils sont nombreux : on en compte environ 330 dans Linux et plus de 500 dans
|
Ils sont nombreux : on en compte environ 330 dans Linux et plus de 500 dans
|
||||||
MacOSX.
|
MacOSX.
|
||||||
|
|
||||||
Sour Linux, certaines routines sont inclues dans la `libc` et ne sont donc pas
|
Pour Linux, certaines routines sont inclues dans la `libc` et ne sont donc pas
|
||||||
des appels système. Par exemple `printf` qui affiche des éléments à l'écran et
|
des appels système. Par exemple `printf` qui affiche des éléments à l'écran et
|
||||||
inclu dans la `libc` utilise l'appel système `write`.
|
inclu dans la `libc` utilise l'appel système `write`.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue