Составители:
плексах могли существовать отдельно сегменты кода и сегменты данных. Сегменты ко-
да, как правило, не претерпевают изменений в процессе своего исполнения, поэтому при
загрузке нового сегмента кода на место отработавшего последний можно не сохранять
во внешней памяти, в отличие от сегментов данных, которые необходимо сохранять в
любом случае.
Первоначально программисты сами должны были включать в тексты своих про-
грамм соответствующие обращения (вызовы) к ОС и тщательно планировать, какие сег-
менты могут находиться в оперативной памяти одновременно, чтобы их адресные про-
странства не пересекались. В более современных системах программирования вызовы
стали вставляться компиляторами в код программы автоматически, если в том возникает
необходимость.
4.2.3. Распределение памяти разделами
Для организации мультипрограммного режима необходимо обеспечить одновре-
менное расположение в оперативной памяти нескольких задач (целиком или их частя-
ми). Самая простая схема распределения памяти между несколькими задачами предпо-
лагает, что память, незанятая ядром ОС, может быть разбита на несколько
непрерывных частей (зон, разделов). Разделы характеризуются именем, типом, грани-
цами (как правило, указываются начало раздела и его длина). Разбиение памяти на не-
сколько непрерывных разделов может быть фиксированным (статическим), либо ди-
намическим. Рассмотрим вышесказанное более подробно.
Разбиение всего объема оперативной памяти на несколько разделов может осуще-
ствляться единовременно (то есть в процессе генерации варианта ОС, который потом и
эксплуатируется) или по мере необходимости. Пример разбиения памяти на разделы с
фиксированными границами приведен на рис.4.2.
Рис.4.2. Распределение памяти разделами с фиксированными границами
В каждом разделе на данный момент времени может располагаться по одной про-
грамме (задаче). В этом случае по отношению к каждому разделу можно применить все
96
плексах могли существовать отдельно сегменты кода и сегменты данных. Сегменты ко-
да, как правило, не претерпевают изменений в процессе своего исполнения, поэтому при
загрузке нового сегмента кода на место отработавшего последний можно не сохранять
во внешней памяти, в отличие от сегментов данных, которые необходимо сохранять в
любом случае.
Первоначально программисты сами должны были включать в тексты своих про-
грамм соответствующие обращения (вызовы) к ОС и тщательно планировать, какие сег-
менты могут находиться в оперативной памяти одновременно, чтобы их адресные про-
странства не пересекались. В более современных системах программирования вызовы
стали вставляться компиляторами в код программы автоматически, если в том возникает
необходимость.
4.2.3. Распределение памяти разделами
Для организации мультипрограммного режима необходимо обеспечить одновре-
менное расположение в оперативной памяти нескольких задач (целиком или их частя-
ми). Самая простая схема распределения памяти между несколькими задачами предпо-
лагает, что память, незанятая ядром ОС, может быть разбита на несколько
непрерывных частей (зон, разделов). Разделы характеризуются именем, типом, грани-
цами (как правило, указываются начало раздела и его длина). Разбиение памяти на не-
сколько непрерывных разделов может быть фиксированным (статическим), либо ди-
намическим. Рассмотрим вышесказанное более подробно.
Разбиение всего объема оперативной памяти на несколько разделов может осуще-
ствляться единовременно (то есть в процессе генерации варианта ОС, который потом и
эксплуатируется) или по мере необходимости. Пример разбиения памяти на разделы с
фиксированными границами приведен на рис.4.2.
Рис.4.2. Распределение памяти разделами с фиксированными границами
В каждом разделе на данный момент времени может располагаться по одной про-
грамме (задаче). В этом случае по отношению к каждому разделу можно применить все
96
Страницы
- « первая
- ‹ предыдущая
- …
- 92
- 93
- 94
- 95
- 96
- …
- следующая ›
- последняя »
