
- •Определение ос. Назначение и функции операционной системы
- •Место ос в структуре вычислительной системы
- •Понятие ресурса. Управление ресурсами в вычислительной системе
- •Критерии эффективности и классы ос
- •Эволюция ос
- •Современный этап развития ос
- •Функциональные компоненты ос персонального компьютера
- •Требования, предъявляемые к современным ос
- •Классификации ос.
- •Архитектура ос. Ядро и вспомогательные модули
- •Классическая архитектура ос. Монолитные и многослойные ос
- •Микроядерная архитектура ос
- •Многослойная модель ядра ос
- •Функции ос по управлению процессами
- •Процессы и потоки
- •Состояния потока
- •Планирование и диспетчеризация потоков, моменты перепланировки
- •Алгоритм планирования, основанный на квантовании
- •Приоритетное планирование
- •Алгоритмы планирования ос пакетной обработки: «первым пришел – первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения»
- •Алгоритмы планирования в интерактивных ос: циклическое, приоритетное, гарантированное, лотерейное, справедливое планирование
- •Алгоритм планирования Windows nt
- •Планирование в ос реального времени
- •Синхронизация процессов и потоков: цели и средства синхронизации
- •Ситуация состязаний (гонки). Способы предотвращения.
- •Способы реализации взаимных исключений: блокирующие переменные, критические секции, семафоры Дейкстры Блокирующие переменные
- •Критические секции
- •Семафоры
- •Взаимные блокировки. Условия, необходимые для возникновения тупика
- •Обнаружение взаимоблокировки при наличии одного ресурса каждого типа
- •Обнаружение взаимоблокировок при наличии нескольких ресурсов каждого типа
- •Предотвращение взаимоблокировки. Алгоритм банкира для одного вида ресурсов
- •Предотвращение взаимоблокировки. Алгоритм банкира для нескольких видов ресурсов
- •Синхронизирующие объекты ос: системные семафоры, мьютексы, события, сигналы, ждущие таймеры, мониторы
- •Мьютексы
- •Системные семафоры
- •События
- •Ждущие таймеры
- •Мониторы Хоара
- •Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты)
- •Прерывания (понятие, классификация, обработка прерываний).
- •Средства вызова процедур.
- •Механизм вызова при переключении между задачами.
- •Обработка аппаратных прерываний.
- •Функции ос по управлению памятью
- •Виртуальная память
- •Алгоритмы распределения памяти без использования внешних носителей (фиксированные, динамические, перемещаемые разделы)
- •Страничное распределение памяти
- •Алгоритмы замещения страниц.
- •Оптимальный (нереализуемый)
- •Исключение недавно использованных страниц
- •Алгоритм «первый пришёл, первый ушёл» (fifo)
- •«Второй шанс»
- •Алгоритм нечастого использования
- •«Рабочий набор»
- •Сегментное распределение памяти.
- •Сегментно-страничное распределение памяти.
- •Средства поддержки сегментации памяти в мп Intel Pentium.
- •Сегментный режим распределения памяти в мп Intel Pentium.
- •Сегментно-страничный режим распределения памяти в мп Intel Pentium.
- •Средства защиты памяти в мп Intel Pentium.
- •Случайное отображение основной памяти на кэш.
- •Детерминированное отображение основной памяти на кэш.
- •Комбинированный способ отображения основной памяти на кэш.
- •Кэширование в мп Intel Pentium. Буфер ассоциативной трансляции Кэширование в процессоре Pentium
- •Буфер ассоциативной трансляции
- •Кэширование в мп Intel Pentium. Кэш первого уровня Кэширование в процессоре Pentium
- •Кэш первого уровня
- •Задачи ос по управлению файлами и устройствами
- •Организация параллельной работы устройств ввода-вывода и процессора
- •Разделение устройств и данных между процессами
- •Обеспечение удобного логического интерфейса между устройствами и остальной частью системы
- •Поддержка широкого спектра драйверов и простота включения нового драйвера в систему
- •Динамическая загрузка и выгрузка драйверов
- •Поддержка нескольких файловых систем
- •Поддержка синхронных и асинхронных операций ввода-вывода
- •Многослойная модель подсистемы ввода-вывода Общая схема
- •Менеджер ввода-вывода
- •Физическая организация жесткого диска Диски, разделы, секторы, кластеры
- •Файловая система. Определение, состав, типы файлов. Логическая организация файловой системы Цели и задачи файловой системы
- •Типы файлов
- •Иерархическая структура файловой системы
- •Физическая организация и адресация файлов
- •Fat. Структура тома. Формат записи каталога. Fat12, fat16, fat32
- •Ufs : структура тома, адресация файлов, каталоги, индексные дескрипторы
- •Ntfs: структура тома
- •Структура тома ntfs
- •Ntfs: типы файлов, организация каталогов. Структура файлов ntfs
- •Каталоги ntfs
- •Файловые операции. Процедура открытия файла. Открытие файла
- •Организация контроля доступа к файлам. Доступ к файлам как частный случай доступа к разделяемым ресурсам
- •Механизм контроля доступа
- •Контроль доступа к файлам на примере Unix.
- •Отказоустойчивость файловых систем.
- •Восстанавливаемость файловых систем
- •Протоколирование транзакций
- •Процедура самовосстановления ntfs.
- •Избыточные дисковые подсистемы raid
- •Многоуровневые драйверы
- •Дисковый кэш
- •Параметры, свойства и показатели эффективности ос.
- •Основные и частные показатели эффективности ос.
- •Мониторинг производительности ос.
- •Настройка и оптимизация ос.
«Рабочий набор»
Рабочий набор - множество страниц (к), которое процесс использовал до момента времени (t). Т.е. можно записать функцию w(k,t).
Рисунок 18. Зависимость рабочего набора w(k,t) от количества запрошенных страниц
Т.е. рабочий набор выходит в насыщение, значение w(k,t) в режиме насыщения может служить для рабочего набора, который необходимо загружать до запуска процесса.
Алгоритм заключается в том, чтобы определить рабочий набор, найти и выгрузить страницу, которая не входит в рабочий набор. Этот алгоритм можно реализовать, записывая, при каждом обращении к памяти, номер страницы в специальный сдвигающийся регистр, затем удалялись бы дублирующие страницы. Но это дорого. В принципе можно использовать множество страниц, к которым обращался процесс за последние t секунд.
Текущее виртуальное время (Tv) - время работы процессора, которое реально использовал процесс.
Время последнего использования (Told) - текущее время при R=1, т.е. все страницы проверяются на R=1, и если да то текущее время записывается в это поле.
Теперь можно вычислить возраст страницы (не обновления) Tv-Told, и сравнить с t, если больше, то страница не входит в рабочий набор, и страницу можно выгружать.
Получается три варианта:
если R=1, то текущее время запоминается в поле время последнего использования
если R=0 и возраст > t, то страница удаляется
если R=0 и возраст =< t, то эта страница входит в рабочий набор
WSClock
Алгоритм основан на алгоритме "часы", но использует рабочий набор. Используются битов R и M, а также время последнего использования. Это достаточно реальный алгоритм, который используется на практике.
Рисунок 19. Работа алгоритма WSClock
Сегментное распределение памяти.
Страничная организация виртуального адресного пространства не позволяет дифференцировать способы доступа к разным частям программы (сегментам), а это часто бывает очень полезным. При сегментном способе организации памяти виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом с учетом смыслового значения содержащейся в них информации. Отдельный сегмент может представлять собой подпрограмму, массив данных и т.п. Иногда сегментация программы выполняется по умолчанию компилятором.
При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса, в которой для каждого сегмента указывается:
- начальный физический адрес сегмента в оперативной памяти;
- размер сегмента;
- правила доступа;
- признаки модификации, присутствия, обращения к данному сегменту.
Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.
Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту. Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g - номер сегмента, а s - смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s. Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.