|
Aucun système d'exploitation unique ne garantit parfaitement que suffisamment de ressources sont allouées à chaque application *à tout moment*. L'allocation des ressources est un problème complexe, et même les meilleurs systèmes d'exploitation peuvent être dépassés ou faire face à des demandes imprévisibles. Cependant, différents systèmes d'exploitation emploient divers mécanismes pour *tenter* d'assurer une allocation juste et suffisante des ressources, en donnant la priorité à certaines approches plutôt qu'à d'autres.
Voici une répartition :
* OS de bureau et serveurs modernes (Windows, macOS, Linux) : Ceux-ci utilisent généralement une combinaison de techniques :
* Mémoire virtuelle : Cela permet aux applications d'utiliser plus de mémoire que ce qui est physiquement disponible, en échangeant les données les moins utilisées sur le disque. Cependant, un échange excessif (battage) peut avoir un impact important sur les performances, indiquant une RAM insuffisante.
* Planification des processus : Le planificateur du système d'exploitation attribue du temps CPU aux processus. Différents algorithmes de planification (par exemple, à tour de rôle, basés sur les priorités) visent l'équité et la réactivité, mais ne peuvent garantir une quantité spécifique de temps CPU pour chaque application.
* Limites des ressources : Les administrateurs peuvent définir des limites (mémoire, temps CPU, descripteurs de fichiers) sur des processus individuels ou des comptes d'utilisateurs pour empêcher une application unique de monopoliser les ressources et d'affecter négativement les autres.
* Niveaux de priorité : Les processus peuvent se voir attribuer différents niveaux de priorité, influençant leur accès aux ressources. Les processus plus prioritaires bénéficient généralement de plus de temps CPU.
* Systèmes d'exploitation en temps réel (RTOS) : Ceux-ci sont conçus pour les applications nécessitant une allocation de ressources prévisible et garantie, telles que les systèmes de contrôle industriel ou les systèmes embarqués. Les RTOS emploient souvent :
* Planification à priorité fixe : Les processus se voient attribuer des priorités statiques et la planification est déterministe. Cela garantit un minimum de temps CPU pour les tâches hautement prioritaires.
* Réservation de ressources : Des ressources telles que la mémoire et les périphériques peuvent être réservées à l'avance pour des tâches spécifiques.
En résumé : Aucun OS n’offre une garantie à toute épreuve. Ce qui s'en rapproche le plus est celui des RTOS conçus pour les environnements aux ressources limitées où la prévisibilité est primordiale. Les systèmes d'exploitation de bureau et de serveur standard s'efforcent d'atteindre un équilibre entre équité et performances, en s'appuyant souvent sur des heuristiques et des paramètres configurables par l'utilisateur pour gérer l'allocation des ressources. Une gestion efficace des ressources nécessite souvent une configuration minutieuse du système, une conception des applications et éventuellement des outils de surveillance pour identifier et résoudre les goulots d'étranglement des ressources.
|