Programmation Système : les processus

Documents pareils
Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Cours Programmation Système

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

Introduction aux Systèmes et aux Réseaux

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Qu'est-ce qu'un processus: Définitions

gestion des processus La gestion des processus

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Chapitre 4 : Outils de communication centralisés entre processus

Testez votre installation. Créer un répertoire vide

Introduction aux environnements de virtualisation d'oracle Solaris 11.1

Aperçu rapide de PC BSD 1.2.

Livre blanc Mesure des performances sous Windows Embedded Standard 7

Système et réseaux (SR1) Gestion des utilisateurs

StorageTek Tape Analytics

Retrospect 7.7 Addendum au Guide d'utilisation

Fedora 14. Images live de Fedora. Comment utiliser l'image live de Fedora. Paul W. Frields Nelson Strother Nathan Thomas

Table des Matières. 2 Acronis, Inc

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Tune Sweeper Manuel de l'utilisateur

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Annexe : La Programmation Informatique

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Déploiement OOo en environnement Windows Terminal Server

Les processus. Système L3, /39

Guide de configuration de SQL Server pour BusinessObjects Planning

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Acer erecovery Management

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Insérer des images dans Base

Sauvegarde et restauration d'un système d'exploitation Clonezilla

OpenOffice.org Présentation - Débuter. Distribué par Le projet OpenOffice.org

1 Repérer les paramètres d installation (.exe ou.msi).

Guide pour sécuriser votre PC avec Kiosk Internet et Windows Seven

Manuel d'exploitation de l'application Vitamin version 1.0

Solutions informatiques

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Tekla Structures Guide d'installation. Version du produit 21.0 mars Tekla Corporation

MANUEL TBI - STARBOARD

Guide de récupération de Windows Server 2003 R2 pour serveurs Sun x64

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

L'explorateur de fichier de Windows 8.1

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Installation FollowMe Q server

Thunderbird en version Portable

Didacticiel de mise à jour Web

Création de Sous-Formulaires

Cours Informatique Master STEP

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

la virtualisation pour quoi faire?

Guide de l'utilisateur de l'application mobile

Programmation système

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Découverte des Logiciels Libres. Gilles Dequen

Parallels Transporter Lisez-moi

Guide d'installation. Release Management pour Visual Studio 2013

DirXML License Auditing Tool version Guide de l'utilisateur

Windows XP niveau 2. D. Hourquin, Médiapôle St Ouen l'aumône

Installation d'un TSE (Terminal Serveur Edition)

Learn & Lunch 23/11/2011. Simon Opresnik / Georges Denneulin

Guide de démarrage du système modulaire Sun Blade 6000

Exportation d'une VM sur un périphérique de stockage de masse USB

Comment créer un diagramme de Gantt avec OpenOffice.org

Q-Checker pour V6 Release 2.1

Dell Server PRO Management Pack 4.0 pour Microsoft System Center Virtual Machine Manager Guide d'installation

Le système GNU/Linux IUP NTIC /11/05

Les systèmes pare-feu (firewall)

Formation Technicien Supérieur de Support en Informatique T2SI. Le module LINUX. Session J04 Version 01

Préparer la synchronisation d'annuaires

Comment changer le mot de passe NT pour les comptes de service Exchange et Unity

Paxton. ins Net2 desktop reader USB

Architecture de la plateforme SBC

Réparer un disque dur passé en RAW

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Déploiement de SAS Foundation

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Introduction. A ce stade, il est important de différencier 3 choses :

Programmation système en C/C++

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre Auteur : Noé LAVALLEE

La communication et la gestion de l'information

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Clients et agents Symantec NetBackup 7

Personnes ressources Tice. Académie de Rouen

A -Systèmes de fichiers 1 - FAT vs NTFS

Mettre Linux sur une clé USB bootable et virtualisable

Guide de prise en main Symantec Protection Center 2.1

[Serveur de déploiement FOG]

Installation et paramétrage. Accès aux modèles, autotextes et clip- art partagés

Red Hat Enterprise Virtualization 3.0 Instructions d'installation et informations importantes

Gestion des processus

Clé Flash USB2.0 Acer

OpenOffice Base Gestionnaire de Base de Données

Guide d'installation rapide TFM-560X YO.13

Principe. Technologies utilisées. 1. Linux et LVM. Les snapshots (instantannés) sous Linux et FreeBSD. Présentation de LVM. Organisation de LVM

