Qu'est-ce que la programmation concurrente ?
Exécuter plusieurs processus sur un même ordinateur en organisant ressources et synchronisation.
Quelle formule donne le nombre de scénarios possibles pour n acteurs et p actions ?
Qu'est-ce qu'un processus en informatique ?
Une abstraction représentant un programme en cours d'exécution avec son contexte.
Quelles parties du contexte d'exécution un processus comprend-il ?
La mémoire, les registres et les descripteurs d'entrées-sorties.
Qu'est-ce qu'un thread dans un processus ?
Une unité d'exécution avec ses propres registres et pile.
Quelle ressource un thread partage-t-il avec les autres threads du même processus ?
La mémoire.
Quels sont les trois états de base d'un processus ou thread ?
Actif, en attente et prêt.
Qu'est-ce qu'une dépendance en programmation ?
Un état de données ou de contrôle devant être atteint avant l'exécution d'une partie du programme.
Qu'exigent les Conditions de Bernstein pour l'exécution parallèle de deux sous-programmes ?
Que leurs ensembles d'écritures soient disjoints et qu'aucune écriture ne recouvre une lecture de l'autre.
Qu'est-ce que l'atomicité en informatique ?
La propriété d'une séquence d'opérations qui se comporte comme une opération indivisible.
Que garantit l'exclusion mutuelle dans un programme multithread ?
Qu'un seul thread est dans une section critique à un instant donné.
Qu'est-ce qu'une condition de course en programmation parallèle ?
Un résultat dépend de l’ordre relatif d’arrivée à un point critique.
Quelles conditions réunies peuvent provoquer un interblocage selon Coffman 1971 ?
Exclusion mutuelle, attente avec conservation, absence de préemption, attente circulaire.
Qui a défini l'interblocage en 1971 ?
Edward G. Coffman, Jr.
Quelle exigence différencie la vivacité de la famine ?
La vivacité exige un progrès régulier ou une fin des threads.
Qu'est-ce que la famine dans le contexte des threads ?
Un thread cesse de progresser à cause des autres.
Qu'est-ce qu'un sémaphore entier selon Dijkstra ?
Une primitive de synchronisation avec un compteur entier et une file de threads bloqués.
Quelles opérations manipulent un sémaphore entier ?
Init, P et V.
Que fait l'opération Init(n) sur un sémaphore ?
Elle initialise le compteur à n et vide la file.
Que réalise l'opération P sur un sémaphore ?
Elle décrémente le compteur et bloque le thread si le compteur devient négatif.
Que réalise l'opération V sur un sémaphore ?
Elle incrémente le compteur et débloque un thread en attente si nécessaire.
Qu'est-ce qu'un verrou en synchronisation ?
Un mécanisme où lock acquiert l'accès et unlock le libère, bloquant les autres threads.
Quelles sont les trois étapes de la recherche de la concurrence ?
Identifier les tâches concurrentes, décomposer les données, décrire les dépendances.
Qu'est-ce qu'un pipeline en algorithmique ?
Un pipeline relie des étapes de calcul selon un schéma de communication fixe.
Que permet l'exécution simultanée dans un pipeline rempli ?
Les étapes s’exécutent simultanément sur des données différentes.
Comment fonctionne le patron fork-join ?
Il commence avec un thread, crée des threads supplémentaires, puis les rejoint avant de poursuivre.
Quel rôle joue le thread maître dans le patron master-worker ?
Il gère une file de tâches à distribuer aux travailleurs.
Que font les threads travailleurs dans le patron master-worker ?
Ils prennent une tâche, l’exécutent, puis en cherchent une autre jusqu’à la fin.
Dans quels domaines la concurrence apparaît-elle notamment ?
Dans les systèmes d’exploitation, systèmes distribués, interfaces utilisateur et calcul scientifique.
Pourquoi les affectations de x et y doivent-elles précéder le calcul de z dans z=x+y ?
Parce que les valeurs de x et y doivent être définies avant leur lecture pour calculer z.
Comment se comporte une implémentation thread-safe avec plusieurs threads ?
Elle se comporte correctement.
Comment se comporte une implémentation non thread-safe avec plusieurs threads ?
Elle peut se comporter de manière incorrecte et imprévisible.
Qu'est-ce qu'un livelock en informatique ?
Un cycle infini où le programme s’exécute sans progresser.
Qu'est-ce que le non-déterminisme dans les systèmes parallèles ?
Une propriété où résultat ou ordre d’exécution peuvent varier sans problème.
Qu'est-ce qu'un mutex ?
Un sémaphore booléen avec un protocole d'héritage de priorité.
Comment fonctionne l'héritage de priorité dans un mutex ?
La priorité du détenteur augmente à celle du thread en attente plus prioritaire jusqu'à libération.
Que décrit un patron de conception selon Christopher Alexander ?
Un problème récurrent et le cœur d’une solution réutilisable.
Dans quel ouvrage Christopher Alexander a-t-il défini le patron de conception ?
A Pattern Language.
Comment le patron SPMD utilise-t-il l'identifiant appelé rang ?
Le rang influence le chemin d’exécution des copies du programme.
Que lance le patron SPMD ?
Plusieurs copies d’un même programme avec des vues différentes des données.
Qu'est-ce que la coordination événementielle en algorithmique ?
Des tâches s’exécutent concurremment en réponse à des événements dans une file.
Teste tes connaissances avec un QCM de 20 questions sur Introduction à la concurrence.
1. Que caractérise la programmation concurrente dans un système informatique ?
2. Deux acteurs exécutent chacun trois actions séquentielles. Combien de scénarios d’entrelacement différents sont possibles ?
Révisez le cours complet dans la fiche de révision de Introduction à la concurrence.
Voir la fiche →Importe ton cours et l'IA génère des flashcards en 30 secondes.
Générateur de flashcards