Next:
Introduction et Historique
Up:
Cours Système
Previous:
Cours Système
The Unix System Administrator Webring
:
[Home]
[Next]
[Prev]
[Random]
[List]
Contents
Introduction et Historique
Historique
les débuts (1945-55)
Transistors et traitement par lots 1955-65
VLSI et Multiprogrammation 1965-80
UNIX
Des points forts
Des points faibles
Structure générale des systèmes d'exploitation
Les couches fonctionnelles
L'architecture du système
L'architecture du noyau
Système de Gestion de Fichiers
Le concept de fichier
Fichiers ordinaires / Fichiers spéciaux.
Les catalogues (historique)
Les inodes.
Organisation des disques System V
Adressage des blocs dans les inodes
Allocation des inodes d'un disque
Allocation des blocs-disque
Les systèmes de fichiers ffs/ufs de BSD
Le Buffer Cache
Introduction au buffer cache
Avantages et désavantages du buffer cache
Le buffer cache, structures de données.
La liste doublement chaînée des blocs libres
L'algorithme de la primitive
getblk
La bibliothèque standard
Les descripteurs de fichiers.
Ouverture d'un fichier
Redirection d'un descripteur:
freopen
Création de fichiers temporaires
Ecriture non formatée
Accès séquentiel
Manipulation du pointeur de fichier
Un exemple d'accès direct sur un fichier d'entiers.
Les autres fonctions de déplacement du pointeur de fichier.
Les tampons de fichiers de stdlib.
Les modes de bufferisation par défaut.
Manipulation des tampons de la bibliothèque standard.
Manipulations ponctuelles
Manipulations du mode de bufferisation et de la taille du tampon.
Manipulation des liens d'un fichier
Lancement d'une commande shell
Terminaison d'un processus
_exit
exit
atexit
Gestion des erreurs
Création et destruction de répertoires
Appels système du Système de Gestion de Fichier
open
Déroulement interne d'un appel de
open
creat
read
write
lseek
dup
et
dup2
close
Les processus
Introduction aux processus
Création d'un processus -
fork()
Format d'un fichier exécutable
Chargement/changement d'un exécutable
zone u et table des processus
fork
et
exec
(revisités)
Le contexte d'un processus
Commutation de mot d'état et interruptions.
Les interruptions
Le problème des cascades d'interruptions
Etats et transitions d'un processus
Listes des états d'un processus
Lecture du diagramme d'état.
Un exemple d'exécution
La table des processus
La zone u
Accès aux structures
proc
et
user
du processus courant
Les informations temporelles.
Changement du répertoire racine pour un processus.
Récupération du PID d'un processus
Positionement de l'euid, ruid et suid
Tailles limites d'un processus
Manipulation de la taille d'un processus.
Manipulation de la valeur nice
Manipulation de la valeur umask
L'appel système
fork
L'appel système
exec
L'ordonnancement des processus
Le partage de l'unité centrale
Famine
Stratégie globale
Critères de performance
Ordonnancement sans préemption.
Les algorithmes préemptifs
Round Robin (tourniquet)
Les algorithmes à queues multiples
Multi-level-feedback round robin Queues
Les niveaux de priorité
Evolution de la priorité
Les classes de priorité
La mémoire
les mémoires
La mémoire centrale
Allocation contiguë
Pas de gestion de la mémoire
Le moniteur résidant
Le registre barrière
Le Registre Base
Le swap
Le coût du swap
Utilisation de la taille des processus
Swap et exécutions concurrentes
Contraintes
Deux solutions existent
Les problèmes de protection
Les registres doubles
Ordonnancement en mémoire des processus
Allocation non-contiguë
Les pages et la pagination
Ordonnancement des processus dans une mémoire paginée
Comment protéger la mémoire paginée
La mémoire segmentée
La mémoire virtuelle
Les overlays
Le chargement dynamique
Demand Paging
Efficacité
Les algorithmes de remplacement de page
Le remplacement optimal
Le remplacement peps (FIFO)
Moins récemment utilisée LRU.
L'algorithme de la deuxième chance
Plus fréquemment utilisé MFU
Le bit de saleté (Dirty Bit)
Allocation de pages aux processus
Problèmes d'écroulement
L'appel fork et la mémoire virtuelle
Projection de fichiers en mémoire
Tubes et Tubes Nommés
Les tubes ordinaires (
pipe
)
Création de tubes ordinaires
Lecture dans un tube
Ecriture dans un tube
Interblocage avec des tubes
Les tubes nommés
Ouverture et synchronisation des ouvertures de tubes nommés
Suppression d'un tube nommé
La gestion des terminaux
Acquisition d'un descripteur associé à un terminal
Test d'association d'un descripteur avec un terminal
Terminal de contrôle - Sessions - Groupes de processus
Acquisition d'un terminal de contrôle par une session
Groupes de processus
Premier Plan et Arrière Plan
Quelques fonctions
Changement du groupe en premier plan
Les drivers logiciels de terminaux
La structure
termios
Modes d'entrée
Modes de sortie
Modes de contrôle
Modes locaux
les modes canoniques et non-canoniques
Les caractères spéciaux
Manipulation du driver logiciel de terminaux et de la structure termios
Manipulation de la vitesse de transmission
Pseudo-terminaux
La primitive
ioctl
Les signaux
Provenance des signaux
Gestion interne des signaux
L'envoi de signaux : la primitive kill
La gestion simplifiée avec la fonction
signal
Un exemple
Problèmes de la gestion de signaux ATT
Le signal SIGCHLD
Manipulation de la pile d'exécution
Quelques exemples d'utilisation
L'appel pause
La norme POSIX
Les ensembles de signaux
Le blocage des signaux
sigaction
L'attente d'un signal
Les verrous de fichiers
Caractéristiques d'un verrou
Le mode opératoire des verrous
Manipulation des verrous
Utilisation de
fcntl
pour manipuler les verrous
Algorithmes Distribués & Interblocages
Mode d'utilisation des ressources par un processus.
Définition de l'interblocage (deadlock)
Quatre conditions nécessaires à l'interblocage.
Les graphes d'allocation de ressources
Inter Processus Communications (I.P.C.)
Références d'IPC
Création de clés
La structure ipc_perm
Les options de la structure ipc_perm
L'accès aux tables d'IPC par le shell
Les files de messages
la structure ms
q
id_ds
La structure générique d'un message
Utilisation des files de messages
L'envoi de message
La primitive d'extraction
La primitive de contrôle
Les sémaphores
La primitive de manipulation
semop()
La primitive de contrôle des sémaphores
Les segments de mémoire partagée
Utilisation des segments de mémoire partagée
Sécurité
Protection des systèmes d'exploitation
Généralités sur le contrôle d'accès
Domaines de protection et matrices d'accès
Domaines de protection restreints
Avantages des domaines de protections restreints
Le cheval de Troie
Le confinement
les mécanismes de contrôle
Application des capacités au domaines de protection restreints
Les ACL
Appels systemes
setacl
et
getacl
Multiplexer des entrées-sorties
Résolution avec deux processus
Solution avec le mode non bloquant
Utiliser les mécanismes asynchrones
Les outils de sélection
La primitive
select
La primitive
poll
Les extensions de
read
et
write
une solution multi-activités
About this document ...
Dominique REVUZ
Mon Feb 2 12:10:31 MET 1998
Une Bug Un mail Merci