Systèmes d Exploitation & Machines Virtuelles. Format de l enseignement. Objectif du cours

Dimension: px
Commencer à balayer dès la page:

Download "Systèmes d Exploitation & Machines Virtuelles. Format de l enseignement. Objectif du cours"

Transcription

1 Systèmes d Exploitation & Machines Virtuelles Architectures et Conception des logicielles de base pour les systèmes informatiques Par Gilles Grimaud Université des Sciences et Technologies de Lille Format de l enseignement 13 x 1h30 de cours Et 12 x 1h30 TD dont 1 CC et 1h30 TP 3 sujets de 4,5 heures 1 évaluation Objectifs Objectif du cours Acquérir des notions : d exploitation des matériels informatiques ; de sécurité fournies par les systèmes ; du rôle/activité des couches logicielles de base; d architecture des systèmes d exploitation. Maîtriser les principes fondateurs des systèmes d exploitation en vue de : Savoir utiliser les outils logiciels fournis ; Savoir concevoir des composants système.

2 Rôles et fonctions d un système d exploitation Un Système informatique est un ensemble cohérent de matériels et de logiciels destinés à assurer le traitement automatique d informations. Un tel système : 1. est relié au monde extérieur à l aide de circuit d accès (écran, imprimante, clavier, scanner, capteurs, liaison réseau, ) ; 2. gère l information (stockage, désignation, recherche, mise en forme, ) ; 3. cadre et opère la transformation de l information adaptés aux rôle du système informatique (exécution de programmes variés selon les besoins, ) ; Les supports fondamentaux de l informatique sont : les mécanismes de mémoires, les mécanismes de traitement, les mécanismes de communication. Du circuit électronique au document Web Vers des modèles de plus en plus abstraits Une montre à quartz est un système informatique : il stocke la «date» courante ; Il transforme cette information au cours du temps ; Il communique le résultat à l utilisateur du système. Bascules additionneurs Bascules Bascules mémoire traitement Quartz Cristaux liquides Un serveur Web est un système informatique : Il exploite un système de fichiers, ou une base de données ; pour produire un document spécifique ; qu il retransmet au client qui le lui a demandé. Internet B.D. Servlet & Php Fichier mémoire traitement communication communication Fonctions d un système d exploitation Avec des prétentions variables en fonction des différents besoin, les systèmes d exploitation assurent fondamentalement trois tâches : 1. Gérer le matériel ; 2. Fournir une abstraction du matériel ; 3. Fiabiliser/sécuriser/administrer l exécution des traitements.

3 Les débuts Petite Histoire des systèmes d exploitation 1ers Systèmes SDS 930 Temps partagé Multics Unix Systèmes graphique micro noyaux Exo noyaux Solaris Linux MS-DOS ST76 MS-Windows MacOS McOS TOS -X- Workbench Chorus MAC X-kernel VM Ware Quelques paradigmes pour la conception système Liaison Déf. : «relier une ressource (éventuellement matérielle) à un symbole. Permettre la manipulation de la ressource au travers de leur symbole.» Objet : permettre la manipulation symbolique des ressources, leurs partage entre plusieurs applications. Exemple : liaison entre nom de fichier est un flux. Abstraction Déf. : «abstraire, cacher, la complexité d une ressource (éventuellement matérielle) en proposant une interface logicielle simplifiée» Objet : réduire la complexité apparente du système informatique. Exemple : bibliothèques de bases. Virtualisation (Virtuel : qui pourrait être mais qui n est pas.) Déf. : «Remplacer l accès a un matériel réel par l accès à un matériel qui pourrait être mais qui n est pas» Objet : exposer un matériel réel ou imaginaire et néanmoins le gérer. Exemple : Système de mémoire virtuelle, Machines Virtuelle. clefs pour la programmation des systèmes d exploitation 1. Programmation en couche Principe de programmation par bibliothèques Appel de routines système Un système d exploitation peut être représenté au minimum comme un ensemble de bibliothèques logicielles qui fournissent des fonctions plus simple à manipuler que le matériel. Les systèmes d exploitation peuvent ce résumer à un ensemble de procédures fournies une bonne fois pour toutes pour simplifier l utilisation du matériel. Exemple : Un système de fichier.

4 Les systèmes d exploitation : une architecture de la tour de Babel? Application Application PHP Interprète PHP Serveur Web Logiciel de base Matériel Socket TCP Routage IP Pilote Ethernet Carte réseau abstraction administration gestion Le système d exploitation : Support pour applications Application 2 Application 1 Application 3 Support d exécution des applications Logiciel Pilote 1 Matériel 1 Logiciel Pilote 2 Matériel 2 Principes de la programmation des systèmes d exploitation 2. Intégration de l asynchronisme «La plus part du temps les programmes attendent un événement extérieur saisie d un mot au clavier, réception d un message via le réseau, signal de fin d impression de l imprimante» Entrelacer l exécution des programmes Un système d exploitation doit donner la main à un autre programme lorsqu un programme est en attende. Les systèmes d exploitation peuvent définir un ensemble de procédures de tel sorte qu une application soit «endormie» lorsqu elle attend quelque choses et qu elle soit «réveillée» lorsque les données sont reçues. Des tampons d émission et de réception permettent de temporiser les réveils et les endormissement des applications qui utilisent une ressource particulière. Exemple : Un gestionnaire d accès à un disque dur.

