Process html for all

This commit is contained in:
xdrm-brackets 2017-01-24 17:25:31 +01:00
parent 93eb31a9d9
commit 080b45e2b7
26 changed files with 739 additions and 21 deletions

View File

@ -3,9 +3,9 @@ Cours de Licence3 Semestre 2
============================ ============================
##### Liste des cours ##### Liste des cours
- [Systèmes d'exploitation](/systemesdexploitation/README.md) - [Systèmes d'exploitation](../systemesdexploitation/compiled/README.html)
- [Conception de systèmes d'information](/conceptiondesystemesdinformation/README.md) - [Conception de systèmes d'information](../conceptiondesystemesdinformation/compiled/README.html)
- Paradigmes de programmation - Paradigmes de programmation
- [Théorie des langages et compilation](/theoriedeslangagesetcompilation/README.md) - [Théorie des langages et compilation](../theoriedeslangagesetcompilation/compiled/README.html)
- [Systèmes distribués](/systemesdistribues/README.md) - [Systèmes distribués](../systemesdistribues/compiled/README.html)
- Anglais - Anglais

View File

@ -1,3 +1,3 @@
#!/bin/sh #!/bin/sh
pandoc -f markdown -t html5 --css ../../../dependencies/pandoc.css introduction.md -o compiled/introduction.html pandoc -f markdown -t html5 --css ../../../dependencies/pandoc.css $1.md -o compiled/$1.html

26
compiled/README.html Normal file
View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="cours-de-licence3-semestre-2">Cours de Licence3 Semestre 2</h1>
<h5 id="liste-des-cours">Liste des cours</h5>
<ul>
<li><a href="../systemesdexploitation/compiled/README.html">Systèmes d'exploitation</a></li>
<li><a href="../conceptiondesystemesdinformation/compiled/README.html">Conception de systèmes d'information</a></li>
<li>Paradigmes de programmation</li>
<li><a href="../theoriedeslangagesetcompilation/compiled/README.html">Théorie des langages et compilation</a></li>
<li><a href="../systemesdistribues/compiled/README.html">Systèmes distribués</a></li>
<li>Anglais</li>
</ul>
</body>
</html>

View File

@ -3,8 +3,9 @@ Conception de systèmes d'information
#### Cours #### Cours
1. [Introduction](/cours/introduction.md) 1. [Introduction](../cours/compiled/introduction.html)
2. [Cours 1 - Systèmes d'information](/cours/1.md) 2. [Cours 1 - Le système d'information](../cours/compiled/1.html)
3. [Cours 2 - Analyse et conception d'un S.I.](../cours/compiled/2.html)
#### TDs #### TDs

View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h2 id="conception-de-systèmes-dinformation">Conception de systèmes d'information</h2>
<h4 id="cours">Cours</h4>
<ol type="1">
<li><a href="../cours/compiled/introduction.html">Introduction</a></li>
<li><a href="../cours/compiled/1.html">Cours 1 - Le système d'information</a></li>
<li><a href="../cours/compiled/2.html">Cours 2 - Analyse et conception d'un S.I.</a></li>
</ol>
<h4 id="tds">TDs</h4>
<h4 id="tps">TPs</h4>
</body>
</html>

View File

@ -17,6 +17,7 @@ Chapitre 1 - Le système d'information
> Ensemble d'éléments Humains, financiers, techniques et en interaction. > Ensemble d'éléments Humains, financiers, techniques et en interaction.
C'est un système: C'est un système:
- Ouvert sur l'environnement (autres systèmes) - Ouvert sur l'environnement (autres systèmes)
- But (profit) - But (profit)
- Evolutif - Evolutif
@ -27,6 +28,7 @@ Régulation du fonctionnement de l'entreprise pour atteindre le but en prenant e
> Sous-système ayant pour but de fournir les informations nécessaires à la gestion de l'activité et à la prise de décision d'une organisation (entreprise). > Sous-système ayant pour but de fournir les informations nécessaires à la gestion de l'activité et à la prise de décision d'une organisation (entreprise).
3 sous-systèmes identifiées: 3 sous-systèmes identifiées:
1. Système Opérant 1. Système Opérant
- Activité de l'entreprise - Activité de l'entreprise
- Exécution des tâches relatives aux différentes fonctions de l'entreprise - Exécution des tâches relatives aux différentes fonctions de l'entreprise
@ -47,6 +49,7 @@ Régulation du fonctionnement de l'entreprise pour atteindre le but en prenant e
> Ensemble des flux d'information. > Ensemble des flux d'information.
Moyens mis en oeuvre pour les gérer: Moyens mis en oeuvre pour les gérer:
- Matériels: serveurs, micro-ordinateurs, postes clients, réseaux, etc - Matériels: serveurs, micro-ordinateurs, postes clients, réseaux, etc
- Logiciels: applications spécifiques, progiciels, SGF, SGBD, etc - Logiciels: applications spécifiques, progiciels, SGF, SGBD, etc
- Humaines - Humaines
@ -55,9 +58,11 @@ Sous-système ayant un rôle essentiel dans l'entreprise.
##### Rôle du système d'information ##### Rôle du système d'information
Collecte de données Collecte de données
- Saisie des données provenant de l'extérieur ou d'un autre élément du système. - Saisie des données provenant de l'extérieur ou d'un autre élément du système.
Liste exhaustive des informations avec: Liste exhaustive des informations avec:
- Signification - Signification
- Taille - Taille
- Format - Format
@ -67,6 +72,7 @@ Liste exhaustive des informations avec:
**Cout de la saisie d'information est très élevée !!** **Cout de la saisie d'information est très élevée !!**
Choix: Choix:
- Quelles infomations ? - Quelles infomations ?
- Qui ? - Qui ?
- Ou ? - Ou ?

View File

@ -0,0 +1,94 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="cours-1---systèmes-dinformation">Cours 1 - Systèmes d'information</h1>
<h2 id="chapitre-1---le-système-dinformation">Chapitre 1 - Le système d'information</h2>
<h3 id="introduction">Introduction</h3>
<h5 id="le-contexte">Le contexte</h5>
<blockquote>
<p>L'analyse systémique de l'entreprise (apparue en 1970) fait apparaitre l'entreprise comme un système</p>
</blockquote>
<h5 id="système">Système</h5>
<blockquote>
<p>Ensemble d'éléments en interaction dynamique organisés en fonction d'un but (de Rosnay-1975)</p>
</blockquote>
<h5 id="entreprise">Entreprise</h5>
<blockquote>
<p>Ensemble d'éléments Humains, financiers, techniques et en interaction.</p>
</blockquote>
<p>C'est un système:</p>
<ul>
<li>Ouvert sur l'environnement (autres systèmes)</li>
<li>But (profit)</li>
<li>Evolutif</li>
</ul>
<p>Régulation du fonctionnement de l'entreprise pour atteindre le but en prenant en compte l'environnement et en s'adaptant aux changements.</p>
<h5 id="système-dinformation">Système d'information</h5>
<blockquote>
<p>Sous-système ayant pour but de fournir les informations nécessaires à la gestion de l'activité et à la prise de décision d'une organisation (entreprise).</p>
</blockquote>
<p>3 sous-systèmes identifiées:</p>
<ol type="1">
<li>Système Opérant
<ul>
<li>Activité de l'entreprise</li>
<li>Exécution des tâches relatives aux différentes fonctions de l'entreprise</li>
<li>Renvoie des informations vers le <strong>système de pilotage</strong></li>
</ul></li>
<li>Système de Pilotage (<em>Système de décision</em>)
<ul>
<li>Fixe les objectifs</li>
<li>Décisions stratégiques</li>
<li>Organise le fonctionnement du système</li>
<li>Exploite les informations traitées provenant du <strong>système opérant</strong></li>
</ul></li>
<li>Système d'Information</li>
</ol>
<h3 id="i.-définitions">I. Définitions</h3>
<h5 id="système-dinformation-1">Système d'information</h5>
<blockquote>
<p>Ensemble des flux d'information.</p>
</blockquote>
<p>Moyens mis en oeuvre pour les gérer:</p>
<ul>
<li>Matériels: serveurs, micro-ordinateurs, postes clients, réseaux, etc</li>
<li>Logiciels: applications spécifiques, progiciels, SGF, SGBD, etc</li>
<li>Humaines</li>
</ul>
<p>Sous-système ayant un rôle essentiel dans l'entreprise.</p>
<h5 id="rôle-du-système-dinformation">Rôle du système d'information</h5>
<p>Collecte de données</p>
<ul>
<li>Saisie des données provenant de l'extérieur ou d'un autre élément du système.</li>
</ul>
<p>Liste exhaustive des informations avec:</p>
<ul>
<li>Signification</li>
<li>Taille</li>
<li>Format</li>
</ul>
<p><strong>Cout de la saisie d'information est très élevée !!</strong></p>
<p>Choix:</p>
<ul>
<li>Quelles infomations ?</li>
<li>Qui ?</li>
<li>Ou ?</li>
<li>Quand ?</li>
<li>Comment ?</li>
</ul>
<h3 id="ii.-rôle">II. Rôle</h3>
<h3 id="iii.-composants">III. Composants</h3>
<h3 id="iv.-architectures">IV. Architectures</h3>
</body>
</html>

View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="cours-2---systèmes-dinformation">Cours 2 - Systèmes d'information</h1>
<h2 id="chapitre-2---analyse-et-conception-dun-s.i">Chapitre 2 - Analyse et conception d'un S.I</h2>
<h3 id="i.-etapes-de-mise-en-place-dune-solution">I. Etapes de mise en place d'une solution</h3>
<h3 id="ii.-acteurs">II. Acteurs</h3>
<h3 id="iii.-méthodes-de-conception">III. Méthodes de conception</h3>
</body>
</html>

View File

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<p>Enseignant: Alain Teste</p>
<ul>
<li>10 seances cours</li>
<li>10 seances TD</li>
<li>TP (lieu: IUT STID)</li>
</ul>
<p>Notation:</p>
<ul>
<li>controle continu (toutes les seances sont notees + compte rendu)</li>
<li>partiel</li>
</ul>
</body>
</html>

View File

@ -1,8 +1,10 @@
Enseignant: Alain Teste Enseignant: Alain Teste
- 10 seances cours - 10 seances cours
- 10 seances TD - 10 seances TD
- TP (lieu: IUT STID) - TP (lieu: IUT STID)
Notation: Notation:
- controle continu (toutes les seances sont notees + compte rendu) - controle continu (toutes les seances sont notees + compte rendu)
- partiel - partiel

View File

@ -3,8 +3,8 @@ Systèmes d'exploitation
#### Cours #### Cours
1. [Introduction](/cours/introduction.md) 1. [Introduction](../cours/compiled/introduction.html)
2. [Cours 1 - Gestion de l'activité](/cours/1.md) 2. [Cours 1 - Gestion de l'activité](../cours/compiled/1.html)
#### TDs #### TDs

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h2 id="systèmes-dexploitation">Systèmes d'exploitation</h2>
<h4 id="cours">Cours</h4>
<ol type="1">
<li><a href="../cours/compiled/introduction.html">Introduction</a></li>
<li><a href="../cours/compiled/1.html">Cours 1 - Gestion de l'activité</a></li>
</ol>
<h4 id="tds">TDs</h4>
<h4 id="tps">TPs</h4>
</body>
</html>

View File

@ -79,9 +79,10 @@ _PCB: Process Control Bloc_
##### Etat d'un processus ##### Etat d'un processus
![Diagramme d'états](/diagrammeetat.png) ![Diagramme d'états](./diagrammeetat.png)
_Remarque_: à un instant donné _Remarque_: à un instant donné
- un processus au plus est en exécution par le processeur - un processus au plus est en exécution par le processeur
- plusieurs processus peuvent être prêts ou en attente - plusieurs processus peuvent être prêts ou en attente
@ -91,7 +92,7 @@ _Remarque_: à un instant donné
- cout de la commutation (temps perdu) varie d'une machine à l'autre (sur certaines machines: dispositifs spéciaux pour la copie des registres) : de 1 à 1000 us. - cout de la commutation (temps perdu) varie d'une machine à l'autre (sur certaines machines: dispositifs spéciaux pour la copie des registres) : de 1 à 1000 us.
- aspect critique de l'efficacité d'un système !! - aspect critique de l'efficacité d'un système !!
![Schéma de commutation](/commutation.png) ![Schéma de commutation](./commutation.png)
##### Threads ##### Threads

View File

@ -0,0 +1,277 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="cours-1-gestion-de-lactivité">Cours 1 : Gestion de l'activité</h1>
<h3 id="processus">Processus</h3>
<h4 id="notion-de-processus">Notion de processus</h4>
<h5 id="définition">1. Définition:</h5>
<ul>
<li>activité/programme en exécution</li>
<li>aspect actif vs. passif (programme/fichier)</li>
<li>unité de travail dans la plupart des sys.</li>
</ul>
<h5 id="objectif">2. Objectif:</h5>
<ul>
<li>exécution concurrente</li>
<li>multiprogrammation</li>
<li>temps partagé</li>
</ul>
<h4 id="quelques-aspects-des-processus">Quelques aspects des processus</h4>
<ul>
<li>les processus utilisent des ressources
<ul>
<li>processeur</li>
<li>mémoire</li>
<li>I/O</li>
<li>..</li>
</ul></li>
<li>processus sys. vs. processus util.</li>
<li>le S.E. est responsable de la gestion des processus:
<ul>
<li>création</li>
<li>destruction</li>
<li>allocation de ressources</li>
<li>ordonnancement</li>
<li>synchronisation</li>
<li>communication inter-processus</li>
<li>..</li>
</ul></li>
<li>processus à multiples flots de contrôle (threads)</li>
</ul>
<h2 id="implantation-dun-processus">Implantation d'un processus</h2>
<h5 id="eléments-consistuants-dun-processus">1. Eléments consistuants d'un processus:</h5>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">composante</th>
<th style="text-align: left;">description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">section de texte</td>
<td style="text-align: left;">source en asm</td>
</tr>
<tr class="even">
<td style="text-align: left;">compteur d'instructions</td>
<td style="text-align: left;">position actuelle dans le prog.</td>
</tr>
<tr class="odd">
<td style="text-align: left;">contenu des registres</td>
<td style="text-align: left;">dans le cache proc.</td>
</tr>
<tr class="even">
<td style="text-align: left;">pile d'exécution</td>
<td style="text-align: left;">mémoire dynamique d'exécution</td>
</tr>
<tr class="odd">
<td style="text-align: left;">section des données</td>
<td style="text-align: left;">variables globales</td>
</tr>
</tbody>
</table>
<p><em>Remarque</em>: 2 processus peuvent exécuter le même programme mais ils ne partagent rien.</p>
<h5 id="bloc-de-contrôle-dun-processus">2. Bloc de contrôle d'un processus</h5>
<pre><code>+----------+--------------------+
| pointeur | état du processus |
+----------+--------------------+
| numéro de processus |
+-------------------------------+
| compteur de programme |
+-------------------------------+
| registres |
+-------------------------------+
| limites mémoire |
+-------------------------------+
| liste des fichiers ouverts |
+-------------------------------+
| ... |
+-------------------------------+</code></pre>
<p><em>PCB: Process Control Bloc</em></p>
<h6 id="contenu-dun-pcb">Contenu d'un PCB</h6>
<ul>
<li>état courant du processus</li>
<li>compteur d'instructions: adresse de la prochaine exécution à exécuter</li>
<li>registres de processeur: doivent être sauvegardés afin de revenir au processus après interruption</li>
<li>..</li>
<li>informations sur la gestion de mémoire: valeur des registres de base et de limite, tables de pages ou de segments</li>
<li>information de comptabilisatio: temps CPU et réel, limite de temps, etc</li>
<li>information de statut I/O: listes des périphériques alloués</li>
</ul>
<h5 id="etat-dun-processus">Etat d'un processus</h5>
<figure>
<img src="./diagrammeetat.png" alt="Diagramme d&#39;états" /><figcaption>Diagramme d'états</figcaption>
</figure>
<p><em>Remarque</em>: à un instant donné</p>
<ul>
<li>un processus au plus est en exécution par le processeur</li>
<li>plusieurs processus peuvent être prêts ou en attente</li>
</ul>
<h5 id="commutation-de-contexte">Commutation de contexte</h5>
<ul>
<li>c'est la sauvegarde de l'état du processus courant et le chargement de l'état sauvegardé d'un nouveau processus</li>
<li>contexte = <strong>PCB</strong></li>
<li>cout de la commutation (temps perdu) varie d'une machine à l'autre (sur certaines machines: dispositifs spéciaux pour la copie des registres) : de 1 à 1000 us.</li>
<li>aspect critique de l'efficacité d'un système !!</li>
</ul>
<figure>
<img src="./commutation.png" alt="Schéma de commutation" /><figcaption>Schéma de commutation</figcaption>
</figure>
<h5 id="threads">Threads</h5>
<ul>
<li>implémentent les flots d'exécution multiples (processus <em>multithreadés</em> - multithreaded processes)</li>
<li>intérêt:
<ul>
<li>contrôle centralisé des différentes tâches (un seul processus) par le programmeur</li>
<li>économie de mém. (la plupart des informations du PCB sont communes aux différents threads)</li>
</ul></li>
</ul>
<h5 id="ordonnancement-des-processus">Ordonnancement des processus</h5>
<ul>
<li>Objectif: gérer l'accès concurrent aux ressources par les processus</li>
<li>Gestion par files d'attentes
<ul>
<li>file d'attente des travaux : tous les processus</li>
<li>file d'attente des processus prêts (liste chainée de PCBs)</li>
<li>file d'attente pour chaque périphérique</li>
</ul></li>
</ul>
<h5 id="ordonnanceurs">Ordonnanceurs</h5>
<ol type="1">
<li><strong>ordonnanceur</strong> : programme chargé pour gérer l'ordonnancement</li>
<li><strong>ordrdonnanceur à long terme</strong> : dans un contexte de traitement par lots (mode batch)</li>
<li><strong>ordrdonnanceur à court terme</strong> : gère l'allocation du processeur (classique)</li>
<li><strong>ordrdonnanceur à moyen terme</strong> : pour le swap (quand plus assez de mém. dans la mémoire centrale, il retire un processus et le transfère dans le HDD)</li>
</ol>
<h5 id="problèmes-de-systèmes-interactifs">Problèmes de systèmes interactifs</h5>
<ul>
<li>sur certains systèmes interactifs comme Unix, il n'y a pas d'ordonnanceur long terme (logique)</li>
<li>si trop de processus (en particulier si beaucoup d'util.) la mémoire ne peut plus les contenir tous <strong>Solutions</strong></li>
<li>&quot;Ejecter&quot; des utilisateurs (bof bof)</li>
<li>swap</li>
</ul>
<h5 id="ordonnanceur-à-moyen-terme">Ordonnanceur à moyen terme</h5>
<ul>
<li>Régule le <em>degré de multiprogrammation</em> en implémentant un mécanisme de transfert de processus de la mém. vers les unités de stockage et inversement : <em>permutation</em> ou <em>swap</em></li>
<li>Critères:
<ul>
<li>taux d'utilisation de la mém. principale (majorité du temps)</li>
<li>dosage entre les processus usant du processeur et processus usant des I/O</li>
</ul></li>
<li>Algorithme assez couteux et donc fréquence d'exécution faible (plusieurs sec)</li>
</ul>
<h5 id="ordonnancement-à-court-terme">Ordonnancement à court terme</h5>
<ul>
<li>fréquence d'exécution élevée (<code>&lt; 0.1s</code>)</li>
<li>l'algorithme doit être efficace</li>
</ul>
<p><strong>exemple</strong>: si temps d'exécution = <code>0.01s</code>, alors <code>9%</code> du temps perdu dans l'ordonnancement.</p>
<h5 id="processus-coopérants">Processus coopérants</h5>
<ul>
<li>Intérêts:
<ul>
<li>partage d'information</li>
<li>accélération du calcul</li>
<li>modularité</li>
<li>commodité</li>
<li>interactivité</li>
</ul></li>
<li>Requiert des mécanismes permettant aux processus de coopérer
<ul>
<li>exemple: producteur/consommateur</li>
</ul></li>
</ul>
<h5 id="communication-inter-processus">Communication inter-processus</h5>
<ul>
<li>Première solution: mémoire partagée
<ul>
<li>pas évident dans le cadre général (implantation des mécanismes de protection mém. plus complexe)</li>
<li>impossible dans un contexte distribué</li>
</ul></li>
<li>Seconde solution: fournir une fonctionnalité de communication interprocessus<br />
(IPC: <code>InterProcess Communication</code>)
<ul>
<li>communication + synchronisation</li>
</ul></li>
</ul>
<h5 id="implantation-dun-ipc">Implantation d'un IPC</h5>
<ul>
<li>Par un système de passage de messages
<ul>
<li>2 primitives de base : <code>send</code> et <code>receive</code></li>
</ul></li>
<li>Implantation logique vs. physique</li>
<li>Implantation physique
<ul>
<li>mémoire partagée</li>
<li>bus matériel</li>
<li>réseau</li>
</ul></li>
<li>Implantation logique
<ul>
<li>communication directe ou indirecte</li>
<li>communication symétrique ou asymétrique</li>
<li>mise en tampon automatique ou explicite</li>
<li>envoi par copie ou par référence</li>
<li>messages de taille fixe ou variable</li>
</ul></li>
</ul>
<h5 id="nommage">Nommage</h5>
<ul>
<li>Afin de pouvoir s'envoyer des messages les processus doivent pouvoir s'identifier et donc être nommés</li>
<li>Communication directe
<ul>
<li>symétrique
<ul>
<li><code>send(proc1,message)</code> / <code>receive(proc2,{message})</code></li>
</ul></li>
<li>asymétrique
<ul>
<li><code>send(proc2,message)</code> / <code>receive({id_envoyeur},{message})</code></li>
</ul></li>
<li>inconvénient: renommage d'un processus lourd à gérer (définition de tous ses liens à redéfinir)</li>
</ul></li>
<li>Communication indirecte
<ul>
<li>utilisation d'une boite aux lettres (port)</li>
<li><code>send(A,message)</code> / <code>receive(A,message)</code></li>
<li>boites aux lettres publiques ou privées
<ul>
<li>boite privée propriété du processus qui l'a créée qui est le seul habilité à la lire (sauf s'il transmet le droit)</li>
<li>boite publique créée par le système</li>
</ul></li>
</ul></li>
</ul>
<h5 id="synchronisation-des-processus">Synchronisation des processus</h5>
<ul>
<li>Passage de message peut être synchrone ou asynchrone (bloquant ou non)
<ul>
<li>envoi bloquant</li>
<li>envoi non bloquant</li>
<li>réception bloquante</li>
<li>réception non bloquante</li>
</ul></li>
<li>Envoi et réception bloquants = rendez-vous</li>
</ul>
<h5 id="mise-en-tampon">Mise en tampon</h5>
<ul>
<li>Que la communication soit directe ou non, les messages sont stockés dans une file d'attente
<ul>
<li>capacité zéro: revient à envoi bloquant</li>
<li>capacité bornée: envoi bloquant si file pleine</li>
<li>capacité non bornée: envoi non bloquant</li>
</ul></li>
</ul>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

View File

Before

Width:  |  Height:  |  Size: 476 KiB

After

Width:  |  Height:  |  Size: 476 KiB

View File

@ -0,0 +1,122 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h2 id="quest-ce-quun-se">Qu'est-ce qu'un SE</h2>
<p>Un ensemble de logiciels/programmes permettant d'exploiter une arch. matérielle Ils sont décomposés en différentes catégories:</p>
<ol type="1">
<li><strong>noyau</strong>: &quot;bas niveau&quot;
<ul>
<li>allocation mém.</li>
</ul></li>
<li><strong>commandes de base</strong>
<ul>
<li>copie de fichier</li>
<li>listing fichiers</li>
</ul></li>
<li><strong>utilitaires</strong>
<ul>
<li>interpréteurs de commandes</li>
<li>compilateurs</li>
<li>éditeurs</li>
</ul></li>
<li><strong>interfaces graphiques</strong>
<ul>
<li>x11</li>
<li>Motif</li>
<li>KDE</li>
<li>GNOME</li>
</ul></li>
</ol>
<h3 id="i.-le-noyau">I. Le noyau</h3>
<ul>
<li>Différents types de services
<ul>
<li>gestion du/des proc</li>
<li>chargement et lancement des programmes</li>
<li>gestion mémoire (principale + secondaire)</li>
<li>gestion I/O (périphériques)</li>
</ul></li>
<li>Différentes organisations logicielles
<ul>
<li>monolytique (noyau = un seul gros logiciel)</li>
<li>structuration en couches (gestion sous forme d'arbre)</li>
<li>micro-noyaux (regroupement des services par domaines: <em>fichiers</em>, <em>mémoire</em>, etc)</li>
</ul></li>
</ul>
<h3 id="ii.-les-principaux-s.e.">II. Les principaux S.E.</h3>
<h4 id="unixlinux-90s">Unix/Linux (<em>90s</em>)</h4>
<ul>
<li>fiable, efficace, souple, portable, évolutif, customizable</li>
<li>difficile pour novice</li>
</ul>
<h4 id="windows-fin-80s-début-90s">Windows (fin <em>80s</em>, début <em>90s</em>)</h4>
<ul>
<li>le plus diffusé, très orienté automatique, prise en main simple</li>
<li>peu fiable même si progrès depuis Win2000/XP, sécu. inexistante (virus fréquents)</li>
<li>peu ouvert, impose la plupart des choix techno. et &quot;enferme&quot; les utilisateurs dans ces choix.</li>
</ul>
<h4 id="max-os-x">Max OS X</h4>
<ul>
<li>premier OS pour ordinateur individual avec gui (<em>80s</em>)</li>
<li>un temps submergé par Windows (<em>90s</em>)</li>
<li>retour au premier plan (<em>2000s</em>)</li>
<li>ergonomie géniale (matérielle et logicielle, précurseur en la matiére), fiable, stable (de - en -)</li>
<li>changement stratégique récent : processeurs Intel et OS basé sur Linux.</li>
</ul>
<h4 id="les-os-pour-les-appareils-mobiles">Les OS pour les appareils mobiles</h4>
<ul>
<li>iOS
<ul>
<li>acronyme de &quot;iPhone OS&quot;</li>
<li>Version mobile de Mac OS X</li>
</ul></li>
<li>Android
<ul>
<li>Os mobile de Google</li>
</ul></li>
<li>Windows Mobile
<ul>
<li>Version mobile de Windows</li>
</ul></li>
<li>Des systèmes historiques (<em>70s</em>)
<ul>
<li>VMS (Digital), GCOS (Bull), MVS et AS400 (IBM), etc</li>
<li>persistent : très ciblés (sécu., etc)</li>
</ul></li>
</ul>
<h3 id="iii.-typologie-des-différents-se">III. Typologie des différents SE</h3>
<ul>
<li>Appareil mobile
<ul>
<li>OS mobile</li>
</ul></li>
<li>Ordinateur individuel
<ul>
<li>Mac OS X, Windows, Linux</li>
</ul></li>
<li>Centre de calcul
<ul>
<li>Unix</li>
</ul></li>
<li>Systèmes transactionnels
<ul>
<li>OS dédiés</li>
</ul></li>
<li>Systèmes temps réel
<ul>
<li>OS dédiés</li>
</ul></li>
</ul>
</body>
</html>

View File

@ -3,6 +3,7 @@
Un ensemble de logiciels/programmes permettant d'exploiter une arch. matérielle Un ensemble de logiciels/programmes permettant d'exploiter une arch. matérielle
Ils sont décomposés en différentes catégories: Ils sont décomposés en différentes catégories:
1. **noyau**: "bas niveau" 1. **noyau**: "bas niveau"
- allocation mém. - allocation mém.
2. **commandes de base** 2. **commandes de base**

View File

@ -3,8 +3,8 @@ Systèmes distribués
#### Cours #### Cours
1. [Introduction](/cours/introduction.md) 1. [Introduction](../cours/compiled/introduction.html)
2. [Cours 1 - {nomcours}](/cours/1.md) 2. [Cours 1 - {nomcours}](../cours/compiled/1.html)
#### TDs #### TDs

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h2 id="systèmes-distribués">Systèmes distribués</h2>
<h4 id="cours">Cours</h4>
<ol type="1">
<li><a href="../cours/compiled/introduction.html">Introduction</a></li>
<li><a href="../cours/compiled/1.html">Cours 1 - {nomcours}</a></li>
</ol>
<h4 id="tds">TDs</h4>
<h4 id="tps">TPs</h4>
</body>
</html>

Binary file not shown.

View File

@ -5,16 +5,16 @@ Cours 1 - Systèmes distribués
## I. Programmation des systèmes distribués ## I. Programmation des systèmes distribués
#### 1. Techniques de communication à distance #### 1. Techniques de communication à distance
##### Sockets TCP/UDP (C, Java) ##### Sockets TCP/UDP (C, Java)
##### Middleware: Java RMI (_Remote Method Invocation_) ##### Middleware: Java RMI (_Remote Method Invocation_)
#### 2. En complément: programmation Java #### 2. En complément: programmation Java
##### I/O (flux) et concurrence en Java (threads) ##### I/O (flux) et concurrence en Java (threads)
## II. Introduction à l'algorithmique distribuées ## II. Introduction à l'algorithmique distribuées
#### 1. Gestion du temps et d'états distribués #### 1. Gestion du temps et d'états distribués

View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h2 id="cours-1---systèmes-distribués">Cours 1 - Systèmes distribués</h2>
<h2 id="introduction-problématique-concepts-généraux">Introduction : problématique, concepts généraux</h2>
<h2 id="i.-programmation-des-systèmes-distribués">I. Programmation des systèmes distribués</h2>
<h4 id="techniques-de-communication-à-distance">1. Techniques de communication à distance</h4>
<h5 id="sockets-tcpudp-c-java">Sockets TCP/UDP (C, Java)</h5>
<h5 id="middleware-java-rmi-remote-method-invocation">Middleware: Java RMI (<em>Remote Method Invocation</em>)</h5>
<h4 id="en-complément-programmation-java">2. En complément: programmation Java</h4>
<h5 id="io-flux-et-concurrence-en-java-threads">I/O (flux) et concurrence en Java (threads)</h5>
<h2 id="ii.-introduction-à-lalgorithmique-distribuées">II. Introduction à l'algorithmique distribuées</h2>
<h4 id="gestion-du-temps-et-détats-distribués">1. Gestion du temps et d'états distribués</h4>
</body>
</html>

View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<p>Projet - 40% Partiel - 60%</p>
</body>
</html>

View File

@ -3,8 +3,8 @@ Théorie des langages de programmation & compilation
#### Cours #### Cours
1. [Introduction](/cours/compiled/introduction.html) 1. [Introduction](../cours/compiled/introduction.html)
2. [Chapitre 1](/cours/compiled/1.html) 2. [Chapitre 1](../cours/compiled/1.html)
#### TDs #### TDs

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h2 id="théorie-des-langages-de-programmation-compilation">Théorie des langages de programmation &amp; compilation</h2>
<h4 id="cours">Cours</h4>
<ol type="1">
<li><a href="../cours/compiled/introduction.html">Introduction</a></li>
<li><a href="../cours/compiled/1.html">Chapitre 1</a></li>
</ol>
<h4 id="tds">TDs</h4>
<h4 id="tps">TPs</h4>
</body>
</html>