La programmation système

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

GEF 435 Principes des systèmes d’exploitation
PC / Traitement numérique / Contrôle Environnement logiciel
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
TECHNOLOGIE DES ORDINATEURS
Introduction. Les pointeurs Bête noir des programmeurs Pas daide de Visual Studio Sauf en utilisant les « break point » Pas toujours intuitif Facile de.
Types des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 435 Principes des systèmes dexploitation Appels de système (Tanenbaum 1.6)
GEF 243B Programmation informatique appliquée
Chapitre 3: Système d’exploitation
Présentation de l’Architecture Windows NT
PLAN du COURS Introduction Structure des Systèmes Informatiques
Conception et programmation Programmation Parallèle
Objectif de l’exposé.
Exécutif Temps réel. Limitation des système classiques Rappels Mise en œuvre lourde des communications entre processus Problème de prédictibilité avec.
C.
Mémoire & Processus Cours SE - SRC
Architecture de machines Principes généraux
Cours d’initiation en Informatique
Systèmes d’exploitation
Module II : Les logiciels
Le système d’exploitation
ENVIRONNEMENT WINDOWS
Système d’Exploitation
Les composants internes
ENTRETENIR son ORDINATEUR
Système d’exploitation: Principe
Département informatique Automne 2013
Les Systèmes d’Exploitation
par Bernard Maudhuit Anne-Marie Droit
Réalisée par :Samira RAHALI
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Système d’exploitation
Logiciels.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006.
Programmation concurrente
IFT 6800 Atelier en Technologies d’information
Les systèmes multiplateformes
CSI3531 – Labo 1 Lobservation du comportement de processus.
Informatique et Unix Jean-Pierre Gallou
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Système dexploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Chapitre 6 : Synchronisation des processus et des fils
Qu’est-ce qu’un système d’exploitation ?
Systèmes d’exploitation
Introduction aux systèmes d’exploitation
SYSTEMES D’EXPLOITATION
SPIP SPIP est le système de publication développé par le minirézo.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Interactions entre Processus
Programmation Système et Réseau
Exec et signaux. Comment surveiller les processus? Avant d’aller plus loin, vous aurez sans doute besoin de cette commande : ps –A u: permet d’afficher.
Architecture matérielle Qu’est ce qu’un ordinateur ?
1 Initiation à l’utilisation de la micro-informatique Mac OS X Tiger? Mais c’est très simple! ©Alain Mancel - 12 Novembre 2007 Pour le GRETA 94.
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
OS & Logiciels.
Lancement du système Chapitre 3.
Taper sur Echap pour sortir à tout moment. Cliquer ici pour la suite Cliquer ici pour la suite.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
1.1: notions de bases de l’informatique
Crédits SommaireSystème & Processus Système et Applications Système, programmes & données Définition Système & UtilisateursSystème et Interface CULTURE.
Un ordinateur est une machine électronique qui fonctionne par la lecture séquentielle d'un ensemble d'instructions, organisées en programmes, qui lui.
Introduction aux systèmes d’exploitation Partie 1: Introduction
Capocasale & Droz. Exécuter une fonction en parallèle Utilisation de plusieurs fonctions en parallèles pour obtenir un résultat Accès à des ressources.
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

La programmation système Le principe

Système d’exploitation Interface du matériel et gestionnaire des ressources

Système d’exploitation Historiquement, l’OS (Operating System) a beaucoup évolué… Pas le temps de rentrer dans le détail, mais je vous encourage à consulter ce cours pour plus de détail : http://www.iutc3.unicaen.fr/~bourdf/cours/IUT-1A/cours/chapitre1/ch1.pdf Permet de mieux comprendre les choix pour la conception de l’OS

Système d’exploitation Petit à petit, le matériel informatique c’est diversifié : Ati/Nvidia/Matrox/Intel : Cartes graphiques Intel/AMD : Processeurs SDRAM/DDRAM : type mémoire Carte mère… Sans OS, un programmateur devrait réécrire son programme pour qu’il marche sur chaque type de machine ! Par exemple, lire un fichier ne se fait pas de la même manière si il est sur un disque SATA, IDE ou USB !

Système d’exploitation Il faut permettre à un utilisateur de lancer plusieurs applications en même temps Le multi tâche Planifier le temps alloué à chaque application Ordonnancement avec gestion des priorités Empêcher un programme de monopoliser le processeur Permet de gérer et protéger l’accès aux ressources

Système d’exploitation Permet d’offrir à l’utilisateur des points d’accès au matériel : Sous forme d’API (Application Programming Interface) Utilisable à partir des programmes s'exécutant sur le système Composée d'un ensemble d'appels systèmes Sous forme d’interface utilisateur Utilisable sous forme de texte ou de fenêtre (exemple : rm * sous linux…)

Système d’exploitation Nous nous intéresserons ici aux API, mais Il est important de connaitre les commandes LINUX Donc vous êtes encouragés à installer linux chez vous et jouer un peu avec le système testez par exemple le résultat de la commande rm –F * chez vous (et pas à l’ORT !)

Système d’exploitation Essaye de protéger le système, mais : while true ; do mkdir toto ; cd toto ; done while(1){ fork() ; } I while(1) { char *a=malloc(512) ; *a='1' ; } Réponse classique : Plantage…

Système d’exploitation C’est lui qui essaye de répartir l’accès aux ressources Accès au disque dur Accès à la mémoire vive Accès au processeur Mais, il est souvent nécessaire de gérer soit même l’accès aux ressources En effet, l’OS gère les conflits, mais pas la manière dont résoudre un conflit…

Processus On s’intéresse maintenant aux processus Représente une entité dynamique s’exécutant sur un processeur Du point de vu de l’OS : Espace d’adressage (BSS, Tas, Pile…) Etat interne (compteur d’exécution, fichiers ouverts…)

Processus et programme int i; int main() { printf("Salut\n"); } Processus Pile Tas BSS int i; Code main Vous pouvez utiliser le même programme que moi, mais vous n’aurez pas le même processus que moi !

Ordonnancement des Processus Les communications bloquent les processus Deux manières

Environnement d’un processus L’ensemble des variables vu par un processus Variables globales Constantes Objets … C’est l’OS qui se charge de réserver la place en mémoire pour ces variables (+ Tas et Pile…)

Le parallélisme L’intérêt des processus, c’est qu’ils peuvent être lancés simultanément L’inconvénient, c’est que ça pose des problèmes ! Tout d’abord, comment multiplier les processus…

Système UNIX La seule manière de dupliquer un processus est d’utiliser fork fork clone le processus appelant : void main(){ pid_t n=fork() n==0 n>0 On est dans le processus père On est dans le processus fils

Fork 1/2 La manière la plus courante d’utiliser un fork, c’est : void main(){ pid_t n=fork(); if(n!=0){ if(n<0){ //gestion des erreurs }else{ //programme du papa } //programme du fils

Fork 2/2 Clonage, c’est une recopie complète et indépendante : int i=3 ; if (fork() != 0) { printf("je suis le pere, mon PID est %d\n", getpid()) ; i += 4 ; } else { printf("je suis le fils, mon PID est %d ; mon pere est %d\n", getpid(), getppid()) ; i += 9 ; } printf("pour le pid %d, i = %d\n", getpid(), i) ; je suis le fils, mon PID est 10271 ; mon pere est 10270 pour le pid 10271, i = 12 je suis le pere, mon PID est 10270 Pour le pid 10270, i = 7