Архитектура современных операционных систем
54 2.4. Управление памятью Адресное пространство процесса Каждый процесс в Unix имеет свое собственное адресное пространство, состоящие из трех областей (сегментов): кода, стека и данных (рис. 2.25.). Рис. 2.25. Сегмент текста есть последовательность команд, созданных транслятором или ассемблером для исполняемого модуля. В большинстве систем он доступен только на чтение и исполнения и, как правило, не изменятся в процессе выпол- нения ни по размеру, ни по содержимому. Сегмент данных состоит из инициализированной (значения присвоены на этапе трансляции) и не инициализированных частей (BSS). Для экономии про- странства исполняемый модуль не содержит BSS, а только их заголовок с ука- зание длины. При загрузке исполняемого модуля размер сегмента данных уве- личивается на BSS. В процессе выполнения сегмент данных может изменять и по размеру и по содержимому. Сегмент стека, как правило, расположен в старших адресах, а растет в направлении уменьшения адресов. При загрузке программы стек не пуст, в него
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy