Skip to main content

Gestion du temps

La notion de temps est critique pour l'exécution globale du système car il est nécessaire de savoir quand exécuter des tâches. (Travaux régulier, travaux déferrés). Il permet aussi de fournir des indications à l'utilisateur (date courante, dates de modifications / accès aux fichiers, fonctions avec timeout, alarmes ...).

Connaître avec précision l'heure est complexe, nous pouvons utiliser des ticks d'horloges (léger et régulier, mais grossier), des compteur de cycles (très précis à court terme). Cependant pour savoir l'heure absolue il est nécessaire d'utiliser un RTC qui fonctionne grâce à la pile de la carte mère (très coûteux).

Ainsi pour déterminer l'heure nous allons combiner les sources, la RTC est lue au démarrage et sert de base aux interruptions d'horloge pour garder une heure logicielle (granularité moyenne).

Les systèmes d'exploitation permettent aussi d'enregistrer une fonction à exécuter après un certain délai (pour réveiller un processus, envoyer un SIGALARM). Le noyau va alors vérifier périodiquement et si le délai est dépassé il va être exécuté. Cela consiste en une attente active qui consomme du CPU.