- •Список вопросов к гос. Экзамену по курсу «Операционные системы»
- •Обзор развития ос.
- •Назначение и функции ос.
- •Классификация процессов.
- •Ресурсы вычислительной системы. Классификация ресурсов.
- •Прерывания. Порядок их обработки.
- •Архитектура ос. Привилегированный режим. Архитектура ос.
- •Привилегированный режим.
- •Структура ядра ос. Микроядерная архитектура ядра ос. Структура ядра ос
- •Микроядерная архитектура ос.
- •Планирование и диспетчеризация процессов. Дескрипторы задач.
- •Дисциплины диспетчеризации.
- •Память и отображения. Виртуальное адресное пространство. Управление оперативной памятью.
- •Пространства и отображения, виртуальное адресное пространство.
- •Логические имена
- •Распределение оп разделами. Распределение разделами.
- •Распределение фиксированными разделами
- •Распределение разделами с подвижными границами
- •Распределение подвижными разделами
- •Сегментная организация памяти. Сегментная организация памяти.
- •Страничная организация памяти.
- •Свопинг. Его стратегии.
- •Сегментно-страничная организация памяти.
- •Проблемы синхронизации параллельных процессов.
- •Семафорные примитивы Дейкстры. Задача взаимного исключения.
- •Почтовые ящики.
- •Мониторы Хоара.
- •Методы борьбы с тупиками.
- •Тупики. Примеры тупиков. Условия существования тупиков. Понятие тупика, примеры тупиков, условия существования тупиков.
- •Задачи ос по управлению файлами и устройствами. Задачи ос по управлению файлами и устройствами
- •Файловые системы.
- •Процессор i86, режимы, регистры.
- •Процессор i86, дескрипторы сегментов, виртуальное адресное пространство.
- •Процессор i86, организация памяти.
- •Процессор i86, кэширование.
- •Процессор i86, защита памяти, правила доступа к сегментам.
- •Процессор 80x86, система прерываний.
Сегментно-страничная организация памяти.
Компилятор подготавливает задачу в виде совокупности виртуальных сегментов, в общем случае, различной длины. Каждый сегмент состоит из целого числа виртуальных страниц. Виртуальные страницы имеют одинаковую фиксированную длину. Адресация внутри виртуальных страниц носит непрерывный характер. Виртуальные адреса представляются в виде троек (S,P,I), гдеS– виртуальный номер сегмента,P– виртуальный номер страницы,I– смещение относительно начала страницы. Физическая память представляет собой множество физических страниц того же размера, что и виртуальные страницы. Отображение виртуальных адресов в физические адреса показано на рис.
При загрузке задачи в оперативную память ОС, совместно с аппаратурой, создаёт в памяти таблицу дескрипторов сегментов задачи, а для каждого сегмента – соответствующую таблицу дескрипторов страниц. Загружаемым объектом в память является страница. Каждый дескриптор сегмента содержит начальный адрес соответствующей таблицы дескрипторов страниц (поле А) и размер сегмента в страницах (поле L). Каждый дескриптор страницы содержит признак присутствия/отсутствия страницы в оперативной памяти (полеPr) и физический номер страницы в памяти (полеF). Перед выполнением задачи, в специальный регистр процессора заносится начальный адрес таблицы дескрипторов сегментов текущей выполняемой задачи. Отображение виртуальных адресов в физические производится во время выполнения задачи и требует трёх обращений к памяти (к таблице дескрипторов сегментов, к таблице дескрипторов страниц, к самой странице), что видно на рис. Такая схема отображения имеет существенный недостаток – низкое быстродействие из-за большого числа обращений к памяти. Для устранения данного недостатка используется дополнительный аппаратно-программный механизм кэш памяти, функционирующей на основе ассоциативного принципа.
Каждая ячейка кэш памяти состоит из двух полей (см. рис.) – поля аргумента (X) и поля функции (Y). При использовании кэш памяти на все её ячейки параллельно подаётся значение ключа (Key). Если значение ключа совпадает со значением аргумента, то на выходные шины кэш памяти выдаётся значение функции.
Y X
Key
Использовать кэш память для ускорения отображения виртуальных адресов в физические адреса можно следующим образом. Выберем в качестве аргумента пару (S,P), а в качестве функции –F. Предположим, что произошло первое обращение к новой странице. Тогда физический адрес определится по основной схеме, но параллельно в ячейку кэш памяти занесутся значенияS,P– в поле аргумента, иF– в поле функции. Вероятность того, что следующее обращение будет к той же самой странице очень велика. Поэтому, при следующем обращении, скорее всего, сработает быстрый механизм кэш памяти и выдастся значениеF, после чего, быстро выполнится операция приписывания и физический адрес будет определён. Механизм кэш памяти для определения физического адреса будет срабатывать до тех пор, пока не произойдёт обращение к следующей странице.
Так как кэш память имеет относительно небольшой объём, для неё актуальна проблема вытеснения ненужных заполненных ячеек. Решать эту проблему необходимо, когда кэш память заполнена полностью и происходит обращение к новой странице. Наиболее оптимальной стратегией вытеснения является LFU. Вытеснение ненужных ячеек может производиться также и в случае, когда кэш память заполнена лишь частично.