2 votes

Existe-t-il un mécanisme par lequel la partie noyau d'un système d'exploitation en mémoire peut également être échangée ?

J'ai récemment appris le rôle de Mise en mémoire tampon des E/S du système d'exploitation et en fonction du livre que j'utilise,

Lorsqu'un processus utilisateur émet une demande d'E/S, le système d'exploitation attribue à l'opération un tampon dans la partie système de la mémoire principale.

Je comprends que cette méthode permet d'éviter le problème du swapping dans une situation de non-buffering. Mais est-ce que l'on suppose que la mémoire tampon du système d'exploitation créée pour le processus ne sera jamais supprimée ?

Pour élargir ma question, je me demandais s'il existait un mécanisme permettant d'échanger la partie noyau d'un système d'exploitation en mémoire ?

3voto

user3344003 Points 3070

Il est courant pour les systèmes d'exploitation de paginer des parties du noyau. Le noyau doit définir quelles parties peuvent être paginées et lesquelles ne peuvent pas l'être. Par exemple, il y aura typiquement des allocateurs de mémoire séparés pour le pool paginé et le pool non paginé.

Notez que sur la plupart des processeurs, le format de la table des pages est le même pour les pages système que pour les pages utilisateur, ce qui permet la pagination du noyau.

La détermination des parties du noyau qui peuvent faire l'objet d'une pagination fait partie de la conception du système et est effectuée en amont. Vous ne pouvez pas paginer la table d'interruption du système. Vous pouvez sortir le code de service du système pour la plupart des cas. Vous ne pouvez pas paginer le code de gestion des interruptions pour la plupart.

2voto

Basile Starynkevitch Points 67055

Je me demandais s'il existe un mécanisme par lequel la partie noyau d'un système d'exploitation en mémoire

Il se peut que certaines anciennes versions d'AIX aient été capables d'échanger (c'est-à-dire de paginer) certains codes du noyau. Et probablement aussi des OS plus anciens (peut-être même Multics).

Cependant, elle est pratiquement inutile aujourd'hui, car la mémoire du noyau ne représente qu'une infime partie de la RAM des ordinateurs actuels (de bureau et de serveur). La mémoire totale du noyau est de quelques dizaines de mégaoctets seulement, alors que la plupart des ordinateurs ont plusieurs dizaines de gigaoctets de RAM.

BTW, micro-noyau (par exemple GNU Hurd) peuvent avoir des programmes serveurs dans des processus de pagination.

Voir Systèmes d'exploitation : Trois pièces faciles

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X