NFP Système d exploitation
|
|
- Victorien Breton
- il y a 7 ans
- Total affichages :
Transcription
1 NFP Système d exploitation Amélie Lambert Amélie Lambert / 53
2 Plan du cours 1 Système d exploitation : rôle et services 2 Notions de bases : appels système et interruptions 3 La chaîne de production de programme 4 Les processus 5 Création de processus 6 Ordonnancement du processeur Bibliographie : DELACROIX J. Cours CNAM NFA 003, NSY103 CAZES A. DELACROIX J. Architecture des machines et des Systèmes informatiques Dunod 2003 Amélie Lambert / 53
3 1. Système d exploitation : rôle et services Amélie Lambert / 53
4 Les différents niveaux de la machine informatique Une machine informatique est composée de trois couches : Le matériel hardware (la machine physique : processeur, mémoire centrale, périphériques, l ensemble communiquant par un bus) Le logiciel de système d exploitation (ensemble de programmes qui se place à l interface entre le matériel et les logiciels applicatifs) Les logiciels des utilisateurs software (programmes qui permettent à l utilisateur de réaliser des taches sur la machine). Amélie Lambert / 53
5 Le rôle du système d exploitation Le système d exploitation est un ensemble de programmes qui réalisent l interface entre le matériel de l ordinateur et les utilisateurs. Il a deux objectifs principaux : la construction au dessus du matériel d une machine virtuelle plus facile d emploi et plus conviviale la prise en charge de la gestion de plus en plus complexe des ressources et partage de celle-ci Comme son nom le suggère, le SE a en charge l exploitation de la machine pour en faciliter l accès, le partage et pour l optimiser. Amélie Lambert / 53
6 Le partage de la machine physique le processeur : qui s exécute? la mémoire centrale : protection SE/ Programmes Utilisateurs protection entre programmes Utilisateurs les périphériques Amélie Lambert / 53
7 Faciliter la machine physique Amélie Lambert / 53
8 les fonctions d un système d exploitation Amélie Lambert / 53
9 2. Notions de bases : appels système et interruptions Amélie Lambert / 53
10 Appels systèmes et commandes Les fonctionnalités du système d exploitation sont accessibles par le biais des commandes ou des appels système Amélie Lambert / 53
11 Interpréteur de commandes Un interpréteur de commandes est un programme du système d exploitation. Son rôle est de traiter les commandes tapées au clavier par l utilisateur. TANT QUE l utilisateur ne ferme pas la session FAIRE Émettre un signe d invite Lire la ligne courante Exécuter la commande indiquée sur cette ligne FIN Amélie Lambert / 53
12 Modes d exécutions Il existe deux modes d exécutions : Le mode utilisateur dans lequel s exécutent tous les programmes utilisateurs. Le mode superviseur dans lequel s exécutent les programmes plus sensibles du système d exploitation, notamment les appels systèmes ou les interruptions. Amélie Lambert / 53
13 Réalisation d un appel système Les fonctions du système sont exécutées en mode superviseur. Le basculement du mode utilisateur au mode superviseur s effectue par la levée de l exception particulière Chaque fonction du système est connue au niveau du système d exploitation, par un numéro (exemple open, 5). Une table des appels système associe à chaque numéro de fonction, son adresse en mémoire centrale. Amélie Lambert / 53
14 Réalisation d un appel système : Exemple Amélie Lambert / 53
15 3. La chaîne de production de programmes Amélie Lambert / 53
16 La chaîne de production de programmes Cette chaîne désigne l ensemble des étapes nécessaires à la construction d un programme exécutable à partir d un programme dit source : Compilation Édition des liens Chargement Amélie Lambert / 53
17 Rôle d un ordinateur 1 J ai un problème à résoudre : Calculer le périmètre d un rectangle de longueur a et de largeur b. 2 J écris un algorithme : Perimetre := 2a + 2b 3 Grâce à un langage de programmation, je code la solution pour la faire exécuter par l ordinateur = Programme constitué d instruction : public static double perimetre (double a, double b){ double perimetre; perimetre = 2 a +2 b; return perimetre; } Amélie Lambert / 53
18 Le codage d un problème public static double perimetre (double a, double b){ double perimetre; perimetre = 2 a +2 b; return perimetre; } Programme en langage de haut niveau : instructions de haut niveau Compilateur Programme à exécuter : instructions machine et valeurs en binaire Amélie Lambert / 53
19 Le Rôle du compilateur Un compilateur traduit un programme source écrit en langage de haut niveau en un programme objet en langage de bas niveau. Le compilateur est lui-même un programme important et volumineux. Le travail du compilateur se divise en plusieurs phases : analyse lexicale (recherche des mots-clés) analyse syntaxique (vérification de la syntaxe) analyse sémantique (vérification de la sémantique) génération du code objet Amélie Lambert / 53
20 Analyse lexicale, syntaxique et sémantique Rôle de l analyse lexicale : reconnaître dans la suite de caractères que constitue un programme les objets du langage éliminer le "superflu" (espaces, commentaires) Rôle de l analyse syntaxique : reconnaître si la suite de symboles issue de l analyse lexicale respecte la syntaxe du langage Rôle de l analyse sémantique : trouver le sens et la signification des différentes phrases du langage quels sont les objets manipulés et leurs propriétés? (type, durée de vie, taille, adresse,...) contrôler la cohérence dans l utilisation des objets. (erreur de type, absence de déclarations, déclarations multiples, déclarations inutiles, expressions incohérentes,...) Amélie Lambert / 53
21 Table des symboles Le compilateur manipule une table des symboles qui contient toutes les informations sur les propriétés des objets du programme La table est construite durant les 3 phases d analyse lexicale, analyse syntaxique et analyse sémantique. Amélie Lambert / 53
22 Génération du code La génération de code est l étape ultime de la compilation. Elle consiste à produire le code machine équivalent du code en langage haut niveau. Ce code machine est qualifié de relogeable car les adresses dans ce code sont calculées à partir de 0 Amélie Lambert / 53
23 Édition de liens Le développement d un gros programme Amélie Lambert / 53
24 Rôle de l éditeur de liens (1/3) Un éditeur de liens est un logiciel qui permet de combiner plusieurs modules objet obtenus par compilation séparée pour construire un seul programme exécutable modules objets utilisateur modules objets prédéfinis dans des bibliothèques (fonctions interfaces des appels systèmes, fonctions mathématiques, fonctions graphiques,...) Amélie Lambert / 53
25 Rôle de l éditeur de liens (2/3) Un module comprend trois catégories d objets objet interne au module : inaccessible de l extérieur. objet exporté ou public : interne au module mais accessible de l extérieur. objet importé ou externe : n appartenant pas au module, mais utilisé par le module. Le compilateur recense dans chaque module les objets internes, exportés ou importés. Pour chaque objet rencontré, selon sa catégorie : si l objet est interne, il associe une adresse à l objet dans la table des symboles. si l objet est exporté, il lui associe une adresse à l objet dans la table des symboles et publie cette adresse sous forme d un lien utilisable. si l objet est importé, il ne connaît pas l adresse à l objet. Il demande à obtenir cette adresse sous forme d un lien à satisfaire. Amélie Lambert / 53
26 Rôle de l éditeur de liens (3/3) Amélie Lambert / 53
27 4. Les processus Amélie Lambert / 53
28 Notion de processus Définitions d un processus : Un processus est un programme en cours d exécution auquel est associé un environnement processeur (CO, PSW, RSP, registres généraux) et un environnement mémoire 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é (objets propres : ensemble des instructions et données accessibles) Un programme réentrant est un programme pour lequel il peut exister plusieurs processus en même temps. Amélie Lambert / 53
29 Du programme au processus Amélie Lambert / 53
30 Système multiprocessus - États des processus Amélie Lambert / 53
31 Bloc de contrôle du processus Amélie Lambert / 53
32 Les processus Opérations sur les processus : Création, Terminaison normale ou erreur, Suspension, réveil. Coopération entre processus : Processus concurrents : indépendants ou coopérants. partage d information (exemple fichier partagé) et synchronisation (division d un programme en plusieurs tâches concurrentes) Communication entre processus : partage de mémoire et messages Amélie Lambert / 53
33 5. Création de processus Amélie Lambert / 53
34 Primitive de création de processus (1/6) #include <unistd.h> pid_t fork(void) La primitive fork() permet la création dynamique d un nouveau processus qui s exécute de manière concurrente avec le processus qui l a créé. Tout processus Unix/Linux hormis le processus 0 est crée à l aide de cette primitive. Le processus créateur (le père) par un appel à la primitive fork() crée un processus fils qui est une copie exacte de lui-même (code et données) (Exemple d utilisation : programmation d une application parallèle). Il est également possible de remplacer le code et les données du processus créé par ceux d un autre programme, via les primitives de recouvrement. Amélie Lambert / 53
35 Primitive de création de processus (2/6) MODE UTILISATEUR PERE (pid :12222) main () { pid_t ret ; int i, j=0; for(i=0; i<8; i++) i = i + j; ret = fork(); } MODE SYSTEME Exécution de l appel système fork(). Si les ressources noyau sont disponibles : 1 allouer une entrée de la table des processus au nouveau processus 2 allouer un pid unique au nouveau processus 3 dupliquer le contexte du processus parent (code, données, pile) 4 retourner le pid du processus crée à son père et 0 au processus fils Rappel : un processus est identifié par un numéro unique appelé pid Amélie Lambert / 53
36 Primitive de création de processus (3/6) MODE UTILISATEUR MODE SYSTEME PERE (pid :12222) main () { pid_t ret ; int i, j=0; for(i=0; i<8; i++) i = i + j; ret = fork(); // ret = } FILS (pid :12223) main () { pid_t ret ; int i, j=0; for(i=0; i<8; i++) i = i + j; ret = fork(); // ret = 0 } Lors de l exécution de l appel système fork(), si les ressources noyau sont disponibles, il est retourné : le pid du processus crée au processus père (ici 12223) ; la valeur 0 au processus fils. Amélie Lambert / 53
37 Primitive de création de processus (4/6) Le mécanisme du copy on write (copie sur écriture) : Lors de sa création, le fils partage avec son père : le segment de code ; le segment de données et la pile sont également partagés et mis en accès lecture seule. Lors d un accès en écriture par l un des deux processus, le segment de données ou la pile sont effectivement dupliqués. Amélie Lambert / 53
38 Primitive de création de processus (5/6) PERE (pid :12222) main () { pid_t ret ; int i, j=0; for(i=0; i<8; i++) i = i + j; ret = fork(); // ret = } FILS (pid :12223) main () { pid_t ret ; int i, j=0; for(i=0; i<8; i++) i = i + j; ret = fork(); //ret = 0 } Chaque processus père et fils reprend son exécution après le fork(). Le code et les données étant strictement identiques, il est nécessaire de disposer d un mécanisme pour différencier le comportement des deux processus après le fork() On utilise pour cela le code retour du fork() qui est différent chez le fils (toujours 0) et le père (pid du fils crée) Amélie Lambert / 53
39 Primitive de création de processus (6/6) PERE (pid :12222) main () { pid_t ret ; int i, j=0; for(i=0; i<8; i++) i = i + j; ret= fork(); if (ret == 0) printf(" je suis le fils ") else { printf ("je suis le père"); printf ("pid de mon fils %d", ret) } } Pid du fils : getpid : getppid :shell FILS (pid :12223) main () { pid_t ret ; int i, j=0; for(i=0; i<8; i++) i = i + j; ret= fork(); if (ret == 0) printf(" je suis le fils ") else { printf ("je suis le père"); printf ("pid de mon fils, %d", ret) } } getpid : getppid : Le processus fils hérite de tous les attributs de son père sauf son pid. Les exécutions des processus père et fils peuvent s enchevêtrer en fonction de la politique d ordonnancement. Amélie Lambert / 53
40 Synchronisation père / fils (1/3) #include <stdlib.h> void exit (int valeur); pid_t wait (int status); un appel à la primitive exit() provoque la terminaison du processus effectuant l appel avec un code retour valeur. (Par défaut, le franchissement de la dernière } d un programme C tient lieu d exit()) un processus qui se termine passe dans l état Zombie et reste dans cet état tant que son père n a pas pris en compte sa terminaison. Le processus père "récupère" la terminaison de ses fils par un appel à la primitive wait () Amélie Lambert / 53
41 Synchronisation père / fils (2/3) PERE (pid :12222) main () { pid_t ret ; int i, j=0; for(i=0; i<8; i++) i = i + j; ret= fork(); if (ret == 0) { printf(" je suis le fils "); exit(); } else { printf ("je suis le père"); printf ("pid de mon fils,%d",ret); wait(); } } FILS (pid :12223) main () { pid_t ret; int i, j=0; for(i=0; i<8; i++) i = i + j; ret= fork(); if (ret== 0) { printf(" je suis le fils "); exit (); } else { printf ("je suis le père"); printf ("pid de mon fils,%d",ret); wait(); } } Amélie Lambert / 53
42 Synchronisation père / fils (3/3) Lorsqu un processus se termine (exit()), le système démantèle tout son contexte, sauf l entrée de la table des processus le concernant. Le processus père, par un wait(), "récupère" la mort de son fils, cumule les statistiques de celui-ci avec les siennes et détruit l entrée de la table des processus concernant son fils défunt. Le processus fils disparaît complètement. Un processus fils défunt reste zombie jusqu à ce que son père ait pris connaissance de sa mort Un processus fils orphelin, suite au décès de son père (le processus père s est terminé avant son fils) est toujours adopté par le processus 1 (init). Amélie Lambert / 53
43 Primitive de recouvrement Il s agit d un ensemble de primitives (famille exec() permettant à un processus de charger en mémoire, un nouveau code exécutable (execl, execlp, execle, execv, execvp, execve). main () { pid_t pid ; int i, j=0; for(i=0; i<8; i++) i = i + j; pid= fork(); if (pid == 0) { printf(" je suis le fils "); execl("/home/calcul","calcul","3","4", NULL); // execution du programme calcul avec les // pramètres 3 et 4 } else { printf ("je suis le père"); printf ("pid de mon fils, %d", pid); wait(); } } 1 Création d un processus fils par duplication du code et données du père ; 2 Le processus fils recouvre le code et les données hérités du père par ceux du programme calcul. Le père transmet des données de son environnement vers son fils par les paramètres de l exec(...) 3 Le père attend son fils Amélie Lambert / 53
44 6. Ordonnancement des processus Amélie Lambert / 53
45 Système multiprocessus Amélie Lambert / 53
46 Etats des processus (1/2) Amélie Lambert / 53
47 Etats des processus (2/2) Élection : allocation du processeur Préemption : réquisition du processeur : ordonnancement non préemptif : un processus élu le demeure sauf s il se bloque de lui-même ordonnancement préemptif : un processus élu peut perdre le processeur s il se bloque de lui-même (état bloqué) ou si le processeur est réquisitionné pour un autre processus (état prêt) Amélie Lambert / 53
48 Système multiprocessus - Ordonnanceur et répartiteur Amélie Lambert / 53
49 Politiques d ordonnancement Premier arrivé, premier servi (FIFO) Par priorités constantes : chaque processus reçoit une priorité, le processus de plus forte priorité est élu, algorithme avec ou sans préemption. Par tourniquet (round robin) : Un processus élu s exécute au plus durant un quantum (intervalle de temps) ; à la fin du quantum, préemption et réinsertion en fin de file d attente des processus prêts. Amélie Lambert / 53
50 Ordonnancement FIFO Amélie Lambert / 53
51 Ordonnancement par priorités constantes (sans préemption) Amélie Lambert / 53
52 Ordonnancement par priorités constantes (avec préemption) Amélie Lambert / 53
53 Ordonnancement par tourniquet (round robin) Amélie Lambert / 53
Cours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailIntroduction aux Systèmes et aux Réseaux
Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailChapitre 4 : Outils de communication centralisés entre processus
Chapitre 1 : Introduction Chapitre 2 : Processus Chapitre 3 : Ordonnancement Chapitre 4 : Outils de communication centralisés entre processus Chapitre 5 : Allocation mémoire Chapitre 6 : Mémoire virtuelle
Plus en détailCours 6 : Tubes anonymes et nommés
Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels
Plus en détailProcessus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace
Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement
Plus en détailLes processus. Système L3, 2014-2015 1/39
Les processus Système L3, 2014-2015 1/39 Les processus Processus = Instance d un programme en cours d exécution plusieurs exécutions de programmes plusieurs exécutions d un même programme plusieurs exécutions
Plus en détailQu'est-ce qu'un processus: Définitions
Version septembre 2013 N 187 Qu'est-ce qu'un processus: Définitions Instruction = indécomposable et indivisible Processeur =... Processus = suite temporelle d'exécutions d'instructions Processus = exécution
Plus en détailTRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique
Communications entre Processus Communication par tubes. TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Exemple 1: On a deux processus Père/Fils. Le père
Plus en détail1/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)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailProgrammation système en C/C++
Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous
Plus en détail03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing
3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps
Plus en détail3IS - Système d'exploitation linux - Programmation système
3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailLEs processus coopèrent souvent pour traiter un même problème. Ces
Chapitre 5 Communication interprocessus LEs processus coopèrent souvent pour traiter un même problème. Ces processus s exécutent en parallèle sur un même ordinateur (monoprocesseur ou multiprocesseurs)
Plus en détailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailLes processus légers : threads. Système L3, 2014-2015 1/31
Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours
Plus en détailIntroduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailOS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Plus en détailÉcole Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.
École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailLes 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)
Se souvenir 1(1)/54 Le système de fichiers (exemple du disque dur) Qu est-ce qu un processus? 3(3)/54 Les caches (inodes et blocks) Accès à un fichier : double indirection Compteurs de références : Les
Plus en détailOutils pour la pratique
Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailGestion des processus
65 La Gestion des Processus 1 Définitions, exemples 2. Politiques d'allocation du processeur 3. Synchronisation des processus 66 Programme : Un programme est une suite figée d'instructions, un ensemble
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailProgrammation système
Programmation système Christine Solnon Table des matières 1 Les processus 2 1.1 Etats d un processus................................... 2 1.2 Descripteur d un processus (PCB)...........................
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailCorrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailProgrammation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
Plus en détailCours de Système : Gestion de Fichiers
Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO)
Plus en détailCours A7 : Temps Réel
Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Motivations Du jour : les mécanismes multitâches, la gestion des priorités, l ordonnancement, la gestion
Plus en détailProgrammation Système (en C sous linux) Rémy Malgouyres LIMOS UMR 6158, IUT département info Université Clermont 1, B.P.
Programmation Système (en C sous linux) Rémy Malgouyres LIMOS UMR 6158, IUT département info Université Clermont 1, B.P. 86 63172 AUBI Une version PDF de ce document est téléchargeable sur mon site web,
Plus en détailProblèmes liés à la concurrence
ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailREALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Plus en détailChapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus
Chapitre 2 Les processus 2.1 Introduction Le processus est un concept clé dans un système d exploitation. Un processus est un programme en cours d exécution. C est-à-dire, un programme à l état actif.
Plus en détailLa technologie Java Card TM
Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages
Plus en détailTemps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011
Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller
Plus en détailSimulation d un système de paiement par carte bancaire
Simulation d un système de paiement par carte bancaire Mini projet IN301/IN3ST01-2009-2010 Sujet rédigé par Jean Cousty et Laurent Najman, très librement inspiré d un projet de Jérome Gueydan pour l ENSTA
Plus en détailExécutif temps réel Pierre-Yves Duval (cppm)
Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications
Plus en détailCompilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Plus en détailPlaying with ptrace() for fun and profit
sous GNU/Linux nicolas.bareil@eads.net EADS Corporate Research Center - DCR/STI/C SSI Lab SSTIC 2006 Il était une fois... Sous UNIX, ptrace() est le seul moyen de debuggage. User-space, Interface rigide
Plus en détailIntroduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Plus en détail1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détail4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
Plus en détailJ2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation
J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread
Plus en détailI00 Éléments d architecture
I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,
Plus en détailM06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS
IB INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1 DIPLOMA PROGRAMME PROGRAMME DU DIPLÔME DU BI PROGRAMA DEL DIPLOMA DEL BI M06/5/COMSC/SP1/FRE/TZ0/XX 22067017 Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS
Plus en détailTP1. Outils Java Eléments de correction
c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par
Plus en détailSystème et réseaux (SR1) Gestion des utilisateurs
Système et réseaux (SR1) Gestion des utilisateurs Il existe un utilisateur privilégié (de nom root et de groupe root) qui dispose de droits étendus sur le système de fichier et sur le contrôle de l'activité
Plus en détailAlgorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??
Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailArchivage Messagerie Evolution pour usage HTML en utilisant Hypermail
Finalités Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Réalisé par sa modestie Arnaud de VILLEDON de NAIDE, le 9 mars 2013 Document sous licence GPL. Vous avez le droit d'en faire
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailRAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailCours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Plus en détailServeurs de noms Protocoles HTTP et FTP
Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailDUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream
iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 5 : Sockets Stream Nom(s) : Groupe : Date : Objectifs : manipuler les primitives relatives à la communication par sockets
Plus en détailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détail