Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Saitova_R_B.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
770.51 Кб
Скачать

2. Защита памяти.

Многозадачность вносит две существенные проблемы, требующие решения, — это настройка адресов для перемещения программы в памяти и защита. Разные задачи будут загружены по различным адресам. Когда программа компонуется (то есть в едином адресном пространстве объединяются основной модуль, написанные пользователем процедуры и библиотечные подпрограммы), компоновщик должен знать, с какого адреса будет начинаться программа в памяти.

Для защиты компьютера IBM 360 разработчики приняли следующее решение: они разделили память на блоки по 2 Кбайт и назначили каждому блоку 4-битный защитный код. Регистр PSW (Program Status Word — слово состояния программы) содержал 4-разрядный ключ. Аппаратура IBM 360 перехватывала все попытки работающих процессов обратиться к любой части памяти, защитный код которой отличался от содержимого регистра слова состояния программы. Поскольку только операционная система была вправе изменять коды защиты и ключи, предотвращалось вмешательство пользовательских процессов в дела друг друга и в работу операционной системы.

Альтернативное решение проблем защиты и перераспределения заключается в оснащении машины двумя специальными аппаратными регистрами, называемыми базовым и ограничительным регистрами. При планировании процесса в базовый регистр загружается адрес начала раздела памяти, а в ограничивающий регистр — длина раздела. К каждому автоматически формируемому адресу перед его передачей в память прибавляется содержимое базового регистра. Таким образом, если базовый регистр содержит величину 100 К, команда CALL 100 будет превращена в команду CALL 100K+100 без изменения самой команды. Кроме того, адреса проверяются по отношению к лимитирующему регистру для гарантии, что они не используются для адресации памяти вне текущего раздела. Базовый и ограничительный регистры защищаются аппаратно, чтобы не допустить их изменений пользовательскими программами.

Неудобство, присущее этой схеме, — требуется выполнять операции сложения и сравнения при каждом обращении к памяти. Операция сравнения может быть выполнена быстро, но сложение относительно нее — медленное действие, что обусловлено временем распространения сигнала, за исключением тех случаев, когда применяется специальная микросхема сложения.

3. Механизм реализации виртуальной памяти.

Термин виртуальная память фактически относится к системам, которые сохраняют виртуальные адреса во время исполнения. Так как второе отображение осуществляется в процессе исполнения задачи, то адреса физических ячеек могут изменяться. При правильном применении такие изменения могут улучшить использование памяти, избавив программиста от деталей управления ею, и даже увеличить надежность вычислений.

Виртуальная память не теряет работоспособности в многозадачной системе при множестве одновременно загруженных в память программ. Когда программа ждет перемещения в память очередной ее части, она находится в состоянии ожидания ввода/вывода и не может работать, поэтому центральный процессор может быть отдан другому процессу тем же самым способом, как в любой другой многозадачной системе.

Программно формируемые адреса, называемые виртуальными адресами, образуют виртуальное адресное пространство. На компьютерах без виртуальной памяти виртуальные адреса подаются непосредственно на шину памяти и при чтении или записи читается или записывается слово в физической памяти с тем же самым адресом. При применении виртуальной памяти виртуальные адреса не передаются напрямую шиной памяти. Вместо этого они направляются диспетчеру памяти (MMU — Memory Management Unit), который отображает виртуальные адреса на физические адреса.

Основа виртуальной памяти Pentium состоит их двух таблиц: локальной таблицы дескрипторов LDT (Local Descriptor Table) и глобальной таблицы дескрипторов GDT (Global Descriptor Table). У каждой программы есть своя собственная таблица LDT, но глобальная таблица дескрипторов одна, ее совместно используют все программы в компьютере. Таблица LDT описывает сегменты, локальные для каждой программы, — ее код, данные, стек и т. д., тогда как таблица GDT несет информацию о системных сегментах, включая саму операционную систему.

Большинство систем виртуальной памяти опираются на техники страничной, сегментной и сегментно-страничной организацией памяти.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]