Modèle d exécution Exemple : le Motorola 68000



Documents pareils
Cours Programmation Système

Cours 6 : Tubes anonymes et nommés

Cours A7 : Temps Réel

Introduction aux Systèmes et aux Réseaux

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

Les processus. Système L3, /39

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

Gestion des processus

Chapitre 4 : Outils de communication centralisés entre processus

Le prototype de la fonction main()

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

3IS - Système d'exploitation linux - Programmation système

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

Programmation Système (en C sous linux) Rémy Malgouyres LIMOS UMR 6158, IUT département info Université Clermont 1, B.P.

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

I00 Éléments d architecture

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

Le système de gestion des fichiers, les entrées/sorties.

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

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

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

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

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

gestion des processus La gestion des processus

Cours de Systèmes d Exploitation

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

Programmation système

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

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

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Chapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus

Partie 7 : Gestion de la mémoire

Systèmes d exploitation Gestion de processus

Programmation système en C/C++


Support de cours système d exploitation

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

Les processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Un ordonnanceur stupide

Unix : Programmation Système

Playing with ptrace() for fun and profit

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

ENSP Strasbourg (Edition ) Les Systèmes Temps Réels - Ch. DOIGNON. Chapitre 3. Mise en œuvre : signaux, gestion du temps et multi-activités

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Outils pour la pratique

Ordinateurs, Structure et Applications

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

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

Architecture des ordinateurs

Initiation au HPC - Généralités

Ordonnancement temps réel

Programmation système de commandes en C

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Synchro et Threads Java TM

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Ordonnancement temps réel

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Architecture d un système d exploitation

TD2/TME2 : Ordonnanceur et Threads (POSIX et fair)

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

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

IV- Comment fonctionne un ordinateur?

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Problèmes liés à la concurrence

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

TP2 : tableaux dynamiques et listes chaînées

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

Le traitement du temps

Licence Sciences et Technologies Examen janvier 2010

Initiation. àl algorithmique et à la programmation. en C

Les structures de données. Rajae El Ouazzani

Derrière toi Une machine virtuelle!

Systèmes et exécutifs temps-réel

SRS DAY: Problématique liée à la virtualisation

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Langages et Concepts de Programmation Introduction à la programmation en langage C

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Gestion de la mémoire

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Threads. Threads. USTL routier 1

DUT Informatique Module Système S4 C Département Informatique 2009 / Travaux Pratiques n o 5 : Sockets Stream

Concept de machine virtuelle

Communication Interprocessus

Cours de Système : Gestion de Fichiers

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

Compression de Données - Algorithme de Huffman Document de Conception

Testez votre installation. Créer un répertoire vide

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Applications client/serveur TCP/IP - Sockets Rappels. C.Crochepeyre Applications CS 1

Performances de la programmation multi-thread

Introduction à la Programmation Parallèle: MPI

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Transcription:

Mémoire et Processeur Mécanismes d exécution Du séquentiel au parallèle Modèle d exécution Exemple : le Motorola 68000 Registres de donnée Registres d adresse Registre d état Registre d état Compteur ordinal + Indicateurs = Mot d état du processeur L ensemble des valeurs des registres pour un processus donné est appelé le contexte du processus. 1

Appel et retour de procédure Réalisation avec une pile Réalisation avec une pile Fonctionnement en co-routines 2

Activités synchrones Activités synchrones Commutation de contexte Principe Sauvegarde du mot d état du programme et des registres Chargement d un mot d état et de registres à partir d un emplacement spécifié 2 méthodes pour la sauvegarde Emplacements fixes Pile Interruptions En général plusieurs niveaux (priorités) Masquables (armement, désarmement) Schéma d un programme d interruption : 3

Déroutements et appels au superviseur Déroutements et appels au superviseur Nouveaux MEP Le Multitâches Exemples : jeux vidéos Système Processeur. 1 A multiprocesseurs Processeur. 2 Processeur. 3 C B t Système Monoprocesseur, monotâche Processeur A B C t Système Monoprocesseur, multi-tâches Processeur A B C q q q t 4

Exemples : jeux vidéos États d une tâche États d une tâche Création d une tâche 5

Exemple de programme C avec fork /* --------------------------------------------------------------------------- * Schéma de création de processus. * Création d'un processus fils et test pour exécuter un code différent * dans le père et dans le fils. */ #include <stdio.h> /* Pour perror */ #include <stdlib.h> /* Pour exit */ #include <unistd.h> /* Pour fork, getpid, getppid, sleep */ #include <sys/types.h> /* Pour pid_t (fork, getpid, getppid) */ #include <sys/wait.h> /* Pour wait */ int main(void) pid_t ident; ident = fork(); if (ident == -1) perror("fork"); return EXIT_FAILURE; /* A partir de cette ligne, il y deux processus */ printf("cette ligne sera affichée deux fois\n"); if (ident == 0) /* Code exécuté uniquement par le fils */ printf("je suis le fils\n"); else /* Code exécuté uniquement par le pere */ printf("je suis le père\n"); return EXIT SUCCESS; Exemple de programme C avec fork /* --------------------------------------------------------------------------- * Schéma de création de processus. * Création d'un processus fils et test pour exécuter un code différent * dans le père et dans le fils. */ #include <stdio.h> /* Pour perror */ #include <stdlib.h> /* Pour exit */ #include <unistd.h> /* Pour fork, getpid, getppid, sleep */ #include <sys/types.h> /* Pour pid_t (fork, getpid, getppid) */ #include <sys/wait.h> /* Pour wait */ int main(void) pid_t ident; ident = fork(); if (ident == -1) perror("fork"); return EXIT_FAILURE; /* A partir de cette ligne, il y deux processus */ printf("cette ligne sera affichée deux fois\n"); if (ident == 0) /* Code exécuté uniquement par le fils */ sleep(2); /* le fils dort pendant 2 secondes */ printf("je suis le fils\n"); else /* Code exécuté uniquement par le pere */ printf("je suis le père\n"); return EXIT_SUCCESS; Exemple de programme C avec fork /* --------------------------------------------------------------------------- * Schéma de création de processus. * Création d'un processus fils et test pour exécuter un code différent * dans le père et dans le fils. */ #include <stdio.h> /* Pour perror */ #include <stdlib.h> /* Pour exit */ #include <unistd.h> /* Pour fork, getpid, getppid, sleep */ #include <sys/types.h> /* Pour pid_t (fork, getpid, getppid) */ #include <sys/wait.h> /* Pour wait */ int main(void) pid_t ident; ident = fork(); if (ident == -1) perror("fork"); return EXIT_FAILURE; /* A partir de cette ligne, il y deux processus */ printf("cette ligne sera affichée deux fois\n"); if (ident == 0) /* Code exécuté uniquement par le fils */ sleep(2); /* le fils dort pendant 2 secondes */ printf("je suis le fils\n"); else /* Code exécuté uniquement par le pere */ wait(null); /* le père attend la fin de l un de ses fils */ printf("je suis le père\n"); return EXIT_SUCCESS; 6

Gestion du processeur Gestion du processeur Stratégies d ordonnancement Temps de latence aux interruptions 7

Critères de qualité de l ordonnancement Tourniquet : ordonnancement circulaire sans priorité Tourniquet : choix du quantum Priorité pure Toutes les tâches ont une priorité, et pour une priorité ité on a au plus une tâche La préemption présente peu d intérêt : la tâche la plus prioritaire s exécute jusqu à sa fin ou jusqu au blocage. L ordonnancement est donc lié aux interruptions externes 8

Méthode mixte : tourniquet multi-niveaux Algorithmes d ordonnancement à plusieurs niveaux Ensemble des processus prêts trop important pour tenir en mémoire centrale Certains sont déchargés sur disque, ce qui rend leur activation plus longue Le processus élu est toujours pris parmi ceux présents en mémoire centrale En parallèle, on utilise un deuxième algorithme d ordonnancement pour gérer les déplacements des processus prêts entre le disque et la mémoire centrale Algorithmes d ordonnancement à plusieurs niveaux Autre méthode d ordonnancement 9