« Systèmes d'exploitation/Unix » : différence entre les versions

Contenu supprimé Contenu ajouté
interwiki
m Bot : Remplacement de texte automatisé (-... +…); changement de type cosmétique
Ligne 10 :
Unix est système d'exploitation à temps partagé très répandu.
 
== Historique ==
 
*Première version développée en 69 au sein des laboratoires Bell sur des machines PDP-7 et PDP-9 (monoprogrammation).
Ligne 26 :
**autres interfaces de communication
 
== Architecture du système ==
 
*Deux niveaux :
Ligne 50 :
Remarque : les appels système sont non portables (ils sont liés à chaque système). Pour éviter cela, on utilise des bibliothèques de plus haut niveau (stdio.h, stlib.h, …) standardisées et portées dans tous les systèmes.
 
== Système de fichiers ==
 
=== Présentation ===
 
*Un fichier UNIX est un ensemble linéaire d’octets qui :
Ligne 64 :
**tout utilisateur connecté à un répertoire de travail (home directory)
 
=== Protection des fichiers et des utilisateurs ===
 
*Il existe plusieurs types d’utilisateurs :
Ligne 103 :
Exemple : création d’un fichier avec les droits : rwx, rw, rw : creat(« mon_fichier.txt », 0766)
 
== Gestion des processus ==
 
Un programme est une suite d’instructions.
Un processus est programme en cours d’exécution (ressources nécessaires pour l’exécuter) et fournit l’état d’avancement de l’exécution du programme.
 
=== Caractéristiques d'un processus ===
 
Principaux composants : tout ce qui est nécessaire à l’exécution du code.
Ligne 147 :
Le processus originel est le processus swapper (numéro 0). Son premier fils créé est le processus initialisation (numéro 1).
 
=== Ordonnancement des processus ===
 
*Dans le noyau, on a la présence de deux files d’attentes :
Ligne 168 :
<br />Fin C : A élu, B prêt
<br />Fin t : B élu, A prêt
<br />...
 
**ordonnancement avec priorité : chaque processus a une priorité et on ne lance que les processus de priorité la plus élevée. En cas de processus de même priorité, on applique la politique du tourniquet.
Ligne 174 :
Le calcul des priorités peut être fait de manière statique (inchangé par le système) mais risque de famine des processus de basse priorité, qui ne s’exécutent jamais. Pour éviter cela, le scheduler recalcule périodiquement les priorités et augmente les priorités des processus pour qu’ils accèdent tous à la CPU (priorités dynamiques : calculées à partir de la priorité de base et du temps processeur consommé réellement). La politique d’ordonnancement aux priorités dynamiques est appliquée dans les systèmes UNIX et Windows.
 
=== Appels systèmes pour la gestion des processus ===
 
Sous UNIX, tout processus est crée à partir d’un autre processus : arborescence de processus dont la racine est le processus swapper et qui évolue dynamiquement au fur et à mesure des créations/destructions de processus.
Ligne 204 :
[[Image:Unix3.JPG]]
 
== Entrées/Sorties ==
 
Chaque processus possède une table de fichiers propriétaire d’environ 20 valeurs (de 0 à 19).