SE Flashcards
Donner la définition d’un Système Temps Réel
Un système temps réel est un système qui doit répondre à des stimulis externes sous un délai spécifié.
Quelle est la différence entre un RTOS DUR , Ferme et MOU ?
La différence se fait au dégré de flexibilité.
Temps Réel Dur :
La réponse du système dans les délais est vitale.
L’absence de réponse est catastrophique (contrôle aérien, contrôle centrale nucléaire)
Temps Réel Ferme :
La réponse du délai est essentielle. Le résultat ne sert plus à rien une fois le deadline passé.
Temps Réel Mou:
La réponse du système après les délais réduit progressivement sont intérêt. Les pénalités ne sont pas catastrophiques.
(logiciel embarqué de votre téléphone)
Peut-on utiliser Linux pour un temps réel DUR ?
Non, Linux contient des mécanismes non deterministes.
Quels sont les mécanismes non Déterministes dans Linux ?
Linux n’est pas préemptif sur le noyau lui même (seulement sur les tâches utilisateur) -> Temps n’est pas borné.Un appel système doit finir avant qu’une autre tâche soit lancée
Linux est basé sur l’utilisation de mémoire virtuelle.
-L’allocation de mémoire est faite à la demande
-Quand une application accède pour la première fois à un code ou une donnée
–Il y a un chargement à la demande qui peut créer des délais importants
De nombreux services de la librairie C ou du noyau ne sont pas conçus pour des préoccupations temps réel
Qu’est-ce que la mémoire virtuelle ?
La mémoire virtuelle est une fonctionnalité d’un système d’exploitation (OS, Operating System) qui permet à un ordinateur de compenser le manque de mémoire physique en transférant temporairement des pages de données de la mémoire vive (RAM, Random Access Memory) vers un stockage sur disque.
Qu’est-ce que la MMU ?
Comment fonctionne t-elle ?
Une unité de gestion mémoire (MMU pour memory management unit), parfois appelée unité de gestion de mémoire paginée est un composant permettant de contrôler les accès qu’un processeur fait à la mémoire .
La MMU découpe la mémoire vive en pages, elles sont vus comme des entités indépendantes. La RAM contient alors les adresses des pages qui sont stockées en stockage disque.
Qu’est-ce que DMA ?
A quoi sert le DMA ?
L’accès direct à la mémoire (en anglais DMA pour Direct Memory Access) est un procédé informatique où des données circulant de, ou vers, un périphérique (port de communication, disque dur, etc.) sont transférées directement par un contrôleur adapté vers la mémoire principale de la machine, sans intervention du microprocesseur si ce n’est pour lancer et conclure le transfert1. La conclusion du transfert ou la disponibilité du périphérique peuvent être signalés par interruption.
On l’oppose ainsi à des techniques de polling où le microprocesseur doit attendre chaque donnée.
Le DMA est nécessaire pour conserver la fluidité d’utilisation d’un système multitâche lors de l’accès à des périphériques rapides tels que les disques durs, sachant que pour ce type de périphériques, il est impossible de transférer chaque donnée par une interruption.
Qu’est-ce que la stack et heap ?
La pile et le tas sont deux mécanismes de gestion de la mémoire différents. Ils sont utilisés tous les deux par les programmes pour gérer les accès à la mémoire mais leur fonctionnement et leur utilisation ne sont pas les mêmes.
La pile est une partie de la mémoire allouée par le système d’exploitation pour l’exécution d’une tâche. Elle fonctionne comme une pile d’objets, c’est-à-dire que le dernier élément arrivé dans la pile est le premier que l’on peut retirer. La pile est notamment utilisée lorsque les variables sont transmises d’une fonction à une autre. Grâce au système de pile, la tâche n’a pas à se souvenir de l’emplacement d’un élément au sein de la pile, ce qui rend la pile beaucoup plus rapide dans son utilisation. La taille de la pile est décidée par le système d’exploitation au moment du lancement de la tâche, elle ne peut pas varier et la pile est supprimée lors de la fin de l’exécution de la tâche.
Le tas est un emplacement de la mémoire utilisé pour les allocations dynamiques, par exemple les pointeurs. Contrairement à la pile, n’importe quel bloc de cet espace peut être alloué ou libéré à n’importe quel moment. Ce système rend la gestion du tas plus complexe et moins rapide car il est nécessaire de connaitre en permanence quel bloc est alloué. Le tas est créé au démarrage d’un processus et est lié à celui-ci. Cela signifie que plusieurs tâches peuvent accéder à un même bloc dans cette mémoire. Il est donc nécessaire de gérer l’accès concurrentiel. La taille du tas varie et peut augmenter si le programme a besoin de plus de mémoire.
Qu’est-ce qu’une interruption ?
Une interruption est une suspension temporaire de l’exécution d’un programme informatique par le microprocesseur afin d’exécuter un programme prioritaire
Quels sont les problèmes principaux du multi threading ?
Problèmes du type deadlock, starvation ou livelock.
Qu’est -ce que le problème de type deadlock ?
Correspond à la situation où plusieurs Threads sont bloqués car ils attendent la réaction d’autres Threads. Cependant, cette réaction est impossible car ils sont également bloqués (en attente de réaction de la tâche bloquée).
Qu’est -ce que le problème de type starvation ?
apparaît quand un Thread n’arrive pas à terminer sa tâche liée à une ressource partagée avec d’autres Threads. Ce blocage peut être le résultat d’un blocage d’accès à cette ressource par d’autres Threads.
Qu’est -ce que le problème de type livelock ?
Ressemble au deadlock car apparaît quand les Threads n’arrivent pas à avancer et sont dépendants l’un de l’autre. Contrairement à la première situation évoquée, ces tâches ne sont pas bloquées. Elles sont seulement trop occupées pour répondre et permettre à l’autre d’avancer. Il se peut également que tous les Threads soient bloqués. Ils seraient donc en impossibilité de débloquer l’objet vérouillé.
Quels sont les mécanismes de communication entre processus ?
Sémaphores, Pipe, Messagequeue, Sockets, Mutex, Mémoire partagés, Fichiers, Signaux
Qu’est-ce qu’une sémaphore ?
Ressource servant à la synchronisation.