EXERCICES CONTROLE REPARTI
On souhaite exécuter en mode appel de procédure distante des traitements de durée non prévisible (par exemple des interrogations distantes de bases de données dont les réponses peuvent prendre des durées très variables et très longues).Proposez une solution pour le contrôle de l’exécution distante, en particulier pour pouvoir distinguer une panne de serveur d’une exécution longue.Utilisez le dans le cas de données répliquées. On suppose que l’on a n serveurs de données en copies multiples (pour la sécurité) qui peuvent réaliser les mêmes opérations lire et écrire. Comment sont réalisées les lectures, les écritures. Quelle propriété minimum doivent satisfaire les requêtes pour maintenir la cohérence des données si l’on considére qu’il n’y a pas de partage de données entre plusieurs activités?Dans certains types de service on souhaite disposer de plusieurs instances du même service sur plusieurs machines différentes (par exemple pour un service de compilation). L’appel distant active une seule exécution à distante à chaque fois. On cherche maintenant une exécution parallèle efficace en utilisant le parallélisme chez le client et chez le serveur . La procédure distante est toujours en mode synchrone. Le client et le serveur utilisent des processus sur la machine client et la machine serveur (« multi processing »). Les appels sont donc réalisés sur le client au moyen de deux processus parallèles associés aux deux appels indépendants. Les traitements sont réalisés sur le serveur au moyen de deux processus lancés en parallèle associés à chaque appel de procédure distante. On néglige les temps de commutation de contexte entre les processus. On se place dans le cas de machines mono processeur c’est à dire que les exécutions lancées en parallèles sont exécutées par un seul processeur (pseudo parallélisme).
Dessinez le diagramme d’ordonnancement des opérations dans le cas de l’ordonnancement parallèle le plus efficace des opérations client et serveur. Représentez par des segments verticaux sur un dessin les différentes opérations selon les quatre fils d’exécution associés aux quatre processus Représentez également les messages de requête et de réponse? Quelle est la durée totale du traitement des deux appels? Le RPC asynchrone ne suppose pas l’existence de parallélisme sur le site client pour améliorer les performances. On considère dans cette question, que les clients et serveurs sont purement séquentiels. Le processus client réalise deux appels en RPC asynchrone et le processus serveur réalise les deux traitements des appels asynchrones. Dessinez l’ordonnancement le plus efficace des opérations pour les deux processus associés au client et au serveur. Représentez les messages échangés entre les deux processus. Quelle est la durée totale du traitement des deux appels ?Une application de longue durée (de type traitement par lots ou transfert de fichier) est réalisée à distance à partir d’un calculateur émetteur E sur un calculateur récepteur R. Le site E émet des suites de messages correspondant à des données à transmettre (par exemple des articles d’un fichier). La conception de l’application doit prendre en compte des objectifs de reprise et amène donc à transmettre les données par groupe de 100 messages et à valider la transmission des messages d’un groupe avant de passer au suivant.
Donnez l’automate du service de demande de pose de point de synchronisation majeur (c’est l’automate de service du coté émetteur qui demande la pose). Cet automate ne comporte donc que des émissions d’unités de service et des arrivées d’unités de service.On suppose que l’émetteur possède le jeton de synchronisation majeure et d’activité et qu’il peut donc poser un point de synchronisation majeur. Pour cet automate on ne s’intéresse qu’au mode de fonctionnement normal dans lequel aucune panne n’intervient (ni panne de site, d’entité distante, …).L’application considérée est celle d’un mode client serveur basique avec un message requête de demande de cotation et un message réponse contenant le cours de bourse. On identifie donc comme premier élément du protocole (message et donnée à échanger dans le message) une requête qui comporte un nom de valeur boursière à coter. C’est une chaîne de caractères de longueur variable. La longueur est codée sur un entier long (valeur maximum 100 octets). La réponse comporte la cotation demandée (codée pour simplifier sous la forme d’un entier long). Elle comporte aussi un code réponse entier au cas ou des erreurs auraient rendu l’opération impossible. Les structures de données échangées dans les messages en langage C sont donc décrites.