Доступ к сегментам осуществляется только через таблицы дескрипторов. Загрузка сегмента в память (оперативную или внешнюю) производится в любую её свободную область. При этом в дескрипторе сегмента фиксируется базовый (начальный) адрес сегмента. Таким образом, таблицы дескрипторов определяют не только общий объем адресного пространства программы, но и конкретное размещение сегментов программы в физической памяти. Это является основой разделения адресных пространств пользовательских программ. У каждой пользовательской программы есть своя локальная таблица дескрипторов, недоступная программам других пользователей. Эта таблица определяет доступ к физическим адресам соответствующих сегментов. Следовательно, пользовательские программы могут "видеть" только свое адресное пространство. Многопользовательские режимы должны не только разделять программы пользователей. Иногда требуется совместная работа нескольких пользовательских программ. Для этого требуются не локальная, а разделяемая память. Разделяемая память легко организуется при помещении дескрипторов соответствующих сегментов в общую глобальную таблицу дескрипторов или дублированием дескрипторов разделяемых сегментов в локальных таблицах дескрипторов. |