- •Определение ос. Назначение и функции операционной системы
- •Место ос в структуре вычислительной системы
- •Понятие ресурса. Управление ресурсами в вычислительной системе
- •Критерии эффективности и классы ос
- •Эволюция ос
- •Современный этап развития ос
- •Функциональные компоненты ос персонального компьютера
- •Требования, предъявляемые к современным ос
- •Классификации ос.
- •Архитектура ос. Ядро и вспомогательные модули
- •Классическая архитектура ос. Монолитные и многослойные ос
- •Микроядерная архитектура ос
- •Многослойная модель ядра ос
- •Функции ос по управлению процессами
- •Процессы и потоки
- •Состояния потока
- •Планирование и диспетчеризация потоков, моменты перепланировки
- •Алгоритм планирования, основанный на квантовании
- •Приоритетное планирование
- •Алгоритмы планирования ос пакетной обработки: «первым пришел – первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения»
- •Алгоритмы планирования в интерактивных ос: циклическое, приоритетное, гарантированное, лотерейное, справедливое планирование
- •Алгоритм планирования 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
- •Многоуровневые драйверы
- •Дисковый кэш
- •Параметры, свойства и показатели эффективности ос.
- •Основные и частные показатели эффективности ос.
- •Мониторинг производительности ос.
- •Настройка и оптимизация ос.
Сегментно-страничное распределение памяти.
Сегментно-страничное распределение представляет собой комбинацию страничного и сегментного механизма управления памятью и направлен на реализацию достоинств обоих методов. Так же как и при сегментной организации памяти, виртуальное адресное пространство процесса разделено на сегменты. Это позволяет определить разные права доступа к разным частям кодов и данных программы. Перемещение данных между памятью и диском осуществляется не сегментами, а страницами. Для этого каждый виртуальный сегмент и физическая память делятся на страницы равного размера, что позволяет более эффективно использовать память, сократив фрагментацию. В большинстве современных реализаций сегментно-страничной организации памяти все виртуальные сегменты образуют одно непрерывное линейное виртуальное адресное пространство. Для каждого процесса ОС создает отдельную таблицу сегментов, в которой содержатся дескрипторы всех сегментов процесса. Описание сегмента включает назначенные ему права доступа и другие характеристики, подобные тем, которые содержатся в дескрипторах сегментов при сегментной организации памяти. В поле базового адреса указывается не начальный физический адрес сегмента, отведенный ему при загрузке в оперативную память, а начальный линейный виртуальный адрес сегмента в пространстве виртуальных адресов. Исходный виртуальный адрес, заданный в виде пары (сегмент : смещение) однозначно преобразуется в линейный виртуальный адрес байта, который затем преобразуется в физический адрес страничным механизмом.
Средства поддержки сегментации памяти в мп Intel Pentium.
Физическое адресное пространство процессора i386 составляет 4 Гбайта, что определяется 32-разрядной шиной адреса. Физическая память является линейной с адресами от 00000000 до FFFFFFFF в шестнадцатеричном представлении. Виртуальный адрес, используемый в программе, представляет собой пару - номер сегмента и смещение внутри сегмента. Смещение хранится в соответствующем поле команды, а номер сегмента - в одном из шести сегментных регистров процессора (CS, SS, DS, ES, FS или GS), каждый из которых является 16-битным. Средства сегментации образуют верхний уровень средств управления виртуальной памятью процессора i386, а средства страничной организации - нижний уровень. Средства страничной организации могут быть как включены, так и выключены (за счет установки определенного бита в управляющем регистре процессора), и в зависимости от этого изменяется смысл преобразования виртуального адреса, которое выполняют средства сегментации. Сначала рассмотрим случай работы средств сегментации при отключенном механизме управления страницами.
32-битное смещение определяет размер виртуального сегмента в 232=4 Гбайта, а количество сегментов определяется размером поля, отведенного в сегментном регистре под номер сегмента. Структура данных в сегментном регистре называется селектором, так как предназначена для выбора дескриптора определенного сегмента из таблиц дескрипторов сегментов. Дескриптор сегмента описывает все характеристики сегмента, необходимые для проверки правильности доступа к нему и нахождения его в физическом адресном пространстве. Процессор i386 поддерживает две таблицы дескрипторов сегментов - глобальную (Global Descriptor Table, GDT) и локальную (Local Descriptor Table, LDT). Глобальная таблица предназначена для описания сегментов операционной системы и сегментов межзадачного взаимодействия, то есть сегментов, которые в принципе могут использоваться всеми процессами, а локальная таблица - для сегментов отдельных задач. Таблица GDT одна, а таблиц LDT должно быть столько, сколько в системе выполняется задач. При этом активной в каждый момент времени может быть только одна из таблиц LDT.
Селектор состоит из трех полей - 13-битного поля индекса (номера сегмента) в таблицах GDT и LDT, 1-битного поля - указателя типа используемой таблицы дескрипторов и двухбитного поля текущих прав доступа задачи - CPL. Разрядность поля индекса определяет максимальное число глобальных и локальных сегментов задачи - по 8K (213) сегментов каждого типа, всего 16 K. С учетом максимального размера сегмента - 4 Гбайта - каждая задача при чисто сегментной организации виртуальной памяти работает в виртуальном адресном пространстве в 64 Тбайта.