II) Le processus dans la machine 1
Plan de la partie VII 1. Rappel modèle d exécution d un processeur 2. Les fonctions d un OS embarqué 3. Au démarrage était le bootstrap 4. Comment faire du multi-tâches? 5. Les états d un processus 6. PCB 7. Opérations sur les processus 8. Exemple : les processus Unix 2
iveau 5 Couche des langages d application Traduction (compilateur) iveau 4 Couche du langage d assemblage iveau 3 iveau 2 iveau 1 iveau 0 Couche du système d exploitation Couche architecture du jeu d instruction (ISA) Interprétation (microprogramme ou exécution directe (cablé) Couche microarchitecture Couche logique numérique Miramond Benoît - UCP Traduction (assembleur) Interprétation partielle (OS) Matériel 3
Systèmes préemptifs Au lieu d une boucle continue, un système est décrit par une collection de threads de contrôle indépendants les tâches. Le système d exploitation exécute les processus selon une politique d ordonnancement et peu alterner entre leur exécution pour satisfaire les échéances. Contrairement à l exécutif cyclique ou les fonctions et leur ordre d exécution est imposé dans la boucle principale, l OS détermine quelle fonction s exécute à quel instant. 4
1. Les fonctions de l OS dans l embarqué La gestion de la mémoire L abstraction des instructions d entrée/sortie (fichiers) Le traitement parallèle C est un interpréteur entre les programmes exécutables et le matériel (proc. + système) 5
1. Les fonctions de l OS dans l embarqué La gestion de la mémoire L abstraction des instructions d entrée/sortie (fichiers) Le traitement parallèle C est un interpréteur entre les programmes exécutables et le matériel (proc. + système) Les SE simples n ont pas besoin d OS, ils exécutent un seul programme cyclique (montres digitales, fours micro-ondes, calculatrices) 6 Miramond Benoît - UCP
Le traitement parallèle Relativité d Einstein : Limite de vitesse des signaux électriques 0,3m par nanoseconde (dans le vide) 2*1ns pour aller charger une donnée située en mémoire à 30 cm de l UC Or travail en dessous de la ns Soit multiprocesseur Soit simuler le calcul parallèle 7
Le traitement parallèle Monoprocesseur séquentiel P1 Multiprocesseurs Monoprocesseur parallèle P3 P2 P1 8
2. Au démarrage était le bootstrap 9
Au démarrage Le programme exécutable (mon programme C) est stocké sur le disque. Comment se retrouve-t-il en cours d exécution? Quelles sont les éléments en jeu au démarrage? 10
Les éléments en jeu Les programmes à exécuter Le système d exploitation Le programme de lancement (le bootstrap) L exécuteur Ou se trouvent-ils dans l ordinateur au démarrage? 11
Les éléments en jeu Les programmes à exécuter Le système d exploitation Le programme de lancement (le bootstrap) L exécuteur Sur le disque Sur le disque Sur une mémoire ROM Processeur (carte mère/ embarquée) 12
Une carte mère 13
Une carte embarquée (Stratix/Altera) 14
Carte Stratix 15
Le bootstrap Il connaît l adresse du système d exploitation sur le disque/dans la ROM A la mise sous tension, automatiquement le boostrap Charge en mémoire centrale le noyau du système d exploitation et lance son exécution (en plaçant le registre PC) 16
Le BIOS Le Basic Input/Output System réalise les tâche suivantes: Un test de fonctionnement des composants matériels (POST = power-on self-test) Activation des Bios des autres cartes (SCSI et cartes graphiques) Réglage des paramètres du système (adresses, horloges ) Lance le boostrap 17
Résumé de la séquence de démarrage Mise sous tension Tests matériels Lancement du boostrap Initialisation du système d exploitation Lancement des programmes Ligne de commande GUI Exécution automatique (embarqué) Chargement des programmes auprès du processeur 18
Bootstrap Power/Reset Exécuter le Vecteur Reset Processeur Reset vector est à 0x00000 Fetch/Execute OxOOOOO OxOOO1F Memory Map ROM Exécuter le chargeur Initialise le matériel OxOOO40 OxOO103 FLASH Image dans ROM Yes Copier l image depuis la ROM vers la RAM Exécute l image No Download l image depuis PC vers RAM Miramond Benoît - UCP Ox10000 Ox103FF RAM 19
20
3. Comment faire du multi-tâches 21
Exemple de chargement Le chargeur place l adresse de début de programme : PC <= 0x0A10 L instruction Load adr R1 est chargée dans le registre instruction Adresse Contenu 0x0A10 Load adr R1 0x0A14 AddI R1 5 RI <= Load adr R1 Le PC est incrémenté et pointe sur la prochaine instruction 0x0A18 Store adr R1 22
Comment faire du multi-tâches? Supposons qu un nouveau programme demande à s exécuter Et ensuite?? Adresse 0x0A10 Contenu Load adr R1 0x0A14 AddI R1 5 0x0A18 Store adr R1 23
Comment faire du multi-tâches? Supposons qu un nouveau programme demande de s exécuter Une politique d ordonnancement décide d interrompre le programme courant Et d exécuter le nouveau A l issue de son exécution l ancien programme continue son exécution là ou il s était arrêté! Comment faire? Adresse Contenu 0x0A10 Load adr R1 0x0A14 AddI R1 5 0x0A18 Store adr R1 24
Sauvegarder le contexte! Que modifie un programme lorsqu il s exécute? 25
Sauvegarder le contexte Que modifie un programme lorsqu il s exécute? Les registres internes au processeurs (registre d état, de données, d instruction, d adresses) La pile d exécution du programme Les variables Comment appelle-t-on l ensemble de ces informations? 26
Notion de processus On appelle processus l image de l état du processeur et de la mémoire au cours de l exécution d un programme. Le programme est statique et le processus représente la dynamique de son exécution 27
Plus précisément Un processus est un programme en cours d exécution auquel est associé un environnement processeur (PC, registre d état ) et un environnement mémoire (zone de code, de donnée et de pile) appelés contexte du processus Un processus est l instance dynamique d un programme et incarne le fil d exécution de celui-ci dans un espace d adressage protégé Si n processus sont en cours d exécution, chaque processus évolue à son rythme et les ressources sont partagées 28
Structure de code d un processus Run-to-completion_Task (){// (Processus d initialisation) Initialisation de l application Création de processus «endless-loop» Création des objets Kernel Auto-suppression } Endless-loop () { Boucle infinie { Corps de boucle Appels bloquants } } 29
Plan de la partie I 1. Les fonctions de l OS dans l embarqué 2. Au démarrage était le bootstrap 3. Comment faire du multi-tâches? 1. Les états d un processus 2. PCB 3. Opérations sur les processus 4. Exemple : les processus Unix 30
4. Les états d un processus 31
Les états Elu : l état d exécution du processus Bloqué : en attente d une ressource, d une donnée Prêt : le processus est prêt, il attend qu on lui donne le droit de s exécuter sur le processeur 32
Diagramme d état d un processus Création Préemption Elu Destruction Election Prêt Blocage Déblocage Bloqué 33
Ou est sauvegardé le contexte? En mémoire Dans une structure de donnée dépendant de l OS utilisé Cette structure s appelle le PCB 34
5. PCB 35
PCB = Process Control Block Le PCB permet la sauvegarde et la restauration du contexte mémoire et du contexte processeur lors des opérations de commutation de contexte Que contient cette structure? 36
Bloc de contrôle d un processus Identificateur processus Etat courant du processus Contexte processeur Contexte mémoire Ressources utilisées Ordonnancement Informations de comptabilisation Miramond Benoît - UCP 37
Plus précisément L identificateur du processus tel qu il lui a été affécté à sa création (un entier) L un des 3 états du processus La valeur des registres du processeur (PC, RI, SR ) Les adresses de début et de fin de la pile d exécution Les fichiers ouverts, les outils de synchronisation utilisés La priorité du processus, sa file d attente Le temps CPU utilisé, la taille de sa pile, 38
Résumé sur le processus PCB Stack Routine Tâche : Nom/ID int MyTask(){ while(1){ printf(); } } Priorité 39
Changement de contexte / Context Switches Lorsque l ordonnanceur décide d exécuter une nouvelle tâche, il réalise un changement de contexte : Sauvegarde du contexte de la tâche courante en Pile (Registres) Restitution du contexte de la nouvelle tâche depuis son TCB et sa Pile. Ce changement a un coût dans un RTOS qui dépend directement du nombre de registres à sauvegarder. 40
Surcoût d un RTOS Parce que le noyau d un RTOS propose les services d exécution multi-tâches, il nécessite un certain temps d exécution en plus du temps de l application. Ce temps dépend directement de la fréquence d appel aux services du noyau. En embarqué TR, le noyau prend entre 2% et 5% de temps CPU supplémentaire. Il nécessite évidemment également une certaine occupation mémoire (ROM + RAM). 41
6. Les opérations sur un processus 42
Création Opérations Destruction Suspension - Lancement système - par d autres -Autodestruction (exit) - erreur => trappe (division par 0) - Autosuspension (sleep) - Préemption processus (fork)- par un autre processus- Interruption (kill) En attente de la ressource processeur Allocation d un contexte mémoire Ressources libérées Contexte démantelé PCB détruit Miramond Benoît - UCP Sauvegarde PCB 43
La création de processus en Unix Création de processus par fork(): Processus père Processus fils Les deux processus sont identiques Appel à la commande exec() par le fils Remplacement de son programme et de ses données par l exécutable en paramètre 44
Plan de la partie I 1. Les fonctions d un OS embarqué 2. Au démarrage était le bootstrap 3. Comment faire du multi-tâches? 4. Les états d un processus 5. PCB 6. Opérations sur les processus 1. Exemple : les processus Unix 45
Les processus Unix Processus 0 Processus 1 init Processus démons Processus getty Processus login Processus getty Processus shell Processus myprog.exe Miramond Benoît - UCP Processus ls -l 46
Modes d exécutions Un programme peut s exécuter en mode utilisateur ou superviseur L information relative au mode d exécution du jeu d instruction des programmes est mémorisée dans le registre d état du processeur Exemple : Motorola 68000 le registre d état est un registre 16 bits dans lequel le bit 13 permet le codage du mode d exécution 47
Modes d exécution Actif utilisateur ode Utilisateur Nouveau Prêt Actif noyau Zombi ode noyau n mémoire Endormi ode noyau wappé Prêt Swappé Miramond Benoît - UCP Endormi Swappé 48
Ordonnancement 49
Rôle de l ordonnancement Arbitrer l utilisation du processeur par les processus De manière à respecter les contraintes temporelles des processus Ordonnancement préemptif/non préemptif 50
Préemption sur un processus Création Préemption Elu Destruction Election Prêt Blocage Déblocage Bloqué 51
Différence entre les deux familles Avec un ordonnancement non préemptif, un processus quitte le processeur s il a terminé son exécution ou s il se bloque Avec un ordonnancement préemptif, un processus quitte le processeur s il a terminé son exécution, s il se bloque ou s il est réquisitionné par un processus plus prioritaire. 52
Entités systèmes responsables de l ordonnancement 2 files d attente : Les processus prêts Les processus boqués Un module Ordonnanceur qui trie la file des processus prêts de manière à placer le plus prioritaire en tête de file. La priorité dépend de la politique d ordonnancement choisie. Un module dispacher qui alloue le processus prêt parmi les processeurs libres (multiprocesseurs) 53
Ordonnanceur et répartiteur Préemption CPU0 Classement selon une politique d ordonnancement CPU1 Répartiteur PCB PCB PCB PCB PCB PCB Ordonnanceur Prêts CPU2 Election PCB PCB PCB PCB PCB PCB bloqué 54
Politiques d ordonnancement (cf. Cours Andry) Premier arrivé, premier servi (FIFO) Plus court d abord Par priorité fixe (RTOS) Rate monotonic Par priorité dynamique EDF LLF Par tourniquet (round robin) 55
Critères Taux d occupation du processeur = Temps d occupation par les processus / temps total Capacité de traitement du processeur = Nombre de processus sur un intervalle de temps Temps de réponse des processus = Temps écoulé entre la création du processus et sa fin d exécution 56
Objectifs de l Ordonnanceur Pour : Système de traitement par lots Maximiser le débit Système en temps partagé Maximiser le taux d occupation Minimiser le temps de réponse Système temps réel Respecter les échéances 57
Plan général I) Entrevue avec l embarqué II) Le processus dans la machine III) Cas d étude : uc/os-ii et la carte Altera pour l embarqué 58
Les questions à se poser 59
Les questions à se poser Que font les programmes suivants? Le chargeur Le système d exploitation Le bootstrap Le Bios Le programme applicatif Quel est leur ordre de lancement? 60
V) Cas d étude 61
Parcours architecture Architectures multimédia M2 Circuits reconfigurables Conception des SoC Architecture avancée Informatique embarquée Le contrôle du processeur M1-S2 M1-S1 L3 Les classes d architecture Les DSP Architectures embarquée Couche OS RTOS Couche ISA Couche assemblage L exécution des programmes L2 Couche physique Couche micro-architecture 62
63