8. Représenter plusieurs instances par des matrices
8.1. Définir les dimensions et les quatre structures
Le second modèle considère n processus et m types de ressources. Un type peut posséder plusieurs instances; m est donc le nombre de catégories, et non le total de leurs instances.
| Symbole | Dimension | Signification |
|---|---|---|
| E | Vecteur de m composantes | Nombre total d'instances existantes pour chaque type |
| A | Vecteur de m composantes | Nombre d'instances actuellement disponibles pour chaque type |
| C | Matrice n × m | Allocations actuelles : C[i,j] est le nombre d'instances du type j détenues par le processus i |
| R | Matrice n × m | Requêtes considérées : R[i,j] est le nombre d'instances du type j que demande le processus i |
Une ligne C[i] décrit les détentions d'un processus. Une ligne R[i] décrit ses demandes dans l'état analysé; le cours la présente comme ce qu'il doit demander pour poursuivre. Une colonne rassemble les quantités d'un même type à travers les processus.
Ces informations ne doivent pas être échangées : C décrit ce qui est déjà alloué, A ce qui reste disponible et E ce qui existe au total. R est une demande; ce n'est pas une détention déjà à ajouter au total des allocations.
8.2. Vérifier la conservation des instances
Pour chaque type j, les ressources sont soit disponibles, soit déjà allouées :
Source TeX à sélectionner et copier
\sum_{i=1}^{n} C[i,j] + A[j] = E[j], \qquad j=1,\ldots,m.Dans cette formule, i parcourt les processus et j désigne le type dont on contrôle les quantités. On additionne donc une colonne de C, puis la composante correspondante de A. Le contrôle est effectué séparément pour chaque type.
Cet invariant permet de vérifier la cohérence d'un état fourni ou de retrouver A à partir de E et C. Un total général regroupant tous les types ne suffit pas : un scanner ne remplace pas une table traçante, même si le nombre total de ressources semble convenir.
8.3. Comparer des vecteurs composante par composante
Pour deux vecteurs X et Y de même dimension :
Source TeX à sélectionner et copier
X \leq Y \quad\Longleftrightarrow\quad X[j]\leq Y[j]\ \text{pour tout type }j.Le support donne deux exemples :
- (3,4,4,5) ≤ (6,4,5,7) est vrai : les quatre comparaisons sont satisfaites, y compris l'égalité 4 ≤ 4.
- (4,3,1,2) ≤ (5,4,5,1) est faux : les trois premières comparaisons sont vraies, mais la dernière exige 2 ≤ 1.
Une seule composante insuffisante rend la comparaison fausse. Additionner les composantes ferait disparaître le type précis qui manque et pourrait conduire à accorder une demande impossible. L'égalité est permise : une demande exactement égale aux disponibilités peut être admissible.