99 lines
4.9 KiB
Org Mode
99 lines
4.9 KiB
Org Mode
#+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]]
|
|
|
|
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échanismes d'exécution et de communication
|
|
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:
|