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

IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

Jul 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 461

IFT-17584

Semaine 09

Programmation système

Page 2: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 462

Cette semaine

• Retour sur la semaine précédente• Interruptions matérielles• Bus PCI

Port d’entré / sortieAdressage mémoire

• Périphérique« Polling » vs « Interrupt »Port sériePort parallèle

• LinuxAppel systèmePilote de périphérique

• Présentation du TP3

Page 3: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 463

La semaine dernière

• Premier examenQuestion 2.6Question 2.9

Page 4: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 464

Interruptions matérielles

Contrôleur d’interruptions programmable 8259A

VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSPCAS2

CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND

PIC8259A

Page 5: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 465

Interruptions matérielles

Registres internes du 8259A

DataBufferD0-D7

InServiceRegister

ISR

PriorityAnalysis

InterruptRequestRegister

IRR

Interrupt Mask RegisterIMR

IR0IR1IR2IR3IR4IR5IR6IR7

Control logic

INTA INT

Read/Writelogic

Cascadinglogic

R0WRA0

CS

CAS0CAS1CAS2

SP

Page 6: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 466

Interruptions matérielles

Le 8259ALe 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.

Page 7: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 467

Interruptions matérielles

Le 8259ALe 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, 0x20out 0x20, al

Page 8: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 468

Interruptions matérielles

Le 8259ALe 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.

Page 9: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 469

Interruptions

Vecteurs d’interruptionVecteur Mném. Description0 #DE Division par 01 #DB Déboguage2 NMI3 #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 invalide7 #NM Coprocesseur non disponible8 #DF Double faute9 Réservée10 #TS TSS invalide11 #NP Segment pas présent

Page 10: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 470

Interruptions

Vecteurs d’interruptionVecteur Mném. Description12 #SS Défaut de segment de pile13 #GP Protection générale14 #PF Besoin de page15 Réservée16 #MF Erreur de virgule flottante17 #AC Vérification d’alignement18 #MC Vérification du processeur19-31 Réservées par Intel32-255 Interruptions masquables

Page 11: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 471

Bus PCI

• Bus d’entrée/sortie. Système PCI

CPUContrôleurde cache et

pont PCIMémoire

BUS PCI

PCI PCI PCI

Page 12: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 472

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ériePort parallèlePort clavier ou souris

Page 13: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 473

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’adressageCarte vidéoCarte réseau esclave

Page 14: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 474

Maître vs Esclave

• Toute les carte PCI sont des cartes esclaveUne carte est dite esclave quand le processeur accède ses registre ou sa mémoireExemple de carte PCI slave• Modem interne

• Certaines carte PCI peuvent aussi être MaîtreUne 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’ordinateurExemple 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

Page 15: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 475

PériphériquesPour 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

Page 16: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 476

Périphériques

Schéma général d ’une interface de périphérique

Caractère reçu

Caractère à transmettre

Registre d'état

Vecteur

Bus dedonnées

IRQBus

externeR/W

Configuration

Choix duregistre

Page 17: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 477

Périphériques

Modes de fonctionnementMode 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.

Page 18: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 478

Périphériques

Mode InterruptionLorsque 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éceptionS’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.

Page 19: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 479

Périphériques

Mode interruptionTransmission

S’il s’agit d’une interruption de transmission, le CPU place unenouvelle 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.

Page 20: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 480

Interface série

• Interface série 16550/165552

Receive Data

Transmit Data

Baud rate LSB*

Interrupt Enable

Baud rate MSB*

Interrupt ID

FIFO Control

Line Control

Modem Control

Line Status

Modem Status

D0-D7

R/W

A0-A15

IRQ

TxD

RxD

Dˇc

odeu

rd'

adre

sses

RS

DTRRTSCTSDSRRSLDRI

Page 21: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 481

Interface série

Interface série 16550/165552Cette 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.

Page 22: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 482

Interface parallèle

10

11

12

13

7 6 5 4 3 2 1 0

Data = Base + 0

Port parallèle

DO 0

DO 7

1

2

3

4

5

6

7

8

9

14

15

16

17

18

19

20

21

22

23

24

25

DI 0

DI 7

7 6 5 4 3 2 1 0

Control = Base + 2

7 6 5 4 3 2 1 0Status = Base +1

Strobe

AckIRQ

Busy

IRQ enable

DO 1

Page 23: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 483

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

Page 24: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 484

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

Page 25: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 485

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 »

Page 26: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 486

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

Page 27: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 487

Linux

Programmes d’utilisateurs et applicationsProgrammes d’utilisateurs et applications

Gestion ProcessusGestion

ProcessusGestionMémoireGestionMémoire

