- •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 байт от начала модуля). Подобный адрес, сгенерированный программой, называется логическим адресом, а в системах с виртуальной памятью - виртуальным адресом. Совокупность всех логических адресов называется логическим (виртуальным) адресным пространством.
Физическая организация памяти.
Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную(главную,оперативную,физическую) и вторичную (внешнюю) память.
Основная памятьпредставляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду изосновной памяти, декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкамосновной памяти.
Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство, состоящее из последовательности байтов. В отличие отоперативной памяти, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширенияосновной памяти.
Виртуальная память.
Разработчикам программного обеспечения часто приходится решать проблему размещения в памяти больших программ, размер которых превышает объем доступной оперативной памяти.
При виртуальной памяти активный процесс обращается к логическому адресу или странице. Операционная система в динамическом режиме транслирует логический адрес или страницу в физический адрес или страницу. При отсутствии адреса или страницы в физической памяти операционная система организует ее подкачку с диска. Для процесса обращение к виртуальной памяти идентично обращению к оперативной памяти, поскольку операционная система в динамическом режиме осуществляет связь между логическими и физическими адресами. Для процесса создается иллюзия неограниченности физического адресного пространства оперативной памяти. Функция операционной системы при работе с виртуальной памятью заключается в трансляции виртуальных адресов или страниц в физические адреса или страницы. При этом не всегда требуемый адрес или страница находится в физической памяти. Контроль наличия страницы в памяти осуществляет бит присутствия, который входит в состав атрибутов страницы в таблице страниц. Таким образом, при виртуальной памяти пользовательский процесс напрямую не обращается к страницам оперативной памяти, программа генерирует виртуальные адреса. Программист имеет дело с виртуальной, а не реальной памятью, размер виртуальной памяти может превышать размер оперативной памяти. Преимущества виртуальной памяти:
Объем физической памяти не ограничивает размеры программы, что упрощает ее разработку.
Размещение в памяти большего количества программ, что увеличивает загрузку компьютера и пропускную способность системы.
Объем ввода-вывода для выгрузки части программы меньше, чем при классическом свопинге, что убыстряет работу программы.
Осуществление контроля доступа к отдельным сегментам памяти, что позволяет защитить пользовательские программы друг от друга, а операционную систему от пользовательских программ. Во всех схемах управления памятью используется трансляция адресов, но в случае виртуальной памяти она является более сложной операцией, т.к. логическое пространство является многомерным и разрывным. При организации виртуальной памяти может использоваться любая схема управления: страничная, сегментная и сегментно-страничная.