Pilotes de périphériques Une introduction aux drivers
|
|
- Denise Desroches
- il y a 8 ans
- Total affichages :
Transcription
1 Pilotes de périphériques Une introduction aux drivers Cours IEM Prof. Daniel Rossier Version 0.1 1
2 Plan Introduction Architecture générale Interactions des espaces utilisateur/noyaux Catégorie de drivers Gestion du driver dans le noyau Registration, sondes, callbacks Modèle général d'un système et ses périphériques Classes, bus, devices 2
3 Pilotes de périphériques Drivers pour le pilotage de périphériques Disque dur Souris, clavier, etc. PCI, IDE, etc. Systèmes de fichiers (ext2fs, NTFS, FAT-32, etc.) Drivers pour des pseudo-devices Génération de données Terminaux virtuels Multiplexage audio/vidéo Systèmes de fichiers 3
4 Contraintes de développement (1/2) Le développement d'un driver est généralement beaucoup plus compliqué que le développement d'une application logicielle "traditionnelle". Le périphérique fonctionne de manière "indépendante" et peut provoquer des interruptions. Plusieurs processus peuvent utiliser le périphérique (carte réseau, affichage vidéo, disque dur, etc.) Nécessité de gérer la réentrance des fonctions du driver. Le driver peut être éventuellement soumis à des contraintes temps-réel sévères. Réaction à des événements externes Feedback requis dans des délais très courts. 4
5 Contraintes de développement (2/2) Les périphériques peuvent "apparaître" ou "disparaître" de manière inopportune. Le driver doit garantir la cohésion des données internes. Les drivers - et le code du noyau en général - ne peuvent pas utiliser d'appels systèmes! Pas de printf() Difficile à debugger Une interruption matérielle peut survenir pour desservir une requête venant d'un driver, mais le processus en cours d'exécution n'est pas celui concerné par cette requête! Nécessité de gérer différents contextes (piles, threads, etc.) 5
6 Développement de drivers Il est indispensable de pouvoir naviguer aisément dans les sources du noyau. Linux Cross-Reference (LXR) Des outils de debugging sont nécessaire. kgdb Sonde JTAG Système de fichiers /proc et /sys Utilisation de l'utilitaire strace pour visualiser l'utilisation des appels système. "Système D" 6
7 Linux et les drivers Un driver apparaît sous la forme d'un module. #define MODULE #include <linux/module.h> int init_module (void) { printk("hello kernel n"); return 0; } void cleanup_module(void) { printk("goodbye Kerneln"); } Un module peut être chargé statiquement ou dynamiquement. Durant la compilation du noyau Durant l'exécution du noyau 7
8 Organisation de la mémoire Le driver est du code exécuté dans l'espace noyau. Espace mémoire Kernel (OS, data, etc.) Les fonctions du driver sont invoquées à partir d'appels système, ou par les sous-systèmes du noyau. Il y a toujours un processus qui tourne. Peut-être pas toujours le bon ;-) Espace d'adressage Stack Heap BSS Data Code 8
9 Espace noyau et sous-systèmes 9
10 Interactions entre espaces User/Kernel Applications (User Space) System Call Interface VFS Socket Kernel Space Buffer Cache File Systems Network Protocol Block Device Driver Character Device Driver Network Device Driver Hardware 10
11 Interactions User/Kernel Les données doivent être transférées de l'espace utilisateur vers le noyau, et/ou vice-versa. Le driver utilise ses propres buffers et autres structures de données. L'espace d'adressage est accessible dans son entièreté. Les données utilisateur sont visibles. Une reconfiguration MMU peut survenir (plutôt rare). Les adresses doivent être vérifiées! Il est possible de passer n'importe quelle adresse dans un appel système. Exemple: write(fd, (char *) 0x003, 10); 11
12 Transferts de données User <-> Kernel Fonctions de transfert entre espace utilisateur et espace noyau. Typiquement, l'adresse de la zone mémoire allouée dans l'espace utilisateur est passée comme argument lors de l'invocation de l'appel système. 12
13 Utilisation des entrées "/dev" L'accès à un driver depuis une application passe par l'utilisation de fichiers spéciaux se trouvant dans le répertoire /dev. Gestion statique des entrées de /dev /dev est un répertoire devant faire partie du rootfs Les entrées sont crées manuellement à l'aide de mknod mknod [options] nom {bc} numéro_majeur numéro_mineur Gestion dynamique des entrées de /dev hotplug udev 13
14 Utilisation d'un majeur/mineur Un driver est identifié par le noyau à l'aide de son majeur (major). Le mineur (minor) est transmis au driver; il n'est pas utilisé par le noyau directement. Il sert à identifier un périphérique parmi d'autres présents sur un même bus. Major Minor 14
15 Gestion des majeurs La liste des majeurs se trouvent dans Documentation/devices.txt Dernière version: L'allocation des majeurs/mineurs peuvent se faire dynamiquement. 15
16 Pseudo-système de fichier /proc et /sys /proc et /sys sont deux systèmes de fichiers spéciaux permettant d'obtenir des informations du noyau. /proc Processus et threads en cours d'exécution Etat courant de l'os Description du matériel en exploitation Peut être utilisé comme outil de configuration dynamique /sys Description de l'arborescence du matériel (physique/logique) Permet la découverte automatique des composants Facilite la gestion du hotplug Facilite la gestion de l'alimentation (power management) 16
17 Cycle de développement d'un driver Edition et compilation avec les outils traditionnels Test du driver sur l'hôte, la cible ou dans un émulateur Edition du code source du driver Compilation du driver Création du point d'entrée /dev (mknod) Chargement dynamique (insmod "driver.o") Accès aux drivers (read(), write()) Déchargement du driver de la mémoire (rmmod) 17
18 Types de driver Driver de type "caractère" (Character Device) Driver de type "bloc" (Block Device) Driver de type "réseau" (Network Device) 18
19 Driver de type Character Transfert d'octets depuis l'application vers le périphérique et vice-versa. Pas de mécanismes de cache de buffers sophistiqués Accès séquentiels, et non aléatoires Généralement considéré pour des périphériques "lents" Utilisation via les appels systèmes open(), write(), read(), close() 19
20 Registration et callbacks Le driver doit être enregistré afin d'informer le noyau de sa présence et de ses capacités. Les fonctions pouvant être utilisées par le noyau doivent être déclarées dans les structures correspondantes. Ces fonctions seront appelées par le noyau (sous-systèmes ou d'autres drivers) selon besoin. 20
21 Structure file_operations La structure file_operations contient les références vers les fonctions (callbacks) qui seront appelées par le noyau. Fonctions open() / release() Fonctions read() / write() linux/fs.h: struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char user *, size_t, loff_t *); ssize_t (*write) (struct file *, const char user *, size_t, loff_t *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*release) (struct inode *, struct file *);... }; 21
22 Driver de type character Interaction entre espace utilisateur et noyau 22
23 Exemple - Driver de type character struct cdev *my_dev; ssize_t device_read(struct file *filp, char *buffer, size_t length, loff_t *offset) { return 0; } struct file_operations fops = {.read = device_read,.open = device_open, }; int init init_module(void) { dev_t dev; dev = MKDEV(126, 0); my_dev = cdev_alloc(); cdev_init(my_dev, &fops); } my_dev->owner = THIS_MODULE; my_dev->ops = &fops; cdev_add(my_dev, dev, 1); return 0; void exit cleanup_module(void) { cdev_del(my_dev); } MODULE_LICENSE("GPL"); 23
24 Driver de type character Ecrire un petit driver de type character qui affiche le contenu d'une chaîne de caractères, et qui lit une chaîne du noyau. Ecrire d'abord le programme sur papier Le tester dans l'émulateur 24
25 Driver de type Block Transfert de bloc(s) de données vers et depuis le périphérique Périphérique permettant le transfert en bloc (lent par rapport aux accès mémoire, mais rapide par rapport aux interfaces) Les accès peuvent être bufferisés et gérés par des caches impliquant des structures du noyau et les sous-systèmes (gestion mémoire, ordonnanceur, etc.) Les fonctions de transferts de blocs sont appelées par le noyau directement sous forme de requêtes. Fonction request() Une file de requêtes (request queue) est allouée par le driver et permet de gérer les requêtes. 25
26 Driver de type Block Processus read/write syscall Driver Filesystem Driver de type Block Gestion des caches de buffers Invocation de la fonction request Ordonnancement des requêtes I/O 26
27 Exemple (1/3) - Extrait définition /* Our request queue. */ static struct request_queue *Queue; /* The internal representation of our device. */ static struct sbd_device { unsigned long size; spinlock_t lock; u8 *data; struct gendisk *gd; } Device; 27
28 Exemple (2/3) - Extrait transfert /* Handle an I/O request. */ static void sbd_transfer(struct sbd_device *dev, unsigned long sector, unsigned long nsect, char *buffer, int write) { unsigned long offset = sector*hardsect_size; unsigned long nbytes = nsect*hardsect_size; } if (write) memcpy(dev->data + offset, buffer, nbytes); else memcpy(buffer, dev->data + offset, nbytes); static void sbd_request(request_queue_t *q) { struct request *req; while ((req = elv_next_request(q))!= NULL) { sbd_transfer(&device, req->sector, req->current_nr_sectors, req->buffer, rq_data_dir(req)); end_request(req, 1); } } 28
29 Exemple (3/3) - Extrait initialisation static int init sbd_init(void) { } Device.size = nsectors*hardsect_size; spin_lock_init(&device.lock); Device.data = vmalloc(device.size); if (Device.data == NULL) return -ENOMEM; /* * Get a request queue. */ Queue = blk_init_queue(sbd_request, &Device.lock); if (Queue == NULL) goto out; blk_queue_hardsect_size(queue, hardsect_size); /* Get registered. */ major_num = register_blkdev(major_num, "sbd"); if (major_num <= 0) { printk(kern_warning "sbd: unable to get major number\n"); goto out; } 29
30 Driver de type Network Les données sont organisées sous forme de paquets et peuvent "traverser" plusieurs couches de protocoles (protocol stack). Les appels systèmes ne sont pas les mêmes que précédemment: sendmsg(), recv(), accept(), bind(), listen(), etc. Les sockets de communication sont les objets utilisés dans l'espace utilisateur pour interagir avec les drivers de ce type. 30
31 Sous-système réseau Application layer Kernel Space 31 System call interface Protocol independent interface Network protocols Device independent interface Device drivers Physical device hardware Socket API (./net/socket.c) proto (linux/include/net/sock.h) protocole spécifique (linux/net/ipv4/tcp_ipv4.c) ip_output() / ip_receive() net_open() / net_send_packet() net_send_rx()
32 Modèle d'un driver de type Network Exemple: Carte CS8900 (Ethernet) Kernel Area Network Device Driver cs89x0_probe() protocol stack ip_output() net_open() net_send_packet() ip_rcv() net_rx() net_interrupt() net_close() net_bh() 32
33 Modèle de périphériques Sous Linux, la manière de représenter un périphérique a beaucoup évolué au fil des dernières années. L'apparition des mécanismes de hotplug et de gestion d'alimentation (power management) a fortement contribué à cette évolution. L'abstraction du matériel joue un rôle prépondérant. Le modèle actuel d'un périphérique est composé de trois objets fondamentaux: Le bus le device la classe 33
34 Modèle: bus, device et classe Exemple d'un modèle de souris Constations: Notion de hiérarchie Références multiples, pas d'arborescence évidente 34
35 Une notion sous-jacente: Kobject Un Kobject est une structure générique très utilisé dans le noyau, permettant de maintenir des références sur les différents structures du noyau. Un Kobject comprend un compteur de références. L'allocation et la restitution sont contrôlées par le noyau. Un Kobject peut être exporté dans l'espace utilisateur, via une entrée dans sysfs. Les Kobjects permettent de modéliser un système avec tous ces périphériques et drivers. Permet de faciliter la gestion du hotplug. Permet de faciliter la gestion des drivers. 35
36 Structure Kobject Un Kobject pointe vers un Kobject parent. Un Kobject peut contenir un Kset. Un Kset est une collection de Kobject. 36
37 Kobjects et Ksets Imbrication de Kobjects avec des Ksets. Un Kobject peut être embarqué dans différents Kset. 37
38 Utilisation d'un Kobject Une structure contient un Kobject. Exemple: cdev Récupération de "l'objet" à partir du Kobject: Utilisation de la macro container_of 38
39 Bus Le bus est représenté comme un canal entre le processeur et un ou plusieurs périphériques. Le bus peut être virtuel. 39
40 Device Le device représente le périphérique directement. Il s'agit de la structure de plus bas niveau. 40
41 Class La classe est l'objet de plus haut niveau dans le modèle du système. Elle identifie un type de périphérique, par exemple un disque, en faisant abstraction des détails de bas niveau (SCSI, IDE, etc). 41
42 La structure device_driver device_driver est la structure représentant le driver lui-même. Elle peut contenir des données privées gérées par le driver. Elle contient une référence vers la fonction de sonde automatique (probe). 42
43 Sonde automatique (probe) C'est une fonction de type callback invoqué par le noyau lors de la détection d'un périphérique par le driver. La fonction probe est invoqué lorsque le bus inspecte la présence de périphériques. La fonction probe permet de tester si le driver peut fonctionner ou non avec le périphérique détecté. 43
44 Driver de type character avec sonde Modifier le driver de type character de telle sorte à ce que celui-ci soit enregistré comme driver d'un composant I 2 C. Faites d'abord la modification sur papier Tester dans l'émulateur la présence de l'entrée correspondante dans /sys 44
45 Références Linux Device Drivers (3rd Edition), Jonathan Corbet, Alessandro Rubini & Greg Kroah-Hartman Version online: 45
Session 8: Android File System
Session 8: Android File System LO52 - Automne 2014 Fabien BRISSET 2 mai 2014 fabien.brisset@utbm.fr www.utbm.fr Droits de reproduction Copyright 2013-2014, Fabien Brisset, Copyright 2004-2014, Free Electrons
Plus en détailLes avantages de la virtualisation sont multiples. On peut citer:
1 Les mécanismes de virtualisation ont été introduits il y a fort longtemps dans les années 60 par IBM avec leur système CP/CMS. La motivation première de la virtualisation est la possibilité d'isoler
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étailProgrammation de l'api Video for Linux
Programmation de l'api Video for Linux Pierre Ficheux (pierre.ficheux@openwide.fr) Mars 2005 Résumé Cet article décrit l'interface de programmation Video for Linux (plus communément appelée V4L) destinée
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étailConcept de machine virtuelle
Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine
Plus en détailLe Network File System de Sun (NFS)
1 sur 5 Le Network File System de Sun (NFS) Le Network File System de Sun (NFS) Architecture Protocoles Mounting Automounting vs Static mounting Directory et accès aux fichiers Problèmes Implémentation
Plus en détailSystèmes d exploitation
Systèmes d exploitation Virtualisation, Sécurité et Gestion des périphériques Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Novembre 2009 Gérard Padiou Systèmes d exploitation
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é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é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étailModélisation des interfaces matériel/logiciel
Modélisation des interfaces matériel/logiciel Présenté par Frédéric Pétrot Patrice Gerin Alexandre Chureau Hao Shen Aimen Bouchhima Ahmed Jerraya 1/28 TIMA Laboratory SLS Group 46 Avenue Félix VIALLET
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é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é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é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é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étailBrefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs
Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales
Plus en détailOS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
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étailTemps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011
Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller
Plus en détailModules du DUT Informatique proposés pour des DCCE en 2014/2015
Modules du DUT Informatique proposés pour des DCCE en 2014/2015 Résumé de l offre : Parmi les 5500 heures d enseignement informatique dispensées au département informatique de l IUT (avec 2880 heures de
Plus en détailLogiciels de communication avec des périphériques. Jean-Philippe Babau
labsticc.univ-brest.fr/pages_perso/babau/ Logiciels de communication avec des périphériques Jean-Philippe Babau Département Informatique, UFR Sciences, UBO Laboratoire Lab-STICC 1 Plan Besoins applicatifs
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étailmachine cible machine hôte architecture cible différente de la machine hôte
1 Les émulateurs jouent un rôle fondamentale dans le développement de logiciel bas niveau pour les systèmes embarqués. Ils permettent de debugger aisément les premières instructions qui s'exécutent lors
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étailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
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étailIntroduction aux Systèmes et aux Réseaux, Master 2 CCI
aux Systèmes et aux Réseaux, Master 2 CCI Cours 1 : Introduction et contexte Unix/Linux Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI - Université Lyon 1 -
Plus en détailÉléments d'architecture des ordinateurs
Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
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é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é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é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étailInformatique pour scientifiques hiver 2003-2004. Plan général Systèmes d exploitation
Informatique pour scientifiques hiver 2003-2004 27 Janvier 2004 Systèmes d exploitation - partie 3 (=OS= Operating Systems) Dr. Dijana Petrovska-Delacrétaz DIVA group, DIUF 1 Plan général Systèmes d exploitation
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é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étailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
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étailDéveloppement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France
Développement d applications Internet et réseaux avec LabVIEW Alexandre STANURSKI National Instruments France Quelles sont les possibilités? Publication de données Génération de rapports et de documents
Plus en détailCommunications performantes par passage de message entre machines virtuelles co-hébergées
Communications performantes par passage de message entre machines virtuelles co-hébergées François Diakhaté1,2 1 CEA/DAM Île de France 2 INRIA Bordeaux Sud Ouest, équipe RUNTIME Renpar 2009 1 Plan Introduction
Plus en détailPLATE-FORME DE CLOUD COMPUTING SLAPOS. Intégration d applications
PLATE-FORME DE CLOUD COMPUTING SLAPOS Intégration d applications Alain Takoudjou Kamdem Alain.takoudjou@lipn.univ-paris13.fr LIPN Université Paris 13 Vichy 2014 Présentation du cloud computing Le Cloud
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é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étailUtilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel
Utilisation de matériels industriels avec des outils de virtualisation open source Open Source dans le monde industriel Christophe Sauthier Ancien Président de Ubuntu fr Développeur Ubuntu Officiel Développeur
Plus en détailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailLOG4430 : Architecture et conception avancée
LOG4430 : Architecture et conception avancée Abdou Maiga Patrons pour la conception d applications distribuées Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc,
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é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étailIFT2245 - Systèmes d exploitation - TP n 1-20%
IFT2245 - Systèmes d exploitation - TP n 1-20% DIRO - Université de Montréal Nicolas Rous et Dorian Gomez Disponible : 14/02/2013 - Remise : 28/03/2013 au début de la démo LISEZ TOUT LE DOCUMENT AVANT
Plus en détailRMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plus en détailRappels d architecture
Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée
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étailInitiation à la sécurité
Initiation à la sécurité UE Systèmes informatiques 12 septembre 2011 Julien Raeis - http://raeis.iiens.net/ Présentation Ingénieur IIE 2005 Carrière dans la sécurité des systèmes Consultant en sécurité
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étailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailSystèmes embarqués D.Rossier
D.Rossier Manuel IEM (v0.2) Manuel d'utilisation pour les laboratoires IEM Auteur: G. Boutillier / C. Bardet Objectif Cette documentation donne de brèves explications sur l'utilisation des différents outils,
Plus en détailCompilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
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étailGestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr
Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération
Plus en détailLES FONCTIONS DE SURVEILLANCE DES FICHIERS
SYSLOG and APPLICATION LOGS Knowledge Module for PATROL - Data Sheet Version 1.5 Développé par http://www.axivia.com/ PRESENTATION DU PRODUIT SYSLOG and APPLICATION LOGS Knowledge Module for PATROL est
Plus en détailFAQ L&TT Version avec interface graphique pour Windows
FAQ L&TT Version avec interface graphique pour Windows Le présent document est un guide rapide, comportant des captures d'écran pour vous aider à suivre les instructions de l'assistance HP. Pour obtenir
Plus en détailNicolas Hanteville. for(e=n;s<i;c++){attitude();} Sur environnement Microsoft Windows
for(e=n;s
Plus en détailUne bibliothèque de templates pour CUDA
Une bibliothèque de templates pour CUDA Sylvain Collange, Marc Daumas et David Defour Montpellier, 16 octobre 2008 Types de parallèlisme de données Données indépendantes n threads pour n jeux de données
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é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étailWindows XP niveau 2. D. Hourquin, Médiapôle St Ouen l'aumône
Windows XP niveau 2 Les nouveautés de XP par rapport à 98 Installation, configuration et paramétrage : les fichiers système, la mise à jour, la gestion des périphériques classiques. Maintenance du disque
Plus en détailRuntime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I
Runtime Gestion de la réactivité des communications réseau François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I 1 Le calcul hautes performances La tendance actuelle
Plus en détailVirtualisation sous Linux L'age de raison. Daniel Veillard veillard@redhat.com
Virtualisation sous Linux L'age de raison Daniel Veillard veillard@redhat.com Solution Linux 2009 Une jungle d'acronymes Xen UML VServer VMWare VirtualBox lguest QEmu KVM VirtualIron OpenVZ LXC Définition
Plus en détailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailImplémentation des SGBD
Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution
Plus en détailArchitecture distribuée
Architecture distribuée Conception et développement d algorithmes distribués pour le moteur Baboukweb Jean-Christophe DALLEAU Département de Mathématiques et Informatique Université de La Réunion 26 juin
Plus en détailM2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013
Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :
Plus en détailST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée
Mitsubishi Electric ITE-TCL 1, allée de Beaulieu CS 10806 35708 Rennes CEDEX 7 France Tel. +33 (0) 2 23 45 58 58 ST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée
Plus en détailHéritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Plus en détail<Insert Picture Here> Solaris pour la base de donnés Oracle
Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailGestion de la mémoire
433 43 3 Gestion de la mémoire + 1. Qu'est-ce que la mémoire? - Définitions, exemples 2. Allocation contiguë en mémoire - Partitions de taille fixe, de taille variable 3. Pagination et mémoire virtuelle
Plus en détailInformatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction
Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d
Plus en détailAnnexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Plus en détailAnalyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
Plus en détailGrid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department
DB GT CF Grid ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Group Information Department Journée de la communauté FUSE, Paris, 2010 CERN IT Department CH-1211 Geneva 23 Switzerland
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
Plus en détailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
Plus en détailVirtualisation logicielle De la machine réelle à la machine virtuelle abstraite
Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Bertil FOLLIOT et Gaël THOMAS Cette version est une préversion de l article accepté par «Technique de l ingénieur» (Hermes).
Plus en détailLinux embarqué: une alternative à Windows CE?
embarqué: une alternative à Windows CE? : une alternative à Windows CE Présentation Mangrove Systems Distribution embarqué Perspective WinCe / Questions Mangrove systems Créé en 2001 Soutien Soutien Ministère
Plus en détailMachines Virtuelles. et bazard autour. Rémi Forax
Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]
Plus en détailChapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager
Plus en détailCroisière au cœur d un OS Étape 4 : Mise en place de la pagination
Croisière au cœur d un OS Étape 4 : Mise en place de la pagination Résumé Grâce à l article 3, nous pouvons gérer la totalité de la RAM disponible. Dans cet article, nous allons commencer la mise en place
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étailLE MICRO ORDINATEUR. Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables
LIONEL FRANC Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables L'INTRODUCTION Micro ordinateur portable ou fixe Système pluri- technologiques (mécanique,
Plus en détailStockage Réseau. Le stockage s'échappe du système pour devenir une fonction réseau
Stockage Réseau Le stockage s'échappe du système pour devenir une fonction réseau Philippe Latu Université Toulouse III Paul Sabatier www.inetdoc.net Philippe.latu(at)inetdoc.net Introduction Les enjeux
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étailInitiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr
Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
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étail