2 research outputs found

    Architectures multi-flots simultanés pour le temps-réel strict

    Get PDF
    Dans les systèmes critiques, les applications doivent satisfaire des contraintes temporelles strictes, chaque tâche devant s'exécuter en un temps maximum prédéfini ; le non-respect d'une seule échéance peut compromettre toute la stabilité du système et engendrer des effets désastreux. Un tel système est appelé système temps-réel strict. Pour pouvoir assigner une échéance à une tâche, il faut être capable de déterminer le temps maximum que mettra cette tâche à s'exécuter, ceci indépendamment des données en entrée de la tâche. Ce temps maximum recherché s'appelle le WCET (Worst Case Execution Time, temps d'exécution pire cas), il est souvent déterminé à l'issue d'un processus de calcul nécessitant une modélisation des structures de l'architecture du processeur. Les mécanismes architecturaux qui augmentent les performances d'un processeur (prédiction de branchement, cache) induisent souvent un fort taux d'indéterminisme qui rend la modélisation difficile. C'est pourquoi il est souvent préférable d'utiliser des architectures relativement simples pour un système temps-réel strict, ou de simplifier des architectures hautes performances récentes. Notre optique est plutôt d'essayer d'adapter, par de légères modifications, une de ces architectures performantes mais peu prédictibles pour un respect de contraintes temps-réel strict et un calcul de WCET facilité. L'architecture que nous choisissons est l'architecture Multi-Flots Simultanés (Simultaneous Multihtreading, SMT), ou plusieurs programmes peuvent s'exécuter simultanément en partageant les ressources d'un seul cœur d'exécution.In critical systems, applications must satisfy hard timing constraints, each task must execute in a maximum predefinite time. Any unrespected constraint may compromise the stability of the whole system and generate disastrous effects. Such a system is called hard real-time system. To be able to assign a constraint to a task, you must be able to determinate the maximum time this task will execute, independently from the input data of the task. This maximum time you search is called the WCET (Worst Case Execution Time), it is obtained by a calculation process where we need to modelise the structures of the processor architecture. The architecture mechanisms increasing performance (caches, branch prediction) are often a lot undeterministic and thus are difficult to modelise. That's why we usually prefer using relatively simple architectures for a hard real-time system, or simplifying recent high-performance architecture. In this work, we will rather adapt, using small modifications, one of those high-performance but little predictible architecture to respect hard timing constraints and make simpler WCET calculation. We choose the Simultaneous Multithreading architecture where several programs can run at the same time sharing the resources of one core only

    Scheduling and locking in multiprocessor real-time operating systems

    Get PDF
    With the widespread adoption of multicore architectures, multiprocessors are now a standard deployment platform for (soft) real-time applications. This dissertation addresses two questions fundamental to the design of multicore-ready real-time operating systems: (1) Which scheduling policies offer the greatest flexibility in satisfying temporal constraints; and (2) which locking algorithms should be used to avoid unpredictable delays? With regard to Question 1, LITMUSRT, a real-time extension of the Linux kernel, is presented and its design is discussed in detail. Notably, LITMUSRT implements link-based scheduling, a novel approach to controlling blocking due to non-preemptive sections. Each implemented scheduler (22 configurations in total) is evaluated under consideration of overheads on a 24-core Intel Xeon platform. The experiments show that partitioned earliest-deadline first (EDF) scheduling is generally preferable in a hard real-time setting, whereas global and clustered EDF scheduling are effective in a soft real-time setting. With regard to Question 2, real-time locking protocols are required to ensure that the maximum delay due to priority inversion can be bounded a priori. Several spinlock- and semaphore-based multiprocessor real-time locking protocols for mutual exclusion (mutex), reader-writer (RW) exclusion, and k-exclusion are proposed and analyzed. A new category of RW locks suited to worst-case analysis, termed phase-fair locks, is proposed and three efficient phase-fair spinlock implementations are provided (one with few atomic operations, one with low space requirements, and one with constant RMR complexity). Maximum priority-inversion blocking is proposed as a natural complexity measure for semaphore protocols. It is shown that there are two classes of schedulability analysis, namely suspension-oblivious and suspension-aware analysis, that yield two different lower bounds on blocking. Five asymptotically optimal locking protocols are designed and analyzed: a family of mutex, RW, and k-exclusion protocols for global, partitioned, and clustered scheduling that are asymptotically optimal in the suspension-oblivious case, and a mutex protocol for partitioned scheduling that is asymptotically optimal in the suspension-aware case. A LITMUSRT-based empirical evaluation is presented that shows these protocols to be practical
    corecore