2008-12-12 7 views

Répondre

1

La plupart des périphériques intégrés ne sont pas fournis avec une unité de gestion de la mémoire, de sorte que le système d'exploitation n'a aucun moyen de développer automatiquement l'espace de la pile, transparent pour le programmeur. Même en supposant que la pile soit exploitable, vous devrez la gérer vous-même, ce qui n'est pas mieux que l'allocation de tas et cela annule le but de l'utilisation d'une pile en premier lieu.

0

La pile des périphériques intégrés réside généralement dans une très petite quantité de mémoire haute vitesse. Si vous allouez des objets volumineux sur la pile d'un tel périphérique, vous risquez de faire face à un dépassement de pile .

+0

Vous voulez dire que les piles sont généralement allouées dans le cache? – chappar

2

Les périphériques intégrés ont souvent une pile de taille fixe. Comme un appel de sous-programme en C n'a besoin de pousser que quelques mots sur la pile, quelques centaines d'octets peuvent suffire (si vous évitez les appels de fonction récursifs).

3

Généralement, la pile sur un périphérique intégré est fixée pour être assez petite, c'est-à-dire que 8K est la taille de pile par défaut sur Symbian.

Si vous considérez un nom de fichier de longueur maximum est 256bytes, mais double celui pour unicode qui est déjà 512bytes (1/16e de votre pile entière) juste pour 1 nom de fichier. Vous pouvez donc imaginer qu'il est assez facile d'utiliser la pile si vous ne faites pas attention.

3

La plupart des périphériques Symbian sont fournis avec une MMU mais, jusqu'à très récemment, ne supportaient pas la pagination. Cela signifie que la RAM physique est validée pour chaque processus en cours. Chaque thread sur Symbian a (généralement) une pile fixe de 8KB. Si chaque thread a une pile, augmenter la taille de cette pile de 8 Ko à 32 Ko, par exemple, aurait un impact important sur les besoins en mémoire de l'appareil.

Le tas est global. Augmenter sa taille, si vous en avez besoin, a beaucoup moins d'impact. Ainsi, sur Symbian, la pile est réservée aux éléments de données de petite taille - allouez les plus gros éléments du tas.