Dans la série. présentés par le site FRAMASOFT

Avant-propos. VERSION Compilation du document à l aide de PDFLATEX Philippe Charlier. 1 Version actuelle : SPIP http ://

Transcription:

Programmation Système : les processus Copyright 2011 tv <tvaira@free.fr> Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front Cover Texts, and with no Back Cover. You can obtain a copy of the GNU General Public License : write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 1307 USA «La véritable "idée" d'un système d'exploitation est d'utiliser les fonctionnalités du matériel, et de les placer derrière une couche d'appels de haut niveau.» Linus Benedict Torvalds Programmation : Processus 1/17

Multiprogrammation - Définitions La multiprogrammation se caractérise par le partage du processeur par plusieurs pro cessus. Le temps est découpé en intervalles, chacun d'eux étant alloué successivement aux différents processus donnant l'illusion de simultanéité. Un programme est une suite d'instructions permettant de réaliser un traitement. Il revêt un caractère statique. Une image représente l'ensemble des objets et des informations qui peuvent donner lieu à une exécution dans l'ordinateur Un processus est l'exécution d'une image. Le processus est l'aspect dynamique d'une image. C'est un des rôles du système d'exploitation d'amener en mémoire centrale l'image mé moire d'un processus avant de l'élire et de lui allouer le processeur. Le système d'exploi tation peut être amené à sortir de la mémoire les images d'autres processus et à les copier sur disque. Une telle gestion mémoire est mise en œuvre par un algorithme de va et vient appelée aussi swapping. Programmation : Processus 2/17

Interface de programmation (rappels) Le noyau est vu comme un ensemble de fonctions (API) : chaque fonction ouvre l'accès à un service offert par le noyau. Ces fonctions sont regrou pées au sein de la bibliothèque des appels systèmes (system calls) pour UNIX/Linux ou WIN32 pour Windows. POSIX (Portable Operating System Interface) est une norme relative à l'interface de programmation du système d'exploitation. De nombreux systèmes d'exploitation sont conformes à cette norme, notamment les membres de la famille Unix. Programmation : Processus 3/17

API WIN32 vs System Calls UNIX (1) L'API Windows est orientée «handle» et non fichier Un handle est un identifiant d'objet système L'API UNIX est orientée «fichier» car dans ce sys tème : TOUT est FICHIER un descripteur de fichier est une clé abstraite (c'est un entier) pour accéder à un fichier, c'est à dire le plus souvent une ressource du système Programmation : Processus 4/17

API WIN32 vs System Calls UNIX (2) Programmation : Processus 5/17

Processus Un processus comporte du code machine exécutable, une zone mé moire (données allouées par le processus), une pile ou stack (pour les variables locales des fonctions et la gestion des appels et retour des fonctions) et un tas ou heap pour les allocations dynamiques. Ce processus est une entité qui, de sa création à sa mort, est identi fié par une valeur numérique : le PID (Process IDentifier). Tous les processus sont donc associés à une entrée dans la table des processus qui est interne au noyau. Chaque processus a un utilisateur propriétaire, qui est utilisé par le système pour déterminer ses permissions d accès aux fichiers. Remarques : Les commandes ps et top listent les processus sous UNIX/Linux et, sous Windows on utilisera le gestionnaire de tâches (taskmgr.exe). Programmation : Processus 6/17

Contexte d'un processus Le contexte d un processus (Process Control Block) est l ensemble de : 1. son état 2. son mot d état : en particulier la valeur des registres actifs et le compteur ordinal 3. les valeurs des variables globales statiques ou dynamiques 4. son entrée dans la table des processus 5. les données privées du processus (zone u) 6. Les piles user et system 7. les zones de code et de données. L exécution d un processus se fait dans son contexte. Quand il y a changement de pro cessus courant, il y a une commutation ou changement de contexte. Le noyau s exécute alors dans le nouveau contexte. En raison de ce contexte, on parle de processus lourd, en opposition aux processus légers que sont les threads (car ceux ci partagent une grande partie du contexte où ils s'exécutent). Programmation : Processus 7/17

Généalogie des processus La création d'un processus étant réalisée par un appel système (fork sous UNIX/Linux). Chaque processus est identifié par un numéro unique, le PID (Processus IDentification). Un processus est donc forcément créé par un autre processus (notion père fils). Le PPID (Parent PID) d'un processus correspond au PID du processus qui l'a créé (son père) Exemple sous UNIX/Linux : tp-sys-processus.pdf 45 mn Programmation : Processus 8/17

Opérations réalisables sur un processus Création : fork Exécution : exec Destruction : terminaison normale auto destruction exit meurtre kill, ^C Mise en attente/réveil : sleep, wait, kill Suspension/reprise : ^Z/fg, bg Changement de priorité : nice Programmation : Processus 9/17

Création dynamique de processus Lors d'une opération fork, le noyau Unix crée un nouveau processus qui est une copie conforme du processus père. Le code, les données et la pile sont copiés et tous les fichiers ouverts par le père sont ainsi hérités par le processus fils. Lors de l'initialisation du système (boot), le noyau crée plusieurs proces sus spontanés dans l'espace de l'utilisateur. Ces processus sont dits spon tanés parce qu'ils ne sont pas créés par le mécanisme fork traditionnel. Le nom et la nature des processus spontanés varient d'un système à l'autre. init est le seul processus à part entière. Le PID d'init vaut tou jours 1 et c'est l'ancêtre de tous les processus utilisateurs et de presque tous les processus système. Programmation : Processus 10/17

Attributs d'un processus PID : chaque processus est identifié par un numéro unique, le PID (Pro cessus IDentification). Les PID sont attribués au fur et à mesure de la création des processus. PPID : le PPID correspond au PID du processus qui l'a créé (son père). L'UID d'un processus est un numéro d'identification d'utilisateur qui cor respond à la personne qui l'a créé, ou plus précisément à l'euid du pro cessus parent. L'EUID est l'utilisateur effectif de l'utilisateur, un UID supplémentaire qui permet de déterminer les ressources et les fichiers auxquels un processus a le droit d'accéder à n'importe quel moment. Le GID est le numéro d'identification de groupe d'un processus. L'EGID est au GID ce que le GPID est au PID. Programmation : Processus 11/17

Exécution d'un nouveau code Rappel : après une opération fork, le noyau Unix a créé un nouveau processus qui est une copie conforme du processus qui a réalisé l'appel. Si l'on désire exécuter du code à l'intérieur de ce nouveau processus, on utilisera un appel de type exec : execl, execlp, execle, execv ou execvp. La famille de fonctions exec remplace l'image mémoire du processus en cours par un nouveau processus. Programmation : Processus 12/17

Exécution d'une commande C'est ce principe qui est par exemple utilisé lorsque l'on exécute une commande (ls) à partir du shell (bash) : tp-sys-processus.pdf 30 mn Programmation : Processus 13/17

Synchronisation des terminaisons Rappel : les processus créés par des fork s'exécutent de façon concurrente avec leur père. On ne peut présumer l'ordre d'exécution de ces processus (cf. politique de l ordonnanceur). Il sera donc impossible de déterminer quels processus se termineront avant tels autres (y compris leur père). D'où l'existence, dans certains cas, d'un problème de synchronisation. La primitive wait permet l élimination de ce problème en provoquant la suspension du processus appelant jusqu à ce que l un de ses processus fils se termine. Programmation : Processus 14/17

États d'un processus Le processus est une activité dynamique et possède un état qui évolue au cours du temps. Ce processus transitera par différents états selon que : il s'exécute (ACTIF ou Élu) il attend que le noyau lui alloue le processeur (PRET) il attend qu'un événement se produise (ATTENTE ou Bloqué) C'est l'ordonnanceur (scheduler) qui contrôle l'exécution et les états des processus. tp-sys-processus.pdf 45 mn Programmation : Processus 15/17

Diagramme d'états sous Linux La préemption se définit comme la réquisition du processeur pour l'exécution d'une tâche et d'une seule pendant un temps détermi né. Dans un ordonnancement (sta tique à base de priorités) avec préemption : lorsque le proces seur est inactif, la tâche prête de plus haute priorité sera choisie pour être exécutée. A chaque instant cette tâche peut être pré emptée (remplacée) par n'importe quelle tâche plus prio ritaire qui serait devenue prête. Programmation : Processus 16/17

Conclusion Il est conseillé avant de continuer de revoir : Les définitions (programme, multiprogrammation, processus, image, préemption,...) L'exemple fourni pour l'environnement Windows Il reste à voir entre autres : Les threads L'ordonnancement des processus La communication entre processus Programmation : Processus 17/17