PM wrote:
[]
> Насколько я знаю, современные операционные системы, при завершении программы освобождают все занятые последней ресурсы — память, дескрипторы файлов и т.п.
Все операционные системы conforming to SVr4, SVID, в частности большинство Линуксов, не освобождают shared memory сегменты при завершении, их надо освобождать явно. Это двоякая возможность — с одной стороны, неаккуратно написанная прога после нескольких запусков (теоритически) может исчерпать память. С другой стороны, эта возможность иногда используется серверами — они хранят critical data (состояние, сессии и т.д.) в shared memory segment и если сервер рухнул и перезагрузился он просто подцепляет этот shared memory segment и переходит в состояние в котором он был до падения. Естественно, что инвариант данных в сегменте все-таки не должен быть нарушен в момент падания.
--
Maxim YegorushkinPosted via RSDN NNTP Server 1.9