• Aucun résultat trouvé

PARTIE I. Programmation en C avec les threads Barème 5 points

N/A
N/A
Protected

Academic year: 2022

Partager "PARTIE I. Programmation en C avec les threads Barème 5 points"

Copied!
1
0
0

Texte intégral

(1)

Nom : Prénom : GI :

FINAL LO41 – Automne 2008

Devoir avec documents et d’une durée de 2 heures.

PARTIE I. Programmation en C avec les threads Barème 5 points Soit un système d’exploitation qui s’exécute sur une plateforme à deux processeurs.

L’ordonnanceur de ce système gère deux files d’attente, une pour chaque processeur. Il remplit celle du premier processeur tant qu’elle n’est pas pleine. Une fois pleine, il remplit la seconde. Quand la seconde est pleine, il revient à la première et ainsi de suite. Pour qu’une file soit pleine, il faut qu’il y ait 4 processus en même temps dans la file. Si le processeur est plus rapide que l’ordonnanceur, il se peut qu’une file ne soit jamais pleine.

Implanter la solution avec des threads. Ecrire le thread ordonnanceur afin qu’il puisse produire dans les deux files en alternance et le thread processeur en tenant compte de la fonction ExecuteProcesseur qui occupe le processeur durant un temps aléatoire. Les prochains processus à ajouter dans les files s’accèdent par la fonction int prochainProc().

PARTIE II. Modélisation avec des sémaphores Barême 8 points Nous vous proposons de "modèliser" un drive-in. Les clients arrivent par une (ou plusieurs entrées) et passent leurs commandes. Les commandes sont transmises en cuisine où s'activent k cuisiniers. Une commande est composée de 1 ou plusieurs plats préparés à l'aide de 1 ou plusieurs ingrédients. Le nombre d'ingrédients différents utilisés dans les recettes est limité (par soucis de rentabilité) à R. Ceux-ci sont rangés séparément dans leur propre boite; nous supposerons qu'il n'y a qu'une seule boîte par ingrédient. Pour commencer à préparer une commande, le cuisinier vérifie la disponibilité des ingrédients nécessaires à la préparation des différents plats. Le cuisinier pourra éventuellement préparer les plats dans l'ordre de la commande ou s'organiser en fonction des ingrédients disponibles. À la sortie, le client attend sa commande; les clients sortent dans le même ordre que celui d'arrivée. Il est possible d'organiser le fonctionnement des cuisines de plusieurs manières : chaque cuisinier réalise entièrement une commande, les plats d'une commande sont réalisés par des cuisiniers différents.

Commencez par réfléchir à une version simplifiée du problème : N commandes (clients) à traiter, k cuisiniers. Comment trouver un cuisinier disponible pour traiter la prochaine commande (= comment attendre qu'un cuisinier soit disponible)

Comment obtenir les ingrédients nécessaires à la préparation de la prochaine recette ? Evaluer vos idées en considérant qu'il y a moins de ressources que de demandes c'est à dire que k < N (moins de cuisiniers que de clients) et R < k (moins d'ingrédients que de cuisiniers).

1

(2)

PARTIE III. Programmation en C Barème 7 points La fabrication d'un véhicule sur une ligne de montage automobile nécessite des milliers d'opérations d'assemblage. L'équilibrage consiste à affecter des opérations aux postes de travail tel que la charge de travail sur chacun d'eux soit le plus homogène possible. De la flexibilité est introduite pour faire face aux variations commerciales, aux aléas quotidiens de production et aux interactions de contraintes.

La solution la plus efficace a été d’implanter une seconde ligne de production parallèle facilitant le déport de l’activité en cas de conditions particulières. Une activité de ce type est fonction d’un enchaînement séquentiel d’activités d’entrée/sortie regroupée en cinq postes P1…P5 majeurs. Le premier poste participant à l’entrée de l’activité du second qui lui-même participe à l’activité du troisième, etc. Les deux lignes L1 et L2 participant à cette activité alimentent soit simultanément les postes, soit chaque poste est alimenté par une seule ligne.

Chaque poste communique avec son suivant par l’intermédiaire de messages typés. Ces derniers ont un caractère informatif (fin d’une opération, attente d’opération) ou consultatif (nombre de commandes en cours, durée du traitement, etc.…). Il est important de connaître l’état de chaque poste (en cours ou en panne, nombre de pièces traitées, en attente de matière première, en attente de message). La ligne de montage est sujette également à des imprévues (panne, retard d’approvisionnement de matière première, attente trop longue de l’activités précédentes,…) qu’il est nécessaire d’envisager. Dans tous les cas de figure, il faut s’assurer du comportement de la ligne en conservant les informations propres à chaque poste de façon à pouvoir rétablir le comportement initial. Afin d’assurer un rendement optimal, il faut également vérifier le nombre de pièces sur chaque ligne et contraindre le poste de travail à utiliser la ligne la plus rapide. Le travail consiste à simuler les opérations sur les lignes de montages en mettant l’accent sur le fonctionnement normal et dégradé.

Mots clés : files de messages, signaux, sémaphore, processus,…

2

Références

Documents relatifs

Théorème : N’importe quel système linéaire peut se mettre sous forme échelonné réduite par une suite d’opérations élémentaires.. Idée de la preuve : récurrence sur le

Le fichier fonctions.py sera notre librairie, c'est à dire qu'il contiendra des fonctions que nous appellerons depuis un autre fichier. Q1) Pour nous approcher du fonctionnement

Question 1 : Programmez (en pseudoCode) la fonction Aller_voir(i) exécutée par un spectateur arrivant au cinéma et achetant un billet pour la salle i.. Vous préciserez

Vous pouvez maintenant télécharger votre notebook ainsi que tous les fichiers associés (images, fichier csv…) en cliquant sur Upload5. A la fin, cliquer sur Download pour

barre et les 4 autres champs). L’intendance reçoit chaque jour les demandes d’ouverture de compte et les valide. Par retour de mail, vous recevrez un identifiant. Vous disposez

Vous cliquez dessus à copier puis vous collez le fichier dans l’emplacement de votre choix (la clef USB par exemple). 6- Pour ouvrir un fichier, cliquez sur « ouvrir à partir de

Afficher un message : rapatrie sur le PC le texte contenu dans la mémoire du panneau à l’adresse indiquée dans le champ « Numéro du message » et l’affiche dans le

Tous droits réservés - Guide pratique Déclaration du Médecin Traitant dans HelloDoc (DMTi) 2 La Déclaration du Médecin Traitant en ligne est disponible dans HelloDoc depuis