SE Flashcards

1
Q

Donner la définition d’un Système Temps Réel

A

Un système temps réel est un système qui doit répondre à des stimulis externes sous un délai spécifié.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelle est la différence entre un RTOS DUR , Ferme et MOU ?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Peut-on utiliser Linux pour un temps réel DUR ?

A

Non, Linux contient des mécanismes non deterministes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quels sont les mécanismes non Déterministes dans Linux ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qu’est-ce que la mémoire virtuelle ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qu’est-ce que la MMU ?

Comment fonctionne t-elle ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce que DMA ?

A quoi sert le DMA ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’est-ce que la stack et heap ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qu’est-ce qu’une interruption ?

A

Une interruption est une suspension temporaire de l’exécution d’un programme informatique par le microprocesseur afin d’exécuter un programme prioritaire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quels sont les problèmes principaux du multi threading ?

A

Problèmes du type deadlock, starvation ou livelock.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est -ce que le problème de type deadlock ?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est -ce que le problème de type starvation ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est -ce que le problème de type livelock ?

A

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é.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quels sont les mécanismes de communication entre processus ?

A

Sémaphores, Pipe, Messagequeue, Sockets, Mutex, Mémoire partagés, Fichiers, Signaux

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qu’est-ce qu’une sémaphore ?

A

Ressource servant à la synchronisation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qu’est ce qu’un processus ?

A

Un processus est l’instance d’un programme informatique en cours d’exécution par un ou plusieurs threads d’un ordinateur.

17
Q

Qu’est ce qu’un thread ?

A

Un thread est dit processus Legé.

Les threads d’un même processus possèdent la même mémoire virtuelle contrairement à un processus.

18
Q

Qu’est-ce que uCLinux ?

Temps réel mou ou temps réel dur ?

A

µCLinux est une version du noyau Linux adaptée aux systèmes embarqués équipés de microcontrôleurs dénués d’unité de gestion de mémoire.
C’est un temps réel mou car il s’agit d’une version de Linux.

19
Q

Qu’est-ce que uC/OS II ?

Temps réel mou ou temps réel dur ?

A

uC/OS II est un système d’exploitation temps réel
Il s’agit d’un noyau préemptif en temps réel basé sur les priorités pour les microprocesseurs, écrit principalement dans le langage de programmation C.

Il peut servir de temps réel dur, il est utilisé dans l’aeronautique.

20
Q

Qu’est ce que Xenomai ?

A

Xenomai est une extension libre du noyau Linux lui apportant des fonctionnalités temps réel dur. Il apporte une approche symétrique entre programmation noyau et programmation système au niveau utilisateur sous Linux.

Il introduit le concept de machine virtuelle en programmation temps réel et permet ainsi de disposer de plusieurs interfaces de programmation, au choix du programmeur.

21
Q

Qu’est-ce que PREEMPT-RT ?

A

Ce patch a pour effet de donner au noyau Linux un comportement temps réel dur, tout en limitant le nombre de modifications apportées. Une partie des fonctionnalités ajoutées par Ingo Molnar ont depuis été introduites directement dans le noyau.

Il agit en rendant préemptible la majeure partie du code du noyau, et en particulier les sections critiques, les gestionnaires d’interruptions. Il modifie par ailleurs certains mécanismes pour réduire les temps de latence induits par le fonctionnement du système.

Ce patch met aussi en place un mécanisme de protection contre le problème connu sous le nom d’“inversion de priorité”, par l’utilisation de sémaphore à héritage de priorité.

22
Q

Comment fonctionne l’algorithme rc4 ?

A

RC4 fonctionne de la façon suivante : la clef RC4 permet d’initialiser un tableau de 256 octets en répétant la clef autant de fois que nécessaire pour remplir le tableau. Par la suite, des opérations très simples sont effectuées : les octets sont déplacés dans le tableau, des additions sont effectuées, etc. Le but est de mélanger autant que possible le tableau. Finalement on obtient une suite de bits pseudo-aléatoires qui peuvent être utilisés pour chiffrer les données via un XOR.