- •1. Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос
- •Первый период (1945–1955 гг.)
- •Второй период (1955 г.– нач. 60-х)
- •Третий период (нач. 60-х – 1970 г.)
- •Четвертый период (с 1970 – 80 гг.) Персональные компьютеры.
- •Пятый период (с 1980 г. По н.В.)
- •3. Мультипрограммирование. Особенности реализации мультипрограммирования в системах пакетной обработки, разделения времени, реального времени, с мультипроцессорной обработкой
- •В системах пакетной обработки
- •В системах разделения времени
- •В системах реального времени
- •4.1. Различают симметричную и ассиметричную архитектуру таких систем
- •4.2. По способу организации процесса:
- •4. Роль прерываний при мультипрограммировании.
- •5. Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков
- •6. Контекст процесса и его состояния
- •7. Планирование процессов и потоков: критерии, виды, алгоритмы планирования
- •8. Параллельные процессы, синхронизация процессов, пример необходимости синхронизации, критическая секция.
- •9. Механизмы синхронизации: блокирующие переменные, семафоры, мониторы.
- •1) Блокирующие переменные
- •2) Семафоры
- •10. Проблемы синхронизации(тупики) и способы их разрешения.
- •11. Механизмы межпроцессного взаимодействия (каналы, очереди сообщений, разделяемая память)
- •12. Управление памятью: задачи управления, типы адресации
- •13. Распределение памяти: общие принципы управления памятью в однопрограммных ос, распределение памяти фиксированными, динамическими, перемещаемыми разделами
- •14. Сегментное распределение памяти
- •15. Страничное распределение памяти
- •16. Особенности эффективного использования таблицы страниц: многоуровневые таблицы страниц, ассоциативная память, инвертированная таблица страниц, хеширование
- •17. Сегментно - страничное распределение памяти
- •18. Физическая организация жёсткого диска
- •19. Принципы построения файловой системы: интерфейс, функциональная схема, типовая структура файловой системы
- •20. Способы выделения дискового пространства. Управление дисковым пространством. Размер логического блока
- •21. Особенности организации некоторых файловых систем
- •Vfat (Virtual fat)
16. Особенности эффективного использования таблицы страниц: многоуровневые таблицы страниц, ассоциативная память, инвертированная таблица страниц, хеширование
Особенности эффективного использования таблицы страниц
Одним из основных элементов, необходимых при страничном распределении памяти и существенно влияющих на эффективность ее использования в целом, является таблица страниц.
Существуют различные варианты организации и использования таблиц страниц, отличающихся как структурой таблиц (многоуровневые, инвертированные), так и способом доступа к их записям (ассоциативный).
В современных системах адресное пространство имеет высокую размерность, и использование одноуровневых таблиц страниц будет слишком накладно, так как при размере страницы в 4 кб, в 32-битных системах придется создать примерно 1 млн. страниц, таким образом в таблице было бы необходимо хранить ~1млн записей по несколько байт каждая, стоит отметить, что каждый процесс нуждается в своей таблице страниц (а в случае сегментно-страничной схемы, желательно иметь по одной таблице на каждый сегмент).
Многоуровневые таблицы страниц
Для того, чтобы избежать размещения в памяти огромной таблицы страниц, ее разбивают на ряд фрагментов, а в ОП хранят только те фрагменты таблиц страниц, которые необходимые для данного момента исполнения. В силу локальности, число таких страниц не велико.
Локальность – способность в течение ограниченного отрезка времени работать с небольшим набором адресов памяти.
Различают временную локальность (высокая вероятность повторного обращения по одному и тому же адресу в ближайшее время) и пространственную локальность (высокая вероятность повторного обращения по соседнему адресу в ближайшее время).
Двухуровневая таблица страниц:
Получается, что таблица из 220 строк разбивается на 210 таблиц второго уровня по 210 строк, все эти таблицы объединены в общую структуру при помощи таблицы из 210 строк.
При помощи всего лишь одной страницы второго уровня, можно адресовать до 4 Мбайт (4кб * 1024 (=210)) оперативной памяти.
Таким образом, для размещения процесса с большим объемом занимаемой памяти достаточно иметь в памяти одну таблицу первого уровня и несколько таблиц второго уровня.
Ассоциативная память
Суть: Так как обращения в течении некоторого промежутка времени происходят к небольшому количеству страниц (в соотв. с свойством локальности), то для ускорения, используют устройство – внешний буфер поиска трансляции. (TLB – translate lookaside buffer).
Одна запись в ассоциативной памяти содержит информацию об одной виртуальной странице: ее атрибутах и кадре, в котором она находится.
Сначала запись ищется в ассоциативной памяти, если нашли, то отображаем страницу оттуда, за исключением случаев нарушения привилегий, когда запрос на обращение к памяти отклоняется, если не нашли, то производим поиск через таблицу страниц, параллельно поиску, решаем какую страницу в ассоциативной памяти будем заменять.
Процент попаданий в кэш (англ. hit ratio) – число удачных поисков номера страницы в ассоциативной памяти по отношению к общему числу поисков. Основной параметр, определяющий эффективность использования ассоциативной памяти
Инвертированная таблица страниц
Данный подход позволяет решить проблему большого числа виртуальных страниц, число которых особенно велико в 64 разрядных системах.
В этой таблице содержится по одной записи на каждый страничный кадр физ. памяти. Достаточно одной таблицы для всех процессов.
Существенный минус: записи не отсортированы по возрастанию номеров виртуальных страниц, что усложняет трансляцию адреса. Как вариант решения – использовать хеш-таблицы виртуальных адресов. Часть виртуального адреса, представляющая собой номер страницы, отображается в хеш-таблицу с использованием функции хеширования. Каждой таблице соответствует одна запись в хеш-таблице и инвертированной таблице страниц. Виртуальные адреса, имеющие одно значение хеш-функции сцепляются друг с другом, при это длина цепочки обычно не превышает двух записей.
Хеш и хеш-функция
Хеш – число фиксированной длины, которое ставится в соответствие данным произвольной длины таким образом, чтобы вероятность появления различных данных с одинаковым хешем стремилась к нулю, а восстановить данные по их хешу было как можно труднее.
Хеш-функции – функция, выполняющая одностороннее преобразование (хеширование) входных данных.