5 Principes de la programmation des systèmes d exploitation 3. Programmation par cadre de travail «On ne vous dit plus quelles procédures le système met à votre disposition, mais quand et pourquoi le système appellera vos procédures pour que votre programme fonctionne!» Appel en Retour Les systèmes d exploitation peuvent expliciter un ensemble de procédures que le programmeur d application doit définir et qui sont appelées lorsqu un événement relatif à une application se produit. Exemple : Un système de gestion de fenêtre graphique. Le système d exploitation : Cadre de travail pour applications Cadre de travail Application 1 Application 2 Support d exécution des applications Pilote 1 Matériel 1 Pilote 2 Matériel 2 le microprocesseur Rappel sur le fonctionnement d un µprocesseur (RISC) : 1. Lire une opération 2. Décoder 3. Lire les données entrantes 4. Exécuter l opération 5. Ecrire les données sortantes Clk IT données 32 ARM7 TDI 32 adresses 7 16 Registres indifférenciés PC = n 15; LR = n 14; (SP = n 13) Les opérations machines Unité Arithmétique & Logique : CCCC 00 I Op(4) S Rn(5) Rd(5) [Imm Rm]+LSL(12) Op = AND, EOR, SUB, RSB, ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV, BIC, MVN I = 0 Immediate I = 1 Register + Shift S = 0 don t set CC I = 1 Set Condition Code Accès mémoire : CCCC 01 IPUBWL Rn(5) Rd(5) [Imm Rm+LSL](12) I = 0 Immediate I = 1 Register + Shift P = 0 Post P = 1 pre U = 0 down U = 1 up B = 0 Word B = 1 Byte W = 0 no WriteBack W = 1 WriteBack L = 0 LOAD L = 1 STORE Flot de contrôle : CCCC 1010 Offset(24) ou CCCC x2FFF1 Rn BL offset, BX Rn Traitement des signaux matériels : déroutement pour les interruptions et exceptions.

