Slides:



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

Module Systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Module 5 : Implémentation de l'impression
Synchronisation des processus père - fils
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Concepts des Systèmes dexploitation (Tanenbaum 1.5)
GEF 435 Principes des systèmes d’exploitation
Chapitre 3: Système d’exploitation
PLAN du COURS Introduction Structure des Systèmes Informatiques
Mémoire & Processus Cours SE - SRC
TRANSMISSION DES DONNEES INFORMATIQUES
Architecture de machines Principes généraux
le bureau de Windows et ses fonctionnalités
Systèmes d’exploitation
Système d’exploitation : Assembleur
Parallel Programming in C with MPI and OpenMP
Système d’exploitation : Assembleur
Module 13 : Implémentation de la protection contre les sinistres
GED Masters: Gestion Électronique de Documents
Département informatique Automne 2013
Gestion de la Mémoire Bases Swapping Allocation Contigue Pagination
Gestion des Périphériques
Système d’exploitation
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
LES SYSTEMES AUTOMATISES
Périphériques et bus système
Module 8 : Maintenance des logiciels à l'aide des services SUS
Module 3 : Analyse des performances du serveur
Module 4 : Maintenance des pilotes de périphériques
CSI3531 – Labo 1 Lobservation du comportement de processus.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Module 1 : Installation de Microsoft Windows XP Professionnel
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Module 8 : Surveillance des performances de SQL Server
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Master 1 ère année Sécurité des Systèmes Informatique 1 Gestion de modules  Un module est un morceau de code qui peut être chargé à la volée dans le noyau.
Maria Malek - EISTI - CPI11 Présentation d’UNIX –1969, laboratoire Bell –Systèmes multi-tâches multi-utilisateurs –Architecture Le noyau –Gestion de la.
La programmation système
Programmation Système et Réseau
La programmation de l’interface FischerTechnik
Exemple de mise en oeuvre
La mémoire virtuelle Dans laquelle un ordinateur exécute des programmes dont les besoins en mémoires dépassent la mémoire disponible. Par exemple des.
La programmation de l’interface FischerTechnik
Un programme Algorithme permettant au processeur de s'alimenter:
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Patricia Renault UPMC 2005/2006
Cours Système LI324 Les Interruptions Cours Système LI324
Représentation digitale des données Trois formats de base: 1) Décimale: base 10 (Une constante i.e dimension d ’1 vecteur) 2) Binaire: base 2 ( Mask, set/reset.
USB (Universal Serial Bus)
Module 2 : Planification de l'installation de SQL Server
Architecture et technologie des ordinateurs II
Chapitre 9 Les caractères.
1.1: notions de bases de l’informatique
Semaine 5 Registres spéciaux et périphériques internes Projet initial en ingénierie informatique et travail en équipe INF1995 Jérôme Collin et al.
L3 Instrumentation Pétrolière S6
Plan… -Introduction et motivations : -Qu'est-ce que le traitement de fichiers ? -Terminologie et définitions fondamentales des structures de fichiers :
Architecture d’un ordinateur
Chapitre8 Configuration de l'adressage TCP/IP et de la résolution de noms Module S41.
Joëlle Delacroix - NFA0041 Fonctionnement du processeur : exécution des instructions machine RUPTURE DE PROGRAMME : les INTERRUPTIONS.
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

Programmation système IFT-17584 Semaine 09 Programmation système @Pierre Marchand et Martin Dubois, 2002

Cette semaine Retour sur la semaine précédente Interruptions matérielles Bus PCI Port d’entré / sortie Adressage mémoire Périphérique « Polling » vs « Interrupt » Port série Port parallèle Linux Appel système Pilote de périphérique Présentation du TP3 @Pierre Marchand et Martin Dubois, 2002

La semaine dernière Premier examen Question 2.6 Question 2.9 @Pierre Marchand et Martin Dubois, 2002

Interruptions matérielles Contrôleur d’interruptions programmable 8259A Vcc A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP CAS2 CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND PIC 8259A @Pierre Marchand et Martin Dubois, 2002

Interruptions matérielles Registres internes du 8259A INTA INT Data Buffer D0-D7 Control logic R0 WR A0 CS Read/Write logic In Service Register ISR Priority Analysis IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 Interrupt Request Register IRR CAS0 CAS1 CAS2 SP Cascading logic Interrupt Mask Register IMR @Pierre Marchand et Martin Dubois, 2002

Interruptions matérielles Le 8259A Le 8259A peut accepter les interruptions de 8 sources externes, et on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité entre les interruptions simultanées, interrompt le processeur et lui passe un code pour identifier la source d’interruption. Une source d’interruption est connectée à chacune des 8 entrées IR0 à IR7. Selon sa priorité, et s’il n’y a pas d’autre interruption en cours, le PIC décide s’il peut transmettre l’interruption au CPU. Si oui, il affirme la ligne INT, qui est connectée à l’entrée INTR du CPU. Si le CPU est prêt à accepter l’interruption, il répond au PIC via la ligne INTA. @Pierre Marchand et Martin Dubois, 2002

Interruptions matérielles Le 8259A Le PIC répond à son tour en envoyant le numéro d’interruption sur les lignes D0 à D7. Ce numéro est un index dans la table des vecteurs d’interruption. Le CPU est maintenant prêt à appeler le sous-programme de traitement d’interruption approprié. Quand le sous-programme de traitement d’interruption a terminé son exécution, il en avertit le PIC pour qu ’il puisse permettre à d’autres interruptions d ’atteindre le CPU : mov al, 0x20 out 0x20, al @Pierre Marchand et Martin Dubois, 2002

Interruptions matérielles Le 8259A Le PIC comporte deux sortes de commandes : les commandes d’initialisation (ICW) et les commandes opérationnelles (OCW). Ces commandes sont appliquées à deux registres internes, situés respectivement aux adresses 0x20 et 0x21 dans l’espace mémoire d’entrée/ sortie. @Pierre Marchand et Martin Dubois, 2002

Interruptions Vecteurs d’interruption Vecteur Mném. Description 0 #DE Division par 0 1 #DB Déboguage 2 NMI 3 #BP Point d’arrêt (break point) 4 #OF Dépassement de capacité 5 #BR Dépassement d’une limite (instruc. BOUND) 6 #UD Opcode invalide 7 #NM Coprocesseur non disponible 8 #DF Double faute 9 Réservée 10 #TS TSS invalide 11 #NP Segment pas présent @Pierre Marchand et Martin Dubois, 2002

Interruptions Vecteurs d’interruption Vecteur Mném. Description 12 #SS Défaut de segment de pile 13 #GP Protection générale 14 #PF Besoin de page 15 Réservée 16 #MF Erreur de virgule flottante 17 #AC Vérification d’alignement 18 #MC Vérification du processeur 19-31 Réservées par Intel 32-255 Interruptions masquables @Pierre Marchand et Martin Dubois, 2002

Bus PCI Bus d’entrée/sortie. Système PCI CPU BUS PCI PCI PCI PCI Contrôleur de cache et pont PCI CPU Mémoire BUS PCI PCI PCI PCI @Pierre Marchand et Martin Dubois, 2002

Port d’entré sortie Zone d’adressage complètement séparer des adresses mémoires Adresse de 0x0000 à 0xFFFF (en théorie) Instruction spéciale du processeur pour accéder à cette zone d’adressage Invention Intel pour facilité le décodage d’adresse Normalement utilisé pour les périphérique ne comportant que peu de registres Port série Port parallèle Port clavier ou souris @Pierre Marchand et Martin Dubois, 2002

Accès mémoires Même zone d’adressage que la mémoire Simplifie le travail du programmeur Complique celle de l’ingénieur électronique Généralement utilisé pour les périphériques nécessitant une grande espace d’adressage Carte vidéo Carte réseau esclave @Pierre Marchand et Martin Dubois, 2002

Maître vs Esclave Toute les carte PCI sont des cartes esclave Une carte est dite esclave quand le processeur accède ses registre ou sa mémoire Exemple de carte PCI slave Modem interne Certaines carte PCI peuvent aussi être Maître Une carte est dite maître lorsqu’elle prends le contrôle du bus et accède elle même la mémoire centrale de l’ordinateur Exemple de carte PCI maître Carte graphique accélératrice Carte réseau avancé Carte de son Carte d’acquisition d’image Contrôleur de disques @Pierre Marchand et Martin Dubois, 2002

Périphériques Pour accéder à un périphérique, il faut savoir : • Comment utiliser ses registres de contrôle, de données et d’état • Ce qui cause la génération d’une interruption • Comment il transfère ses données • S’il utilise de la mémoire dédiée • S’il peut se configurer automatiquement S’il peut, et dans quel condition il devient maître du BUS @Pierre Marchand et Martin Dubois, 2002

Périphériques Schéma général d ’une interface de périphérique Bus de Caractère reçu données IRQ Caractère à transmettre Bus R/W Registre d'état externe Choix du Vecteur registre Configuration @Pierre Marchand et Martin Dubois, 2002

Périphériques Modes de fonctionnement Mode Scrutation (polling) Pour l’envoi d’une donnée, le CPU vérifie dans le registre d’état si le périphérique est disponible. Si oui, il place la donnée dans le registre de transmission du périphérique. Sinon, il attend que le périphérique soit prêt. Pour la réception d’une donnée, le CPU interroge le registre d’état pour savoir s’il a une donnée disponible. Si oui, il la lit dans le registre de réception. Si non, il attend et interroge le registre d’état de nouveau un peu plus tard. @Pierre Marchand et Martin Dubois, 2002

Périphériques Mode Interruption Lorsque le périphérique reçoit une donnée, il active IRQ pour avertir le CPU. Le CPU interroge alors le registre d’état du périphérique pour savoir si c’est lui qui l’a interrompu et s’il s’agit d’une interruption de réception ou de transmission. Réception S’il s’agit d’une interruption de réception, le CPU lit la donnée dans le registre de réception du périphérique. @Pierre Marchand et Martin Dubois, 2002

Périphériques Mode interruption Transmission S’il s’agit d’une interruption de transmission, le CPU place une nouvelle donnée à transmettre dans le registre de transmis-sion du périphérique. S’il n ’a plus de données à transmettre, il doit désactiver l’interruption en transmission, sinon il sera interrompu immédiatement par la même interruption. @Pierre Marchand et Martin Dubois, 2002

Interface série Interface série 16550/165552 @Pierre Marchand et Martin Dubois, 2002

Interface série Interface série 16550/165552 Cette interface, appelée UART (Universal Asynchronous Receiver Transmitter), assure la communication série avec l’extérieur via les ports COM1 à COM4 : modem, imprimante série, etc. @Pierre Marchand et Martin Dubois, 2002

Interface parallèle Port parallèle Control = Base + 2 Data = Base + 0 IRQ enable Port parallèle 7 6 5 4 3 2 1 0 Control = Base + 2 7 6 5 4 3 2 1 0 1 Strobe Data = Base + 0 14 DO 0 2 15 DO 1 3 16 4 17 5 18 DI 0 6 19 7 20 8 21 9 22 IRQ Ack DO 7 10 23 Busy 11 24 12 25 DI 7 13 Status = Base +1 7 6 5 4 3 2 1 0 @Pierre Marchand et Martin Dubois, 2002

Interface parallèle Les registres Data Out Base + 0 Écriture Status In Base + 1 Lecture Contrôl Out Base + 2 Écriture Data Feedback Base + 0 Lecture Control Feedback Base + 2 Lecture @Pierre Marchand et Martin Dubois, 2002

Interface parallèle Registres « Data Out » Les valeurs placé dans ce registre se retrouve directement sur les pins 2 à 9 du connecteur. Un 1 dans le registre correspond à une tension de 5 Volt par rapport à la masse sur la pin correspondante Un 0 dans le registre correspond à une tension de 0 Volt par rapport à la masse sur la pin correspondante @Pierre Marchand et Martin Dubois, 2002

Interface parallèle Registre « Status In » Bit 0 Bit 1 Bit 2 Bit 3 Pin 15 « Error » Bit 4 Pin 13 « Select In » Bit 5 Pin 12 « Paper End » Bit 6 Pin 10 (inversé) « Acknowledge » Bit 7 Pin 11 (inversé) « Busy » @Pierre Marchand et Martin Dubois, 2002

Interface parallèle Registre « Control Out » Bit 0 Pin 1 « Strobe » Bit 1 Pin 14 « Auto Feed » Bit 2 Pin 16 (inversé) « Init » Bit 3 Pin 17 « Select » Bit 4 « Interrupt enable » Bit 5 Bit 6 Bit 7 @Pierre Marchand et Martin Dubois, 2002

Programmes d’utilisateurs et applications Linux Programmes d’utilisateurs et applications Niveau Application Niveau Noyau Gestion Processus Gestion Mémoire Systèmes de Fichiers Contrôle de Dispositifs Réseautage Parties du Noyau Concurrence Multitâche TTYs & Accès aux Dispositifs Mémoire Virtuelle Fichiers & Répertoires Capacités implémentées Connectivité Code dépendant de l’archi- tecture Gestion de mémoire Types de SF Dispositifs en mode caractère Sous-système réseau Support logiciel Contrôle du matériel Dispositifs par blocs Pilotes IF CPU RAM Disques & CD Console, Ports série Cartes spéciales Interfaces Réseau @Pierre Marchand et Martin Dubois, 2002

Linux / bin boot dev etc home lib usr var include lib gtk gnu kde @Pierre Marchand et Martin Dubois, 2002

Linux Principales commandes du shell cd change directory, home si aucun paramètre ls -l -al liste : répertoire -l affiche aussi permissions -al affiche aussi fichiers invisibles ps -aux -ealf processes pwd répertoire courant cp copy mv move : déplace ou renomme un fichier rm -r -i remove mkdir make directory rmdir remove directory chmod u o g a ±r ±w ±x : chmod a+w toto.c @Pierre Marchand et Martin Dubois, 2002

Linux Principales commandes du shell find Trouve : find / -name Toto.c grep Trouve à l’intérieur de fichiers grep toto *.h clear Efface l’écran date Affiche la date file Propriétés d’un fichier kill -term -kill Arrêter un processus cat Afficher le contenu d’un fichier texte less  more man Afficher la documentation d’une commande passwd Changer mot de passe tar -xf Décompresser un fichier .tar who Liste des utilisateurs @Pierre Marchand et Martin Dubois, 2002

Linux Principales commandes du shell pico Petit éditeur vi Éditeur par défaut mail Pour envoyer un courriel. @Pierre Marchand et Martin Dubois, 2002

Appels système Sous Linux, les appels système s’effectuent au moyen de l’interruption logicielle int 0x80. Sous DOS, ils s’effectuent au moyen des interruptions 0x21, 0x25, 0x26 et autres, tandis que sous Windows, ils s’effectuent au moyen de l’interruption logicielle int 0x2E. Ces appels système couvrent toute une gamme de fonctions offertes par le système d’exploitation. Sous Linux, eax contient le numéro de la fonction désirée, et les paramètres sont passés dans ebx, ecx, edx, esi, edi dans l’ordre. @Pierre Marchand et Martin Dubois, 2002

Exemples d’appels système : 3 sys_read int fd, char *buf, int count 4 sys_write int fd, char *buf, int count 5 sys_open char *name, int flag, int mode 6 sys_close int fd 12 sys_chdir char *path 20 sys_getpid 24 sys_getuid 37 sys_kill int pid, int sig 39 sys_mkdir char *name, int mode 40 sys_rmdir char *name 48 sys_signal int numero, void(*handler)(int) Une liste complète est disponible sur le site du cours à la page Documentation. @Pierre Marchand et Martin Dubois, 2002

Appels système Peu importe le système d’exploitation, un appel système implique un passage du mode d’exécution « application » (03) vers le mode d’exécution « privilégié » (00) La sécurité du « Noyau » dépends entièrement de la technique utilisé pour effectuer ce passage. Le déclenchement d’un interruption logiciel provoque le changement de niveau d’exécution et provoque l’exécution d’une routine de traitement de l’interruption résidant dans le « noyau ». Cette routine et responsable de vérifier les droits de l’utilisateur avant de poursuivre le traitement demandé. @Pierre Marchand et Martin Dubois, 2002

Pilotes de périphériques Classes de périphériques Dispositifs en mode caractère Dispositifs qui peuvent être traités comme des fichiers avec des appels système open, close, read et write. Exemples : la console, le port parallèle, etc. Dispositifs en mode bloc Dispositifs tels que des disques, qui peuvent héberger un système de fichiers. Dans la plupart des systèmes Unix, on ne peut transférer qu’un nombre d’octets multiple d’un bloc. La taille d’un bloc est 1 Ko ou 4 Ko dépendant du système. Sous Linux, on peut lire ou écrire dans un dispositif en mode bloc comme s’il s’agissait d’un dispositif en mode caractère. La différence réside seulement dans la façon dont les données sont gérées par le noyau. @Pierre Marchand et Martin Dubois, 2002

Pilotes de périphériques Classes de périphériques Interfaces réseau Peut être matérielle ou logicielle. Une interface réseau est responsable de transmettre et de recevoir des paquets de données, et est contrôlée par le sous-système réseau du noyau. Elle effectue des transactions sans connaître le rôle de chaque paquet dans les échanges effectués. Pour elle, il n’y a pas de différence entre un paquet de données Telnet ou un paquet ftp. @Pierre Marchand et Martin Dubois, 2002

Pilotes de périphériques Mode utilisateur Avantages On dispose de toutes les librairies C. On peut utiliser un débogueur conventionnel. En cas de panne, on peut simplement tuer le processus. La mémoire utilisateur peut être paginée, de sorte qu’un programme peu utilisé voit son espace mémoire attribué à d’autres processus. @Pierre Marchand et Martin Dubois, 2002

Pilotes de périphériques Mode utilisateur Inconvénients N’a pas accès aux interruptions. L’accès direct à la mémoire nécessite privilège noyau. N’a pas accès aux ports d’entrée sortie. Le temps de réponse est plus lent à cause des changements de contexte nécessités par le transfert d’informations ou d’actions entre le client et le matériel Si jamais le pilote était paginé sur disque, le temps de réponse deviendrait inacceptable Les dispositifs les plus importants ne peuvent pas être traités en mode utilisateur, en particulier les interfaces réseau et les dispositifs par blocs. @Pierre Marchand et Martin Dubois, 2002

Pilotes de périphériques Modules Sous Linux, un module est une extension du noyau. Les pilotes de périphériques peuvent être des modules. Chaque module est du code objet qui peut être lié dynamiquement au noyau pendant son fonctionnement avec la commande insmod et être délié avec la commande rmmod. Un module fonctionne en mode privilégié. Seul un utilisateur root peut installer un module. Habituellement chaque module n’implémente qu’un pilote. On peut donc les classifier comme modules par caractères, modules par blocs, etc. @Pierre Marchand et Martin Dubois, 2002

Pilotes de périphériques Modules Module hello.c #define MODULE #include <linux/module.h> int init_module(void) { printk(“<1>Bonjour le monde!\n”); return 0; } void cleanup_module(void) printk(“<1>Adieu, monde cruel!\n”); @Pierre Marchand et Martin Dubois, 2002

Pilotes de périphériques Modules root# gcc -c hello.c root# insmod hello.o root# rmmod hello root# @Pierre Marchand et Martin Dubois, 2002

Pilotes de périphériques Différences entre un module et une application Un module fonctionne dans l’espace mémoire du noyau tandis qu’une application fonctionne dans l’espace mémoire utilisateur (paginé). Un module a accès aux interruptions. Un module a accès aux entrées/sorties. @Pierre Marchand et Martin Dubois, 2002

TP3 Lien de communication entre deux ordinateur Série Synchrone « Full duplex » Lent, très lent @Pierre Marchand et Martin Dubois, 2002

TP3 La recette pour charger votre pilote de périphérique cd $HOME chmod 711 $HOME mkdir ift-17584 chmod 711 ift-17584 Placer votre module tp3.o dans ~/ift-17584 chmod 611 ift-17584/tp3.o sudo insmod $HOME/ift-17584/tp3.o @Pierre Marchand et Martin Dubois, 2002

TP3 Deux moyen de visualiser le journal système sudo tail –f /var/log/syslog sudo tail –n 100 /var/log/syslog @Pierre Marchand et Martin Dubois, 2002

TP3 Pour retirer votre module du noyau sudo rmmod tp3 Pour éviter au utilisateur suivant des problèmes causés par un noyau corrompu, nous vous demandons de toujours redémarrer l’ordinateur après avoir utilisé ces recettes. Aussi, les commande effectué en utilisant sudo sont noter dans un journal de sécurité. @Pierre Marchand et Martin Dubois, 2002