В портале Duetgroup Вы будете проинформированы о технологии и программирования на базе Linux.
А также о комплектации программ, о процессе разработки ПО, о скорости обработки данных и решении практических задач.

Основная памяти

Основная памятиДанный подход позволяет одновременно выполнять несколько процессов в основной памяти, причем для этих процессов отсутствуют задержки, связанные с подгрузкой данных, находящихся в дополнительной памяти. Все данные активных процессов всегда располагаются в оперативной памяти, позволяя повысить скорость их реакции. Но при этом операция переключения процессов из активного состояния в неактивное является достаточно долгой, так как приходится полностью загружать/выгружать все данные процесса. Кроме того, такой подход накладывает дополнительные ограничения на размер процесса и его данных: суммарно для одного процесса размер кода и данных не должен превышать доступный объем оперативной памяти.
Сегментная организация виртуальной памяти основана на следующем подходе: все адресное пространство памяти исполняемой программы разбивается на непересекающиеся области, которые называются сегментами. Эти сегменты могут иметь разный размер. Адресация при такой организации виртуальной памяти осуществляется с помощью двух значений, первое из которых задает номер сегмента, а второе — смещение внутри сегмента.
Такие сегменты могут выбираться как самим разработчиком программы, так и автоматически линкером при сборке исполняемой программы. Например, в качестве таких сегментов могут использоваться сегменты кода, данных, констант и т. д. Такие сегменты могут выгружаться из основной памяти в дополнительную, если они не нужны в настоящий момент времени, и загружаться из дополнительной памяти в основную, если они требуются для работы процесса.
Такая модель организации виртуальной памяти является очень удобной с точки зрения программиста, поскольку она сама по себе предлагает модульную структуру программ. С каждым сегментом ассоциирован его дескриптор, содержащий информацию о размере и атрибутах сегмента. Процесс может обратиться к какой-то области памяти, только если такая операция разрешена атрибутами сегмента, в котором находится область памяти, а смещение не превосходит размер сегмента. В противном случае генерируется исключение о нарушении границ сегмента.