Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #12: Survol des S.É. modernes & Processus mémoire et ordonnancement.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Synchronisation des processus père - fils
Types des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 435 Principes des systèmes dexploitation Appels de système (Tanenbaum 1.6)
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
C.
Le Concept du programme enregistré
Mémoire & Processus Cours SE - SRC
Outils de développements
FLSI602 Génie Informatique et Réseaux
Systèmes d’exploitation
Système d’exploitation Évolué ”Unix”
Système d’exploitation: Principe
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Filtre programmable nawk(1)
Les Systèmes d’Exploitation
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Système d’exploitation
Les instructions PHP pour l'accès à une base de données MySql
FICHIERS : Définition : Algorithme général:
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Exemples de programmation Bourne shell et nawk(1)
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Programmation nawk(1)
GPA435 Systèmes d’exploitation et programmation de système
GPA435 Systèmes d’exploitation et programmation de système
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie II 2014.
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie I 2014.
Systèmes dexploitation et programmation de systèmes -GPA435- Cours #5: Éléments de programmation (Partie 2) Enseignant: Jean-Philippe Roberge Jean-Philippe.
Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #4: Éléments de programmation (Partie 1) Enseignant: Jean-Philippe.
Module 2 : Préparation de l'analyse des performances du serveur
CSI3531 – Labo 1 Lobservation du comportement de processus.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Système dexploitation: Principe IFT6800 – E 2008 Pierre Poulin.
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 6 Substitution: variables et commandes,
Animateur : Med HAIJOUBI
Utilisation avancée de linux
Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #8: Introduction aux filtres - Filtres UNIX Enseignant: Jean-Philippe.
Unix/Linux Administration Système. INTRODUCTION Chronologie de l’évolution des Systèmes Unix 1964: Général Electrics,MIT,Bell labs AT&T crée le projet.
FORMATION Unix/Linux CHAPITRE 1: LES PREMIERS PAS.
Module 8 : Surveillance des performances de SQL Server
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
Créer des packages.
Un survol du language C.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Chapitre 1 : Présentation Page 1. Chapitre 1 : Présentation Page 2  1979 : Première version d’Unix commercialisée  Unix Système V  Puis Unix BSD par.
Maria Malek - EISTI - CPI11 Présentation d’UNIX –1969, laboratoire Bell –Systèmes multi-tâches multi-utilisateurs –Architecture Le noyau –Gestion de la.
La programmation système
Programmation Système et Réseau
S'initier au HTML et aux feuilles de style CSS Cours 5.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Les systèmes d’exploitation
Variables et environnement utilisateur W. Barhoumi.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Présentation et historique de Linux Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Introduction.
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 7 Neutralisation, redirection, décodage des paramètres,
Formation Didapages Gilles BADUFLE À partir d’un PPT modifié du C.A.H.M.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #12: Survol des S.É. modernes & Processus mémoire et ordonnancement Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge - Juillet 2014

Planification du cours #12 Petite révision du cours #11 & Exercices Survol des systèmes d’exploitation modernes (Chap. 2) Survol des systèmes d’exploitation de Microsoft Survol de UNIX/Linux et de ses variantes Processus, mémoire et ordonnancement (Chap. 3) Modèle pratique des processus Espace d’adresse des processus Visite du laboratoire de Commande et de Robotique (CoRo) Jean-Philippe Roberge - Juillet 2014

Pour le prochain cours: -Envoi de tous les exercices exécutés dans la deuxième moitié du cours, accompagnés de leurs solutions -Mises-à-jour des notes de cours sur le site web -Entrée des notes des deux premiers laboratoires + intra sur signets -Réponses aux questions -Fin de la matière et révision en vue de l’examen final -Disponibilités

Exercices et révision du cours #11

Exemples de programmation (1) Ordinogramme L’en-tête et le corps d’un courriel sont séparés par une ligne blanche. Chaque en-tête est enregistré dans un fichier temporaire Nous utiliserons grep(1) et expr(1) pour extraire le champ Content-Length: Nous ferons un bouclage pour passer « par dessus » le corps du courriel

Exemples de programmation (2) Chaque en-tête est enregistré dans un fichier temporaire. Pour la longueur du corps du courriel: LONGUEUR=`egrep 'Content-Length:' entetes${COMPTEUR}.tmp` LONGUEUR=`expr "$LONGUEUR" : 'Content-Length: \(.*\)'` Extraire la valeur située après le mot clé Content-Length: Trouver la ligne désirée dans le corps Variable qui contiendra la longueur du corps

