17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 1 NOYAU TEMPS RÉEL Quelques Informations DIAPORAMA EN LIGNE => www.ecole.ensicaen.fr/~viennewww.ecole.ensicaen.fr/~vienne.

Slides:



Advertisements
Présentations similaires
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
Advertisements

Chapitre annexe. Récursivité
Les procédures et interruptions en Assembleur (Tasm)
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Objectif de l’exposé.
La pile un élément essentiel
C.
Le Concept du programme enregistré
Liste générique dans Linux 2.6 Source : Understanding the Linux kernel Chap3 processes p.87.
Paramètres et pointeurs
LE DEPANNAGE Le dépannage électrique
Représentation: Couche 7: Application Couche 6: Présentation Couche 5: Session Couche 4: Transport Couche 3: Réseau Couche 2: Liaison de données Couche.
Section VII Programmation modulaire Algorithmes et résolution de problèmes FGE.
Découvrir à lécole primaire la diversité des langues et des cultures DUDIV UNIVERSITE DU MAINE Coordination : Michel Candelier Fonctionnement pédagogique.
Points importants de la semaine Les pointeurs. Les chaînes de caractères.
PHOTOFILTRE (Prise en main) Cliquez pour continuer
Technologie Voix sur IP - Avril 2004 Présentation : Serge LAWSON.
F233 Conduite et Gestion de Projet TP PERT et GANTT
Contrôle daccès et qualité de service dans les réseaux basés sur ATM Olivier Paul.
En fin de troisième, tu dois être capable :
Processworks / 3DQuikForm Présentation Denis AUGUSTE Lycée de Lorgues.
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
LOGOS_w Imagerie La palette des icônes. Le groupe dicônes situé au dessus des images du patient permet dintervenir sur limage affichée et active.
Système d’exploitation : Assembleur
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Aide-mémoire – FORMULAIRE Web DA/DT
CYCLE 3 : Alternatives Faire des choix dans un programme en C 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else.
Récursivité.
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 La Concurrence Déclarative Peter Van Roy Département dIngénierie Informatique, UCL
Les piles Djamal Rebaïne.
La récursivité Une procédure est dite récursive si, et seulement si, elle fait appel à elle-même, soit directement soit indirectement Djamal Rebaïne Djamal.
Système d’exploitation : Assembleur
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
INTRODUCTION AU Février 2008
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Chapitre 4.
Système d’exploitation : Assembleur
Le Système Processeur David Saint-Mellion.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
LES SYSTEMES AUTOMATISES
Un langage de programmation hybride
Architecture et technologie des ordinateurs II
Module 2 : Préparation de l'analyse des performances du serveur
Les pointeurs en C. valeur : main () { float valeur; void* pointeur; }
CSI2520 Le langage Scheme (2) Un langage de programmation fonctionnelle.
ROLE DES DIFFERENTS ELEMENTS INSTRUCTIONS COMPLEMENTAIRES Nous allons maintenant nous intéresser aux instructions de programmation complémentaires. Pour.
Méthode et Outils pour la Programmation
Mécanismes d'exécution et de communication
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Les adresses des fonctions
Architecture Chapitre 4 Interruptions. 2 Plan Principe Schéma d’acquisition Les états d’une interruption Décentralisation des interruptions Exemples.
Les interruptions – Ph. Hoppenot Les interruptions I.Notion d'interruption II.Exemple du 8051 III.Exemple du
Tutorat en bio-informatique
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Chapitre 4 Interruptions
ISBN Chapitre 10 L'implémentation des sous- programmes.
Travaux réalisés en ODP3 : 1-1 Les métiers et le contexte professionnel Programme éco/droit 2 BP.
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
Cours Système LI324 Les Interruptions Cours Système LI324
Scripts et fonctions Instructions de contrôle
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Mon comportement Septembre - Octobre Semaine 1 Semaine 2 Semaine 3
Transcription de la présentation:

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 1 NOYAU TEMPS RÉEL Quelques Informations DIAPORAMA EN LIGNE =>

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 2 LA FONCTION InitNoyau() AU RETOUR DE LA FONCTION, LES TABLEAUX pNumTache, TabPrio et la TCB DE LA TÂCHE main EXISTENT pNumTache => TabPrio => TCB (main) => 0000 SuivTcb DS:4332 PrecTcb Nid Prio Etat Encours Status StCoursPret EvtSig EvtAtt Pet PtrPile BasePile NB : LES VALEURS NUMÉRIQUES ONT ÉTÉ RELEVÉES AVEC TURBO DEBUGER DE PLUS, L'INTERRUPTION TIMER (TYPE 1CH) EST DÉTOURNÉE. DÉSORMAIS, C'EST LA FONCTION GestInt() QUI CORRESPOND AU PROGRAMME D'INTERRUPTION. CETTE FONCTION EST DONC NORMALEMENT EXÉCUTÉE TOUTES LES 55 ms (IT MATÉRIELLE). ELLE PEUT AUSSI ÊTRE EXÉCUTÉE PAR UNE INTERRUPTION LOGICIELLE (geninterrupt(0x1C);). À NOTER QUE LA TCB DE LA TÂCHE main N'A PAS BESOIN D'ÊTRE INITIALISÉE À 100%. C'EST AINSI QU'IL EST INUTILE, ENTRE AUTRES, D'INITIALISER LES DEUX DERNIERS ÉLÉMENTS PUISQUE LA PILE DE LA TÂCHE main EST LA PILE SYSTÈME.

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 3 À PROPOS DE L'INTERRUPTION DE TYPE 0x1C DANS UN PC L'INTERRUPTION LA PLUS PRIORITAIRE EST GÉNÉRÉE PAR UN TIMER. C'EST AINSI QU'UNE INTERRUPTION MATÉRIELLE EST GÉNÉRÉE TOUTES LES 55 MS. LE PROGRAMME D'INTERRUPTION COMPORTE ENTRE AUTRES LES ÉLÉMENTS SUIVANTS : Sauvegarde du contexte - int 1CH - Envoi d'un EOI Restitution du contexte iret TOUTES LES 55 MS L'INTERRUPTION DE TYPE 0x1C SE LIMITE À LA SEULE INSTRUCTION iret. iret InitNoyau() DÉTOURNE CETTE INTERRUPTION : L'ADRESSE DE DÉPART DU PROGRAMME D'INTERRUPTION EST MODIFIÉE ET CORRESPOND DÉSORMAIS À L'ADRESSE DE LA FONCTION GestInt() (ORDONNANCEUR). Sauvegarde du contexte - Restitution du contexte iret FONCTION GestInt() ORDONNANCEUR

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 4 LA FONCTION CreateTask(IdTache, Priorite, Tache) CETTE FONCTION VA CRÉER LA TCB DE LA TÂCHE Tache. PAR EXEMPLE, SI ON ÉCRIT : InitNoyau(); CreateTask(1,3,Tache_1); ON DISPOSE À LA SORTIE DE LA FONCTION CreateTask () DES INFORMATIONS SUIVANTES : pNumTache => TabPrio => D 445A 64F1 TCB (Tache_1) => F1 SuivTcb << DS:4352 PrecTcb Nid Prio Etat Dormante Status StDormante EvtSig EvtAtt Pet PtrPile BasePile F D 5CDD F204 xxxx Non Utilisé << 64F1:4472 Flags CS Offset Tache_1 AX BX CX DX ES DS SI DI 0000 DI BP << 64F1:445A << <<< 64F1: – 12 MOTS DISPONIBLES D'autre part, une pile de 256 mots a été créée. Elle correspond aux 256 mots à partir de l'adresse 64F1:4372. À noter que dans le modèle small les registres DS, ES et SS ont la même valeur (ici 64F1). Le registre CS a une valeur différente (ici 5CDD). Actuellement, le haut de cette pile correspond à l'adresse 64F1:445A. Cela ne fait pas 256 mots. En effet 12 mots ont déjà été mis par la fonction CreateTask(). LA TCB EXISTE (SON ADRESSE APPARAÎT DANS LE TABLEAU pNumTache). MAIS ELLE N'EST PAS CHAÎNÉE ET ELLE EST IGNORÉE DANS LE TABLEAU TabPrio. LA TÂCHE EST DORMANTE. NB : LES VALEURS NUMÉRIQUES ONT ÉTÉ RELEVÉES AVEC TURBO DEBUGER

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 5 LA FONCTION StartTask(IdTache) CETTE FONCTION : -1- COMPLÈTE LA TCB CRÉÉE PAR CreateTask(): - Mise en place des deux premiers éléments SuivTcb et PrecTcb. - L'état de la tâche passe de l'état Dormante (8) à l'état Prete (2). -2- MET À JOUR LE TABLEAU TabPrio. -3- PROVOQUE UN RÉORDONNANCEMENT. InitNoyau(); CreateTask(1,3,Tache_1); StartTask(1); INTÉRESSONS NOUS À LA SÉQUENCE :

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 6 LA FONCTION StartTask(IdTache) (SUITE) InitNoyau(); CreateTask(1,3,Tache_1); StartTask(1); pNumTache => TabPrio => D 445A 64F1 TCB (Tache_1) => F1 SuivTcb << DS:4352 PrecTcb Nid Prio Etat Prete Status StCoursPrete EvtSig EvtAtt Pet PtrPile BasePile F D 5CDD F204 xxxx Non Utilisé << 64F1:4472 Flags CS Offset Tache_1 AX BX CX DX ES DS SI DI 0000 DI BP << 64F1:445A << <<< 64F1:4372 APPEL DE L'ORDONNANCEUR => geninterrupt(0x1C);

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 7 APPEL DE L'ORDONNANCEUR PAR geninterrupt(0x1c) xxxx 64F1 xxxx 5CDD xxxx Flags CS retour IP Retour AX BX CX DX ES DS SI DI BP IL S'AGIT D'UNE INTERRUPTION LOGICIELLE. LE μP SAUVE DANS LA PILE LE REGISTRE DES FLAGS ET L'ADRESSE DE RETOUR (CS ET IP). ACTUELLE LA PILE ACTUELLE MONTE ON ARRIVE DANS LE PROGRAMME D'INTERRUPTION OU LE COMPILATEUR A PLACÉ LA SUITE D'INSTRUCTIONS : PUSH AX, PUSH BX, PUSH CX, PUSH DX, PUSH ES, PUSH DS, PUSH SI, PUSH DI, PUSH BP. L'ORDONNANCEUR BALAIE LE TABLEAU TabPrio EN PARTANT DU BAS (PRIORITÉ MAXIMUM) TabPrio => IL CONSTATE QU'IL EXISTE UNE TÂCHE DE PRIORITÉ SUPÉRIEURE À LA TÂCHE EN COURS. LA TCB DE CETTE TÂCHE EST À L'ADRESSE LE SP ACTUEL POINTE ICI

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 8 APPEL DE L'ORDONNANCEUR PAR geninterrupt(0x1c) (SUITE) xxxx 64F1 xxxx 5CDD xxxx Flags CS retour IP Retour AX BX CX DX ES DS SI DI BP D 445A 64F1 TCB (Tache_1) => F1 SuivTcb PrecTcb Nid Prio Etat Prete Status StCoursPrete EvtSig EvtAtt Pet PtrPile BasePile C'EST AINSI QUE L'ORDONNANCEUR ACCÈDE À LA TCB DE LA TÂCHE 1. IL CONSTATE QUE CETTE TÂCHE EST PRÊTE. IL FAUT DONC PROCÉDER À UNE COMMUTATION DE TÂCHE. POUR CELA, IL COMMENCE PAR SAUVEGARDER LA VALEUR DU SP ACTUEL DANS L'ÉLÉMENT PtrPile DE LA TCB DE LA TÂCHE EN COURS. LA TÂCHE EN COURS PASSE À L'ÉTAT PRÊTE (MODIFICATIONS DE Etat DE LA TCB DE CETTE TÂCHE). PILE ACTUELLE ENSUITE IL MODIFIE L' ÉLÉMENT État DE LA TCB DE LA TÂCHE 1 : CETTE TÂCHE PASSE À L'ÉTAT EnCours. ENFIN, IL MODIFIE LE POINTEUR DE PILE (SP) ET LUI DONNE LA VALEUR 445A Etat EnCours SP 0000 TCB (main) => 0000 SuivTcb PrecTcb Nid Prio Etat EnCours Status StCoursPrete EvtSig EvtAtt Pet PtrPile BasePile 0002 Etat Prete 0000

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 9 APPEL DE L'ORDONNANCEUR PAR geninterrupt(0x1c) (SUITE) xxxx 64F1 xxxx 5CDD xxxx Flags CS retour IP Retour AX BX CX DX ES DS SI DI BP D 445A 64F1 TCB (Tache_1) => F1 SuivTcb << DS:4352 PrecTcb Nid Prio Status StCoursPrete EvtSig EvtAtt Pet PtrPile BasePile F D 5CDD F204 xxxx Non Utilisé << 64F1:4472 Flags CS Offset Tache_1 AX BX CX DX ES DS SI DI 0000 DI BP << 64F1:445A << <<< 64F1:4372 C'EST AINSI QUE L'ORDONNANCEUR ACCÈDE À LA TCB DE LA TÂCHE 1. IL CONSTATE QUE CETTE TÂCHE EST PRÊTE. IL FAUT DONC PROCÉDER À UNE COMMUTATION DE TÂCHE. POUR CELA, IL COMMENCE PAR SAUVEGARDER LA VALEUR DU SP ACTUEL DANS L'ÉLÉMENT PtrPile DE LA TCB DE LA TÂCHE EN COURS. LA TÂCHE EN COURS PASSE À L'ÉTAT SUSPENDUE (MODIFICATIONS DE Etat DE LA TCB DE CETTE TÂCHE. ON ARRIVE MAINTENANT À LA FIN DU PROGRAMME D'INTERRUPTION OU LE COMPILATEUR A PLACÉ LA SUITE D'INSTRUCTIONS : POP BP, POP DI, POP SI, POP DS, POP ES, POP DX, POP CX, POP BX, POP AX, IRET. ET VOICI LA PILE UTILISÉE POUR TOUTES CES INSTRUCTIONS PILE ACTUELLE ENSUITE IL MODIFIE L' ÉLÉMENT État DE LA TCB DE LA TÂCHE 1 : CETTE TÂCHE PASSE À L'ÉTAT EnCours. ENFIN, IL MODIFIE LE POINTEUR DE PILE (SP) ET LUI DONNE LA VALEUR 445A Etat EnCours

17 Septembre 2007JF VIENNENOYAU TEMPS RÉEL SLIDE 10 NOYAU TEMPS RÉEL Quelques Informations FIN