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?
|
||||
|
||||
D'après
|
||||
[Wikipedia](https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation), "un
|
||||
système d'exploitation est est un ensemble de programmes qui dirige
|
||||
l'utilisation des ressources d'un ordinateur par des logiciels applicatifs."
|
||||
[Wikipedia](https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation) "
|
||||
|
||||
> 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
|
||||
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
|
||||
|
||||
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)."
|
||||
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)."
|
||||
|
||||
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é,
|
||||
seulement son numéro, le CPU fait alors un saut vers une routine définie par
|
||||
**la table d'interruption**. Cette table est mise en place par le *noyau* en
|
||||
RAM. Cette table contient une entrée par interruption.
|
||||
lui-même. Lors de son envoi, aucun message n'est envoyé, seulement son numéro,
|
||||
le CPU fait alors un saut vers une routine définie par **la table
|
||||
d'interruption**. Cette table est mise en place par le *noyau* en RAM. Cette
|
||||
table contient une entrée par interruption.
|
||||
|
||||
Il existe deux grand type
|
||||
d'interruption:
|
||||
|
@ -55,28 +56,30 @@ ne peuvent pas être ignorées)*.
|
|||
### Le cas du timer
|
||||
|
||||
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
|
||||
noyau peut stopper, voire tuer un processus trop gourmand.
|
||||
10ms. Ainsi un processus ne peut pas monopoliser indéfiniment le CPU. Le noyau
|
||||
peut stopper, voire tuer un processus trop gourmand lors de son passage sur le
|
||||
CPU.
|
||||
|
||||
## Les privilèges
|
||||
|
||||
Nous avons besoin de contrôler ce que font les processus, seult le noyau doit
|
||||
être tout-puissant. Le contrôle des instructions autorisée ou non ne peut se
|
||||
Nous avons besoin de contrôler ce que font les processus, seul le noyau doit
|
||||
ê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.
|
||||
|
||||
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.
|
||||
|
||||
Si une instruction privilégiée est exécutées par un processus, une exception
|
||||
(sorte d'interruption) est lancée.
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
inclu dans la `libc` utilise l'appel système `write`.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue