- •Конспект лекций по курсу: «Операционные системы. Ч.1»
- •Введение
- •Аппаратные средства.
- •Центральный процессор.
- •Разрядность шины памяти.
- •Архитектура процессора.
- •Процессорное ядро.
- •Декодер.
- •Регистры процессора.
- •Многопроцессорные и многоядерные системы.
- •Многоядерные системы.
- •Оперативная память.
- •Адресация оп.
- •Ввод-вывод.
- •Прерывания.
- •Внешние устройства.
- •Классификация ос.
- •Основные понятия ос.
- •Структура ос.
- •Программная структура ос.
- •Программная структура ядра.
- •Интерфейсы системы вызовов.
- •Понятие мобильной ос.
- •Микроядерная архитектура.
- •Основные компоненты ос
- •Процессы и потоки.
- •Потоки.
- •Взаимодействие процессов, потоков.
- •Управление памятью.
- •Организация виртуальной памяти в ос.
- •Организация виртуальной памяти.
- •Сегментно-страничное распределение.
- •Преобразование адресов.
- •Буферы быстрого преобразования адреса.
- •Инвертированные таблицы страниц.
- •Алгоритмы замещения страниц.
- •Распределение виртуального адресного пространства.
- •Очистка страниц.
- •Перезапуск прерванной команды процессора.
- •Хранение страничной памяти на диске.
- •Реализация виртуальной памяти ос multics.
- •Виртуальная память в ос с аппаратной платформой Intel Pentium.
- •Защита памяти.
- •Ввод-вывод.
- •Контроллеры устройств.
- •Обмен данными с реальной оп.
- •Принципы программной реализации управления вводом-выводом.
- •Программная организация ввода-вывода.
- •Уровни реализации ввода-вывода.
- •Обработчики прерываний
- •Драйверы устройств.
- •Управление внешними устройствами.
- •Службы времени.
- •Алфавитно-цифровые терминалы.
- •Программное обеспечение ввода.
- •Программное обеспечение вывода.
- •Датчики.
- •Управление электропотреблением.
- •Файловые системы.
- •Логическая и физическая организация файлов.
- •Файловая система msdos.
- •Организация нескольких логических разделов.
- •Надежность файловой системы.
- •Производительность фс.
- •Файловая система cdr.
- •Формат записи каталога.
- •Сжатие видеоинформации.
- •Стандарт mpeg (Motion Picture Expert Group).
- •Структура реальной оп.
- •Структура виртуальной оп виртуальной машины.
- •Организация вычислительного процесса.
- •Планирование и диспетчирование.
- •Обработка прерываний.
- •Управление памятью.
- •Управление внешней памятью.
- •Планирование и диспетчирование.
- •Управление вводом-выводом.
- •Средства программирования и инструментальные средства.
- •Сетевые возможности операционных систем.
- •Понятие dce.
- •Подходы к обеспечению безопасности информации в ос.
Реализация виртуальной памяти ос multics.
В данной ОС каждый процесс имеет свою таблицу сегментов, строки которой являются дескриптором сегмента. Сама таблица сегментов является сегментом и разбита на страницы. Дескриптор сегмента содержит индикатор того, находится ли сегмент в реальной ОП или нет. Если какая-то часть сегмента присутствует в реальной ОП, то считается, что весь сегмент в реальной ОП и таблиц страниц тоже в реальной ОП. Виртуальный адрес состоит из двух частей: номер сегмента и адрес внутри сегмента. Адрес внутри сегмента делится на номер страницы и смещение внутри страницы. Когда происходит обращение к реальной ОП, выполняются следующие действия:
1. По номеру сегмента находится дескриптор сегмента.
2. Проверяется находятся ли таблиц страниц сегмента в памяти. Если да, определяется её местоположение (адрес). Если нет, происходит прерывание по отсутствию сегмента с таблицей страниц.
3. Просматривается запись в таблице страниц для запрашиваемой виртуальной страницы. Если страницы нет в реальной ОП, прерывание по отсутствию страницы. Если в реальной ОП есть, извлекается адрес начала страницы в реальной ОП.
4. К полученному адресу прибавляется смещение, что дает в результате адрес в реальной ОП, к котором происходит обращение.
Аппаратная часть ОС содержит высокоскоростной буфер TLB, в котором поиск осуществляется параллельно по всем записям. Формат буфера TLB следующий:
№ сегмента |
№ страницы |
Стр. блока |
защита |
возраст |
Признак действия |
4 |
1 |
7 |
Чт/зап |
13 |
1 |
5 |
0 |
3 |
Чт |
10 |
0 |
Когда получен виртуальный адрес, аппаратура проверяет его нахождение в TLB. Если он там, адрес страничной рамки, в которой находится виртуальная страница берется из TLB. Если страницы нет в TLB, происходит обращение к таблице сегментов и страниц. Поле "возраст" хранит информацию о том, какая страница используется давно. Для её вытеснения из TLB.
Виртуальная память в ос с аппаратной платформой Intel Pentium.
Виртуальная память организуется на основе двух таблиц: локальной таблицы дескрипторов (LDT) и глобальной таблицы дескрипторов (GDT). У каждого процесса есть своя таблица LDT, GDT для всех процессов одна, её используют все. LDT описывает сегменты локальные для каждого процесса, включая сегменты кода, стека, данных. GDT хранит информацию о системных сегментах, включая ОС. Для получения доступа к сегменту для процесса закрепляется так называемый селектор сегмента, который хранится в одном из сегментных регистров машины.
Формат селектора:
Индекс определяет номер записи в таблице дескрипторов сегмента. Во время загрузки селектора в сегментный регистр соответствующий дескриптор извлекается из локальной или глобальной таблицы, управляющий бит 0 или 1, и загружается в микропрограммные регистры, что обеспечивает к нему быстрый доступ.
Формат дескриптора:
G:
0 - в битах;
1 - в байтах.
D:
0 - 16-разрядный адрес сегмента;
1 - 32-разрядный адрес сегмента.
Предел - предельный адрес.
Механизм функционирования следующий: сначала выбирается локальный или глобальный дескриптор, основываясь на бите G селектора, затем селектор копируется во внутренний рабочий регистр машины, в соответствии с индексом ищется строка, в которой находится дескриптор данного сегмента, и определяется, где находится сегмент.
P:
0 - отсутствует;
1 - присутствует в ОП.
Если сегмент выгружен - прерывание, подкачка. Если адрес выходит за предел сегмента - прерывание, подкачка. Если сегмент находится в реальной ОП, смещение складывается с базовым адресом из дескриптора.
Если включено сегментно-страничной распределение, данный адрес интерпретируется как линейный виртуальный адрес, который подлежит страничному преобразованию. Для этого используются таблицы страниц данного сегмента. У каждого процесса есть так называемый страничный каталог, хранящийся по адресу, расположенному в одном из регистров. Каждая запись в каталоге ссылается на определенную таблицу страниц. Записи в таблице страниц указывают находятся ли виртуальные страницы сегмента в реальной ОП и по какому адресу. В этом случае линейный адрес представляется как:
В системах аналогичного класса используется TLB, в котором хранится информация о наиболее часто используемых страницах.
