afficher >><< masquer ]
SAMPI - Editeur structuré
1. Le Problème et la Proposition
2. Le Langage Primitif de Représentation Textuelle
2.1. Présentation de la Syntaxe Concrète
2.2. Notations
2.3. Exemple de structuration des données
2.4. Exemple de structuration des traitements
2.4.1. La pile
2.4.2. Les lecteurs-écrivains
2.4.22.1. La spécification du problème
2.4.22.2. La réalisation du problème
2.4.22.3. La spécification des ressources doubles
2.4.22.4. La réalisation des ressources doubles
2.4.3. La racine carrée
2.5. Exemple de structurations connexes
3. Le Langage Complété pour la Structuration des Textes
3.1. Présentation de la Syntaxe Complétée
3.2. Etude quantitative de l'évolution des programmes
3.3. L'édition syntaxique
3.4. étude de cas : le langage LTR3 et l'atelier ENTREPRISE
4. L'Enrichissement du Langage par de Nouveaux Concepts
4.1. Présentation de la Syntaxe Abstraite
4.2. Les difficultés
4.3. Compléter la Syntaxe
5. La Formalisation des Solutions Techniques
5.1. L'évaluation fonctionnelle
5.2. La structuration par les objets
5.3. Modèle sémantique comparé de l'évaluateur
5.4. Comparaison critique
5.5. Construction de la Syntaxe Abstraite
6. Les Comparaisons avec d'autres Approches
7. Les Perspectives
8. Les Editeurs
8.0. brisé sur la barrière de la complexité (une fois de plus)
8.1. L'éditeur ligne : Manuel de l'utilisateur
8.2. L'éditeur page : Guide de l'utilisateur
9. Les Aspects d'Implantation
9.1. Contexte d'évaluation
9.2. La Syntaxe Abstraite : Manuel du concepteur
9.3. L'éditeur page : Guide de l'implanteur
Références
Rubrique Perl-Javascript

Les lecteurs-écrivains

Après « l'exemple d'école » des Types Abstraits de données : la pile, on présente « l'exemple d'école » du parallélisme : il s'agit de l'exemple des lecteurs-écrivains, qu'on traite ici avec une priorité égale pour les lecteurs et les écrivains.

1. La spécification du problème

2. La réalisation du problème

3. La spécification des ressources doubles

4. La réalisation des ressources doubles

3. La spécification des ressources doubles

La ressource
Une ressource (simple) se présente par le réseau :

ressource simple

A l'initialisation, on a P jetons sur la place marquée P.

Le test sur la ressource
Le test "emprunte" un jeton dans la réserve de la ressource : il doit y en avoir un, et quand il y en a un il est replacé aussitôt après qu'on l'a pris.

ressource simple avec test

La ressource double
Dans la ressource double on partage la réserve des jetons de la ressource entre deux places :

ressource double

Les flèches donnent l'ordre de priorité de déclenchement des transitions – dans les deux cas où il pourrait y avoir un choix. Par reserve, on vide d'abord la réserve des Q jetons, puis celle des P-Q jetons restants. Par free, on réapprovisionne d'abord cette dernière, puis la première.

Le test sur la ressource double
Ainsi, la place initialement marquée Q est vide si et seulement si au moins Q réservations ont eu lieu sans libérations correspondantes.

ressource double avec test

Le test porte uniquement sur la place marquée Q : la tâche qui test la ressource est donc bloquée dès que Q points d'entrée de la ressource sont occupés.