6 Gérer le microprocesseur Charger un programme Copier en mémoire centrale l ensemble des mots mémoires qui constituent les opérations (machines) qui compose le programme à charger. Reloger les adresses mémoires du programme s il contient particulières. Exécuter un programme «Brancher» ou «sauter» sur la première instruction du programme chargé. Partager le temps d exécution entre programmes Utiliser les signaux interruptions basé sur le temps pour donner successivement la main à différents programmes : Signaux d horloge µ-proc Prog. n 1 Prog. n 2 Prog. n 1 Interruption Interruption Ordonnanceur Ordonnanceur Interruption Ordonnanceur Prog. n 2 S abstraire du microprocesseur Exécuter un programme c est faire pointer le registre «pointeur de programme» sur la première instruction machine. Au fur et à mesure des cycles d horloges, le programme s exécute. Comment un programme écrit en C, en PhP ou en Java fait dans ce contexte pour s exécuter sur un microprocesseur? Trois techniques de base pour s abstraire du langage machine : 1. les compilateurs : Convertir le fichier «source» dans le code «machine» Ensuite il est possible d exécuter le code «machine» ; 2. les interpréteurs : Exécuter un programme «machine» qui décode et exécute le source ; 3. les machines virtuelles : Définir un nouveau format de machine (virtuelle), puis compiler vers ce format et enfin décoder et exécuter ce format. S abstraire du microprocesseur : L exemple d Unix et du langage C Fichier code C example.c int foo(int i); int main( int argc, char **argv) { int i; i = 3 ; i = foo(i) ; } int foo(int i) { return i + 1 ; } Fichier assembleur example.s main STR lr,[sp,#-4]! MOV R0,#3 BL foo compilation MOV R0,#0 LDR lr,[sp],#4 BX lr foo ADD R0,R0,#1 BX lr Contenu binaire géré E5 2D E0 04 E3 A EB FF FF FC assemblage E3 A E4 9B E0 04 E1 2F FF 1E E E1 2F FF 1E

7 Les mémoires On peut qualifier les supports de mémoires disponibles selon trois critères : Registres & Mem interne RAM ROM CD ROM, DVD EEPROM, FlashRAM M-RAM, Fe-RAM Disques, Disque Dur Opto-magnétique Type d accès L / E L / E L L L / E 2 L / E L / E L / E adressage interne bus bus interface bus bus interface interface Vitesse d accès immédiat Rapide (1 Mot / 7 ns) 1 Mot / 120 ns 512 octets / 73 µs 1 1 Mot / 80 ns Rapide ( 1 Mot / 26 ns) 4096 octets / 520 µs 1 Lent 1 + latence importante 2 écriture avec délais important 64 Octets / 5ms Gérer les mémoires Gérer les registres : Stratégie d optimisation du code généré (compileur) Gérer les mémoires derrière le bus : Système de cache (matériel) ; Virtualisation de la mémoire (MMU). Gérer les mémoires derrière une interface : Système de cache (logiciel) ; Mapping de la mémoire externe derrière la mémoire virtuelle. S abstraire des mémoires Il existe un grand nombre de d abstractions utilisées pour exploiter la mémoire. Abstraction de l adressage : Système de fichier, base de données, mémoire objet, Abstraction des méthodes d accès : Lecture et écriture avec contrôle d accès, Gestion du polymorphisme, externalisation, Mémoire fiable, mémoires transactionnelles, Abstraction des méthodes d allocations : Allocation et déallocation dynamique, déallocation implicite (ramasse miette).

8 S abstraire des mémoires : L exemple des systèmes de fichiers Un disque dur : un ensemble de secteurs de taille fixe (e.g. 512 octets) Secteur Boot SuperBloc (MBR) FAT Secteur utilisable Magic Number Volume Name Fomater ID Fomat Date FAT Size First Dir Block CheckSum val Unused space X 4 octets X 32 octets X 32 octets X 32 octets X 4 octets X 4 octets X 4 octets Un secteur utilisable peut être : Un secteur I-node V[1,2,3,4] Type i-node V[5,6,7,8] size Direct 1 indirect Un secteur data indirect 2 S abstraire des mémoires : L exemple des systèmes de fichiers Un disque dur : un ensemble de secteurs de taille fixe (e.g. 512 octets) Files Data Type i-node Taille Direct 0 indirect Indirect 2 Id 0 Id 1 Id 2 Id 0 Id 1 Id 2 Id 0 Id 1 Id 2 Id 0 Id 1 Id 2 Files Data Files Data Files Data Files Data Files Data Plan (prévisionnel) du cours 1. Introduction au cours de système Partie I : Système et mémoires 2. Gestionnaire de la mémoire persistante (système de fichiers). 3. Virtualisation de la mémoire de travail (allocateur/ dé allocateur). 4. Abstraction de la mémoire de travail (gestionnaire de mémoire objet). 5. Mémoire transactionnelle (un exemple de propriété non fonctionnel). Partie II : Système et microprocesseur 6. Gestion du microprocesseur (Chargement, édition de lien, initialisation, exécution). 7. Abstraction du microprocesseur (Compilateur, Interpréteur, Machine Virtuelle). 8. Mécanisme de partage de la ressource µproc et d ordonnancement des taches. 9. Problèmes d ordonnancement, ordonnancement temps réel et exclusion mutuelle. Partie III : Architecture et sécurité des systèmes d exploitation 10. Isolation par adressage/dynamique (MMU) & Isolation par typage/statique (JVM). 11. Architecture des systèmes d exploitation. Partie IV : Exploitation des systèmes Unix 12. Processus, signaux, mémoire partagée. 13. Synchronisation, sémaphore et moniteurs.

9 Système de Fichiers Principe d utilisation, de gestion et de mise en œuvre des systèmes de fichier dans les systèmes informatiques Par Gilles Grimaud Université des Sciences et Technologies de Lille Architecture en couche pour l exploitation des mémoires persistantes Appli. A Appli. B Shell Interface d exploitation C Système de fichier Volume Volume Volume Volume Disque dur -1- Disque dur -2- Plan Périphériques de mémoires persistantes Virtualisation des disques : les volumes Secteur d amorce et «SuperBloc» Système de fichiers Protections selon Unix Manipulation de fichiers et de répertoires en C Fichiers mappés en mémoire

10 Périphériques de mémoires persistantes Mémoire persistante : mémoire dont le contenu n est pas perdu après un arrêt du système informatique. Objets premiers : stocker les informations utiles au démarrage d un système ouvert ; stocker des données «long terme» ; Sauvegarder des données. Type de supports physiques : 1. Disque dur, disques amovibles, 2. Disquettes, Disques opto-magnétique, 3. bandes magnétiques, 4. EEPROM, FlashRam, Fe-RAM, M-RAM, Périphériques de mémoires persistantes Les disques magnétiques (Disques dur) : plateaux, Cylindres, secteurs 4000 t/mn à t/mn 512 à octets stocker sur chaque secteur 20 à 200 secteurs par cylindre 800 à 4000 cylindres (jusqu à 12 ms de déplacement) 1 à 16 plateaux Adressage par interface <p,c,s> Capacité standard en 2002 : 40 Go, 7200 tours/minute, Déplacement 7 ms, Ultra DMA 100 Mhz => de 20Mo/s à 40Mo/s Périphériques de mémoires persistantes Interface d accès aux disques : Contrôleur de disque IDE : interface normées ATA, ATA-2, Contrôleur de disque SCSI / SCSI-2 ; Contrôleur de disque tampon µprocesseur 32 Bus d adresses 32 Bus de données Mémoire vive Accès au données persistantes : Accès direct au travers d un tampon de lecture/écriture ; DMA (U-DMA) pour copie des données dans/depuis la mémoire centrale.

11 Périphériques de mémoires persistantes Exemple interface logicielles d accès au disque : Lecture : void rdsectors( int device, // plusieurs disques sur un même contrôleur int head, // n du plateau int cylender, // n du cylindre de départ int sector, // n du secteur de départ int nsectors, // nombre de secteurs à lire unsigned char *buffer); // adresse de stockage des données lue Ecriture : void wrsectors( int device, // plusieurs disques sur un même contrôleur int head, // n du plateau int cylender, // n du cylindre de départ int sector, // n du secteur de départ int nsectors, // nombre de secteurs à lire unsigned char *buffer); // adresse ou sont stockées les données à écrire Format : void frsectors(int device, int p, int c, int s, int nsectors); Dans la pratique, l interface d accès au matériel ne saurait se résumer à un appel de fonction. On parle de programmation du contrôleur de disque (via des registres). Virtualisation des disques : les volumes Simplifier/homogénéiser les systèmes d adressage des disques : <n plateau,n cylindre,n secteur> devient <identifiant de volume, n bloc> Multiplexer l usage d un disque unique en construisant plusieurs parties dédiées à des usages distincts (partitions ou volumes) Gérer les systèmes d amorce et les systèmes d amorce multiples Permettre à d autres supports de stockage physique d être utilisés en temps que volumes Virtualisation des disques : les volumes Exemple interface logicielles d accès au disque : Lecture : void readbloc( int volume, // identifiant de volume visé int bloc, // identifiant du bloc dans le volume int nbloc, // nombre de bloc concernés unsigned char *buffer); // adresse de stockage des données lue Ecriture : void writebloc( int volume, // identifiant de volume visé int bloc, // identifiant du bloc dans le volume int nbloc, // nombre de bloc concernés unsigned char *buffer); // adresse ou sont stockées les données à écrire Format : void formatbloc(int v, int b, int nbloc); Sous cette interface, on peut placer autre chose qu un contrôleur de disque (EEPROM, liaison réseau, ).

12 Virtualisation des disques : les volumes Définir un découpage Disque Dur Master Boot Record volume 1 Boot sector Super bloc i-nodes Data blocs volume 2 Boot sector FAT Virtualisation des disques : les volumes A un bloc correspond un secteur sur une piste du disque. Aussi les opérations de lecture/écriture sont équivalents. Cependant, le système doit convertir une numéro de bloc en n de secteur/n de piste. MBR Max Piste Offset P2 P1 P2 Max Secteur nbloc = Offset P2 + Secteur + Piste x Max Secteur Démarrage d un système 1. Exécution du code en ROM, se termine par : 2. Chargement/Exécution du code en MBR, se termine par : 3. Chargement/Exécution du code du «secteur d amorce», démarrage du système Mémoire Morte (EEPROM) Contrôleur de disque tampon MBR Boot sector P.1 Boot sector P.2 µprocesseur 32 Bus d adresses 32 Bus de données Mémoire vive

13 Secteur d amorce et Secteur d amorce maître 0000 FA cli C0 xor 0048 BE8B06 mov si,0x68b ; "Invalid partition table" ax,ax 004B AC lodsb ; print message ED0 mov ss,ax 004C 3C00 cmp al,0x BC007C mov sp,0x7c00 ; set stack top at 0000:7C00 004E 740B jz 0x5b push si BF4 mov si,sp ; SI = 7C A 50 push ax 0051 BB0700 mov bx,0x B40E mov ah,0xe 000B 07 pop es 0056 CD10 int 0x10 000C 50 push ax E pop si 000D 1F pop ds ; DS = ES = EBF0 jmp short 0x4b 005B EBFE jmp short 0x5b 000E FB sti ; enable interrupts ; hang system 000F FC cld 0010 BF0006 mov di,0x600 ; DI = D BF0500 mov di,0x5 ; try 5 times 0060 BB007C mov bx,0x7c B90001 mov cx,0x100 ; 256 words (= 512 bytes) 0063 B80102 mov ax,0x F2A5 repne movsw ; copy ourselves to 0000: push di 0018 EA1D jmp 0x0:0x61d ; and jump to the new location 0067 CD13 int 0x13 ; read bootsector to 0000:7c F pop di 006A 730C jnc 0x78 ; ok, proceed 001D BEBE07 mov si,0x7be ; SI = 07BE 006C 33C0 xor ax,ax 0020 B304 mov bl,0x4 ; 4 entries 006E CD13 int 0x C80 cmp byte [si],0x80 ; check bootable flag F dec di E jz 0x ED jnz 0x60 ; try again 0073 BEA306 mov si,0x6a3 ; "Error loading C00 cmp byte [si],0x0; check if valid entry OS" 0076 EBD3 jmp short 0x4b ; print message 002A 751C jnz 0x48 ; jump if invalid 002C 83C610 add si,byte +0x BEC206 mov si,0x6c2 ; "Missing operating system" 002F FECB dec bl 007B BFFE7D mov di,0x7dfe EF jnz 0x22 ; try next entry 007E 813D55AA cmp word [di],0xaa55; check if valid bootsector jnz 0x4b ; print message if invalid 0033 CD18 int 0x18 ; no bootable partitions,gobasic C BF5 mov si,bp ; SI = ptr to parttable entry 0086 EA007C0000 jmp 0x0:0x7c00 ; jump to bootsector B14 mov dx,[si] ; get drive nr, head Sélection de la partition de B4C02 mov cx,[si+0x2] ; get cyl, sect 003A 8BEE mov bp,si ; keep ptr to parttable entry démarrage selon MS 003C 83C610 add si,byte +0x10; verify next entries 003F FECB dec bl (MBR MS) A jz 0x5d C00 cmp byte [si],0x F4 jz 0x3c Virtualisation des disques : les volumes Administration des volumes sous Unix : Fdisk Plusieurs mode dont mode interactif : - lister les volumes - créer les volumes - changer de volume actif (boot de 2nd niveau) - terminer / abandonner Sur architecture X90, le secteur d amorce primaire est celui défini dans /usr/plateform-name/lib/fs/ufs/mboot Système de fichiers Un système de fichiers est un modèle d organisation de l information stocké dans un ou plusieurs volumes. Un système de fichiers définit : 1. Un modèle d organisation de l information : 1. Notion de répertoires et de fichiers, 2. Classement arborescent des répertoires, 3. Notion de flux, accès séquentiels, 2. Un système de liaison de l information : 1. Identification des fichiers par un nom symbolique /home/rd2p/grimaud/public_html/index.html 2. Accès aux données par l intermédiaire de leurs nom symbolique : cat home/rd2p/grimaud/public_html/index.html

14 Système de fichiers Les volumes, et les disques physiques stockent l information dans des blocs d octets de taille fixe. Les systèmes de fichiers gèrent l allocation et la libération de ces blocs, ainsi que leurs regroupement pour former des supports logiques : les fichiers. int blocalloc (int volume); void blocfree (int volume, int bloc); Différentes stratégies pour réaliser ces opérations élémentaires dans un volume visant à : allouer en séquences des blocs contigus afin de réduire les temps de latence d accès aux fichiers permettre la restauration des blocs libres après une défaillance matérielle Système de fichiers Mécanisme d allocation : FAT Floppy Allocation Table : Table des blocs utilisés/libres Secteur Boot SuperBloc (MBR) FAT Secteur utilisable Allouer un bloc : chercher un 0 dans la FAT et le remplacer par un 1 Libérer un bloc : Mettre un 0 dans la FAT. Magic Number X 4 octets Volume Name X 32 octets Fomater ID X 32 octets Fomat Date X 32 octets FAT Size X 4 octets First Dir Block X 4 octets CheckSum val X 4 octets Unused space er bloc utilisé 19ème bloc libre Avec des blocs de 4096 octets il suffit d un bloc de FAT pour couvrir un volume de 128 Mo Système de fichiers Mécanisme d allocation : FreeList FreeList : Liste des blocs libres dans le volume. Secteur Boot SuperBloc (MBR) Magic Number Volume Name X 4 octets X 32 octets Bloc libre Fomater ID X 32 octets Fomat Date X 32 octets Bloc occupé Bloc libre FAT Size First Dir Block X 4 octets X 4 octets Bloc occupé CheckSum val X 4 octets First Free Block X 4 octets Bloc libre Bloc occupé Unused space Bloc libre Bloc occupé

15 Système de fichiers Un fichier est un assemblage de blocs. Files Data Type i-node Taille Direct 0 indirect Indirect 2 Id 0 Id 1 Id 2 Id 0 Id 1 Id 2 Id 0 Id 1 Id 2 Id 0 Id 1 Id 2 Files Data Files Data Files Data Files Data Files Data Système de fichiers Sous Unix, un répertoire est un fichier qui liste les noms de fichiers et de répertoires qu il contient, ainsi que l information suffisante pour pouvoir trouver le fichier/répertoire désigné sur le disque. Il peut aussi contenir, éventuellement, des informations de droits d accès relatif à chaque fichiers/répertoires. Par exemple : Nom de fichier Droit d accès Bloc de départ Nom de fichier Droit d accès Bloc de départ Système de fichiers Unix Le mécanisme de liaison symbolique proposé par le systeme de fichiers est, pour les systèmes d exploitation Unix, le mécanisme de liaison préféré, non seulement pour les données persistante mais aussi pour la majorité des flux (entrées-sorties audio, terminaux textes). Pour les systèmes Unix il n existe qu un seul système de fichier qui regroupe l ensemble des données persistantes manipulées par le système, ainsi qu un certain nombre de flux propres au matériel informatique. Tout nouveau volume structuré en système de fichier peut être insérer dans le système de fichier Unix par la commande : /user/sbin/mount /dev/hdb2 /tmp/ Tout nouveau support physique manipulable par le système est définit par le système comme un fichier «virtuel» du système de fichier : /dev/hda1 / ufs rw 1 1 /dev/hda2 swap1 ufs rw 0 2 /dev/hdb1 /usr ufs rw 1 2 table de définition du système de fichiers définie dans /etc/fstab

16 Protections selon Unix Chaque répertoire, en définissant un nom de fichier, lui associe un propriétaire, ainsi que des droits d accès. trwxrwxrwx type user group other 6134octets mel.txt Manipulation de fichiers et de répertoires en C Chemin d accès (char* path) Open(2), truncate(2) Stat(2),chmod(2), fcntl(2) Fichier ouvert (int fd) Fstat(2), fchmod(2),fcntl(2) Lseek(2), flock(2) Read(2),write(2),close(2) Fichier ouvert avec tampon(file *file) Fopen(3), fdopen(3), freopen(3) Fread(3), fwrite(3) Putc(3), fputc(3) Getc(3), fgetc(3) Puts(3),fputs(3) Printf(3), fprintf(3) Scanf(3), fscanf(3) Fflush(3) Fileno(3) Feof(3) Ferror(3) Fichiers mappés en mémoire centrale Un exemple de translation de symboles entre différents mécanismes de liaisons void *mmap((void *) NULL, long mapsize, int fileaccess, int mapproperty, int fileid); Exemple d utilisation (avec la bibliothèque sys/mman.h) : void *MapFileRW(char* file) { void *ptr; struct stat st; if( stat(file,&st)!= 0 (fd = open(file, O_RDWR)) < 0 ) { printf("%s cannot bee read\n",file); return NULL; } ptr = mmap((void *) NULL, (size_t) st.st_size, (int) PROT_READ PROT_WRITE, (int) MAP_FILE MAP_VARIABLE MAP_SHARED, (int) fd, (off_t) 0); close(fd); if( (caddr_t) ptr == (caddr_t) -1 ) { printf("%s: cannot map",file); return NULL;} return ptr; }

17 Mémoire de travail Exploitation de la mémoire de travail, mécanismes d allocation et de virtualisation, dans les systèmes informatiques Par Gilles Grimaud Université des Sciences et Technologies de Lille Plan Place et fonctionnement de la mémoire dans les systèmes informatique. Abstractions pour la mémoire centrale Stratégie d allocation de la mémoire Virtualisation de la mémoire Espace d adressage des processus selon Linux Autres usages pour la mémoire virtuelle Fichiers mappés en mémoire virtuelle Place de la mémoire de travail dans les systèmes informatiques µprocesseur MMU 32 Bus d adresses Lecture / Ecriture 32 Bus de données bus Connecteur Mémoire vive Mémoire vive AGP CPU N.B. RAM contrôleur de disque :o) ROM Connecteurs AGP PCI S.B. IDE EISA

18 Fonctionnement de la mémoire de travail Fonctionnellement, la mémoire de travail permet d associer, une valeur à une adresse. adresse 0x x x x C 0x x Valeur AB CD EF AB CD EF AB CD EF... Exemple de plan d adressage Espace d adressage adresse 0x x x x Valeur ROM RAM HW Interface Point de vue µproc Exploitation de la mémoire de travail Le microprocesseur accède à la mémoire soit : 1. Pour lire une instruction à exécuter (lire à l adresse PC) 2. Pour lire une donnée en mémoire : Sur ARM par exemple, lorsque l instruction à exécuter est un : LDR Rx,(Ry,Rz LSL #dec) 3. Pour écrire une donnée en mémoire : Sur ARM avec une instruction du type : STR Rx,(Ry,Rz LSL #dec) LDR R1, (R3, R4 LSL #dec) Avant : R3 = 0x R4 = 0x dec = 2 Après : R1 = 0x89ABCDEF = 4x5 = 20 adresse 0x x x x C 0x x Valeur AB CD EF AB CD EF AB CD EF... Exploitation de la mémoire de travail On accède à la mémoire de travail lorsqu une valeur de travail est manipulée par un programme est qu elle n est pas associée à un registre du microprocesseur. Exemple : Avec i R4 et j R1 et t R3 { int i,j; int t[10]; i = 5; t[i] = i; j = t[i] ; } LDR R1, (R3, R4 LSL #dec) Avant : Après : R3 = 0x R4 = 0x dec = 2 = 4x5 = 20 R1 = 0x89ABCDEF (ou R1 = 0xEFCDAB89 little-endian) MOV R4, #5 STR R4, (R3, R4 LSL #2) LDR R1, (R3, R4 LSL #2) adresse 0x x x x C 0x x Valeur AB CD EF AB CD EF AB CD EF...

19 Abstractions pour la mémoire de travail : «la pile d appel» En C : int main(int argc, char **argv) { int i = foo(1,2); return i; } int foo(int t,int u) { int v; v = t + u; return i; } Sens de la pile v : retour de foo (dans main) u : 0x t : retour main (vers le système) valeur Arguments empilés du dernier au premier 0xAFEC 0xAFF0 0xAFF4 0xAFF8 0xAFFC Adresse SP : Stack Pointer (R13 sur ARM) Abstraction pour la mémoire de travail : «la pile d appel» Selon Java : Class c { static void main(string[]args) { int v1; C v2 = new C(); v1 = v2.b(); } int b() { int v3 = 1 + this.c(2); return v3; } int c(int i) { return 3-i; } } État de la pile à ce point Locals arguments TOS 2 3 int i = 2 this Top Of Stack Valeur en mémoire VM Zone (return address) Frame n 2 : méthode VM Zone (return address) C v2 int v1 = 0 String[] args = TOS Frame n 3 : méthode c() 1 VM Zone (return address) C v3 int v3 = 0 this Frame n 1 : méthode main() adresse C C C C Allocation / Libération de mémoire dans la pile d appel C En C : Déclaration des arguments, des variables locales (critiques lors d appels récursifs). Déclaration de tableaux en variables locales. Exemple : int foo(int i) { int t[5]; int *p1, *p2; p1 = &i; // p1 = 0x0000AFFC p2 = str; // p2 = 0x0000AFE4 } p1 et p2 ont pu être associés à des registres donc ils ne sont pas présents sur la pile. Mais i ne peut pas être un registre (sinon &i est indéterminée). t[0] 0xAFE4 t[1] 0xAFE8 t[2] 0xAFEC t[3] 0xAFF0 t[4] retour de foo() 0xAFF8 i : 0x xAFFC valeur Adresse SP : Stack Pointer (R13 sur ARM) Intérêt de l allocation en pile : Efficacité. Limites de l alloc en pile : Programmation fonctionnelle.

20 Abstraction pour la mémoire de travail : «le tas» But : pouvoir utiliser des données dont la durée de vie n est ni associées à un bloc de code ( variables locales) ni associées à la durée de vie du programme entier ( variables globales). En C utilisation de void *malloc(int size); pour l allocation, et void free(void *ptr); pour la libération. Stratégie d allocation dans le tas : «liste de blocs» 1. Initialement : Un bloc libre de taille : la taille de la mémoire disponible pour le tas Une liste chaînée de blocs libres Une liste des blocs alloués 2. Allouer : chercher un bloc libre de taille suffisante. Deux stratégies : Prendre le premier bloc libre satisfaisant : «first fit» Prendre le bloc libre le plus proche de la taille fixée : «best fit» 3. Libérer : déclarer le bloc occupé libre. Fusionner le bloc avec ses voisins libres (constituer des bloc libres les plus grands possibles) Premier utilisé Premier libre Avant utilisation : Sys_info Premier utilisé Premier libre Après utilisation : Sys_info Sys_info Sys_info Sys_info Sys_info Stratégie d allocation dans le tas : «arbres dichotomiques» 1. Initialement : Un bloc, ou une série de blocs déclarés vides 2. Allouer : Chercher un bloc libre de la taille la plus proche de la taille demandée Marquer ce bloc comme bloc feuille occupé 3. Libérer : Supprimer le bloc feuille occupé, et le marquer libre. Si le bloc frère (issu du même bloc père) est libre, marquer le bloc père comme libre. Espace réellement utilisé 128 octets 32 octets octets Les principales suites de subdivision utilisé sont : U n+1 = 2.U n ou U n+2 = U n+1 + U n (Fibonatchi)

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Programmation impérative

Programmation impérative Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

Structure d un programme

Structure d un programme Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation 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étail

Architecture des ordinateurs

Architecture 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étail

IV- Comment fonctionne un ordinateur?

IV- 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étail

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université Systèmes d Exploitation - ENSIN6U3 Systèmes de gestion de fichiers - SGF Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Programmation assembleur : aperçu

Programmation assembleur : aperçu Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal

Plus en détail

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Cours de Système : Gestion de Fichiers

Cours 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étail

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

Architecture des ordinateurs Introduction à l informatique

Architecture des ordinateurs Introduction à l informatique Architecture des ordinateurs Introduction à l informatique 17 septembre 2004 1 2 3 4 5 6 Les interrupteurs... 0V 5V Ce sont des composants électroniques qui laissent pser un courant principal lorsque la

Plus en détail

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

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

Le système de gestion des fichiers, les entrées/sorties. Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE 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étail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Conventions d écriture et outils de mise au point

Conventions 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étail

LA mémoire principale est le lieu où se trouvent les programmes et les

LA mémoire principale est le lieu où se trouvent les programmes et les Chapitre 9 Gestion de la mémoire LA mémoire principale est le lieu où se trouvent les programmes et les données quand le processeur les exécute. On l oppose au concept de mémoire secondaire, représentée

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

Plus en détail

Leçon 1 : Les principaux composants d un ordinateur

Leçon 1 : Les principaux composants d un ordinateur Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION 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étail

Système de Gestion de Fichiers

Système de Gestion de Fichiers Chapitre 2 Système de Gestion de Fichiers Le système de gestion de fichiers est un outil de manipulation des fichiers et de la structure d arborescence des fichiers sur disque et a aussi le rôle sous UNIX

Plus en détail

Compilation (INF 564)

Compilation (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étail

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

Processus! 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étail

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques) Chapitre 4 Le système de Gestion de Fichiers 1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques) 1 Systèmes d entrée/sortie Concepts importants : Matériel E/S

Plus en détail

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur

Plus en détail

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ MODULE I1 Plan Chapitre 1 Qu'est ce qu'un S.E? Introduction Historique Présentation d'un S.E Les principaux S.E R&T 1ère année Votre environnement Sylvain MERCHEZ Introduction Introduction Rôles et fonctions

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

CH.3 SYSTÈMES D'EXPLOITATION

CH.3 SYSTÈMES D'EXPLOITATION CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,

Plus en détail

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

Exé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étail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers. I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

TD Architecture des ordinateurs. Jean-Luc Dekeyser

TD Architecture des ordinateurs. Jean-Luc Dekeyser TD Architecture des ordinateurs Jean-Luc Dekeyser Fiche 1 Nombres de l informatique Exercice 1 Une entreprise désire réaliser la sauvegarde de ses données sur un site distant. Le volume de données à sauvegarder

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11) 1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général

Plus en détail

Résumé Génération de code Le code intermédiaire

Résumé Génération de code Le code intermédiaire Résumé Analyse INFO0004 Structure des langages de programmation Génération de code ; liaison et exécution Justus H. Piater Programmation Analyse Compilation Liaison fichier texte Analyse lexicale flux

Plus en détail

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse EX4C Systèmes d exploitation Séance 14 Structure des stockages de masse Sébastien Combéfis mardi 3 mars 2015 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution

Plus en détail

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Cours Programmation Système

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étail

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique 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étail

La carte à puce. Jean-Philippe Babau

La carte à puce. Jean-Philippe Babau La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus

Plus en détail

Chapitre 3 : Système de gestion de fichiers

Chapitre 3 : Système de gestion de fichiers : 3.1- Introduction Le système de gestion de fichiers (SGF) est la partie la plus visible d un système d exploitation qui se charge de gérer le stockage et la manipulation de fichiers (sur une unité de

Plus en détail

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

03/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étail

Structure de base d un ordinateur

Structure de base d un ordinateur Structure de base d un ordinateur 1-Définition de l ordinateur L ordinateur est un appareil électronique programmable qui traite automatiquement les informations. Il est constitué de l unité centrale et

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 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étail

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Guide pour l Installation des Disques Durs SATA et la Configuration RAID Guide pour l Installation des Disques Durs SATA et la Configuration RAID 1. Guide pour l Installation des Disques Durs SATA... 2 1.1 Installation de disques durs Série ATA (SATA)... 2 2. Guide de Configurations

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION 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étail

Réalisation d un OS 32 bits pour PC(x86)

Réalisation d un OS 32 bits pour PC(x86) Rapport projet tutoré Réalisation d un OS 32 bits pour PC(x86) Maxime Chéramy Nicolas Floquet Benjamin Hautbois

Plus en détail

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT Commandes Linux Gestion des fichiers et des répertoires Lister les fichiers Lister les fichiers cachés Lister les répertoires d un répertoire Lister les fichiers par date Les droits Types de fichier Supprimer

Plus en détail

Cours 1 : La compilation

Cours 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étail

Bases de programmation. Cours 5. Structurer les données

Bases 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étail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 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étail

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément

Plus en détail

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que CQP 112 Introduc/on à la programma/on Thème 2 : Architecture d un système informa/que Département d informa/que CQP 112 : Introduc/on à la programma/on Plan 1. Historique des ordinateurs 2. Composants

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence 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étail

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre 2011. Université de Rennes I - IRISA

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre 2011. Université de Rennes I - IRISA SGM Master S.T.S. mention informatique, première année Isabelle Puaut Université de Rennes I - IRISA Septembre 2011 Isabelle Puaut SGM 2 / 1 Organisation de l enseignement Semestre 1 : processus, synchronisation

Plus en détail

Cours A7 : Temps Réel

Cours 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étail

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

Initiation. à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étail

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4. VMware ESX/ESXi 1. Les composants d ESX VMware ESX4 est le cœur de l infrastructure vsphere 4. C est un hyperviseur, c est à dire une couche de virtualisation qui permet de faire tourner plusieurs systèmes

Plus en détail

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH PARAGON Disk Wiper Guide de l utilisateur Paragon Technology GmbH, System Programmierung Copyright Paragon Technology GmbH Publié par : Paragon Technology GmbH System Programming Pearl-Str. 1 D-79426 Buggingen

Plus en détail

Concept de machine virtuelle

Concept de machine virtuelle Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine

Plus en détail

La technologie Java Card TM

La 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étail

Introduction au langage C

Introduction 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étail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1 CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

Cours 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. 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étail

Introduction. Adresses

Introduction. Adresses Architecture TCP/IP Introduction ITC7-2: Cours IP ESIREM Infotronique Olivier Togni, LE2I (038039)3887 olivier.togni@u-bourgogne.fr 27 février 2008 L Internet est basé sur l architecture TCP/IP du nom

Plus en détail

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

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

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Bertil FOLLIOT et Gaël THOMAS Cette version est une préversion de l article accepté par «Technique de l ingénieur» (Hermes).

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION 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étail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

Administration de Parc Informatique TP07 : Installation de Linux Debian

Administration de Parc Informatique TP07 : Installation de Linux Debian Institut Galilée L2 Info S1 Année 2012 2013 1 Une machine virtuelle Administration de Parc Informatique TP07 : Installation de Linux Debian Le but du TP est d installer Linux (en l occurrence la distribution

Plus en détail

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Unix/Linux I. 1 ere année DUT. Université marne la vallée Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins

Plus en détail

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et

Plus en détail

Microprocesseur + Logiciel

Microprocesseur + Logiciel Microprocesseur + Logiciel Robot EVALBOT MOHAMED AKIL BUREAU 5253 UNITE IGI 1001 PROGRAMMATION DES MICROPROCESSEURS Présentation [IGI1001] CONTEXTE SCIENTIFIQUE... 4 1. OBJECTIFS DE L UNITE... 6 2. OBJECTIFS

Plus en détail

Systèmes informatiques

Systèmes informatiques Systèmes informatiques Franck Guingne, sur la base du cours d Olivier Lecarme Cours Licence 1; Semestre 2 2009 2010 Troisième cours : Installation d une distribution GNU/Linux. 1 Les différentes distributions

Plus en détail

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)

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) 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étail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE 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étail

Traitement de données

Traitement de données Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules

Plus en détail

Back up Server DOC-OEMSPP-S/6-BUS-FR-17/05/11

Back up Server DOC-OEMSPP-S/6-BUS-FR-17/05/11 Back up Server DOC-OEMSPP-S/6-BUS-FR-17/05/11 Les informations contenues dans le présent manuel de documentation ne sont pas contractuelles et peuvent faire l objet de modifications sans préavis. La fourniture

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan 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étail

Programmation système en C/C++

Programmation 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étail

TD 1 - Installation de système UNIX, partitionnement

TD 1 - Installation de système UNIX, partitionnement Département des Sciences Informatiques Licence Pro R&S 2009 2010 Administration Système T.T. Dang Ngoc dntt@u-cergy.fr TD 1 - Installation de système UNIX, partitionnement 1 Préambule Il existe de très

Plus en détail

Java - la plateforme

Java - la plateforme Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)

Plus en détail

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université Systèmes d Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté des Sciences

Plus en détail