work-site/fr/os-ueve.org

100 lines
4.9 KiB
Org Mode
Raw Normal View History

2018-09-22 18:53:51 +02:00
#+TITLE: Systèmes d'exploitation
#+LANGUAGE: fr
#+ATTR_HTML: :alt en anglais :class lang-lifted
[[file:../en/os-ueve.org][file:../content/imgs/en.png]]
#+ATTR_HTML: :alt retourner à l'accueil :class home
[[file:index.org][file:../content/imgs/home.png]]
2018-09-22 18:53:51 +02:00
Ce cours présente d'abord brièvement l'historique et la typologie des
systèmes d'exploitation et ensuite se penche sur deux aspects de la
conception et réalisation de ces systèmes : les entrées/sorties et la
gestion du parallélisme et de la concurrence. En ce qui concerne les
entrées/sorties, sont analysées en priorité les notions des
interruptions et des tampons. Pour ce qui est du parallélisme et de la
concurrence, le parallélisme maximal et les blocages sont étudiés.
Ce cours est enseigné à tous les parcours en formation initiale de [[https://www.univ-evry.fr/formation/loffre-de-formation/domaines-de-formation/domaine/sciences-technologies-sante/programme/licence-mention-informatique-1.html][L3
informatique]] à l'[[http://www.univ-evry.fr/fr/index.html][Université d'Évry]] et requiert une expérience de base
en programmation et en architecture des ordinateurs.
Ce cours s'inspire profondément des notes de [[https://www.ibisc.univ-evry.fr/~delosme/][Jean-Marc Delosme]] au
sujet des systèmes d'exploitation. À partir de l'année universitaire
2018/2019, davantage de démonstrations et de travaux pratiques sont
proposés aux étudiants.
Les sections ci-dessous décrivent brièvement les 4 grands chapitres de
cette matière, ainsi que les 2 exemples de code exécutable proposés
aux étudiants.
#+ATTR_HTML: :alt image de la licence Creative Commons Attribution Alone :class ccby
[[https://fr.wikipedia.org/wiki/Licence_Creative_Commons][file:../content/imgs/ccby.png]]
Les matériaux disponibles sur cette page sont distribués sous la
[[https://fr.wikipedia.org/wiki/Licence_Creative_Commons][licence Creative Commons Paternité]].
* Introduction
Ce chapitre explique quelques termes fondamentaux systématiquement
employés dans l'étude, la conception et le développement des
systèmes d'exploitation : système informatique, système
d'exploitation, machine physique, machine abstraite, etc. Quelques
fonctions essentiels d'un système d'exploitation sont énumérées. Une
typologie des systèmes d'exploitation ainsi qu'un bref historique
concluent le chapitre.
Les diapositives de ce chapitre se trouvent [[file:../content/courses/os-ueve/se-01.pdf][ici]].
* Mécanismes d'exécution et de communication
2018-09-22 18:53:51 +02:00
Ce chapitre décrit l'organisation de la communication dans un
système concurrent, asynchrone et ouvert. L'objet central de cette
partie sont les interruptions matérielles ainsi que les déroutements
et les appels au superviseur. Quelques exemples fondamentaux
d'application des interruptions sont expliqués, en particulier
l'organisation du pseudo-parallélisme et les entrées-sorties
tamponnées.
Les diapositives de ce chapitre se trouvent [[file:../content/courses/os-ueve/se-02.pdf][ici]].
* Processus. Modèles de représentation
Ce chapitre définit la notion de processus et décrit son rôle et sa
représentation au sein d'un système d'exploitation. Après une
discussion des aspects techniques généraux, le chapitre débouche sur
le modèle abstrait des systèmes de tâches concurrentes, ainsi que
sur les opérations de composition séquentielle et parallèle.
Les diapositives de ce chapitre se trouvent [[file:../content/courses/os-ueve/se-03.pdf][ici]].
Cette partie comprend également un [[file:../content/courses/os-ueve/ton-paire.cpp][exemple de code]] utilisant la
procédure =fork= pour créer un nouveau processus.
* Interaction de processus
Ce chapitre se focalise sur les deux problèmes fondamentaux de
gestion de systèmes concurrents : le parallélisme maximal et les
blocages. La question d'optimisation du parallélisme est traitée
dans le cadre général des systèmes de tâches en donnant un
algorithme de construction d'un système de tâches de parallélisme
maximal équivalent à un système de tâche donné. Un cadre formel
différent est ensuite construit pour l'analyse des blocages et un
algorithme de détection des blocages est présenté. Un algorithme
approximatif d'évitement des blocages (l'algorithme du banquier)
concluent le chapitre.
Les diapositives de ce chapitre se trouvent [[file:../content/courses/os-ueve/se-04.pdf][ici]].
* Sémaphores
Cette partie du cours se donne l'objectif d'étudier les sémaphores
dans le contexte de développement interactif d'un programme
synchronisant un ensemble de fils d'exécution parallèles. Le code
vers lequel ce développement devrait aboutir est [[file:../content/courses/os-ueve/semaphores.py][celui-ci]].
* Local Variables :noexport:
# Local Variables:
# org-link-file-path-type: relative
# eval: (auto-fill-mode)
# ispell-local-dictionary: "fr"
# End: