Miramond Benoît - UCP. II) Le processus dans la machine



Documents pareils
Cours A7 : Temps Réel

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Partie 7 : Gestion de la mémoire

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Chapitre 4 : Outils de communication centralisés entre processus

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Exécutif temps réel Pierre-Yves Duval (cppm)

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 aux Systèmes et aux Réseaux

IV- Comment fonctionne un ordinateur?

Cours Programmation Système

Cours de Systèmes d Exploitation

Programmation C. Apprendre à développer des programmes simples dans le langage C

1 Mesure de la performance d un système temps réel : la gigue

Architecture des ordinateurs

Support de cours système d exploitation

Ordonnancement temps réel

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Rappels d architecture

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Qu'est-ce qu'un processus: Définitions

TD Architecture des ordinateurs. Jean-Luc Dekeyser

CH.3 SYSTÈMES D'EXPLOITATION

GPA770 Microélectronique appliquée Exercices série A

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Concept de machine virtuelle

Systèmes d exploitation Gestion de processus

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Architecture des ordinateurs

Systèmes et traitement parallèles

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Conception de circuits numériques et architecture des ordinateurs

Thème 3 Conception et vérification d architectures de systèmes sur puce

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

IFT1215 Introduction aux systèmes informatiques

Systèmes d exploitation

Introduction aux systèmes temps réel. Iulian Ober IRIT

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Métriques de performance pour les algorithmes et programmes parallèles

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)

Analyse du temps de réponse des systèmes temps réel

Sélection du contrôleur

Linux embarqué: une alternative à Windows CE?

Logiciel de base. Première année ENSIMAG

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

gestion des processus La gestion des processus

Traduction des Langages : Le Compilateur Micro Java

Temps Réel. Jérôme Pouiller Septembre 2011

Compilation (INF 564)

Structure d un programme

Atelier : Virtualisation avec Xen

UE Programmation Impérative Licence 2ème Année

Ordinateurs, Structure et Applications

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Leçon 1 : Les principaux composants d un ordinateur

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

LEs processus coopèrent souvent pour traiter un même problème. Ces

Modélisation des interfaces matériel/logiciel

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

ELP 304 : Électronique Numérique. Cours 1 Introduction

Les processus légers : threads. Système L3, /31

Éléments d'architecture des ordinateurs

1. Présentation du TP

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

Traitement de données

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Introduction aux Machines Virtuelles avec VMKit

Initiation au HPC - Généralités

QUESTION 1 {2 points}

PIC EVAL Dev Board PIC18F97J60

CM2 L architecture MIPS32

Un ordonnanceur stupide

Manuel de l utilitaire Computer Setup (F10) HP Compaq Business Desktops Modèles d220 et d230

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Système et réseaux (SR1) Gestion des utilisateurs

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Les avantages de la virtualisation sont multiples. On peut citer:

Ordonnancement temps réel

Chapitre 4 : Les mémoires

Programmation Système : KeyStroker

Mes documents Sauvegardés

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Tests de performance du matériel

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Transcription:

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