Exemples de programmation (3) Pour passer au prochain en-tête. Il faut lire le nombre de caractères donnés par la valeur de Content-Length: read DUMMY : : : CAR_LU=`/usr/ucb/expr length "$DUMMY"` TOTAL=`expr "$TOTAL" + "$CAR_LU"` TOTAL=`expr "$TOTAL" + 1` N’oublier pas de compter le caractère Enter Lire une ligne du fichier d’entrée et faire la somme des caractères lus.

Exemples de programmation (4) Solution pour ce problème ? Régler la variable globale Bourne shell IFS (Internal Field Separator). Normalement la variable IFS est réglée à Espace, Tab et Enter. Il nous faut régler IFS à Enter seulement. Voici comment: IFS=" " Oui. Il faut taper la touche Enter avant de fermer les guillemets

L’usage du programme est affiché par une fonction Bourne shell #!/bin/sh # ex_entete # Programme pour extraire l'en-tete des courriels. # # Fonction Bourne shell pour montrer l'usage de ce programme usage () { echo "\nex_entete [-hkn] courriers\n" echo "-h = cet affichage" echo "-k = garder les en-tetes dans des fichiers distincts" echo " portant les noms entetes1.tmp, entetes2.tmp ..." echo "-n = pas d'affichage a la sortie standard" echo "courriers = fichier contenant les courriels a traiter\n" echo "Par defaut, les en-tetes sont affiches a la sortie" echo "standard separes par more(1)\n" exit 1 } L’usage du programme est affiché par une fonction Bourne shell

Détection des options données sur la ligne de commande. # # S'il y a pas d'options donnees a la ligne de commande... [ $# -gt 0 ] || usage # Aller chercher les options de la ligne de commande ... while getopts hkn OPTION do case "$OPTION" in h | \?) usage ;; k) GARDE=OUI ;; n) PAS_SORTIE=OUI ;; esac done # Aller chercher le fichier contenant les courriels ... shift `expr "$OPTIND" - 1` [ -z "$1" ] && usage # pas de fichier donne a la ligne de commande Détection des options données sur la ligne de commande.

N’oubliez pas de régler correctement la variable Bourne shell IFS # # Quelques variables globales ... CONTINUE=VRAI COMPTEUR=1 # C'est tres important! Il faut regler IFS (separateur de champs pour # la commande read(1)) avec le caractere Enter. Sinon, read(1) va # ignorer les caracters Espace et Tab. Dans le corps d'un courriel, # Espace et Tab sont comptes !!! IFS=" " while [ "$CONTINUE" = VRAI ] do read LIGNE || exit 0 # detecter la ligne blanche qui delimite l'en-tete if [ -z "$LIGNE" ] then # Obtenir la longueur du courriel LONGUEUR=`egrep 'Content-Length:' entetes${COMPTEUR}.tmp` LONGUEUR=`expr "$LONGUEUR" : 'Content-Length: \(.*\)'` [ -z "$PAS_SORTIE" ] && more -w < entetes${COMPTEUR}.tmp [ -z "$GARDE" ] && /bin/rm -f entetes${COMPTEUR}.tmp COMPTEUR=`expr "$COMPTEUR" + 1` N’oubliez pas de régler correctement la variable Bourne shell IFS OK. L ’en-tête est terminé. Aller chercher la longueur du corps ...

Le fichier d’entrée est lu ligne par ligne. TOTAL=0 while [ "$TOTAL" -lt "$LONGUEUR" ] do read DUMMY if [ $? -ne 0 ] then echo "La boite aux lettres est brisee !" echo "Programme termine prematurement." exit 1 else CAR_LU=`/usr/ucb/expr length "$DUMMY"` TOTAL=`expr "$TOTAL" + "$CAR_LU"` TOTAL=`expr "$TOTAL" + 1` fi done # Sauter par dessus la derniere ligne blanche # # Ecrire l'en-tete dans le fichier temporaire echo "$LIGNE" >> entetes${COMPTEUR}.tmp done < "$1" Lire le nombre de caractères indiqués par la valeur de « Content-Length: ». Le fichier d’entrée est lu ligne par ligne. N’oubliez pas d’ajouter le caractère Enter dans le comptage. C’est une ligne de l’en-tête

Exemples de programmation (5) Pour terminer une tâche errante, nous devons utiliser la commande ps(1) et kill(1). La commande ps(1) permet d’obtenir le PID du processus à fautif. La commande kill(1) permet l’élimination du processus à l’aide de son PID.

