/ / pourquoi la collision de tas de pile n'est pas implémentée dans un segment différent - pile, tas, dépassement de pile, mémoire de tas, corruption de segment de mémoire

pourquoi la collision de tas de pile n'est pas implémentée dans le segment différent - pile, tas, débordement de pile, mémoire de tas, corruption de tas

Je pense que la collision entre pile et pile aurait pu être évitée en mettant simplement les deux dans des segments différents. Aucune raison pour laquelle il n’a pas été implémenté de cette façon?

Réponses:

0 pour la réponse № 1

Les compilateurs produisent des codes qui adhèrent à laOperating System "s ABI. Ainsi, le modèle de mémoire du compilateur suit en fait le modèle de mémoire du système d’exploitation. Si vous vous interrogez sur Linux, * BSD ou un autre système d’exploitation ayant une VA plate avec des segments de code / données / pile superposés, il" C est plus facile à programmer de cette façon et cela simplifie grandement la gestion de la mémoire. Etre capable d’empêcher les collisions entre piles de disques est un gain trop faible pour ce que le système d’exploitation perdra en termes de facilité de gestion de la mémoire (la gestion d’une VA plate assez compliqué).

Voyez ce qui est arrivé à OS / 2 - il utilisait une segmentation complète en mode protégé ...