2011-10-26 2 views
1

Si j'envoie un processus SIGSTOP par défaut le processus cessera de prendre des cycles d'horloge, mais il ne semble pas se décharger de la mémoire réelle. Ce comportement varie-t-il selon l'implémentation ou existe-t-il un moyen de forcer un processus à sortir une page? J'utilise BSD Unix (Mac OS).La page unix a-t-elle arrêté les processus?

+0

Quelix? Il y a beaucoup d'entre eux ces jours-ci ... – bdonlan

+0

Pourquoi voudriez-vous faire cela? – Mat

+0

Aucun système d'exploitation n'effectuera d'échange à moins que ce ne soit absolument nécessaire. C'est lent et ça bouge le système. –

Répondre

3

Bien que je ne puisse pas parler spécifiquement de Mac OS, les systèmes basés sur Unix ne génèrent généralement pas de page instantanément sur SIGSTOP. Il y a plusieurs raisons à cela:

  1. La mise en mémoire cache nécessite une bande passante d'E/S; l'utilisation inutilisée de la bande passante d'E/S peut ralentir votre ordinateur.
  2. Souvent, les processus ne sont pas arrêtés très longtemps; en particulier si vous déboguez! Pour tout le système d'exploitation sait que vous allez le reprendre avant même qu'il finisse de paginer.
  3. Il n'y a pas vraiment besoin de forcer la sortie de page. Au fil du temps, s'il y a effectivement une pression mémoire, les données inutilisées seront éventuellement retirées.
Questions connexes