Isaip-Esaip Programmation multitâche sous Unix 1. Programmation multitâche sous unix
|
|
- Amélie Marie-Thérèse Joly
- il y a 8 ans
- Total affichages :
Transcription
1 Isaip-Esaip Programmation multitâche sous Unix 1 Programmation multitâche sous unix Groupe Isaip-Esaip P. Trégouët A. Schaal remerciements à M. Benzaïd pour sa contribution à la rédaction de ce document
2 Isaip-Esaip Programmation multitâche sous Unix 2 PLAN Processus Signaux Tubes entre processus de filiation commune Tubes nommés entre processus de filiation différente File de messages Segments de mémoire partagée Sémaphores Sockets
3 Isaip-Esaip Programmation multitâche sous Unix 3 Livre de référence Programmation système en C sous Linux Auteur : Christophe Blaess Édition EYROLLES
4 Isaip-Esaip Programmation multitâche sous Unix 4 Processus Un processus est un programme en cours d exécution Un système multi-utilisateurs peut exécuter le même programme sous plusieurs processus, pour plusieurs utilisateurs L'espace mémoire alloué à un processus est constitué : du Code du programme en cours d exécution (segment code ou segment text) des Données manipulées par le programme (segment data) du Descripteur du processus (informations relatives au processus, pile d exécution, ) Types d informations : <unistd.h> pid_t PID : numéro de processus, pid_t PPID: numéro de processus parent, uid_t UID : numéro de l utilisateur réel, uid_t EUID:numéro de l utilisateur effectif, etc. Primitives pid_t getpid(void) pid_t getppid(void) uid_t getuid(void) uid_t getuid(void)
5 Isaip-Esaip Programmation multitâche sous Unix 5 Manipulation des processus (1) Création ou duplication de processus pid_t fork(void) La valeur retournée est le pid du fils pour le processus père, ou 0 pour le processus fils. La valeur -1 est retournée en cas d'erreur. Le fils hérite de presque tous les attributs du parent : segment code (partagé, copié), segment data (copié), PID/PPID (modifiées), signaux interceptés (conservés), descripteur de fichiers/tubes ouverts (copiés), pointeurs de fichiers (partagés) Terminaison de processus void exit (int code_retour) Attente de terminaison de processus enfant pid_t wait (int * code _retour), pid_t waitpid (pid_t pid_enfant, int * code_retour, int options)
6 Isaip-Esaip Programmation multitâche sous Unix 6 Manipulation des processus (2) Sommeil de processus Unsigned int sleep (unsigned int nb_secondes) Un signal reçu interrompt le sommeil du processus. Le programme continue alors son exécution après l'appel de sleep(). La valeur retournée par sleep() est le nombre de secondes restantes Recouvrement de processus = changement du programme exécuté par un processus (exec) modification de l image (le segment de code) du processus courant Toutes les variables de l ancien programme sont perdues Il n est pas possible de revenir d un exec. Les instructions qui suivent exec ne seront exécutés que si exec échoue Passage de valeurs : par les variables d environnement ou les paramètres du nouveau programme Primitives correspondantes: exec{l v}[e p] man 3 exec l : liste d arguments : fournir la liste (char *arg0, char *arg1,, 0) v : tableau d arguments : fournir un pointeur sur le tableau (char ** argv avec denier élément = 0 ) Etc.
7 Isaip-Esaip Programmation multitâche sous Unix 7 Besoins de communication entre processus Deux processus peuvent éventuellement partager le même code (ceci est sous le contrôle du système) mais les espaces mémoires réservés aux variables sont complètement étanches : un processus n'a aucun accès aux variables d un autre processus On peut néanmoins créer une application multitâche et avoir besoin de synchroniser ces tâches ou d échanger des informations entre ces tâches. Les systèmes d exploitations sont donc munis de mécanismes appropriés Synchronisation par signaux ou sémaphores Communication de données par fichiers, tubes (pipes) files de messages (queues ou boîtes à lettres) variables implantées dans un segment de mémoire partagée
8 Isaip-Esaip Programmation multitâche sous Unix 8 Communications locales ou distantes Hôte Hôte 1 Hôte 2 Processus Utilisateur Processus Utilisateur Processus Utilisateur Processus Utilisateur Noyau du S.E Noyau S.E Noyau S.E Communication intra-système Communication inter-systèmes Réseau
9 Isaip-Esaip Programmation multitâche sous Unix 9 La communication par signaux (1) Un signal peut être assimilé à une interruption logicielle (par analogie avec les interruptions matérielles) Comme pour une interruption matérielle, la réception d'un signal interrompt le traitement en cours et exécute automatiquement la fonction associée au signal (programmation événementielle). En langage C, l'association entre le numéro du signal et la fonction est réalisé par un appel à la fonction système signal(). Note : la fonction sigaction() peut être utilisée à la place de signal(). Voir man sigaction.
10 Isaip-Esaip Programmation multitâche sous Unix 10 La communication par signaux (2) Un signal est Envoyé par un processus Reçu par un autre processus (éventuellement le même) Véhiculé par le noyau Comment réagit un processus qui reçoit un signal? Il interrompt le traitement en cours il exécute la fonction de traitement du signal il reprend l'exécution du traitement interrompu Si le processus était endormi, il est réveillé par le signal. Après l'exécution de la fonction associée au signal, dans le cas où il est réveillé avant la fin d'une temporisation il ne se rendort pas; par contre s'il attendait la fin d'une entrée-sortie, il continue à attendre. Comportement associée à la réception d'un signal : En général un comportement par défaut est défini : Terminaison anormale du processus (ex: violation de mémoire, division par zéro) Le processus peut ignorer le signal Le processus peut redéfinir, par une fonction spécifique, son comportement à la réception d'un signal
11 Isaip-Esaip Programmation multitâche sous Unix 11 Origine des signaux Frappe de caractères touche CTRL-C CTRL-\ CTRL-Z signal SIGINT SIGQUIT SIGSTP Erreurs du programme Violation de mémoire, SIGSEGV Division par zéro, SIGFPE Commande kill Primitive système : kill(), alarm().
12 Isaip-Esaip Programmation multitâche sous Unix 12 Liste des signaux kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1 35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5 39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9 43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13 47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
13 Isaip-Esaip Programmation multitâche sous Unix 13 Signaux les plus fréquemment utilisés 1 SIGHUP terminaison du processus leader 2 SIGINT frappe d interruption (CTRL-C) 3 SIGQUIT frappe de quit (CTRL-\) 4 SIGILL instruction illégale 6 SIGABRT problème matériel 7 SIGBUS erreur sur le BUS 8 SIGFPE erreur arithmétique 9 SIGKILL signal de terminaison la réaction à ce signal ne peut être redéfinie 10 SIGUSR1 signal utilisateur 11 SIGSEGV violation écriture mémoire 12 SIGUSR2 signal utilisateur 13 SIGPIPE écriture sur un tube non ouvert en lecture 14 SIGALRM fin de temporisateur 15 SIGTERM terminaison normale d un processus 17 SIGCHLD terminaison (arrêt) d un fils 18 SIGCONT continuation d un processus arrêté par SIGSTOP 19 SIGSTOP signal de suspension d exécution de processus 20 SIGTSTP frappe du caractère de suspension sur le clavier (CTRL-Z)
14 Isaip-Esaip Programmation multitâche sous Unix 14 Envoi de signaux en langage C #include <signal.h> int kill(pid_t pid,int sig) pid : > 0 : pid de processus destinataire sig : le signal à envoyer Envoie un signal à un processus #include <unistd.h> unsigned alarm (unsigned nb) Envoie un signal SIGALRM au processus en cours dans nb secondes. Attention : ne pas mélanger l'utilisation de alarm et de sleep qui partagent le même "timer" (voir man alarm)
15 Isaip-Esaip Programmation multitâche sous Unix 15 Préparer la réception des signaux en langage C #include <signal.h> void (*signal(int signum, void (*handler)(int)))(int); signum : le signal à intercepter handler : pointeur sur une fonction qui gère le signal c'est simplement en C l'identificateur de cette fonction ou constante correspondant à un comportement prédéfini: SIG_DFL : comportement par défaut SIG_IGN : ignorer le signal #include<unistd.h> int pause(void); Endort le processus appelant jusqu'à ce qu'il reçoive un signal. on peut aussi utiliser sleep() si on veut limiter l attente
16 Communication par signaux : exemple #include<signal.h> void standard(int numero) { printf("standard Signal %d recu : \n",numero); } void message(int numero) { printf("message Signal %d recu\n",numero); } main() {int numero; // traitements spécifiques for (numero=1;numero<32;numero++)signal(numero,standard); signal(sigint,message); signal(sigquit,message); //traitements prédéfinis signal(1,sig_dfl); signal(4,sig_ign); // Rien à faire, sauf réagir aux signaux: attente passive while (1) pause(); } Isaip-Esaip Programmation multitâche sous Unix 16
17 Isaip-Esaip Programmation multitâche sous Unix 17 Tubes : principe (1) Un tube est traité comme un fichier ouvert Il est transmis aux processus enfants de la même manière que les fichiers ouverts Un tube est cependant un fichier particulier : Il n a pas de nom dans l arborescence des fichiers Il est connu par deux descripteurs (lecture, écriture) On lit/écrit dans un tube comme on lit/écrit dans un fichier séquentiel Utilisation des fonctions read et write (éventuellement fscanf, fprintf etc ) Les données ne sont pas structurées: le pipe ne contient qu une suite d octets Un tube est comme un "tuyau" avec une entrée et une sortie : Plusieurs processus peuvent y écrire des données Plusieurs processus peuvent y lire des données
18 Isaip-Esaip Programmation multitâche sous Unix 18 Tubes : principe (2) Le fonctionnement est de type FIFO : On lit toujours les octets dans l'ordre où ils ont été déposés dans le tube Il n est pas possible de lire un octet sans voir lu tous ceux qui le précèdent Une donnée lue par un processus ne pourra jamais être relue par un autre processus Les droits d accès sont du même genre que les droits d accès Unix sur les fichiers (rwx, rwx, rwx) Si un tube est vide, ou si tous les descripteurs susceptibles d y écrire sont fermés, la primitive read() renvoie la valeur 0 (fin de fichier atteinte). Un processus qui écrit dans un tube qui n a plus de lecteurs (tous les descripteurs susceptibles de lire sont fermés) reçoit le signal SIGPIPE
19 Isaip-Esaip Programmation multitâche sous Unix 19 TUBES : primitives utiles Création : #include <unistd.h> int pipe(int p_desc[2]) p_desc[0] pour la lecture, p_desc[1] pour l écriture Entrées/Sorties : write (p_desc[1], buf_ecrire, nbre_octets) read (p_desc[0], buf_lire, nbre_octets) FILE * fdopen():fprintf(), fscanf(),etc... fflush : écrire la zone tampon dans le tube avant qu elle ne soit remplie Pour éviter l interblocage fermer le côté de tube non utilisé, par la primitive close()
20 Isaip-Esaip Programmation multitâche sous Unix 20 TUBES : exemple #include <signal.h> main(){ int i, ret, p_desc[2]; char c; pipe(p_desc); write(p_desc[1],"ab",2); close(p_desc[1]); for (i=1; i<=4; i++) { ret = read(p_desc[0],&c,1) ; if (ret == 1) printf("valeur lue: %c\n",c) ; else perror("impossible de lire dans le tube\n") ; } } Résultat de l exécution : valeur lue : A valeur lue: B impossible de lire dans le tube : Success impossible de lire dans le tube: Illegal seek
21 Isaip-Esaip Programmation multitâche sous Unix 21 TUBES Nommés Les tubes ordinaires, sont non visibles dans l arborescence des fichiers, et accessibles uniquement aux processus d une même affiliation Tubes nommés : visibles dans l arborescence de fichiers, utilisables entre processus ne partageant pas la même filiation Par contre, aucune information n est enregistrée sur disque, le transfert d information s effectue toujours en mémoire. Primitives correspondantes : int mknod(const char *nom_fich,mode_t mode, dev_t dev) int mkfifo (const char *pathname, mode_t mode); Ouverture de tube par les processus connaissant le nom du tube : En lecture/écriture par open() Par défaut, ouverture bloquante : lecteurs et écrivains s attendent synchronisation
22 Isaip-Esaip Programmation multitâche sous Unix 22 Nommage des objets IPC IPC = Inter Process Communication Trois types d objets IPC : files de message, segments de mémoire partagée sémaphores En général ces objets sont créés par un processus et utilisés par d autres, sans qu il y ait de liens de parenté entre ces processus. A chaque objet IPC sera associée une clé d identification de 8 chiffres hexadécimaux Cette identification externe, définie au moment où on écrit le programme est analogue à un nom de fichier : on crée ou on cherche un sémaphore d une valeur de clé donnée comme on ouvre un fichier de nom donné Cependant, on ne peut prévoir si un autre programmeur n a pas par hasard utilisé la même clé pour un autre objet IPC dans une autre application multitâche. On pourra donc utiliser une fonction spéciale, ftok(), pour créer une clé unique à partir d un nom de fichier existant dans le système de fichiers et d un numéro de projet (ceci n'est donc définit qu au moment de l exécution, sur une machine donnée). # include <sys/ipc.h> key_t ftok(const char *pathname,int proj_id);
23 Isaip-Esaip Programmation multitâche sous Unix 23 Constantes communes relatives aux primitives IPC Drapeaux : IPC_CREAT : créer un objet s'il n existe pas IPC_EXCL : échouer si l'objet existe déjà IPC_NOWAIT : ne pas attendre IPC_PRIVATE : clé privée, pas de lien avec le système de fichiers Commandes : IPC_RMID : suppression IPC_SET : mise à jour des attributs IPC_STAT : lecture des attributs Permissions : Analogues à celles du système de fichiers UNIX
24 Isaip-Esaip Programmation multitâche sous Unix 24 Commandes de manipulation des objets IPC ipcs : liste des objets ipc existants ipcrm : suppression d un objet ipc mail:/home/demo # ipcs Shared Memory Segments key shmid owner perms bytes nattch statu 0x root dest 0x root dest 0x root dest Semaphore Arrays key semid owner perms nsems 0x wwwrun x wwwrun Message Queues key msqid owner perms used-bytes messages 0x00001f58 0 root
25 Isaip-Esaip Programmation multitâche sous Unix 25 Files de messages : principe Contrairement aux tubes une file de message contient des données structurées composées D un type de message D un message de longueur variable A la différence des pipes, il sera possible d attendre uniquement des messages d un type donné: s il n y a que des messages d un autre type, le processus sera bloqué (attente passive) Comme les pipes, les files de message sont gérées selon un algorithme FIFO : on lit toujours le message du type cherché qui a séjourné le plus longtemps dans la file L attente est par défaut bloquante, mais, comme pour les pipes, et si cela est nécessaire, le processus peut ne pas attendre en positionnant le drapeau IPC_NOWAIT. Il recevra un code d erreur lui indiquant s'il a ou non obtenu un message. Comme les pipes, les files de messages ont des droits d accès de type Unix (rwx,rwx,rwx)
26 Isaip-Esaip Programmation multitâche sous Unix 26 Files de messages : primitives Création : int msgget(key_t key, int flg) : retour = msq_id Emission : (bloquante si file pleine et flg ne contient pas IPC_NOWAIT) int msgsnd(int msqid,struct msgbuf *msgp,int msgsz,int flg); Avec struct msgbuf {long msgtyp; char * msgtext;} Réception : (bloquante si file vide et flg ne contient pas IPC_NOWAIT) int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); msgtyp = 0 : premier message lu msgtyp > 0 : premier message de type msgtyp msgtyp < 0 : premier message avec un type msgtyp Opérations de contrôle : int msgctl(int f_id, int cmde, struct msqid_ds *structure) cmde = IPC_RMID, IPC_STAT, IPC_SET msqid_ds : structure définie dans <sys/msg.h> qui donne des informations sur la file comme les droits d accès, le dernier processus écrivain,etc.
27 Isaip-Esaip Programmation multitâche sous Unix 27 Création d'une File de messages : exemple #include <errno.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #define ID 123 main() { int msqid ; char *path = "nom_de_fichier_existant"; if (( msqid = msgget(ftok(path,id), IPC_CREAT IPC_EXCL MSG_R MSG_W)) == -1) { perror("echec de msgget"); exit(1); } printf("identificateur de la file: %d\n",msqid); printf("cette file est identifiée par la clé unique : %ld\n", ftok(path,id)) ; } Résultat de l exécution : identificateur de la file: 700 cette file est identifiée par la clé unique :
28 Isaip-Esaip Programmation multitâche sous Unix 28 Mémoire partagée Un segment de mémoire partagé est un espace de mémoire dans lequel un processus pourra "allouer" des variables accessibles par des pointeurs. Un processus crée un segment de mémoire partagée ou demande à utiliser un segment déjà créé. (shmget) Un processus (le même ou un autre) demande au système d initialiser un pointeur sur cet espace (shmat) Ce pointeur contiendra en fait une adresse de mémoire virtuelle différente pour chaque processus - qui sera traduite au moment de l exécution en adresse physique identique pour tous les processus utilisant cette mémoire partagée. L'adresse physique est inaccessible au programmeur. L accès à des variables définies dans un segment de mémoire partagée nécessite en général une synchronisation rigoureuse entre les processus: cette synchronisation sera réalisée le plus souvent par des sémaphores Aux segments de mémoire partagée sont associés des droits d'accès de type Unix
29 Isaip-Esaip Programmation multitâche sous Unix 29 Mémoires partagées: primitives Création : int shmget(key_t key, int size, int flg) : retour = shm_id Attachement : int shmat(int shmid, const void *shmadr, int flg); adr = 0 choix de l adresse par le système d exploitation Une même région peut être attachée plusieurs fois à des adresses différentes Retour : adresse d attachement effective ou -1 Détachement : int shmdt(const void *shmadr) : retour = 0 ou -1 Libération de l espace mémoire uniquement lors du dernier détachement Opérations de contrôle : int shmctl(int shm_id,int cmde,struct shmid_ds *structure) cmde = IPC_RMID, IPC_STAT, IPC_SET, SHM_(UN)LOCK (verrouillage en mémoire = pas de swap autorisé)
30 Isaip-Esaip Programmation multitâche sous Unix 30 Mémoires partagées : exemple #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> #include <sys/wait.h> #include <stdio.h> #include <string.h> void main(){ int pid,shmid ; char *mem ; int flag = 0 ; key_t clef ; printf("donnez la clé:"); scanf("%ld",&clef); shmid = shmget(clef,100, IPC_CREAT IPC_EXCL SHM_R SHM_W); printf("identificateur du segment est %d \n",shmid); pid =fork() ; if(pid == 0){/*processus fils*/ } mem = shmat(shmid,0,flag); strcpy(mem,"message pour le pere"); shmdt(mem); else {/*processus père*/ mem = shmat(shmid,0,flag) ; printf("message reçu de fils : %s\n",mem); shmdt(mem); } wait(0) ; shmctl(shmid,ipc_rmid,null) }
31 Isaip-Esaip Programmation multitâche sous Unix 31 Pourquoi utiliser un sémaphore? D'une manière générale, un sémaphore sert à la synchronisation entre les processus Un sémaphore utilisé pour l exclusion mutuelle (garantir qu un seul processus accède à un moment donné à une variable partagée), utilisera 2 primitives Attendre l accès exclusif à la ressource partagée : si la ressource est déjà utilisée par un processus, le processus qui fait cette demande sera endormi et mis dans une file d attente de processus Libérer l accès exclusif à la ressource partagée : si la file d attente des processus attendant cette ressource est non vide, le processus qui a dormi le plus longtemps est réveillé La section de programme qui se trouve entre les 2 primitives attendre la ressource et libérer la ressource s appelle une section critique Les sémaphores n empêchent pas les processus d accéder à une ressource: un processus «qui ne respecterait pas la discipline» et accéderait à la ressources sans attendre son tour pourrait le faire sans aucune restriction Aux sémaphores sont associés des droits d accès de type Unix
32 Isaip-Esaip Programmation multitâche sous Unix 32 Le "mécanisme" des sémaphores Sémaphore = objet composé : une variable (la valeur du sémaphore) une file d attente (les processus bloqués attendant la ressource) Primitives associées : Initialisation (avec une valeur positive ou nulle) Manipulation : Prendre (P ou Wait) = demande d autorisation Vendre (V ou Signal) = fin d utilisation Principe : sémaphore associé à une ressource Prendre = demande d autorisation (puis-je utiliser la ressource?) Si valeur > = 0 accord, sinon blocage Vendre = restitution d autorisation (je n'ai plus besoin de la ressource) Si valeur < 0 déblocage d un processus
33 Isaip-Esaip Programmation multitâche sous Unix 33 Sémaphores : exemple Parking de N places contrôlé par un feu
34 Isaip-Esaip Programmation multitâche sous Unix 34 Sémaphores : algorithmes des primitives P et V Initialisation(sémaphore,n) valeur[sémaphore] = n P(sémaphore) valeur[sémaphore] = valeur[sémaphore] - 1 si (valeur[sémaphore] < 0) alors étatprocessus = Bloqué mettre processus en file d attente finsi invoquer l ordonnanceur V(sémaphore) valeur[sémaphore] = valeur[sémaphore] + 1 si (valeur[sémaphore] == 0) alors extraire processus de file d attente étatprocessus = Prêt finsi invoquer l ordonnanceur
35 UNIX IPC : tableau de sémaphores (1) Création ou attachement : int semget(key_t clé,int nsems,int semflg) : retour = semid Opérations sur le compteur de sémaphore : int semop (int semid, struct sembuf *spos, int nsops) Avec struct sembuf { u_short sem_num; short sem_op; short sem_flg; } sem_op > 0 : La valeur du sémaphore est augmentée de sem_op. "sem_op ressources sont rendues disponibles". Un ou plusieurs processus bloqués pourront être libérés s'il y a suffisamment de ressources. Analogue à V, le processus appelant n'est jamais bloqué. sem_op = 0 : Teste si le sémaphore a la valeur 0. Si ce n'est pas le cas, le processus est mis en attente de la mise à zéro du sémaphore. "exemple : un écrivain attend que tous les lecteurs aient fini de lire" sem_op < 0 : La valeur du sémaphore est diminuée de sem_op. "le processus demande sem_op ressources". Si le résultat est nul, tous les processus en attente de cet événement sont réveillés. Si le résultat est négatif, le processus est bloqué "en attendant de disposer de suffisamment de ressources". Isaip-Esaip Programmation multitâche sous Unix 35
36 Isaip-Esaip Programmation multitâche sous Unix 36 Sémaphores IPC (2) Opérations de base : exlusion mutuelle P(s) : semop(sem_num, -1, 0) V(s) : semop(sem_num, +1, 0) Opérations de contrôle : int semctl(int semid,int semnum,int cmd, union semun arg) IPC_RMID, IPC_STAT, IPC_SET, Commandes spécifiques aux sémaphore : GETVAL : retourne la valeur d un sémaphore, GETPID : retourne le PID du processus effectuant dernière opération, etc.
37 Isaip-Esaip Programmation multitâche sous Unix 37 Sockets Les "sockets", ("prise" ou "connecteur" en anglais), fournissent une interface de programmation qui permet de définir facilement un canal de communication entre 2 processus locaux ou distants Chaque extrémité d un canal de communication, est définie par un numéro de port Un descripteur de socket est analogue à un descripteur de fichier Mêmes primitives read et write que pour les fichiers Communication bidirectionnelle (contrairement aux pipes) Format machine 1 Format machine 2 processus CLIENT processus SERVEUR N PORT 1 N PORT 2 Adresse IP 1 Adresse IP 2 Socket Socket Format réseau
38 Isaip-Esaip Programmation multitâche sous Unix 38 Communication en mode connecté (TCP) socket() socket() CLIENT bind() listen() SERVEUR connect() accept() write()/ Send() read()/ Recv() Transfert de données read()/ Recv() write()/ Send() Attente nouvelle connexion close() close()
39 Isaip-Esaip Programmation multitâche sous Unix 39 Communication en mode non connecté (UDP) socket() socket() CLIENT bind() SERVEUR Sendto() Recvfrom() Transfert de données Recvfrom() Sendto() close() close()
Programmation système
Programmation système Christine Solnon Table des matières 1 Les processus 2 1.1 Etats d un processus................................... 2 1.2 Descripteur d un processus (PCB)...........................
Plus en détailIntroduction aux Systèmes et aux Réseaux
Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -
Plus en détailCours 6 : Tubes anonymes et nommés
Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels
Plus en détailProgrammation système en C/C++
Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailLEs processus coopèrent souvent pour traiter un même problème. Ces
Chapitre 5 Communication interprocessus LEs processus coopèrent souvent pour traiter un même problème. Ces processus s exécutent en parallèle sur un même ordinateur (monoprocesseur ou multiprocesseurs)
Plus en détailChapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus
Chapitre 2 Les processus 2.1 Introduction Le processus est un concept clé dans un système d exploitation. Un processus est un programme en cours d exécution. C est-à-dire, un programme à l état actif.
Plus en détailProgrammation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
Plus en détail03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing
3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps
Plus en détailProcessus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace
Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement
Plus en détailExécutif temps réel Pierre-Yves Duval (cppm)
Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications
Plus en détailENSP Strasbourg (Edition 2009-2010) Les Systèmes Temps Réels - Ch. DOIGNON. Chapitre 3. Mise en œuvre : signaux, gestion du temps et multi-activités
Chapitre 3 Mise en œuvre : signaux, gestion du temps et multi-activités 77 GENERALITES SUR LES SIGNAUX Un signal est une information de contrôle (requête) transmise à un processus par un autre processus
Plus en détailCours de S.E. les Signaux
Cours de S.E. les Signaux A. Dragut Univ. Aix-Marseille, IUT Aix en Provence 2012 A. Dragut Cours de S.E. les Signaux 1 / 76 Plan notion noms et numéros kill() effets de l arrivée des signaux Dynamique
Plus en détailLe système de gestion des fichiers, les entrées/sorties.
Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19
Plus en détailÉcole Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.
École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation
Plus en détailTRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique
Communications entre Processus Communication par tubes. TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Exemple 1: On a deux processus Père/Fils. Le père
Plus en détailLes processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)
Se souvenir 1(1)/54 Le système de fichiers (exemple du disque dur) Qu est-ce qu un processus? 3(3)/54 Les caches (inodes et blocks) Accès à un fichier : double indirection Compteurs de références : Les
Plus en détailLes processus. Système L3, 2014-2015 1/39
Les processus Système L3, 2014-2015 1/39 Les processus Processus = Instance d un programme en cours d exécution plusieurs exécutions de programmes plusieurs exécutions d un même programme plusieurs exécutions
Plus en détailQu'est-ce qu'un processus: Définitions
Version septembre 2013 N 187 Qu'est-ce qu'un processus: Définitions Instruction = indécomposable et indivisible Processeur =... Processus = suite temporelle d'exécutions d'instructions Processus = exécution
Plus en détailCommunication Interprocessus
Communication Interprocessus Introduction Segments de données et fichiers communs Les signaux Les tubes de communication d UNIX Tubes anonymes Tubes nommés Les tubes de communication de Windows Tubes anonymes
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailLe traitement du temps
Programmation Système Mesure Horloges Sommeil Mise en forme Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/ enib, F.H... 1/30 Intérêt Cadencer les
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailProgrammation impérative
Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détailLe système GNU/Linux IUP NTIC2-1013 - 17/11/05
Capocchi Laurent Doctorant en Informatique capocchi@univ-corse.fr http://spe.univ-corse.fr/capocchiweb Objectifs Comprendre les notions de noyau Linux et des modules. Le système GNU/Linux IUP NTIC2-1013
Plus en détailSYSTÈME DE GESTION DE FICHIERS
SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S
Plus en détailPlan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF.
Programmation système II Socket UNIX, Terminaux, Async IO, Mémoire, ELF Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 Plan global 1 Socket UNIX 2 Terminaux 3 Autres modèles
Plus en détailSYSTÈME DE GESTION DE FICHIERS SGF - DISQUE
SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur
Plus en détailApplications client/serveur TCP/IP - Sockets Rappels. C.Crochepeyre Applications CS 1
Applications client/serveur TCP/IP - Sockets Rappels C.Crochepeyre Applications CS 1 PLAN Modèle client/serveur Modèle ISO et protocole TCP/IP Comment ça marche? La programmation: les sockets Exemples
Plus en détailDUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream
iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 5 : Sockets Stream Nom(s) : Groupe : Date : Objectifs : manipuler les primitives relatives à la communication par sockets
Plus en détailUnix : Programmation Système
Département Informatique Année Universitaire 2004/2005 1 Compilation et programmation...6 1.1 Préparation du fichier source...6 1.1.1 L'éditeur vi (mode console)...6 1.1.2 L'éditeur nedit ou xedit (sous
Plus en détail3IS - Système d'exploitation linux - Programmation système
3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des
Plus en détailCours de Système : Gestion de Fichiers
Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO)
Plus en détailREALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Plus en détailCommunication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle
F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Communication inter-processus (IPC) : tubes & sockets exemples en C et en Java F. Butelle F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Java : implémentation
Plus en détailDans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.
I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement
Plus en détailGestion des processus
65 La Gestion des Processus 1 Définitions, exemples 2. Politiques d'allocation du processeur 3. Synchronisation des processus 66 Programme : Un programme est une suite figée d'instructions, un ensemble
Plus en détailGESTION DES FICHIERS C/UNIX
Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailIntroduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Plus en détailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détail1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau
1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau Fonctionnement de l Internet Fonctionnement de l Internet Basé sur une architecture TCP/IP du nom des deux principaux protocoles
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détail6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailChapitre 4 : Outils de communication centralisés entre processus
Chapitre 1 : Introduction Chapitre 2 : Processus Chapitre 3 : Ordonnancement Chapitre 4 : Outils de communication centralisés entre processus Chapitre 5 : Allocation mémoire Chapitre 6 : Mémoire virtuelle
Plus en détailSTS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module
François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,
Plus en détail1 Mesure de la performance d un système temps réel : la gigue
TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core
Plus en détailPlaying with ptrace() for fun and profit
sous GNU/Linux nicolas.bareil@eads.net EADS Corporate Research Center - DCR/STI/C SSI Lab SSTIC 2006 Il était une fois... Sous UNIX, ptrace() est le seul moyen de debuggage. User-space, Interface rigide
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailLes processus légers : threads. Système L3, 2014-2015 1/31
Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailSystème et réseaux (SR1) Gestion des utilisateurs
Système et réseaux (SR1) Gestion des utilisateurs Il existe un utilisateur privilégié (de nom root et de groupe root) qui dispose de droits étendus sur le système de fichier et sur le contrôle de l'activité
Plus en détailCahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7
Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones
Plus en détailLes fichiers. Chapitre 4
Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,
Plus en détailArchitecture d un système d exploitation
Architecture d un système d exploitation 1/71 Architecture d un système d exploitation Jean-Claude Bajard IUT de Montpellier, Université Montpellier 2 Première année de DUT Architecture d un système d
Plus en détailStructure d un programme
Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailSynchro et Threads Java TM
Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailDAns un système multi-utilisateurs à temps partagé, plusieurs processus
Chapitre 8 Ordonnancement des processus Dns un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale en attente d exécution. Si plusieurs processus sont
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailCours A7 : Temps Réel
Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Motivations Du jour : les mécanismes multitâches, la gestion des priorités, l ordonnancement, la gestion
Plus en détailCommunication par sockets
Rappel : le réseau vu de l!utilisateur (1) Communication par sockets Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia (demande un service)
Plus en détail1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)
Chapitre 4 Le système de Gestion de Fichiers 1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques) 1 Systèmes d entrée/sortie Concepts importants : Matériel E/S
Plus en détailArgument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données
EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailARDUINO DOSSIER RESSOURCE POUR LA CLASSE
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailCours 14 Les fichiers
Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une
Plus en détailArguments d un programme
Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1
Plus en détailLes débordements de tampons et les vulnérabilités de chaîne de format 1
Les débordements de tampons et les vulnérabilités de chaîne de format 1 Patrice Lacroix Groupe LSFM Département d informatique et de génie logiciel Université Laval 18 décembre 2002 1 Cette recherche a
Plus en détailSystème de Gestion de Fichiers
Chapitre 2 Système de Gestion de Fichiers Le système de gestion de fichiers est un outil de manipulation des fichiers et de la structure d arborescence des fichiers sur disque et a aussi le rôle sous UNIX
Plus en détailProgrammation Système (en C sous linux) Rémy Malgouyres LIMOS UMR 6158, IUT département info Université Clermont 1, B.P.
Programmation Système (en C sous linux) Rémy Malgouyres LIMOS UMR 6158, IUT département info Université Clermont 1, B.P. 86 63172 AUBI Une version PDF de ce document est téléchargeable sur mon site web,
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détail4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
Plus en détailManuel de System Monitor
Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailProblèmes liés à la concurrence
ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions
Plus en détailUnix/Linux I. 1 ere année DUT. Université marne la vallée
Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Plus en détailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailSimulation d un système de paiement par carte bancaire
Simulation d un système de paiement par carte bancaire Mini projet IN301/IN3ST01-2009-2010 Sujet rédigé par Jean Cousty et Laurent Najman, très librement inspiré d un projet de Jérome Gueydan pour l ENSTA
Plus en détailFormation Technicien Supérieur de Support en Informatique T2SI. Le module LINUX. Session 2012-2013 J04 Version 01
Formation Technicien Supérieur de Support en Informatique T2SI Le module LINUX Session 2012-2013 J04 Version 01 Christian DELAIR christian@delair.fr.eu.org GRETA / GITA Formation continue au Lycée polyvalent
Plus en détailProgrammation client-serveur sockets - RPC
Master Informatique M Plan de la suite Programmation client-serveur sockets - RPC Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/people/krakowia
Plus en détailCH.3 SYSTÈMES D'EXPLOITATION
CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailChapitre 1 : La gestion dynamique de la mémoire
Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement
Plus en détailManuel d'installation
CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détailConception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Plus en détail