Exemples de programmation (6) C’est le champ $1 pour nawk(1) lorsque la commande utilisée est ps -e

Exemples de programmation (7) Pour terminer une tâche dont le PID est 4003: kill -9 4003 Le PID du processus à « tuer » Le signal à envoyer au processus (par exemple) Le problème: il faut connaître le PID du processus errant !!! Nous allons écrire un programme Bourne shell capable de « tuer » un ou plusieurs processus par leur nom au lieu de leur PID. Mieux encore, nous pouvons aussi utiliser une expression générique pour spécifier les noms de processus.

La variable IFS réglée à Retour de chariot... #!/bin/sh # Par mesure de securite ... PATH=/bin:/usr/bin:/usr/5bin:. # Les PID retournes par nawk sont separes # par des <return> ... IFS=' ' # <return> # # Traiter les options de la ligne de commandes case $1 in "") echo 'Utilisation: zap [-n] expr' 1>&2 exit 1 ;; # si le numero du signal est donne ... -*) SIG=$1 shift esac La variable IFS réglée à Retour de chariot... Traitement des options du programmes

La recherche du PID des processus à éliminer # # Trouver les PID des processus identifies par leur nom numjob=`ps -e | egrep "$1" | nawk '{print $1}'` # Continuer le traitement seulement si les processus # sont trouves if [ "$numjob" ] then set $numjob # les PID seront separes par des # nouvelles lignes while [ $# -ne 0 ] do if [ $1 -lt $$ ] # tuer seulement les processus lances then # avant l'execution de ce script kill $SIG $1 fi shift done else echo "Ne trouve le ou les processus" 1>&2 La recherche du PID des processus à éliminer Mettre les PID trouvés comme des paramètres de position

Exercices

Survol des systèmes d’exploitation modernes Cours #12 Survol des systèmes d’exploitation modernes

Bref historique d’UNIX GPA435 - Systèmes d'exploitation et programmation de système Origine  une idée de Ken Thompson (des laboratoires Bell) à la fin des années 60 du 20e siècle. http://en.wikipedia.org/wiki/Ken_Thompson (ça vaut la peine d’y jeter un coup d’œil!) Il voulait créer un jeu interactif pour passer le temps. Or, le S.E. MULTICS n’avait pas un temps de réponse suffisant. Ken Thompson décida de construire son propre S.E. ETS - GPA, (c) Tony Wong, Ph.D., ing.

Bref historique d’UNIX GPA435 - Systèmes d'exploitation et programmation de système UNIX par opposition à MULTICS: première version entièrement écrite en langage assemblé; services très primitifs; mono-utilisateur mais multitâche; gère la mémoire pour les processus; code compact et grande vitesse d’opération. ETS - GPA, (c) Tony Wong, Ph.D., ing.

Bref historique d’UNIX GPA435 - Systèmes d'exploitation et programmation de système À la même époque  Dennis Ritchie développa le langage C. Au début des années 70 du 20e siècle  réécriture du S.E. UNIX utilisant le langage C. Première machine dotée du S.E. UNIX  PDP-11: UNIX détrône rapidement MULTICS. ETS - GPA, (c) Tony Wong, Ph.D., ing.

Bref historique d’UNIX GPA435 - Systèmes d'exploitation et programmation de système Bref historique d’UNIX Le département des brevets (laboratoires Bell)  premiers utilisateurs sérieux de ce S.E. Une grande contribution des institutions académiques et de recherche: Université de la Californie à Berkeley; Université Stanford; M. I. T. AT&T BSD (Berkeley Software Distribution) Réseautique (i.e. SUN) Système graphique X-Windows ETS - GPA, (c) Tony Wong, Ph.D., ing.

Bref historique d’UNIX GPA435 - Systèmes d'exploitation et programmation de système ETS - GPA, (c) Tony Wong, Ph.D., ing.

Architecture interne d’UNIX GPA435 - Systèmes d'exploitation et programmation de système Architecture interne d’UNIX Organisation traditionnelle: Le compilateur C faisait partie des composants du S.E. parce qu’il faillait recompiler souvent le noyau. ETS - GPA, (c) Tony Wong, Ph.D., ing.

Architecture interne d’UNIX GPA435 - Systèmes d'exploitation et programmation de système Architecture traditionnelle (aujourd’hui désuet) ETS - GPA, (c) Tony Wong, Ph.D., ing.

