10.07.2015 Views

Process et Système d'exploitation

Process et Système d'exploitation

Process et Système d'exploitation

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Electronique embarquée<strong>Process</strong>us <strong>et</strong> <strong>Système</strong>d’exploitationRichard Grisel – Professeur des Universités – Université deRouen<strong>Process</strong>us (tâches) <strong>et</strong> systèmed’exploitation Nécessité des processus. Le postul<strong>et</strong> processus. Le changement de contexte. Le multi-tâches.1


Pourquoi des processus multiples ? Les processus perm<strong>et</strong>tent de gérer lacomplexité: Les vitesses sont différentes multimedia Automobile Etc… Les entrées sont asynchrones Interfaces utilisateurs <strong>Système</strong>s de communicationExemple: Contrôle d’un moteur Tâches: Contrôle de l’allumage Position du vilebrequin Mélange (fuel/air) Capteur d’oxygène Filtrage de KalmanContrôleur2


La vie sans les processus Le code devient lourd àgérer: Interruptions d’une tim<strong>et</strong>âche pour une autre Code “spagh<strong>et</strong>ti”ABCACA_code();…B_code();…if (C) C_code();…A_code();…switch (x) {case C: C();case D: D();...Co-routinesCo-routine ADR r14,co2a 1 Co-routine 2co1a …ADR r13,co1bMOV r15,r14co1b …ADR r13,co1cMOV r15,r14co1c ...co2a …ADR r13,co2bMOV r15,r13co2b …ADR r13,co2cMOV r15,r13co2c …La période d’exécution estinconnue. On peut manquer d<strong>et</strong>emps pour le traitement desdonnées critiques3


Méthodologie des “Co-routine” Comme les sous-programmes, mais c’estl’appelant qui détermine l’adresse de r<strong>et</strong>our. Les Co-routines passent volontairement lecontrôle à d’autres co-routines . Les séquences de contrôle de transfert sontnoyées dans le code.<strong>Process</strong>us Un processus est une exécution unique d’unprogramme. Plusieurs copies d’un programme peuvents’exécuter simultanément ou à des momentsdifférents. Un processus a son propre contexte : Registres; mémoire. Le système d’exploitation gère les processus.4


<strong>Process</strong>us <strong>et</strong> CPUs Activation: copie del’état du processus. Changement decontexte : Le contexte courant duCPU sort; Le nouveau contextedu CPU rentre.process 1process 2...PCregsitresCPUmémoireLexique “Thread” = processus “light”: un processusqui partage de l’espace mémoire avecd’autres processus. Réentrance: possibilité pour un programmed’être exécuté plusieurs fois avec le mêmerésultat.5


Changement de contexte Qui contrôle quand le contexte change ? Comment s’effectue ce changement?Le multi-tâches co-opératif Amélioration des co-routines: Cache le mécanisme de changement decontexte; Reste lié sur les procesus qui lib-rent le CPU. Chaque processus perm<strong>et</strong> un changement decontexte sur un appel (cswitch() parexemple). Un ordonnanceur séparé choisit quelprocessus va fonctionner ensuite.6


Problemes avec le multi-tâches coopératif Les erreurs de programmation peuventempêcher des processus de fonctionner : Un processus ne rend pas la main au CPU; Un processus attend trop longtemps pourbasculer <strong>et</strong> on manque une entrée cruciale.Changement de contexte On doit copier tous les registres dans unenregistrement actif, en gardant la bonnevaleur de r<strong>et</strong>our pour le PC. On doit recopier le nouvel enregistrementdans l’état du CPU. Comment le programme qui recopie lecontexte conserve-t-il son propre contexte?7


Exemple sur processeur ARM Sauvegarde duprocessus: Démarrage dunouveau:STMIA r13,{r0-r14}^MRS r0,SPSRSTMDB r13,{r0,r15}ADR r0,NEXTPROCLDR r13,[r0]LDMDB r13,{r0,r14}MSR SPSR,r0LDMIA r13,{r0-r14}^MOVS pc,r14Multi-tâches préemptif La plus performante des formes de multi-tâches : L’OS contrôle quand le contexte change; L’OS détermine quel processus va fonctionner ensuite. Un temporisateur est utilisé pour appeler l’OS, qui faitle changement de contexte (algorithme).interruptionCPUtimer8


Flot de contrôle sans préemptioninterruptioninterruptionP1 OS P1 OS P2tempsChangement de contexte préemptif Le temporisateur donne contrôle à l’OS, quisauvegarde l’état du processus interrompudans un enregistrement. L’OS choisit le prochain processus àexécuter. L’OS installe l’enregistrement sélectionnécomme étant l’état actif du CPU.9


Pourquoi pas d’interruption? On peut changer le vecteur d’interruption àchaque période mais : Nécessite du code pour la gestion de toutefaçon; Il faudrait connaître la période du prochainprocessus au démarrage du processuscourant.10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!