
- •1. Назначение и функци ос
- •Операционные системы пакетной обработки.
- •Операционные системы разделения времени.
- •Операционные системы реального времени.
- •2. Процессы
- •2.2. Состояния процесса
- •2.3.1. Набор операций
- •2.3.2. Process Control Block и контекст процесса
- •2.3. Операции над процессами и связанные с ними понятия
- •3. Организация памяти компьютера.
- •4. Система управления ввода-вывода
- •13.2. Логические принципы организации ввода-вывода.
- •13.2.1. Структура системы ввода-вывода.
3. Организация памяти компьютера.
Схема управления памяти
Функции системы управления памятью:
Отображение логического адресного пространства процесса на физическое адресное пространство
Распределение памяти между конкурирующими процессами
Контроль доступа к адресным пространствам процессов
Выгрузка процессов (целиком или частично) во внешнюю память
Учет свободной и занятой памяти
Логическая память.
Большинство
программ состоят из набора модулей,
работающих независимо друг от друга.
Модули могут располагаться в памяти
один за другим, образуя линейное
пространство адресов или в разных
областях памяти.
Управление
памятью, когда модули программ и данных
располагаются в разных областях памяти,
называется сегментацией. Сегмент –
область памяти, внутри которой
поддерживается линейная адресация. При
сегментной организации память становится
двумерной. Адрес определяется номером
сегмента и смещением внутри сегмента.
Пример расположения сегментов процессов
в памяти компьютера представлено на
рисунке ?.
Рис. Расположение
сегментов процессов в памяти
компьютера
Сегментная
организация памяти поддерживается в
большинстве современных операционных
системах. В некоторых архитектурах
(Intel, например) сегментация поддерживается
оборудованием.
Таким
образом, реально существующие адреса
оперативной памяти отличаются от
адресов, к которым обращается процесс.
Компилятор связывает адреса исходных
текстов программ с перемещаемыми
адресами (n байт от начала модуля).
Подобный адрес, сгенерированный
программой, называется логическим
адресом, а в системах с виртуальной
памятью - виртуальным адресом. Совокупность
всех логических адресов называется
логическим (виртуальным) адресным
пространством.
Физическая организация памяти.
Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную(главную,оперативную,физическую) и вторичную (внешнюю) память.
Основная памятьпредставляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду изосновной памяти, декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкамосновной памяти.
Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство, состоящее из последовательности байтов. В отличие отоперативной памяти, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширенияосновной памяти.
Виртуальная память.
Разработчикам программного обеспечения часто приходится решать проблему размещения в памяти больших программ, размер которых превышает объем доступной оперативной памяти.
При виртуальной памяти активный процесс обращается к логическому адресу или странице. Операционная система в динамическом режиме транслирует логический адрес или страницу в физический адрес или страницу. При отсутствии адреса или страницы в физической памяти операционная система организует ее подкачку с диска. Для процесса обращение к виртуальной памяти идентично обращению к оперативной памяти, поскольку операционная система в динамическом режиме осуществляет связь между логическими и физическими адресами. Для процесса создается иллюзия неограниченности физического адресного пространства оперативной памяти. Функция операционной системы при работе с виртуальной памятью заключается в трансляции виртуальных адресов или страниц в физические адреса или страницы. При этом не всегда требуемый адрес или страница находится в физической памяти. Контроль наличия страницы в памяти осуществляет бит присутствия, который входит в состав атрибутов страницы в таблице страниц. Таким образом, при виртуальной памяти пользовательский процесс напрямую не обращается к страницам оперативной памяти, программа генерирует виртуальные адреса. Программист имеет дело с виртуальной, а не реальной памятью, размер виртуальной памяти может превышать размер оперативной памяти. Преимущества виртуальной памяти:
Объем физической памяти не ограничивает размеры программы, что упрощает ее разработку.
Размещение в памяти большего количества программ, что увеличивает загрузку компьютера и пропускную способность системы.
Объем ввода-вывода для выгрузки части программы меньше, чем при классическом свопинге, что убыстряет работу программы.
Осуществление контроля доступа к отдельным сегментам памяти, что позволяет защитить пользовательские программы друг от друга, а операционную систему от пользовательских программ. Во всех схемах управления памятью используется трансляция адресов, но в случае виртуальной памяти она является более сложной операцией, т.к. логическое пространство является многомерным и разрывным. При организации виртуальной памяти может использоваться любая схема управления: страничная, сегментная и сегментно-страничная.