La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

SYSTÈME DEXPLOITATION I SIF-1015. Contenu du cours 1 Introduction aux systèmes dexploitation (SE) –Organisation d un système informatique –Fonctionnalités.

Présentations similaires


Présentation au sujet: "SYSTÈME DEXPLOITATION I SIF-1015. Contenu du cours 1 Introduction aux systèmes dexploitation (SE) –Organisation d un système informatique –Fonctionnalités."— Transcription de la présentation:

1 SYSTÈME DEXPLOITATION I SIF-1015

2 Contenu du cours 1 Introduction aux systèmes dexploitation (SE) –Organisation d un système informatique –Fonctionnalités de LINUX –Rôles des SE –Structures générales –Développement sous LINUX/UNIX Environnement de travail LINUX et langage C –Langage C sur LINUX (exemples de programmes) –Utilitaire make LECTURES: Chapitres 1, 8 et 9 (Prog. LINUX) Chapitre 1 (OSC, Prog. système en C) Notes de cours ( site ftp UQTR, répertoire Documentation )

3 Contenu du cours 1 Exemples en langage C –site ftp UQTR des notes de cours, répertoire Exemples –accès au serveur Apache à partir du WWW ou UQTR, Pour changer votre mot de passe – À partir du WWW ou UQTR, Voir guide de lutilisateur des principales commandes UNIX quick_guide.txt sur le site ftp UQTR des notes de cours (répertoire Documentation)

4 Contenu du cours 1 Petit survol rapide de LINUX avec des commandes de l'environnement Linux –http://linuxreviews.org/beginnerhttp://linuxreviews.org/beginner Autre petit survol de linux –http://www.linuxhotbox.com/adminguide/lnag_basics.htmlhttp://www.linuxhotbox.com/adminguide/lnag_basics.html Introduction à la programmation en C –http://docs.linux.cz/programming/c/c_marshall/CE.htmlhttp://docs.linux.cz/programming/c/c_marshall/CE.html Révision des structures de données importantes (ex: liste simplement chaînée) –ftp://ftp.uqtr.ca/pub/dmat/meunier/sif1015/Documentatio n/ Structures de données Élémentaires (b).ppt

5 Contenu du cours 1 Livre de référence en français (traduction du livre de Mitchell) –http://mtodorovic.developpez.com/linux/programmation- avancee/http://mtodorovic.developpez.com/linux/programmation- avancee/ –http://gl.developpez.com/tutoriel/outil/makefile/http://gl.developpez.com/tutoriel/outil/makefile/ Livre de référence en anglais (Mitchell) –http://www.advancedlinuxprogramming.com/alp-folder

6 Contenu du cours 1 Installation dun client TELNET secure (ssh) –Télécharger le client ssh puTTY à partir du site: Installation dun client WIN32 –Télécharger le client WIN32 à partir du site ftp des notes de cours (UQTR): ftp://ftp.uqtr.ca/pub/dmat/meunier/sif1015/Documentation/NXFich ier.zip

7 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Composantes de base dun ordinateur (vue abstraite)

8 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Composantes de base dun ordinateur (vue matérielle)

9 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Composantes de base dun ordinateur (vue matérielle)

10 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Cycle dexécution dun instruction

11 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Gestion des interruptions Types dinterruption

12 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Gestion des interruptions (Cycle dexécution dun instruction)

13 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Gestion des interruptions (Exemple: I/O)

14 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Gestion des interruptions (Exemple: I/O) Exécution dun programme avec ou sans interruption

15 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Gestion des interruptions Séquence de changements de contrôle dun programme lors dinterruptions

16 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Gestion de la mémoire Hiérarchie de la mémoire

17 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Gestion de la mémoire Hiérarchie de la mémoire

18 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Gestion de la mémoire Mémoire cache et RAM

19 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Fonctionnement des systèmes modernes Organisation Générale

20 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect matériel) –Fonctionnement des systèmes modernes Architecture Symmetric Multi Programming

21 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect logiciel)

22 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect logiciel)

23 Introduction aux systèmes dexploitation (SE) Organisation dun système informatique (Aspect logiciel) Modes dexécution: Utilisateur (USER), Noyau (KERNEL)

24 Introduction aux systèmes dexploitation (SE) Fonctionnalités dun système dexploitation –Gestionnaire de ressources matérielles

25 Introduction aux systèmes dexploitation (SE) Architecture de LINUX (voir

26 Introduction aux systèmes dexploitation (SE) Architecture de LINUX

27 Introduction aux systèmes dexploitation (SE) Fonctionnalités de LINUX LINUX est une implantation d UNIX respectant les spécifications POSIX (Portable Operating System Interface), normes IEEE pour la standardisation du code source. LINUX possède aussi des extensions du SYSTEM V et BSD d UNIX.

28 Introduction aux systèmes dexploitation (SE) Fonctionnalités de LINUX –Multi-tâches, multi-processeurs: exécution de plusieurs programmes en même temps sur un ou plusieurs processeurs –Multi-plate-formes –Multi-utilisateurs –Support des communications inter-processus (tubes, IPC, socket) –Gestion des signaux –Gestion des terminaux POSIX, pseudo-terminaux, contrôle de processus –Support de périphériques (carte de son, graphiques, réseaux, SCSI) –Buffer cache: tampon mémoire des I/O par bloc des processus –Gestion de la mémoire (paging) –Librairie partagée –Système de fichiers: partition LINUX avec le système de fichier EXT2 (EXT3) –Support réseaux (TCP/IP)

29 Introduction aux systèmes dexploitation (SE) Rôles dun SE –Offrir une machine virtuelle: Le SE sexécute sur une machine physique qui possède une interface de programmation de bas niveau, des abstractions de haut niveaux, une interface de programmation et dutilisation évoluée. Standardisation de linterface dutilisation et de programmation donc d utilisation facile sur dautres architectures.

30 Introduction aux systèmes dexploitation (SE) Un SE fournit des services aux programmes usagers Services accessibles par des appels systèmes (system calls) Appel système équivalent à un appel à une procédure quand il apparaît dans un programme MAIS transfert au SE lors de lexécution SYSTEM CALLS définissent les services et servent dinterface Accès aux services par lappel de routines SE

31 Introduction aux systèmes dexploitation (SE) Vue des services offerts par un SE

32 Introduction aux systèmes dexploitation (SE) Exemple dappel système (open())

33 Introduction aux systèmes dexploitation (SE) Programme en C et appel système

34 Introduction aux systèmes dexploitation (SE) Types dappels système (Windows/UNIX)

35 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Partage du processeur Multi-tâches: plusieurs processus s exécute en même temps (ex: lancement d une impression, formattage d une dis- quette, envoi/réception d un mail peuvent s exécuter en même temps) Le SE coordonne les processus par un système d ordonnan- cement qui permet de donner le processeur tour à tour à chacun des processus

36 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Partage du processeur (Multi-tâches)

37 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Partage du processeur (Multi-tâches)

38 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Partage du processeur (traitement concurrent) Le SE partage le processeur unique entre les multiples programmes (multiprogramming, multitasking, timesharing) Le SE alloue le CPU à chaque processus tour à tour

39 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Partage du processeur Distinction entre programme et processus –Nous voyons un programme comme une séquence dinstructions sexécutant sans interruptions –Dans un environnement concurrent, plusieurs processus peuvent sexécuter –Le CPU est partagé par les processus –Des processus peuvent exécuter le même programme et parfois les mêmes instructions –Un appel de procédure normale ne retourne que lorsque la procédure est terminée –Plusieurs processus peuvent exécuter le même code simultanément –Le stockage des variables locales et des arguments de procédures est propre à chaque processus

40 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Partage du processeur (Distinction entre programme et processus)

41 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Partage du processeur Partage de la mémoire –Chaque processus possède son ensemble de variables locales, de paramètres formels et dappels de procédure MAIS peuvent aussi partager des variables globales –Comment gérer le partage des variables globales? –Par la synchronisation ou l exclusion mutuelle Synchronisation –Deux processus qui échangent des informations ordonnées doivent communiquer en synchronisme. Les sémaphores permettent la synchronisation des processus Exclusion mutuelle –Plusieurs processus qui coopèrent sont dit en exclusion mutuelle si un seul dentre eux a accès à une ressource à un temps donné –Pour protéger laccès aux éléments dune liste liée nous devons protéger et rendre exclusif laccès à chaque élément

42 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Gestion mémoire Le SE doit gérer la mémoire physique de lordinateur Avec de la mémoire physique restreinte, le SE utilise le disque comme mémoire auxiliaire (SWAP) Le SE doit aussi protéger les zones de mémoires allouées aux processus Le SE doit gérer lensemble de la mémoire (RAM et disque) en utilisant le concept de mémoire virtuelle

43 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Gestion mémoire (Mémoire virtuelle)

44 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Gestion mémoire (Mémoire virtuelle)

45 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Gestion de ressources Le SE offre au processus une interface permettant de partager les ressources (disques, imprimantes, etc.) de la machine Le SE maintient des listes de ressources disponibles et en cours d utilisation, ce qui permet de les attribuer aux processus qui en ont besoin

46 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Gestion de ressources Éléments importants dun SE pour la gestion des ressources (CPU: séquencement, dispositifs dI/O)

47 Introduction aux systèmes dexploitation (SE) Rôles dun SE: –Communication Gestion des évènements provenant soit du matériel (interrup- tions), soit des applications (appels système). Le SE traite ces événements et les acheminent aux processus concernés Le SE met en communication plusieurs processus sur la même machine ou distants qui peuvent échanger des informations, communiquer ensembles, se synchroniser (signaux, IPC, tubes, sockets)

48 Introduction aux systèmes dexploitation (SE) Structures générales: –Noyau du système UNIX Appels système: opérations exécutées en mode noyau Système de fichiers: I/O sur les périphériques Buffer cache: tampon pour I/O par bloc Gestionnaire de périphériques: gestion de bas niveau des disques, des imprimantes etc. Gestion réseau: protocoles de communication réseau Interface avec la machine: code (assembleur) d accès bas niveau au matériel de la machine

49 Introduction aux systèmes dexploitation (SE) Structures générales: –Noyau du système UNIX Centre du noyau: –Gestion des processus (création, duplication, destruction) –Ordonnancement –Signaux –Gestion de mémoire (physique et virtuelle)

50 Introduction aux systèmes dexploitation (SE) Structures générales: Noyau du système UNIX

51 Introduction aux systèmes dexploitation (SE) Structures générales: Noyau du système UNIX traditionnel

52 Introduction aux systèmes dexploitation (SE) Structures générales: Noyau du système UNIX plus récent

53 Introduction aux systèmes dexploitation (SE) Structures générales:

54 Introduction aux systèmes dexploitation (SE) Autres SE: Architectures Mac OS X, IOS, SE sur les Iphone, Ipad, Ipod Touch

55 Introduction aux systèmes dexploitation (SE) Autres SE: Architectures Google Android (Tablette Iconia Acer, Galaxy Tab Samsung, Tablette Xoom Motorola, etc)

56 Introduction aux systèmes dexploitation (SE) Autres SE: Architectures Google Android (Tablette Iconia Acer, Galaxy Tab Samsung, Tablette Xoom Motorola, etc)

57 Introduction aux systèmes dexploitation (SE) Autres SE: Architectures Windows Phone 7

58 Introduction aux systèmes dexploitation (SE) Autres SE: Architectures Windows 2000

59 Introduction aux systèmes dexploitation (SE) Autres SE: Architectures Windows XP kernel32.dll user32.dll gdi32.dll

60 Introduction aux systèmes dexploitation (SE) Développement sous LINUX –Phases de la compilation

61 Introduction aux systèmes dexploitation (SE) Développement sous LINUX –Avec les distributions de LINUX, gcc permet d enchaîner les phases de la compilation d un programme –Options de gcc: -c: générer que le code objet -o NOM_FICHIER: générer un fichier exécutable -I REPERT: répertoire ou cpp charge les fichiers en-tête -L REPERT: répertoire ou ld charge les bibliothèques -l BIBLIOTHEQUE: inclusion d une bibliothèque lors de l édition des liens –Make: outil de compilation de projets Permet la compilation séparée des fichiers sources Permet la compilation des fichiers sources modifiés Permet de générer des fichiers exécutables

62 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Le langage C est utilisé comme langage de programmation de base pour le cours Exemples de programmes en C (serveur Apache: mil08/~meunier/public_html/exemples/exemples_meteo) Images utilisées dans les exemples (serveur Apache: mil08/~meunier/public_html/exemples/exemples_meteo)

63 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Étapes de segmentation dune image pour la détection des perturbations Lire limage source dans un vecteur Créer le vecteur contenant limage résultante Traiter limage source de façon à détecter les perturbations Écrire limage résultante Libérer la mémoire

64 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Image source

65 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Image résultante possible

66 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Diagramme de structure detecter_perturbation_MAIN_VEC detecter_perturbation_VEC creer_image_destination_VEC lire_image_source_VEC ecrire_image_destination_VEC liberer_memoire_VEC argv h l imageS imageD h l si ss argv imageD h l imageS imageD argc argv

67 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Rappel sur les pointeurs ptr char *ptr; char car; ptr = (unsigned char *) malloc(8); car = ptr[1]; car = *(ptr+1);

68 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Rappel sur les pointeurs et liste simplement liée (voir chapitre 10 A book on C) ptr struct pixel{ unsigned char ng; struct pixel *suivant; }; struct pixel p0, p1, p2, p3, p4, p5, p6, p7; NULL Création de 8 objets struct pixel en mémoire

69 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Rappel sur les pointeurs et liste simplement liée struct pixel *ptr; ptr = &p0; p0.ng = 2; // ptr->ng = 2; p0.suivant = &p1; ptr p0 2 ptr p0 ptr p0p1 2

70 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Rappel sur les pointeurs et liste simplement liée p1.suivant = &p2; p2.suivant = &p3; p3.suivant = &p4; p4.suivant = &p5; p5.suivant = &p6; p6.suivant = &p7; p7.suivant = NULL; ptr p0p1 2 p2 ptrNULL p0p1p2p3p4p5p6p7

71 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Rappel sur les pointeurs ptr

72 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Rappel sur les pointeurs char **ptr; /* *ptr[] */ char *ptr_char; /* ptr_char[] */ char car; ptr = (unsigned char **) malloc(sizeof(unsigned char *) * 6); ptr [1] = (unsigned char *) malloc(sizeof(unsigned char) * 8); ptr_char = ptr [1]; /* = *(ptr+1); */ car = ptr [1] [1]; /* = *(*(ptr+1)+1); */ car = ptr_char [1]; /* = *(ptr_char+1); */

73 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Programme principal (detecter_perturbation_MAIN_VEC) /* LA CONDITIONNELLE */ if(argc == NBARG) { /* CONDITION VRAIE */ h = atoi(argv[3]); /* CONVERTION DE TYPE */ } else { /* CONDITION FAUSSE */ printf(\n Nombre …..); exit(1); /* SORTIR DU PROGRAMME */ }

74 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Programme principal (detecter_perturbation_MAIN_VEC)

75 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Fonction lire_image_source_VEC() /* OUVERTURE, LECTURE ET FERMETURE DE FICHIER */ FILE *fp1; fp1 = fopen(argv[1],r); fread(vec,sizeof(unsigned char),h*l,fp1); fclose(fp1); /* RETOURNER LE POINTEUR SUR LIMAGE */ return(vec);

76 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Fonction lire_image_source_VEC()

77 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Fonction lire_image_source_VEC() Tableau logique Vecteur physique

78 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Accès à un emplacement dun tableau stocké dans un vecteur int i,j; unsigned char pixel; i = j = 1; pixel = vec[i*8+j]; /* i est le numéro de rangée et j celui de la colonne */

79 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Procédure detection_perturbation_VEC() /* LA BOUCLE POUR */ for(i=0;i

80 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Procédure detection_perturbation_VEC()

81 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Procédure ecrire_image_destination_VEC() /* OUVERTURE, ECRITURE ET FERMETURE DE FICHIER */ FILE *fp1; fp1 = fopen(argv[2],w); fwrite(imageD,sizeof(unsigned char),h*l,fp1); fclose(fp1);

82 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Procédure ecrire_image_destination_VEC()

83 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Procédure liberer_memoire_VEC() /* LIBERER LA MEMOIRE */ free(imageS);

84 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Procédure liberer_memoire_VEC()

85 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Fichier traitement.h Contient les constantes (ex: NBARG) Et les prototypes des en-têtes de fonctions et procédures

86 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Utilitaire make Permet la compilation séparée des procédures et fonctions Permet la création de librairies Permet de créer un fichier exécutable –Utilitaire make (utilisation) Éditer le fichier Makefile dans le répertoire où sont les sources Pour lancer lutilitaire make –taper make

87 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Utilitaire make Référence: ftp://ftp-developpez.com/gl/tutoriel/outil/makefile/Makefile.pdf –Utilitaire make (exemple dutilisation)

88 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Utilitaire make (exemple dutilisation) Format des énoncés dans le fichier makefile

89 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Fichier Makefile

90 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Utilitaire daffichage dimages Convertir les images.raw en images.pgm rawtopgm g8ir_ raw > r.pgm Affichage des images xv r.pgm Ou Taper gimp ce qui ouvrira un logiciel de manipulation dimages et sélectionner limage r.pgm

91 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Exemple d utilisation du programme Nom du fichier exécutable: detecter_perturbation_MAIN_VEC argument 1: g8ir_ raw (image source) argument 2: g8ir_080198_SEG.raw (image destination) argument 3: 740 (nombre de ligne de l image) argument 4: 842 (nombre de colonnes de l image) argument 5: 190 (borne inférieure de l intervalle des valeurs de niveaux de gris) argument 6: 195 (borne supérieure de l intervalle des valeurs de niveaux de gris)

92 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Exemple d utilisation du programme g8ir_ raw

93 Introduction aux systèmes dexploitation (SE) Environnement de travail LINUX et langage C –Exemple d utilisation du programme g8ir_080198_SEG_190_195.raw


Télécharger ppt "SYSTÈME DEXPLOITATION I SIF-1015. Contenu du cours 1 Introduction aux systèmes dexploitation (SE) –Organisation d un système informatique –Fonctionnalités."

Présentations similaires


Annonces Google