Учебный курс Операционные среды, системы и оболочки Лекция 8 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович
2 Последовательность действий при обработке прерываний 1.Первичное аппаратное распознавание типа прерывание. Если прерывания запрещены, продолжается текущая программа. В противном случае вызывается диспетчер прерываний и в зависимости от поступившей в процессор информации (вектор прерывания, приоритет и др.) производится вызов процедуры обработки прерывания. 2.Сохраняется некоторая часть контекста прерванного потока, которая позволит возобновить его исполнение после обработки прерывания (обычно слово состояния процессора – регистр EFLAGS в Pentium, регистры общего назначения). Может быть сохранен и полный контекст, если ОС обслуживает прерывание со сменой процесса. 3.В счетчик команд загружается адрес процедуры обработки прерывания и устанавливается новое PSW, которое определяет привилегированный режим работы процессора при обработке прерывания. 4.Маскированием прерываний временно запрещаются прерывания, чтобы не образовалась очередь вложенных друг в друга потоков одной и той же процедуры. 1.После обработки прерывания ядром операционной системы, прерванный контекст восстанавливается (частично аппаратно – PSW, содержимое счетчика команд, частично программно – извлечение данных из стека), снимается обработка прерываний данного типа и работа потока возобновляется с прерванного места.
Системные вызовы Системный вызов позволяет приложению обратиться к ОС с просьбой выполнить то или иное действие, оформленное как процедура кодового сегмента ОС. Реализация системных вызовов должна удовлетворять следующим требованиям: o обеспечивать переключение в привилегированный режим; o обладать высокой скоростью вызова процедур ОС; o обеспечивать по возможности единообразное обращение к системным вызовам для всех аппаратных платформ, на которых работает ОС; o допускать простое расширение системных вызовов; o обеспечивать контроль со стороны ОС за корректным использованием системных вызовов. Возможные схемы обслуживания системных вызовов: 1. Децентрализованная –за каждым системным вызовом закреплен свой вектор прерываний. Достоинство – высокая скорость обработки системных вызовов, недостаток – разрастание таблицы векторов прерываний. 2. Централизованная – с помощью диспетчера системных вызовов.
4 Таблица прерываний системы Адрес диспетчера системных вызовов Диспетчер системных вызовов Процедура обработки системного вызова 21h Процедура обработки системного вызова 22h Процедура обработки системного вызова 23h Виртуальное адресное пространство RQ=21h СистемныйСистемный вызоввызов Адрес процедуры 21h Адрес процедуры 22h Адрес процедуры 23h Централизованная схема обработки системных вызовов Вектор 80h Linux INT 2Eh Pentium
5 Тема 3. Управление памятью. Методы, алгоритмы и средства 3.1. Организация памяти современного компьютера 3.2. Функции операционной системы по управлению памятью 3.3. Алгоритмы распределение памяти Классификация методов распределения памяти Классификация методов распределения памяти Распределение памяти фиксированными разделами Распределение памяти динамическими разделами Распределение памяти динамическими разделами Распределение памяти перемещаемыми разделами Распределение памяти перемещаемыми разделами 3.4. Виртуальная память Методы структуризации виртуального адресного пространства Страничная организация виртуальной памяти Страничная организация виртуальной памяти Оптимизация функционирования страничной виртуальной памяти Оптимизация функционирования страничной виртуальной памяти Сегментная организация виртуальной памяти Сегментная организация виртуальной памяти
6 Литература Базовый учебник с Л1 с. 162 – 210; Л2 с. 357 – 380, 391 – 431; Л4 с
Организация памяти современного компьютера Логическая организация памяти: Линейное (одномерное) адресное пространство, отражающее особенности аппаратного обеспечения, но не соответствующее современной технологии создания программного обеспечения. Для эффективной работы с пользовательскими программами необходимо чтобы: Модули могли быть созданы и скомпилированы независимо друг от друга, при этом все ссылки из одного модуля в другой разрешаются системой во время работы программы. Разные модули могли получать разные степени защиты (только чтение, только исполнение и т. п.) за счет весьма умеренных накладных расходов. Возможно применение механизма, обеспечивающего совместное использование модулей разными процессами (для случая сотрудничества разных процессов в работе над одной задачей).
Физическая организация памяти Центральный процессор Внутренние регистры (0,3-0,5 нс.) Внутренний кэш, 64 Кбайт, 0,3-0,5 нс. Кэш второго уровня 1Мбайт SRAM, 1-3 нс. Основная память 512 Мбайт DDRAM, 3-6 нс.. Кэш диска 8 Мбайт Жесткий диск 100 Гбайт, 10 мс. МЛ Сотни с.
9 20% 50% 80% Z =1 – P n, где n – число процессов 20 % 50 % 80 %
10 Виртуализация оперативной памяти осуществляется совокупностью аппаратных и программных (ОС) средств вычислительной системы автоматически без участия программиста и не сказывается на работе приложения. Достоинства свопинга : малые затраты времени на преобразование адресов в кодах программ. Недостатки :: избыточность перемещаемых данных, замедление работы системы, неэффективное использование памяти, невозможность загрузить процесс, адресное пространство которого превышает объем свободной оперативной памяти. Недостатки виртуальной памяти : необходимость преобразования виртуальных адресов в физические, сложность аппаратной и программной (ОС) поддержки Виртуальная память Методы виртуализации памяти: свопинг (swapping), виртуальная память (virtual memory).
Функции операционной системы по управлению памятью ОС в ОЗУ ОС в ПЗУ BIOS Скрытая память 1 Мбайт Программа пользователя 60 Кбайт 640 Кбайт Программа пользователя Распределение памяти в однопрограммных ОС
12 Функции операционной системы по управлению памятью в мультипрограммных системах отслеживание (учет) свободной и занятой памяти; первоначальное и динамическое распределение памяти процесса приложений и сомой ОС; освобождение памяти при завершении процессов; настройка адресов программы на конкретную область физической памяти; полное или частичное вытеснение кодов и данных процессов из ОП на диск, когда размеры ОП недостаточны для размещения всех процессов и возвращение их в ОП; защита памяти, выделенной процессу, от возможных вмешательств со стороны других процессов; дефрагментация памяти.
13 Типы адресов Символьные имена Виртуальные адреса Физические адреса Идентификаторы переменных в программе на алгоритмическом языке Транслятор Условные адреса, вырабатываемые транслятором Номера ячеек физической памяти 1. Перемещающий загрузчик (статическое преобразование) 2. Динамическое преобразование (аппаратные средства)
Алгоритмы распределение памяти Классификация методов распределения памяти Методы распределения памяти Без использования внешней памяти С использованием внешней памяти Фиксированными разделами Динамическими разделами Перемещаемыми разделами Страничное распределение Сегментное распределение Сегментно-страничное распределение
Распределение памяти фиксированными разделами (MFT в OS/360) Операционная система 8 М Программа 1, 4М Программа 2, 3М Программа 3, 7М 8М Разделы одинакового размера Операционная система 8 М Программа 1, 4М Программа 2, 3М Программа 3, 7М Разделы разного размера Неиспользованная память
16 1 М 2 М 4 М 8 М 12 М Новые процессы 1 М 2 М 4 М 8 М 12 М Новые процессы Очереди для каждого раздела Общая очередь для всех разделов
17 Распределение памяти фиксированными разделами 2. Разделы разного размера. Очередь к каждому разделу. Достоинство Достоинство: возможность распределения процессов между разделами с минимизацией внутренней фрагментации. Недостаток: возможно неэффективное использование памяти за счет «простоя» больших разделов при наличии только небольших процессов. 1. Разделы одинакового размера. Недостатки: необходимость разработки оверлеев при больших размерах программ; неэффективное использование памяти (внутренняя фрагментация) 3. Разделы разного размера. Общая очередь к разделам. Достоинство Достоинство: улучшается использование памяти. Достоинства: простота, минимальные требования к операционной системе. Недостатки: 1) количество разделов, определенных во время генерации ОС (режим MFT OS/360), ограничивает число активных процессов; 2) неэффективное использование памяти.
Распределение памяти динамическими разделами ОС P1 P2 P3 P4 P5 P1 P2 P3 P5 P1 P3 P5 P6 t0t0 t1t1 t2t2 t3t3 ОС tktk
19 Распределение памяти динамическими разделами Достоинства: большая гибкость по сравнению с фиксированными разделами. Недостаток: внешняя фрагментация Функции ОС для реализации метода MVT OS/360 (ЕС ЭВМ): ведение таблиц свободных и занятых областей ОП с указанием начального адреса и размера ; при создании нового раздела просмотр таблиц и выбор раздела, достаточного для размещения процесса (наименьший или наибольший достаточный из свободных); загрузка процесса в выделенный раздел и корректировка таблиц свободных и занятых областей основной памяти; после завершения процесса корректировка таблиц свободных и занятых областей.
Распределение памяти перемещаемыми разделами ОС a b c d e P1 P2 P3 P4 P3 P4 P5 P6 P5 P7 Процедура сжатия a+b+c+d+e
21 Распределение памяти перемещаемыми разделами 1.Перемещение всех занятых участков в сторону старших или младших адресов при каждом завершении процесса или для вновь создаваемого процесса в случае отсутствия раздела достаточного размера. 2.Коррекция таблиц свободных и занятых областей. 3.Изменение адресов команд и данных, к которым обращаются процессы при их перемещении в памяти за счет использования относительной адресации. 4.Аппаратная поддержка процесса динамического преобразования относительных адресов в абсолютные адреса основной памяти. 5.Защита памяти, выделяемой процессу, от взаимного влияния других процессов. Достоинства распределения памяти перемещаемыми разделами: эффективное использование оперативной памяти, исключение внутренней и внешней фрагментации. Недостаток: дополнительные накладные расходы ОС.