Remove my courses SYE and PPP (LaTeX).
I now give direct links to eCampus, so no need to store these files on my site.
This commit is contained in:
parent
4cc3203a7b
commit
d619d62655
12 changed files with 0 additions and 437 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,111 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
"""Un exemple d'utilisation de sémaphores pour synchroniser des tâches.
|
|
||||||
|
|
||||||
Ce code définit 4 tâches qui devront être exécutées selon la relation
|
|
||||||
de précédence suivante :
|
|
||||||
|
|
||||||
T1 < T2, T1 < T3, T2 < T4, T3 < T4
|
|
||||||
|
|
||||||
Le graphe de précédence pour ces tâches forme donc un diamant :
|
|
||||||
|
|
||||||
+-----> T2 -----+
|
|
||||||
| |
|
|
||||||
| \/
|
|
||||||
T1 T4
|
|
||||||
| /\
|
|
||||||
| |
|
|
||||||
+-----> T3 -----+
|
|
||||||
|
|
||||||
Ce fichier montre l'utilisation de sémaphores pour assurer l'exécution
|
|
||||||
de ces 4 tâches dans un ordre qui satisfait cette spécification de
|
|
||||||
précédence.
|
|
||||||
|
|
||||||
|
|
||||||
Cours « Systèmes d'exploitation ».
|
|
||||||
|
|
||||||
Sergiu Ivanov <sergiu.ivanov@univ-evry.fr>
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
# La librairie de gestion de fils d'exécution.
|
|
||||||
import threading
|
|
||||||
|
|
||||||
|
|
||||||
# Définir 4 sémaphores, un par tâche.
|
|
||||||
t1_finie = threading.Semaphore();
|
|
||||||
t2_finie = threading.Semaphore();
|
|
||||||
t3_finie = threading.Semaphore();
|
|
||||||
t4_finie = threading.Semaphore();
|
|
||||||
|
|
||||||
# Le sémaphore ti_finie est relâché à la fin de la tâche Ti. Il est
|
|
||||||
# donc nécessaire de les acquérir tous au début.
|
|
||||||
t1_finie.acquire();
|
|
||||||
t2_finie.acquire();
|
|
||||||
t3_finie.acquire();
|
|
||||||
t4_finie.acquire();
|
|
||||||
|
|
||||||
|
|
||||||
# Nos tâches.
|
|
||||||
#
|
|
||||||
# Chaque tâche commence par vérifier que les tâches dont elle dépend
|
|
||||||
# ont fini leur exécution. À la fin de l'exécution, chaque tâche
|
|
||||||
# relâche le sémaphore qui lui est associé.
|
|
||||||
|
|
||||||
def t1():
|
|
||||||
# Tâche initiale, aucune vérification.
|
|
||||||
|
|
||||||
print("Ceci est la tâche T1")
|
|
||||||
|
|
||||||
t1_finie.release();
|
|
||||||
|
|
||||||
def t2():
|
|
||||||
# Cette opération sera bloquée si le sémaphore t1_finie n'est pas
|
|
||||||
# encore relâché.
|
|
||||||
t1_finie.acquire();
|
|
||||||
|
|
||||||
# Si nous sommes arrivés ici, nous savons que le sémaphore
|
|
||||||
# t1_finie a été relâché. Ne le gardons pas pris, relâchons-le
|
|
||||||
# pour que les autres puissent avoir les signal.
|
|
||||||
t1_finie.release();
|
|
||||||
|
|
||||||
print("Ceci est la tâche T2")
|
|
||||||
|
|
||||||
t2_finie.release();
|
|
||||||
|
|
||||||
def t3():
|
|
||||||
t1_finie.acquire();
|
|
||||||
t1_finie.release();
|
|
||||||
|
|
||||||
print("Ceci est la tâche T3")
|
|
||||||
|
|
||||||
t3_finie.release();
|
|
||||||
|
|
||||||
def t4():
|
|
||||||
# La tâche T4 dépend des tâches T3 et T4 ; on vérifiera donc deux
|
|
||||||
# sémaphores.
|
|
||||||
t2_finie.acquire();
|
|
||||||
t2_finie.release();
|
|
||||||
|
|
||||||
t3_finie.acquire();
|
|
||||||
t3_finie.release();
|
|
||||||
|
|
||||||
print("Ceci est la tâche T4")
|
|
||||||
|
|
||||||
t4_finie.release();
|
|
||||||
|
|
||||||
|
|
||||||
# Créer un objet Thread (fil d'exécution) pour chacune de nos tâches.
|
|
||||||
#
|
|
||||||
# Les fils ne sont pas encore lancés.
|
|
||||||
t1_thread = threading.Thread(target = t1)
|
|
||||||
t2_thread = threading.Thread(target = t2)
|
|
||||||
t3_thread = threading.Thread(target = t3)
|
|
||||||
t4_thread = threading.Thread(target = t4)
|
|
||||||
|
|
||||||
# Lancer les fils d'exécution dans un ordre quelconque, pas
|
|
||||||
# nécessairement correspondant au graphe de précédence exigé.
|
|
||||||
t4_thread.start()
|
|
||||||
t3_thread.start()
|
|
||||||
t2_thread.start()
|
|
||||||
t1_thread.start()
|
|
|
@ -1,39 +0,0 @@
|
||||||
/*
|
|
||||||
* Un exemple d'utilisation de fork, sleep et waitpid.
|
|
||||||
*
|
|
||||||
* Cours « Systèmes d'exploitation ».
|
|
||||||
*
|
|
||||||
* Sergiu Ivanov <sergiu.ivanov@univ-evry.fr>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h> // pour avoir printf
|
|
||||||
#include <unistd.h> // pour avoir fork
|
|
||||||
#include <sys/wait.h> // pour avoir waitpid
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
// fork crée une copie du processus actuel. Après cette ligne il y
|
|
||||||
// aura deux processus qui exécuteront le code ci-dessous.
|
|
||||||
//
|
|
||||||
// Dans le processus qui a initié la création (le père), fork
|
|
||||||
// renverra le numéro unique (le PID) du processus créé (le
|
|
||||||
// fils). Dans le fils, fork renverra 0.
|
|
||||||
int pidFils = fork();
|
|
||||||
|
|
||||||
if(pidFils == 0) {
|
|
||||||
// fork a renvoyé 0, donc ce code est exécuté dans le fils.
|
|
||||||
printf("Coucou, papa");
|
|
||||||
|
|
||||||
// Attendre 1 seconde pour faire semblant de travailler dur.
|
|
||||||
sleep(1);
|
|
||||||
} else {
|
|
||||||
// On utilisera la fonction waitpid pour attendre. On doit lui
|
|
||||||
// passer le PID du fils, ainsi que deux autres paramètres de
|
|
||||||
// service.
|
|
||||||
int status; // le code de retour du fils;
|
|
||||||
waitpid(pidFils, &status, 0); // attente fin du fils
|
|
||||||
|
|
||||||
printf("Je suis ton paiiiire !");
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
#+TITLE: Introduction to LaTeX
|
|
||||||
|
|
||||||
#+LANGUAGE: en
|
|
||||||
|
|
||||||
#+ATTR_HTML: :alt in French :class lang-lifted
|
|
||||||
[[file:../fr/latex-intro.org][file:../content/imgs/fr.png]]
|
|
||||||
|
|
||||||
#+ATTR_HTML: :alt return home :class home
|
|
||||||
[[file:../index.org][file:../content/imgs/home.png]]
|
|
||||||
|
|
||||||
This a short course (3 to 5 sessions) giving a short example-based
|
|
||||||
introduction to [[https://en.wikipedia.org/wiki/LaTeX][LaTeX]]. The goal is to explain the basics of LaTeX and
|
|
||||||
then to have the students explore the language and the ecosystem on
|
|
||||||
their own. The subjects covered in the slides include sectioning,
|
|
||||||
paragraph formatting, tables, figures, and mathematical notation. At
|
|
||||||
the end of the presentation, Beamer and TikZ are mentioned as possible
|
|
||||||
further study directions.
|
|
||||||
|
|
||||||
After going through the slides, the teacher shows three documents
|
|
||||||
prepared with LaTeX (typically, an assignment text, some slides, etc.)
|
|
||||||
and explains how to typeset them. On completing the guided part of the
|
|
||||||
course, the students pick technical subjects within their domain and
|
|
||||||
write up a one-page LaTeX document briefly presenting the subject.
|
|
||||||
|
|
||||||
This course is taught in French to the students of [[https://www.univ-evry.fr/formation/loffre-de-formation/domaines-de-formation/domaine/sciences-technologies-sante/programme/licence-mention-informatique-1.html][L3 informatique]]
|
|
||||||
(3rd year of bachelor education) at [[http://www.univ-evry.fr/fr/index.html][Université d'Évry]]. No particular
|
|
||||||
prerequisites are required for taking this course.
|
|
||||||
|
|
||||||
The slides for this course (in French) are [[file:../content/courses/latex-intro/latex-course.pdf][here]]. The slides presenting
|
|
||||||
the organisation of the this course (in French) are [[file:../content/courses/latex-intro/latex-plan.pdf][here]].
|
|
||||||
|
|
||||||
|
|
||||||
#+ATTR_HTML: :alt image of Creative Commons Attribution Alone licence :class ccby
|
|
||||||
[[https://en.wikipedia.org/wiki/Creative_Commons_license][file:../content/imgs/ccby.png]]
|
|
||||||
|
|
||||||
The materials of this course are distributed under the [[https://en.wikipedia.org/wiki/Creative_Commons_license][Creative
|
|
||||||
Commons Attribution Alone licence]].
|
|
||||||
|
|
||||||
|
|
||||||
* Local Variables :noexport:
|
|
||||||
# Local Variables:
|
|
||||||
# org-link-file-path-type: relative
|
|
||||||
# eval: (auto-fill-mode)
|
|
||||||
# ispell-local-dictionary: "en"
|
|
||||||
# End:
|
|
|
@ -1,96 +0,0 @@
|
||||||
#+TITLE: Operating Systems
|
|
||||||
|
|
||||||
#+LANGUAGE: en
|
|
||||||
|
|
||||||
#+ATTR_HTML: :alt in French :class lang-lifted
|
|
||||||
[[file:../fr/os-ueve.org][file:../content/imgs/fr.png]]
|
|
||||||
|
|
||||||
#+ATTR_HTML: :alt return home :class home
|
|
||||||
[[file:../index.org][file:../content/imgs/home.png]]
|
|
||||||
|
|
||||||
The goal of this course is to discuss two of the many fundamental
|
|
||||||
domains in which operating systems must operate: asynchronous
|
|
||||||
input/output (I/O), and parallelism and concurrency. The course starts
|
|
||||||
with a brief presentation of large classes of operating systems and
|
|
||||||
their historic evolution. Then asynchronous, interrupt-driven, and
|
|
||||||
buffered I/O is discussed. Finally, algorithms for maximising
|
|
||||||
parallelism and deadlock handling and avoidance are shown and
|
|
||||||
analysed.
|
|
||||||
|
|
||||||
This course is taught in French to the students of [[https://www.univ-evry.fr/formation/loffre-de-formation/domaines-de-formation/domaine/sciences-technologies-sante/programme/licence-mention-informatique-1.html][L3 informatique]]
|
|
||||||
(3rd year of bachelor education) at [[http://www.univ-evry.fr/fr/index.html][Université d'Évry]]. Basic
|
|
||||||
understanding of the computer architecture as well as some programming
|
|
||||||
experience are required.
|
|
||||||
|
|
||||||
This course is strongly based upon [[https://www.ibisc.univ-evry.fr/~delosme/][Jean-Marc Delosme]]'s notes about
|
|
||||||
operating systems. Starting with the school year 2018/2019, the course
|
|
||||||
includes more practical demonstrations and assignments.
|
|
||||||
|
|
||||||
The following sections briefly describe the 4 main chapters of the
|
|
||||||
course, as well as 2 executable code examples.
|
|
||||||
|
|
||||||
#+ATTR_HTML: :alt image of Creative Commons Attribution Alone licence :class ccby
|
|
||||||
[[https://en.wikipedia.org/wiki/Creative_Commons_license][file:../content/imgs/ccby.png]]
|
|
||||||
|
|
||||||
The materials of this course are distributed under the [[https://en.wikipedia.org/wiki/Creative_Commons_license][Creative
|
|
||||||
Commons Attribution Alone licence]].
|
|
||||||
|
|
||||||
|
|
||||||
* Introduction
|
|
||||||
This chapter introduces the basic terminology used in the study,
|
|
||||||
design, and development of operating systems: computer system,
|
|
||||||
operating system, physical machine, abstract machine, etc. Some of
|
|
||||||
the essential functions of the operating systems are enumerated,
|
|
||||||
then a generic classification and the historic development of
|
|
||||||
operating systems are described.
|
|
||||||
|
|
||||||
The slides for this chapter (in French) are available [[file:../content/courses/os-ueve/se-01.pdf][here]].
|
|
||||||
|
|
||||||
* Execution and communication mechanisms
|
|
||||||
This chapter describes the design of the communication in a
|
|
||||||
concurrent and asynchronous open system. The object of study of this
|
|
||||||
part are the interruptions, hardware and software (including
|
|
||||||
supervisor calls). Some classical applications of interruptions are
|
|
||||||
shown, including pseudoparallel process scheduling and buffered
|
|
||||||
input/output.
|
|
||||||
|
|
||||||
The slides for this chapter (in French) are available [[file:../content/courses/os-ueve/se-02.pdf][here]].
|
|
||||||
|
|
||||||
* Processes. Models of representation
|
|
||||||
This chapter defines the notion of a process and describes its role
|
|
||||||
and its technical representation inside an operating system. The
|
|
||||||
chapter starts with a technical discussion and transitions into the
|
|
||||||
abstract model of systems of concurrent tasks. Sequential and
|
|
||||||
parallel composition operations are then considered.
|
|
||||||
|
|
||||||
The slides for this chapter (in French) are available [[file:../content/courses/os-ueve/se-03.pdf][here]].
|
|
||||||
|
|
||||||
This chapter comes with a runnable [[file:../content/courses/os-ueve/ton-paire.cpp][code example]] (comments in French)
|
|
||||||
showing how to use =fork= to create new processes.
|
|
||||||
|
|
||||||
* Process interaction
|
|
||||||
This chapter focuses on two fundamental issues of any concurrent
|
|
||||||
system: maximal parallelism and deadlocks. Maximal parallelism is
|
|
||||||
considered in the framework of systems of tasks. An algorithm for
|
|
||||||
constructing a maximally parallel system equivalent to a given one
|
|
||||||
is presented and analysed. Then, a different formal framework is
|
|
||||||
built for deadlock analysis and a deadlock detection algorithm is
|
|
||||||
shown. Finally, an approximate algorithm for deadlock avoidance is
|
|
||||||
described.
|
|
||||||
|
|
||||||
The slides for this chapter (in French) are available [[file:../content/courses/os-ueve/se-04.pdf][here]].
|
|
||||||
|
|
||||||
* Semaphores
|
|
||||||
This part of the course aims to define and understand semaphores
|
|
||||||
through interactive development of a program synchronising several
|
|
||||||
threads. [[file:../content/courses/os-ueve/semaphores.py][This]] is the runnable code which is to be written by the end
|
|
||||||
of the interactive session (the inline comments are in French).
|
|
||||||
|
|
||||||
|
|
||||||
* Local Variables :noexport:
|
|
||||||
# Local Variables:
|
|
||||||
# org-link-file-path-type: relative
|
|
||||||
# eval: (auto-fill-mode)
|
|
||||||
# ispell-local-dictionary: "en"
|
|
||||||
# End:
|
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
#+TITLE: Introduction à LaTeX
|
|
||||||
|
|
||||||
#+LANGUAGE: fr
|
|
||||||
|
|
||||||
#+ATTR_HTML: :alt en anglais :class lang-lifted
|
|
||||||
[[file:../en/latex-intro.org][file:../content/imgs/en.png]]
|
|
||||||
|
|
||||||
#+ATTR_HTML: :alt retourner à l'accueil :class home
|
|
||||||
[[file:index.org][file:../content/imgs/home.png]]
|
|
||||||
|
|
||||||
Ce cours de courte durée (9 heures environ) est une introduction à
|
|
||||||
[[http://fr.wikipedia.org/wiki/LaTeX][LaTeX]] faite à base d'exemples. Le but est d'expliquer quelques notions
|
|
||||||
de LaTeX et ensuite de laisser les étudiants explorer le langage et
|
|
||||||
l'écosystème indépendemment. Les sujets couverts dans les slides
|
|
||||||
comprennent : structuration du document, format des paragraphes,
|
|
||||||
tableaux, figures, notations mathématiques. Les slides concluent par
|
|
||||||
des références vers les documentations de Beamer et TikZ, suggérant
|
|
||||||
ainsi ces deux librairies pour une étude individuelle.
|
|
||||||
|
|
||||||
À la suite des slides, l'enseignant proposera trois documents mis en
|
|
||||||
page avec LaTeX (typiquement une consigne de TD, quelques slides,
|
|
||||||
etc.) et expliquera leur code source. Après cette partie guidée du
|
|
||||||
cours, les étudiants choisiront des sujets techniques de leur domaine
|
|
||||||
et rédigeront, en LaTeX, un rapport technique d'une page.
|
|
||||||
|
|
||||||
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]]. Aucun prérequis particulier n'est
|
|
||||||
exigé pour suivre cette matière.
|
|
||||||
|
|
||||||
Les slides sont trouvent [[file:../content/courses/latex-intro/latex-course.pdf][ici]]. Les slides de présentation de la
|
|
||||||
structure du cours se trouvent [[file:../content/courses/latex-intro/latex-plan.pdf][ici]].
|
|
||||||
|
|
||||||
|
|
||||||
#+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é]].
|
|
||||||
|
|
||||||
|
|
||||||
* Local Variables :noexport:
|
|
||||||
# Local Variables:
|
|
||||||
# org-link-file-path-type: relative
|
|
||||||
# eval: (auto-fill-mode)
|
|
||||||
# ispell-local-dictionary: "fr"
|
|
||||||
# End:
|
|
||||||
|
|
|
@ -1,99 +0,0 @@
|
||||||
#+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écanismes 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:
|
|
Loading…
Reference in a new issue