1 / 59

Planification du cours #2

Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #2: Systèmes d’exploitation UNIX / Linux Enseignant: Jean-Philippe Roberge. Planification du cours #2. Petite révision du cours #1: Évolution des systèmes d’exploitation (S.E.) Historique des S.E.

Download Presentation

Planification du cours #2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systèmes d’exploitation et programmation de systèmes-GPA435-Cours #2: Systèmes d’exploitation UNIX / LinuxEnseignant: Jean-Philippe Roberge Jean-Philippe Roberge - Mai 2014

  2. Planification du cours #2 • Petite révision du cours #1: • Évolution des systèmes d’exploitation (S.E.) • Historique des S.E. • Structure des S.E. modernes (aujourd’hui) • Tendance des S.E. modernes (aujourd’hui) • Vos intérêts et attentes • Théorie du cours #2 - Systèmes d’exploitation UNIX / Linux • Terminal de commande et syntaxe des commandes • Documentation standard • Structure des fichiers • Quelques (petits) exercices Jean-Philippe Roberge - Mai 2014

  3. Révision du cours #1 (1) http://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Operating_system_placement.svg/165px-Operating_system_placement.svg.png • Système d’exploitation: • Une suite de programmes qui gère l’utilisation des ressources d’un ordinateur (ou système ordiné) et qui fournit des services aux applications. • Famille de systèmes d’exploitation: • Unix, Linux, Windows NT, Mac OS • Exemples de S.E.: • Ubuntu 10.04, Mac OS X v10.5, Windows Vista… • Systèmes d’exploitation mobiles: • Android Vx.x (Noyau Linux), iOS Vx.x, Windows Phone 7, etc… Jean-Philippe Roberge - Mai 2014

  4. Révision du cours #1 (2) • 1-Traitement en série: • Un programme à la fois, généralement écrit en langage machine. • Inefficace car l’ordinateur est monopolisé par un seul programmeur. • 2-Traitement par lots: • Concept de « moniteur »: un programme qui veille sur les programmes (jobs) des utilisateurs. • Chaque utilisateur soumet leur tâche à l’opérateur de l’ordinateur: • cartes perforées, rubans magnétiques; • regroupement des tâches; • exécution séquentielle des regroupements. • Par contre, une tâche peut monopoliser longtemps le processeur. • Attendre la fin des opérations E/S; • Les rubans magnétiques avaient un temps d’accès très long. • Pour augmenter le rendement de l’ordinateur récupérer ce temps perdu! Jean-Philippe Roberge - Mai 2014

  5. Révision du cours #1 (3) • 3-Traitement par lots multiprogrammé: • Multiprogrammation  exécuter une autre tâche dans les portions de temps où le processeur est inactif. (Plus d’un programmes) • Exige cependant la coopération du matériel: • Coopération du matériel  interruptions matérielles. • Création d’un module MM (Memory Management). • Création d’un module d’ordonnancement des tâches. • 4-Traitement en temps partagé: • Exemple: le CTSS (Compatible Time-Sharing System) de MIT • Idée de base  le blocage et le redémarrage périodique des tâches à l’aide d’une interruption cadencée par une source stable. • Tour à tour, le moniteur passe le contrôle à chacune des tâches en mémoire. Chaque tâche bénéficie alors du même temps d'utilisation du processeur. • Permet à plusieurs utilisateurs de démarrer des tâches sur un même ordinateur, au moyen de terminaux, et réduit le temps de réponse interactive. Jean-Philippe Roberge - Mai 2014

  6. Révision du cours #1 (4) • 5- Systèmes multi-tâches et multi-utilisateurs: • Environnement multiprogrammé + l’interactivité des systèmes en temps partagé. • Multitâche  multiprogrammation & Multi-utilisateur  temps partagé. • MULTICS (MULTiplexed Information and Computer Service) du MIT, Bell, General Electric en 1969. • MULTICS avait introduit plusieurs innovations: • découplage entre le S.E. et le matériel • mémoire virtuelle: • Pagination de la mémoire; • liaison dynamique. • système de fichiers hiérarchique. • MULTICS avait introduit le concept de processus: • 1) programme exécutable; • 2) données associées au programme; • 3) contexte d’exécution du programme. Jean-Philippe Roberge - Mai 2014

  7. Cours #2 Jean-Philippe Roberge - Mai 2014

  8. Structure des systèmes d’exploitation modernes (1) • D’abord, cette structure est organisé en couches hiérarchiques: • Nous allons approfondir ces couches dans les transparents qui suivent… Jean-Philippe Roberge - Avril 2014

  9. Structure des systèmes d’exploitation modernes (2) • 1 -Composantsmatériels (Processeur, mémoire, périphériques, écran, etc…): • Processeurs instructions privilégiées; • adressage segmenté; • système de signaux. • 2- Mémoire virtuelle: • Donner l’illusion au programme, qu’il travaille avec de la mémoire contigüe. Protection contre la corruption des données Interruption logicielle Jean-Philippe Roberge - Avril 2014

  10. Structure des systèmes d’exploitation modernes (3) • 3- Système de fichiers • organisation cohérente de la mémoire secondaire; • système de fichiers hiérarchique  arbre inversé; • sous-répertoires sont des enfants d’un répertoire racine; • système de fichiers hiérarchique  un répertoire peut contenir d’autres répertoires. Jean-Philippe Roberge - Avril 2014

  11. Structure des systèmes d’exploitation modernes (4) • 3- Système de fichiers (suite) • Pour définir l’emplacement d’un fichier, on peut le faire à l’aide de plusieurs façons, dont les trois façons suivantes: chemin absolu chemin relatif parcours non linéaire Jean-Philippe Roberge - Avril 2014

  12. Structure des systèmes d’exploitation modernes (5) • 3 - Système de fichiers (suite): • accès simultanés par plusieurs processus; • accès simultanés par plusieurs utilisateurs; • deux processus utilisent le même fichier. Des droits d’accès sont nécessaires; Primitifs de verrouillage et d’ouverture exclusive sont nécessaires. Pi Pn Jean-Philippe Roberge - Avril 2014

  13. Structure des systèmes d’exploitation modernes (6) • 4- Communication inter-processus • Trois points importants: Jean-Philippe Roberge - Avril 2014

  14. Structure des systèmes d’exploitation modernes (7) • 4- Communication inter-processus (suite): • La famine: • L’impasse: Interdépendance (de données) des processus empêche la progression de tous les processus impliqués Analogie: arrêt toutes directions à l’intersection des chemins croisés Interdépendance (de données) des processus empêche la progression d’un sous-ensemble de processus impliqués Analogie: devant un tourniquet à l’entrée d’un métro à l ’heure de pointe Jean-Philippe Roberge - Avril 2014

  15. Structure des systèmes d’exploitation modernes (8) • 4a Synchronisation des processus: • fonctions attendre() et signal(); • variables sémaphores; • instructions atomiques. Des instructions exécutées en séquence sans interruption par aucune autre instruction du processeur. Variable entière n’admettant que trois opérations: i) initialisation à une valeur non négative; ii) incrémentation de sa valeur; iii) décrémentation de sa valeur. Opérations réalisées par des instructions atomiques. Fonctions de synchronisation qui modifient une variable sémaphore Jean-Philippe Roberge - Avril 2014

  16. mémoire partagée; tuyaux (pipes); messages. Structure des systèmes d’exploitation modernes (9) • 4b - Transfert des données entre processus: Une plage de mémoire (physique ou virtuelle) partagée entre plusieurs processus Sans liens de communication permanents. Les messages sont déposés dans la queue de message des processus. Peuvent donc réaliser des protocoles autres que le FIFO. Structure de données FIFO. Leurs accès sont gérés par le S.E. Jean-Philippe Roberge - Avril 2014

  17. Structure des systèmes d’exploitation modernes (10) • 5 - Modèle des processus: • Processus  entité dynamique; • interaction par communication ; • utilise des ressources; possède une durée de vie et sont en interaction avec d’autres processus utilisant le système de communication inter-processus (mémoire partagée, tuyaux, messages, etc.) du S.E. Ces ressources sont: fichiers, mémoire, sémaphores périphériques d’E/S, etc. Ces ressources sont contrôlées par le S.E. Jean-Philippe Roberge - Avril 2014

  18. Processus prêt pour l’exécution Processus créé mais pas encore exécutable Processus en exécution dans le processeur Processus en suspension: attendant l’arrivée d’un événement ou la fin d’une opération Structure des systèmes d’exploitation modernes (11) • 5 - Modèle des processus (suite): Arrêt du processus: fin de son exécution ou causé par une condition d’erreur Jean-Philippe Roberge - Avril 2014

  19. Structure des systèmes d’exploitation modernes (12) • 6 - Interpréteur de commandes • Un processus utilisateur; • Permet l’exécution des programmes; • Manipulation des fichiers; • Accéder aux périphériques de l’ordinateur; • Automatisation des procédures par fichiers de commandes; • Langages de programmation « shell ». Jean-Philippe Roberge - Avril 2014

  20. Tendances des S.E. modernes (1) • Tendances des systèmes d’exploitation modernes: • Architecture micro-noyau (microkernel); • Exécution multifilaire (multithreading); • Traitement parallèle symétrique (symmetric multiprocessing); • Système d’exploitation pour processeurs multi-cœurs. Jean-Philippe Roberge - Mai 2014

  21. Tendances des S.E. modernes (2) • Noyau: Partie fondamentale du système d’exploitation, il s’agit de la base, c’est-à-dire l’ensemble des processus qui gèrent les ressources de l’ordinateur. Il permet au matériel et au logiciel de communiquer ensemble. • 1 - Architecture micro-noyau: • changement important dans l’organisation interne du S.E.; • Réduire le noyau: seulement quelques processus importants sont assignés au noyau; • les autres services  processus utilisateurs appelés « serveurs »; • séparation explicite entre le noyau d’un S.E. et le développement des serveurs; Jean-Philippe Roberge - Mai 2014

  22. Comparaison entre noyau « monolithic » et micro-noyau: Tendances des S.E. modernes (3) Jean-Philippe Roberge - Mai 2014

  23. Tendances des S.E. modernes (4) • Exemple du concept de micro-noyau: Jean-Philippe Roberge - Mai 2014

  24. Tendances des S.E. modernes (5) • 2 - Exécution multi-fils: • un processus est divisé en plusieurs chemins d’exécution simultanée; • fil d’exécution  unité de travail interruptible et séquentielle; • fil d’exécution  ne possède pas de contexte d’exécution mais utilise celui du processus père; Modèle de programmation concourante Mémoire utilisée, l’état de la pile programme, les ports d’E/S associés, l’état des registres du processeur, etc. Jean-Philippe Roberge - Mai 2014

  25. Tendances des S.E. modernes (6) • 2 - Exécution multi-fils (suite) : • un processus est une collection de fils d’exécution; • fil d’exécution principal  père de tous les fils d’exécution créés; Jean-Philippe Roberge - Mai 2014

  26. Tendances des S.E. modernes (7) • 3 - Traitement parallèle symétrique: • réalisation utilisant l’exécution multifilière; • système à n processeurs (n  256); • mémoire commune accessible par tous les processeurs; • tous les processeurs sont gérés de la même façon et jouent le même rôle; • ordonnancement des fils d’exécution dans tous les processeurs libres. Jean-Philippe Roberge - Mai 2014

  27. Tendances des S.E. modernes (8) • 3 - Traitement parallèle symétrique (suite) : • Nouvelle exigence  «extensibilité» du S.E.; • Application du concept de micro-noyau; • S.E. décentralisé; • Ordonnancement des fils d’exécution réalisé localement par chacun des processeurs; • Collaboration entre les processeurs; • Une réalisation plus complexe du S.E. Jean-Philippe Roberge - Mai 2014

  28. Tendances des S.E. modernes (9) • 4 - Système d’exploitation réparti: • Système d’exploitation qui gère une grappe d’ordinateurs • Complexe, doit gérer la communication et l’allocation des ressources • Méta-SE: Système d’exploitation qui gère d’autres SE, sur des machines locales • 5 - Conception orientée des SE: • Profiter des avantages de la programmation orienté-objet • Concept d’héritage et de spécialisation Jean-Philippe Roberge - Mai 2014

  29. En parlant d’une grappe d’ordinateurs: http://www.directioninformatique.com/luniversite-mcgill-presente-son-superordinateur-en-grappe/11638 Tendances des S.E. modernes (10) Jean-Philippe Roberge - Mai 2014

  30. Génie de la production automatisée GPA435 Système d’exploitation et programmation de système Systèmes d’exploitation Linux 2014

  31. Systèmes d’exploitation Linux (1) • Commandes LINUX • Des programmes écrits en C; • Des fonctions internes à l’interpréteur de commandes. • Pourquoi les apprendre? • Elles représentent un système logique rigoureux; • Elles exigent une démarche systématique tout comme la maîtrise d’une langue; • À travers elles, nous solutionnerons des problèmes en ingénierie d’une façon logique et systématique. 31

  32. Terminal de commande (1) • Terminal Linux • Habitat pour l’interpréteur de commande. L’invite affichée par l’interpréteur de commande. Représentation graphique d’un terminal. 32

  33. Syntaxe des commandes (1) • Format des commandes • Une convention bien établie. • twong@tony-ubuntu-12:~$ commande [—option] [paramètre] L’invite affichée par l’interpréteur de commande. Une commande peut avoir des options et paramètres. Les options sont toujours précédées d’un tiret (—). Les crochets ([]) signifient qu’ils ne sont pas obligatoires. L’historique des commandes lancées. 33

  34. Documentation standard (1) • Comment connaître les options et paramètres des commandes? • L’aide enligne est divisée en sections: GPA435 http://www.linuxmanpages.com/ 34

  35. Documentation standard (2) • Certains noms de commande apparaissent dans plus d’une section • Par exemple la commande rmdir (remove directory) apparaît dans la section 1 et dans la section 2 de l’aide enligne; • rmdir de la section 1 est une commande de l’interpréteur de commande; • rmdir de la section 2 est une fonction de l’interface de programmation du système LINUX. • Pour pouvoir faire la distinction, on écrira parfois: • rmdir(1) pour indiquer la commande rmdir expliquée dans section 1; • rmdir(2) pour indiquer la fonction de programmation rmdir expliquée dans la section 2. 35

  36. Documentation standard (3) • Utiliser l’aide enligne via man • man est elle-même une commande! • Il existe une page d’aide enligne sur man; • man possède donc des options et des paramètres • man [—option] [paramètre] nom_commande • Quelques options: • —s num_section • num_section est le numéro de section (1 à 8) • —M chemin • Indique le chemin du répertoire contenant les pages d’aide enligne Démonstration de la commande Analogie: le mot « dictionnaire » est expliqué dans un dictionnaire 36

  37. Syntaxe des commandes (2) • Exemples • Changement de mot de passe par la commande passwd. passwd —q L’option —q signifie silencieux (quiet). On demande à la commande passwd de réduire au minimum son affichage à l’écran. 37

  38. Syntaxe des commandes (3) • Exemples • Effacer l’écran du terminal par la commande clear. Démonstration de la commande clear Cette commande n’a pas d’option. Note: clear n’efface pas vraiment l’écran du terminal. Elle ne fait que défiler vers le haut les lignes affichées en dehors de la région visible de l’écran. 38

  39. Fichiers et répertoires (1) • Les fichiers sont des éléments importants de tout système informatique • Linux étend le concept des fichiers aux éléments périphériques d’un ordinateur • Linux traite les imprimantes, les ports USB, les ports réseaux, les caméras WEB, etc. comme des fichiers. • Caractéristiques d’un fichier • Il possède un nom • Linux distingue les caractères majuscules et minuscules. Ainsi, MonDoc.texte et mondoc.texte représentent deux fichiers différents. 39

  40. Fichiers et répertoires (2) • Caractéristiques d’un fichier • Il possède un chemin de répertoire • Un fichier est toujours entreposé sur un support (disque, clé USB, mémoire flash, etc.); • L’emplacement d’un fichier est son chemin de répertoire; • En voici quelques example: • /usr/bin/passwd • /bin/ls • /etc/rc0.d/S90halt • Remarques: • Il n’existe pas d’unité de disque comme préfix (pas de c:, d:, e:, etc.) • Les répertoires menant vers le fichier sont séparés par la barre oblique « / » • Le répertoire de base (racine) est représenté par « / » 40

  41. Fichiers et répertoires (3) • Caractéristiques d’un fichier • Il possède un chemin de répertoire • Enfin, l’organisation des répertoires peut être schématisée graphiquement: • /usr/bin/passwd • /bin/ls • /etc/rc0.d/S90halt 41

  42. Fichiers et répertoires (4) • Caractéristiques d’un fichier • Il possède des permissions d’accès • Un fichier peut être lu, écrit et exécuté; • Un fichier peut posséder une combinaison de ces permissions; • On attribue ces permissions en fonction de nos besoins. • Par exemple: • Un document text peut avoir les permissions de lecture (read) et écriture (write); • La permission d’exécution (execute) à un document text est possible – il peut être un document contenant des commandes Linux; • Le fichier représentant un port USB peut avoir les permissions de lecture et écriture; • Il est superflu et illogique d’attribuer la permission d’exécution à un fichier représentant un port USB. 42

  43. Fichiers et répertoires (5) • Parcours des chemins de répertoire • Utiliser la commandecd(1) (change directory) • Deux types de chemins • Absolu • Il fautdonner le chemincompletincluanttous les répertoiresmenantvers le répertoire de destination. • Relatif • À partir du répertoire courant donner la portion du cheminmenantvers le répertoire de destination. Démonstration de la procédure 43

  44. Fichiers et répertoires (6) • Contenu d’un répertoire • Utiliser la commandels(1) (list directory content) pour voir le contenu d’un répertoire • La signification des couleurs • Bleu: répertoire • Bleu pâle: lien (raccourci) • Vert: fichier exécutable ou répertoire standard • Rose: fichier image Note: Ces couleurs sont générées par l’option --color de la commande ls. Voir man dircolors pour les couleurs utilisées. 44

  45. Fichiers et répertoires (7) • Contenu d’un répertoire • ls –l(format détaillé), ls –R(fouille récursive), ls -lR Démonstration de la commande 45

  46. Fichiers et répertoires (8) • Permissions des fichiers et répertoires drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Desktop drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Documents drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Downloads -rw-r--r-- 1 twong twong 8445 Dec 17 19:56 examples.desktop drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Music drwxrwxr-x 2 twong twong 4096 Dec 18 22:52 MyShare drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Pictures drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Public drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Templates drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Videos Le caractère « d » de la première colonne indique qu’il s’agit d’un répertoire (directory) Permissions d’accès Groupe Linux Propriétaire (créateur) 46

  47. Fichiers et répertoires (9) • Permissions des fichiers et répertoires rw-r--r-- 1 twong twong 8445 Dec 17 19:56 examples.desktop Quelles sont les permissions de ce fichier pour les trois types d’utilisateur? 47

  48. Fichiers et répertoires (10) • Changement des permissions d’accès • Utilisation de la commande chmod(1) (change mode) • Par valeurs octales • chmod 664 exemples.desktop • Par symboles • u (propriétaire), g (groupe Linux), o (autres), a (all, u et g et o) • chmod u+r+w-x,g+r+w-x,o+r-w-xexemples.desktop Démonstration de la commande 48

  49. Fichiers et répertoires (11) • Création et destruction de répertoires • Utilisation de la commande mkdir(1) (make directory) • L’option —p permettre la création de tous les répertoires contenu dans le chemin de répertoire. • Utilisation de la commande rmdir(1) (remove directory) Démonstration de la commande 49

  50. Fichiers et répertoires (12) • Affichage du contenu des fichiers • Utilisation de la commande cat(1) (concaténation) • Afficher, sans interruption, le contenu des fichiers spécifiés en paramètres. • Utilisation de la commande more(1) • Afficher, page par page, le contenu des fichiers spécifiés en paramètres. Démonstration de la commande 50

More Related