Noyau Linuxvignette|upright=2|Couches de fonctions du Noyau Linux Le noyau Linux est un noyau de système d'exploitation de type UNIX. Il est utilisé dans plusieurs systèmes d'exploitation dont notamment GNU/Linux (couramment appelé « Linux ») et Android. Le noyau Linux est un logiciel partiellement libre (contenant des BLOB et des modules non-libre - consultez Linux-libre) développé essentiellement en langage C par des milliers de bénévoles et salariés collaborant sur Internet.
Earliest deadline first schedulingEarliest deadline first scheduling (« échéance proche = préparation en premier » en anglais) est un algorithme d'ordonnancement préemptif, à priorité dynamique, utilisé dans les systèmes temps réel. Il attribue une priorité à chaque requête en fonction de l'échéance de cette dernière, les tâches dont l’échéance est proche recevant la priorité la plus élevée. Cet algorithme est optimal pour tous types de système de tâches. Cependant, il est assez difficile à mettre en œuvre et est de ce fait peu utilisé.
Inversion de prioritéL'inversion de priorité est un phénomène qui peut se produire en programmation concurrente. Il s'agit d'une situation dans laquelle un processus de haute priorité ne peut pas avoir accès au processeur car il est utilisé par un processus de plus faible priorité. Pour les exemples, nous utiliseront des tâches A, B, et C, A ayant la plus forte priorité, C la plus faible, et B une priorité intermédiaire, et un mutex X qui sert à gérer une ressource partagée entre la tâche A et la tâche C.
Non-blocking algorithmIn computer science, an algorithm is called non-blocking if failure or suspension of any thread cannot cause failure or suspension of another thread; for some operations, these algorithms provide a useful alternative to traditional blocking implementations. A non-blocking algorithm is lock-free if there is guaranteed system-wide progress, and wait-free if there is also guaranteed per-thread progress. "Non-blocking" was used as a synonym for "lock-free" in the literature until the introduction of obstruction-freedom in 2003.
Priority inheritanceIn real-time computing, priority inheritance is a method for eliminating unbounded priority inversion. Using this programming method, a process scheduling algorithm increases the priority of a process (A) to the maximum priority of any other process waiting for any resource on which A has a resource lock (if it is higher than the original priority of A). The basic idea of the priority inheritance protocol is that when a job blocks one or more high-priority jobs, it ignores its original priority assignment and executes its critical section at an elevated priority level.
Système temps réelEn informatique, on parle d'un système temps réel lorsque ce système est capable de contrôler (ou piloter) un procédé physique à une vitesse adaptée à l'évolution du procédé contrôlé. Les systèmes informatiques temps réel se différencient des autres systèmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du résultat, autrement dit le système ne doit pas simplement délivrer des résultats exacts, il doit les délivrer dans des délais imposés.
Système d'exploitation temps réelUn système d'exploitation temps réel, en anglais RTOS pour real-time operating system (généralement prononcé à l’anglaise, en séparant le R de l’acronyme : Are-toss), est un système d'exploitation pour lequel le temps maximum entre un stimulus d'entrée et une réponse de sortie est précisément déterminé. Ces systèmes d'exploitation multitâches sont destinés à des applications temps réel : systèmes embarqués (thermostats programmables, contrôleurs électroménagers, téléphones mobiles, robots industriels, vaisseaux spatiaux, systèmes de contrôle commande industriel, matériel de recherche scientifique).
Ordonnancement dans les systèmes d'exploitationDans les systèmes d'exploitation, l’ordonnanceur est le composant du noyau du système d'exploitation choisissant l'ordre d'exécution des processus sur les processeurs d'un ordinateur. En anglais, l'ordonnanceur est appelé scheduler. Un processus a besoin de la ressource processeur pour exécuter des calculs; il l'abandonne quand se produit une interruption, etc. De nombreux anciens processeurs ne peuvent effectuer qu'un traitement à la fois.