Операционные системы. Теория и практика. Замятин А.В. - 93 стр.

UptoLike

Составители: 

93
сегмент загрузить в ОП, и вновь отдает управление одному из сегмен-
тов, располагающихся в памяти.
Простейшие схемы сегментирования предполагают, что в памяти в
каждый конкретный момент времени может располагаться только один
сегмент (вместе с главным модулем). Более сложные схемы, используе-
мые в больших вычислительных системах, позволяют располагать в па-
мяти несколько сегментов. В некоторых вычислительных комплексах
могли существовать отдельно сегменты кода и сегменты данных. Сег-
менты кода, как правило, не претерпевают изменений в процессе своего
исполнения, поэтому при загрузке нового сегмента кода на место отра-
ботавшего последний можно не сохранять во внешней памяти, в отли-
чие от сегментов данных, которые сохранять необходимо.
Первоначально программисты сами должны были включать в тек-
сты своих программ соответствующие обращения к ОС (системные вы-
зовы) и тщательно планировать, какие сегменты могут находиться в ОП
одновременно, чтобы их адресные пространства не пересекались. Одна-
ко с некоторых пор такого рода обращения к ОС системы программиро-
вания стали подставлять в код программы сами, автоматически, если в
том возникает необходимость.
В известной и популярной в недалеком прошлом системе програм-
мирования Turbo Pascal программист просто указывал, что данный мо-
дуль является оверлейным. При обращении к нему из основной про-
граммы модуль загружался в память и получал управление. Все адреса
определялись системой программирования автоматически, обращения к
DOS для загрузки оверлеев тоже генерировались системой Turbo Pascal.
Рассмотрев основные принципы работы с памятью в однопро-
граммных ОС, перейдем к рассмотрению особенностей распределения
памяти для более распространенных сегодня мультипрограммных ОС.
4.2.2 Особенности организации управления памятью в мульти-
программных ОС
Для организации мультипрограммного режима необходимо обеспе-
чить одновременное расположение в ОП нескольких задач (целиком или
частями). При решении этой задачи ОС должна учитывать целый ряд
моментов:
следует ли назначать каждому процессу одну непрерывную об-
ласть физической памяти или фрагментами;
должны ли сегменты программы, загруженные в память, нахо-
диться на одном месте в течение всего периода выполнения процесса
или можно ее время от времени сдвигать;
что следует предпринять, если сегменты программы не поме-
щаются в имеющуюся память.