Architecture interne d’UNIX GPA435 - Systèmes d'exploitation et programmation de système Architecture moderne (micro-noyau): ETS - GPA, (c) Tony Wong, Ph.D., ing.

Architecture interne d’UNIX GPA435 - Systèmes d'exploitation et programmation de système Micro-noyau: regroupe un petit nombre de services essentiels; les autres services réalisés sous forme de serveurs. Façonner le système UNIX pour répondre à des besoins particulier: QNX : UNIX temps réel; UNIX pour système embarqués. etc. Des droits accès sont nécessaires; Primitifs de verrouillage et d’ouverture exclusive sont nécessaires. ETS - GPA, (c) Tony Wong, Ph.D., ing.

GPA435 - Systèmes d'exploitation et programmation de système Variantes d’UNIX Système V version 4 (SVR4): développé conjointement par AT&T et SUN Microsystems; réécriture complète de SRV3 et incorpore les caractéristiques de 4.3BSD; classe d’ordonnancement temps réel; plus importante des variantes développées jusqu’à présent. Le terme technique exact est: accès au processeur en un temps borné. Convient à des applications temps réel de type doux (soft real-time). ETS - GPA, (c) Tony Wong, Ph.D., ing.

GPA435 - Systèmes d'exploitation et programmation de système Variantes d’UNIX GPA435 - Systèmes d'exploitation et programmation de système Système Solaris de SUN Microsystems: basé sur le SVR4; extensibilité; exécution multifilière du S.E.; directement utilisable sur plateforme multiprocesseur. au laboratoire du département  le S.E. est le Solaris 2.6 ETS - GPA, (c) Tony Wong, Ph.D., ing.

GPA435 - Systèmes d'exploitation et programmation de système Variantes d’UNIX GPA435 - Systèmes d'exploitation et programmation de système Système BSD (Berkeley Software Distribution): système disponible «domaine public»; contribution dans la communication inter-ordinateur (réseautique); version 4.4 est la version finale de BSD; équipe officielle de développement a été dissolue; développement «maison»  FreeBSD et Linux. ETS - GPA, (c) Tony Wong, Ph.D., ing.

GPA435 - Systèmes d'exploitation et programmation de système Linux GPA435 - Systèmes d'exploitation et programmation de système À l’origine: Linus Torvalds voulait avoir des améliorations et modifications pour le S.E. appelé Minix - un système développé par Andrew Tanenbaum pour aider à l’apprentissage de l’UNIX; Les requêtes n’ont pas été jugées pertinentes par M. Tanenbaum; M. Tarvalds a donc développé son propre noyau; ETS - GPA, (c) Tony Wong, Ph.D., ing.

GPA435 - Systèmes d'exploitation et programmation de système Linux GPA435 - Systèmes d'exploitation et programmation de système Un noyau sans programmes (utilitaires) n’est pas un système d’exploitation; Belle rencontre: Le projet GNU avait une série de programmes (utiliaires) pour Unix mais pas de noyau; 1991: Noyau de Torvalds + programmes de GNU + Internet = Linux; Le développement du S.E. s’effectue à un rythme accéléré grâce aux concepts de « Open Source ». ETS - GPA, (c) Tony Wong, Ph.D., ing.

GPA435 - Systèmes d'exploitation et programmation de système Distribution Linux GPA435 - Systèmes d'exploitation et programmation de système Linux n’est pas un produit commercial et différentes organisations peuvent créer leur version du S.E.; Ces versions du S.E. (noyau, utilitaires, pilotes, etc.) et programmes utilisateurs représentent des distributions qui portent des noms distincts; Au département nous utilisons la distribution Gentoo et Ubuntu est installé au laboratoire. ETS - GPA, (c) Tony Wong, Ph.D., ing.

Processus, mémoire et ordonnancement (1ère partie) Cours #12 Processus, mémoire et ordonnancement (1ère partie)

Modèle pratique des processus GPA435 Systèmes d'exploitation et programmation de système Déplacement d’un processus vers/de la mémoire secondaire (swapping). Libère les ressources utilisées afin d’admettre de nouveaux processus dans le système. ETS - GPA, (c) Tony Wong, Ph.D., ing.

Modèle UNIX Modèle des processus de SVR4: tenir compte des modes d’exécution (mode utilisateur et mode noyau); tenir compte de la possibilité de la préemption.

Modèle UNIX Modèle des processus de SVR4: avant SVR4 un processus dans le mode noyau n’est jamais préemptible; avant SVR4 le S.E. UNIX ne convient pas aux traitements en temps réel; modèle à neuf (9) états. Préemption: la prise de contrôle du processeur par un autre processus de plus haute priorité. Un processus est « préemptible » lorsqu’il passe du mode d ’exécution noyau en mode d ’exécution utilisateur.

Modèle UNIX

Modèle UNIX Mode d’exécution utilisateur: http://www.linfo.org/kernel_mode.html Mode d’exécution utilisateur: processus est en exécution dans le mode utilisateur. Il est préemptible. Mode d’exécution noyau: processus est en exécution dans le mode noyau. Préempté: processus est en préemption. La préemption n’est possible que lorsque le processus est dans l’état « Mode d’exécution utilisateur ».

Modèle UNIX Zombie: processus sorti mais laisse dans le système des informations destinées au processus père qui n’existe plus. Prêt (en mémoire): processus prêt pour être exécuté et dont le code est en mémoire. Bloqué (en mémoire): processus bloqué en attendant un événement déclencheur (code en mémoire).

Modèle UNIX Créé: nouveau processus qui n’est pas encore prêt pour l’exécution. Prêt (suspendu): processus prêt pour être exécuté et dont le code est en mémoire secondaire (disque). Bloqué (suspendu): processus bloqué en attendant un événement déclencheur (code en mémoire secondaire).

Modèle UNIX Pour le SVR4, deux processus fondamentaux toujours en exécution: processus qui réalise le déplacement des autres processus de/vers la mémoire centrale (swapper); swapper  porte le numéro d’identification de processus PID = 0; ce dernier est responsable de la création du processus « init » (PID = 1); tous les autres processus sont descendants de ce processus init.

Espace d’adresses des processus Dans le SVR4: Il s’agit d’un espace virtuel à 32bits La pile utilisateur « grossit » vers les adresses basses. Le heap « grossit » vers les adresses hautes. Les adresses supérieures à 0xE0000000 sont associées au code du noyau.

Espace d’adresses des processus Espace virtuel est divisé en segments. Segment « Texte »: code exécutable du programme; entreposé dans le fichier exécutable; à lecture seulement; ce segment est partageable. Plusieurs processus utilisant le même code exécutable. Les processus partagent alors le même segment « Texte ».

Espace d’adresses des processus Segment « Données »: entreposage des symboles constants ou globaux. deux types de données  données initialisées et données non initialisées. Variables globales qui ont une valeur assignées dans le code source du programme. Elles ne sont pas partageables. Même que les données initialisées mais leur contenu est toujours mise à zéro.

Espace d’adresses des processus Segment « Heap »: zone de mémoire pour l’entreposage des données du processus; allocation dynamique de la mémoire; taille du segment varie en fonction des besoins du processus; segment grossit vers les adresses croissantes.

Espace d’adresses des processus Segment « Fichier associé à la mémoire » (Mapped File): facilite l’accès des fichiers par le processus; au lieu de faire appel aux services systèmes; on associe un fichier à la mémoire; accès du fichier est plus rapide; (concept existe également sous Windows NT).

Espace d’adresses des processus Segment « Bibliothèque partagée » (shared Library): Bibliothèque partagée  code objets utilisables par plus d’un processus à la fois; codes objets chargés dans l’espace virtuel du processus par un appel de système; espace virtuel réservé pour ces codes objets est le segment « Bibliothèque partagée »; par convention, les bibliothèques partagées portent l’extension .so

Espace d’adresses des processus Segment « Pile utilisateur »: entreposage des variables locales; adresse de retour des routines; paramètres d’entrée des fonctions; contenu des registres du processeur; valeur de retour des fonctions appels systèmes; segment grossit vers les adresses décroissantes.

Espace d’adresses des processus Adresses supérieures à 0xE0000000: image du code noyau; image du code noyau partagée par tous les processus du système; un pont reliant tous les processus du système; permet la réalisation de la communication inter-processus.

Références [1] Présentations PowerPoint du cours GPA435, Tony Wong. [2] Notes de cours, GPA435 [3] Levasseur, Yan, Wiki GPA435: http://bash.leyan.org/Accueil , consulté en avril 2014. [4] Tanenbaum, A.S., Systèmes d’exploitation. Pearson Education France, 2008. [5] Stallings, W., Operating Systems : Internals and Design Principals. Upper Saddle River, NJ : Prentice Hall, 1998. [6] Références citées dans le premier chapitre des notes de cours. Jean-Philippe Roberge - Avril 2014