Systèmesde FichiersSystèmesde Fichiers

Contrôle deDispositifs

Contrôle deDispositifs

RéseautageRéseautage

Codedépendantde l’archi-

tecture

Codedépendantde l’archi-

tecture

Gestion demémoire

Gestion demémoire

CPUCPU RAMRAM Disques& CD

Disques& CD

Console,Ports série

Cartes spéciales

Console,Ports série

Cartes spécialesInterfaces

RéseauInterfaces

Réseau

Dispositifsen modecaractère

Dispositifsen modecaractère

Types de SFTypes de SF Sous-systèmeréseau

Sous-systèmeréseau

PilotesIF

PilotesIF

Dispositifspar blocs

Dispositifspar blocs

Niveau ApplicationNiveau Noyau

ConcurrenceMultitâche

MémoireVirtuelle

Fichiers &Répertoires

TTYs &Accès auxDispositifs

Connectivité

Partiesdu Noyau

Capacitésimplémentées

SupportlogicielContrôle dumatériel

Page 28: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 488

Linux

/

usrdev

include lib

etc

gtk

bin boot home lib var

gnu kde

Page 29: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 489

Linux

Principales commandes du shellcd change directory, home si aucun paramètrels -l -al liste : répertoire

-l affiche aussi permissions-al affiche aussi fichiers invisibles

ps -aux -ealf processespwd répertoire courantcp copymv move : déplace ou renomme un fichierrm -r -i remove mkdir make directoryrmdir remove directorychmod u o g a ±r ±w ±x : chmod a+w toto.c

Page 30: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 490

LinuxPrincipales commandes du shellfind Trouve : find / -name Toto.cgrep Trouve à l’intérieur de fichiers

grep toto *.hclear Efface l’écrandate Affiche la datefile Propriétés d’un fichierkill -term -kill Arrêter un processuscat Afficher le contenu d’un fichier texteless ↑↓moreman Afficher la documentation d’une commandepasswd Changer mot de passetar -xf Décompresser un fichier .tarwho Liste des utilisateurs

Page 31: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 491

LinuxPrincipales commandes du shellpico Petit éditeurvi Éditeur par défautmail Pour envoyer un courriel.

Page 32: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 492

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.

Page 33: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 493

Appels système

Exemples d’appels système :3 sys_read int fd, char *buf, int count4 sys_write int fd, char *buf, int count5 sys_open char *name, int flag, int mode6 sys_close int fd12 sys_chdir char *path20 sys_getpid24 sys_getuid37 sys_kill int pid, int sig39 sys_mkdir char *name, int mode40 sys_rmdir char *name48 sys_signal int numero, void(*handler)(int)

Une liste complète est disponible sur le site du cours à la page Documentation.

Page 34: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 494

Appels systèmePeu 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é.

Page 35: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 495

Pilotes de périphériques

Classes de périphériquesDispositifs en mode caractèreDispositifs qui peuvent être traités comme des fichiers avec desappels système open, close, read et write. Exemples : la console, le port parallèle, etc.

Dispositifs en mode blocDispositifs 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.

Page 36: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 496

Pilotes de périphériques

Classes de périphériquesInterfaces réseauPeut ê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.

Page 37: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 497

Pilotes de périphériques

Mode utilisateurAvantagesOn 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.

Page 38: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 498

Pilotes de périphériques

Mode utilisateurInconvénientsN’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’actionsentre le client et le matérielSi jamais le pilote était paginé sur disque, le temps de réponsedeviendrait inacceptableLes dispositifs les plus importants ne peuvent pas être traités en mode utilisateur, en particulier les interfaces réseau et les dispositifs par blocs.

Page 39: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 499

Pilotes de périphériques

ModulesSous 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.

Page 40: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 500

Pilotes de périphériques

ModulesModule 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”);}

Page 41: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 501

Pilotes de périphériques

Modulesroot# gcc -c hello.croot# insmod hello.oroot# rmmod helloroot#

Page 42: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 502

Pilotes de périphériques

Différences entre un module et une applicationUn 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.

Page 43: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 503

TP3

Lien de communication entre deux ordinateur • Série• Synchrone• « Full duplex »• Lent, très lent

Page 44: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 504

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

Page 45: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 505

TP3

Deux moyen de visualiser le journal système•sudo tail –f /var/log/syslog

•sudo tail –n 100 /var/log/syslog

Page 46: IFT-17584 Semaine 09 Programmation systèmemarchand/ift17584/Acetates/09.pdfet on peut gérer jusqu’à 64 sources différentes en cascadant plusieurs 8259A. Il gère la priorité

@Pierre Marchand et Martin Dubois, 2002 506

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é.