De l’ordinateur au processus : rôle d’un système Laurent Réveillère Enseirb-Matmeca Département Télécommunications [email protected] http://www.labri.fr/perso/reveille/if110/ D’après le cours d’introduction aux systèmes d’exploitation de Télécom SudParis Présentation du cours Contexte du cours : Introduire notre objet d’étude : les systèmes d’exploitation Objectifs : Comprendre ce qu’est un ordinateur Comprendre ce que sont un logiciel et un programme Comprendre ce qu’est un système d’exploitation Comprendre ce qu’est un processus Notions abordées : Ordinateur, mémoire, processeur, périphérique, système d’exploitation, processus, communication, programme, logiciel IF110 2 I. Qu’est ce qu’un ordinateur ? IF 110 Introduction aux Systèmes d’Exploitation Définition d’un ordinateur Machine électronique capable d’exécuter des instructions effectuant des opérations sur des nombres 1946 : ENIAC • calculateur à tubes • 30 tonnes, 72m2 • 357 mult/s • 35 div/s En panne la moitié du temps IF110 4 Définition d’un ordinateur Machine électronique capable d’exécuter des instructions effectuant des opérations sur des nombres Janv 1948 : SSEC (premier ordinateur chez IBM) avec une capacité mémoire de 150 nombres IF110 5 Définition d’un ordinateur Machine électronique capable d’exécuter des instructions effectuant des opérations sur des nombres IF110 6 Structure matérielle d’un ordinateur Processeur Mémoire Moniteur Clavier Disque dur Bus de communication RAPPEL IF110 7 Schéma de haut niveau d’un ordinateur Processeur : unité capable d’effectuer des calculs Mémoire vive : matériel stockant des données directement accessibles par le processeur Accès rapide, données perdues en cas de coupure électrique. Périphériques : matériel fournissant ou stockant des données secondaires Réseau, disque dur, souris, clavier, carte graphique, carte son… Bus de communication : bus interconnectant le processeur, la mémoire vive et les périphériques IF110 8 Qu’est ce que la mémoire vive ? Mémoire vive : ensemble de cases numérotées contenant des octets Case 0 Une case contient un octet (byte en anglais) = regroupe 8 bits Bit : valeur valant 0 ou 1 Case 1 Case 2 Case 3 Case 800 … 0 : bit non chargé ("courant ne passe pas") 1 : bit chargé ("courant passe") 0110 0001b 0101 1001b 0110 0001b 1111 0000b 1100 1011b Un octet permet de représenter 28 = 256 valeurs IF110 9 Représentation des nombres Notation décimale : un chiffre peut prendre 10 valeurs de 0 à 9 276 = 2*102 + 7*101 + 6*100 Notation binaire : un chiffre peut prendre 2 valeurs de 0 à 1 1101b = 1*23 + 1*22 + 0*21 + 1*20 = 13 Notation hexadécimale : un chiffre peut prendre 16 valeurs de 0 à f 0x276 = 2*162 + 7*161 + 6*160 = 630 0xb6 = 11*161 + 6*160 = 182 IF110 10 Hexadécimal en informatique Avec 4 bits, on encode 16 valeurs, soit 1 chiffre hexadécimal Case 0 1110 0001b Case 3 0101 1001b 0110 0001b 1111 0000b Case 800 1100 1011b Case 1 Case 2 … IF110 11 Hexadécimal en informatique Avec 4 bits, on encode 16 valeurs, soit 1 chiffre hexadécimal Case 2 0xe1 0x59 0x61 Case 3 0xf0 Case 800 0xc3 Case 0 L’hexadécimal est donc plus concis pour représenter les valeurs des octets IF110 … Un octet est représenté par 2 chiffres hexadécimaux Case 1 12 Que représentent les octets ? Une série d’octets peut représenter : Case 3 0xe1 0x59 0x61 0xf0 Case 800 0xc3 Case 0 Case 1 Case 2 … Un entier naturel Un entier relatif Une suite de caractères Une valeur de vérité (vrai/ faux) Un nombre flottant Un nombre complexe Une instruction machine Ou tout autre ensemble énumérable IF110 13 Fonctionnement d’un processeur Un processeur exécute des instructions qui peuvent Effectuer des calculs Accéder à la mémoire Accéder aux autres périphériques Sélectionner l’instruction suivante à exécuter (saut) Le processeur identifie une instruction par un numéro (Par exemple : 1 = additionne, 2 = soustrait, etc.) IF110 14 Fonctionnement d’un ordinateur Mémoire : tableau d’octets, indexé à partir de 0 Adresse 0 … Adresse 18 13 Adresse MAX-1 … Processeur : possède des variables internes appelées registres PC (Program Counter) : adresse de l’instruction suivante Si PC == 18, alors l’instruction suivante à exécuter est l’instruction 13 Autres : registres sur lesquels le processeur effectue les calculs IF110 15 Fonctionnement d’un ordinateur À chaque cycle d’horloge, le processeur : Charge l’instruction à l’adresse PC à partir de la mémoire Place le PC sur l’instruction qui suit Sélectionne le circuit à activer en fonction du numéro d’instruction Exécute l’instruction Quelques exemples d’instructions 0x10 0x4000 ⇒ charge l’octet à l’adresse 0x4000 dans le registre nommé R0 (lit une variable) 0x12 0x89 ⇒ ajoute 0x89 à PC (saut) 0x14 0x20 ⇒ ajoute 0x20 au registre R0 (calcul) 0x17 0x70 0x12 ⇒ envoie 0x70 au périphérique 0x12 IF110 16 Fonctionnement d’un ordinateur Et c’est tout! Un ordinateur ne sait rien faire de mieux que des calculs IF110 17 Ce qu’il faut retenir Une machine est constituée d’un processeur, d’une mémoire vive et de périphériques, le tout interconnecté par un bus Un processeur exécute de façon séquentielle des instructions qui se trouvent en mémoire Chaque instruction est identifiée par un numéro, elle peut Effectuer une opération sur des variables internes (registres) Lire ou écrire en mémoire ses registres Accéder à un périphérique Modifier la prochaine instruction à effectuer (saut) IF110 18 II. Logiciels et programmes IF110 19 Ordinateur vu par l’utilisateur L’utilisateur installe des logiciels Microsoft office, Chrome, Mario Logiciel = ensemble de fichiers Fichiers ressources : images, vidéos, musiques… Fichiers programmes : fichier contenant des données et des instructions destinées à être exécutées par un ordinateur In fine, l’utilisateur lance l’exécution de programmes Excel, Word, Chrome, Mario IF110 20 Qu’est ce qu’un programme ? Programme binaire = Ensemble d’instructions exécutables par le processeur + des données manipulées par ces instructions Programme source = Ensemble d’opérations abstraites décrivant les actions à effectuer + des données manipulées par ces opérations IF110 21 Exécution d’un programme binaire Un binaire doit être chargé en mémoire pour être exécuté (typiquement à partir du disque dur) Processeur Mémoire vive Disque dur Case 60 Case 64 Fichier "pgm" Case 68 Case 70 … 0x4883… 1. Demande au disque de copier le fichier "pgm" à partir de la case 60 Bus de communication IF110 22 Exécution d’un programme binaire Un binaire doit être chargé en mémoire pour être exécuté Processeur Mémoire vive Case 60 0x4883c02a Case 64 0x4883f82c Case 68 0x0f84… Case 70 … Disque dur Fichier "pgm" 0x4883… 2. Copie du contenu du fichier "pgm" dans la case 60 et les suivantes Bus de communication IF110 23 Exécution d’un programme binaire Exécution d’un programme à partir de la mémoire centrale Processeur PC vaut 60 Mémoire vive Case 60 0x4883c02a Case 64 0x4883f82c Case 68 0x0f84… Case 70 … Disque dur Fichier "pgm" 0x4883… 3. L’exécution du programme peut alors démarrer Bus de communication IF110 24 Exécution d’un programme source Solution 1 : après une traduction vers un programme binaire Prog source Declare x = 0 Ajoute 42 à x Traduit Prog binaire 0x4883c02a 0x4883f82c 0x0f84… En informatique le traducteur s’appelle un compilateur IF110 25 Exécution d’un programme source Solution 2 : en le faisant interpréter par un autre programme (appelé interpréteur) Prog source declare x = 0 ajoute 42 à x IF110 Lit et interprète Interpréteur 1. 2. Lit programme source Pour chaque opération Si declare … Si ajoute … Si soustrait … 26 Quelques exemples de programmes Word, Excel ou Chrome sont des programmes binaires En général, dans un logiciel de jeux Le jeu lui-même est un programme binaire Capable d’interpréter les mods qui, eux, sont directement des programmes sources (mod = extension du jeu) Les applications Android sont Interprétées avant Android KitKat (version 4.4) Compilées dès qu’elles sont installées depuis Android KitKat Les pages Web dynamiques sont interprétées IF110 27 Processus et système IF110 28 Du programme au processus Un processus est un programme en cours d’exécution Contient bien sûr les opérations du programme Mais aussi son état à un instant donné » Données en mémoire manipulées par le programme » Valeurs des registres du processeur » État des périphériques (fichiers ouverts, connexions réseaux…) IF110 29 Gestion des processus Le système d’exploitation est un logiciel particulier qui gère les processus (Le système est le seul programme qu’on n’appelle pas processus quand il s’exécute) Rôle du système d’exploitation Démarrer des processus (en chargeant le programme binaire ou l’interpréteur adéquat) Arrêter des processus Offrir une vision de haut niveau du matériel aux processus Offrir des mécanismes de communication inter-processus (IPC) IF110 30 Architecture globale à l’exécution Utilisateur Utilisateurs processus processus Application processus processus Système d’exploitaion processus Processus Abstractions • Processus • Matériel Ordinateur Composants • Processeur • Disque IF110 31 Naissance des premiers systèmes UNIX 1969 : première version d’UNIX en assembleur 1970 : le nom UNIX est créé 1971 : invention du langage de programmation C pour réécrire UNIX dans un langage de haut niveau 1991 : première version de Linux IF110 32 Objectif du module Étude des systèmes Unix par l’exemple À l’aide du langage bash Langage interprété par le programme bash Langage spécialisé dans la gestion de processus Comprendre La notion de fichier La notion de processus Quelques mécanismes de communication inter-processus IF110 33 Notions clés du cours Un ordinateur Est composé de : mémoire, processeur, périphérique et bus Un processeur exécute des instructions se trouvant en mémoire Un logiciel contient des fichiers Ressources (images, sons, textures…) Programmes (source et/ou binaire) Un programme est une suite d’opérations + des données Un processus est un programme en cours d’exécution Opérations + état à un instant donné Le système gère les processus et abstrait le matériel IF110 34 Annexe : représentation des données Remarque : les trois diapositives qui suivent sont indispensables pour avoir un minimum de culture en informatique IF110 35 Représentation des entiers Les octets sont regroupés pour former des valeurs entières (souvent par 1, 2, 4 ou 8 octets) Peut être vu comme un naturel (dans N) 0xe159 = 14*163 + 1*162 + 5*16 + 9 ⇒ 0x159 représente 57689 IF110 Le nombre 0xe159 0xe1 0x59 0x61 0xf0 36 Représentation des valeurs de vérités Booléen : valeur pouvant valoir vrai ou faux Une valeur vraie Peut être stocké sur 1 bit, 1 octet, 2 octets, 4 octets, 8 octets… Convention : … 0 vaut faux Toute autre valeur vaut vrai 0xe1 0x59 0x61 0xf0 0xc3 IF110 37 Représentation des caractères Un octet peut être vu comme un caractère Ceci est un ‘a’ Table ascii ↵ 0x41 A 0x61 a 0x20 ‘‘ 0x42 B 0x62 b … … 0x43 C 0x63 c 0x30 0 0x44 D 0x64 d 0x31 1 0x45 E 0x32 2 0x46 F 0x66 f 0x33 3 0x47 G 0x67 g … … … … … … e … IF110 0x1f 0xe1 0x59 0x61 0xf0 0xc3 38