- •Определение ос. Назначение и функции операционной системы
- •Место ос в структуре вычислительной системы
- •Понятие ресурса. Управление ресурсами в вычислительной системе
- •Критерии эффективности и классы ос
- •Эволюция ос
- •Современный этап развития ос
- •Функциональные компоненты ос персонального компьютера
- •Требования, предъявляемые к современным ос
- •Классификации ос.
- •Архитектура ос. Ядро и вспомогательные модули
- •Классическая архитектура ос. Монолитные и многослойные ос
- •Микроядерная архитектура ос
- •Многослойная модель ядра ос
- •Функции ос по управлению процессами
- •Процессы и потоки
- •Состояния потока
- •Планирование и диспетчеризация потоков, моменты перепланировки
- •Алгоритм планирования, основанный на квантовании
- •Приоритетное планирование
- •Алгоритмы планирования ос пакетной обработки: «первым пришел – первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения»
- •Алгоритмы планирования в интерактивных ос: циклическое, приоритетное, гарантированное, лотерейное, справедливое планирование
- •Алгоритм планирования 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
- •Многоуровневые драйверы
- •Дисковый кэш
- •Параметры, свойства и показатели эффективности ос.
- •Основные и частные показатели эффективности ос.
- •Мониторинг производительности ос.
- •Настройка и оптимизация ос.
Задачи ос по управлению файлами и устройствами
Подсистема ввода-вывода (Input-Output Subsystem) мультипрограммной ОС при обмене данными с внешними устройствами компьютера должна решать ряд общих задач, из которых наиболее важными являются следующие:
организация параллельной работы устройств ввода-вывода и процессора;
согласование скоростей обмена и кэширование данных;
разделение устройств и данных между процессами;
обеспечение удобного логического интерфейса между устройствами и остальной частью системы;
поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера;
динамическая загрузка и выгрузка драйверов;
поддержка нескольких файловых систем;
поддержка синхронных и асинхронных операций ввода-вывода.
Организация параллельной работы устройств ввода-вывода и процессора
Каждое устройство ввода-вывода вычислительной системы снабжено специализированным блоком управления, называемым контроллером. Контроллер взаимодействует с драйвером. Контроллер периодически принимает от драйвера выводимую на устройство информацию, а также команды управления, которые говорят о том, что с этой информацией нужно сделать.
Процессы, происходящие в контроллерах, протекают в периоды между выдачами команд независимо от ОС. От подсистемы ввода-вывода требуется спланировать в реальном масштабе времени запуск и приостановку большого количества разнообразных драйверов, обеспечив приемлемое время реакции каждого драйвера на независимые события контроллера. С другой стороны, необходимо минимизировать загрузку процессора задачами ввода-вывода, оставив как можно больше процессорного времени на выполнение пользовательских потоков.
Разделение устройств и данных между процессами
Одно и то же устройство в разные периоды времени может использоваться как в разделяемом, так и в монопольном режимах. Тем не менее существуют устройства, для которых обычно характерен один из этих режимов, например последовательные порты и алфавитно-цифровые терминалы чаще используются в монопольном режиме, а диски — в режиме совместного доступа. Операционная система должна предоставлять эти устройства в обоих режимах, осуществляя отслеживание процедур захвата и освобождения монопольно используемых устройств, а в случае совместного использования оптимизируя последовательность операций ввода-вывода для различных процессов в целях повышения общей производительности, если это возможно.
При разделении устройства между процессами может возникнуть необходимость в разграничении порции данных двух процессов друг от друга. Обычно такая потребность возникает при совместном использовании так называемых последовательных устройств, данные в которых в отличие от устройств прямого доступа не адресуются. Для подобных устройств организуется очередь заданий на вывод, при этом каждое задание представляет собой порцию данных, которую нельзя разрывать, например документ для печати. Для хранения очереди заданий используется спул-файл, который одновременно согласует скорости работы принтера и оперативной памяти и позволяет организовать разбиение данных на логические порции. Так как спул-файл находится на разделяемом устройстве прямого доступа, то процессы могут одновременно выполнять вывод на принтер, помещая данные в свой раздел спул-файла.