- •Модель процесса, Создание и завершение процесса
- •Иерархии, реализация, состояния процессов
- •Иерархии процессов
- •Реализация процессов
- •Состояния процессов
- •Классическая модель потоков
- •2.1 Классическая модель потоков
- •Применение потоков, моделирование режима многозадачности
- •Потоки в posix, реализация потоков в пользовательском пространстве
- •Реализация потоков в ядре, гибридная реализация, активация планировщика Реализация потоков в ядре
- •Гибридная реализация
- •Активация планировщика
- •Всплывающие потоки, превращение однопоточного кода в многопоточный Всплывающие потоки
- •2.2. Превращение однопоточного кода в многопоточный
- •Взаимодействие процессов: состязательная ситуация, критические области Межпроцессное взаимодействие.
- •Состояние состязания.
- •Критическая область.
- •3.1 Взаимодействие между процессами
- •Передача информации от одного процесса другому
- •3.1.2 Состояние состязания
- •3.1.3 Критические области
- •Взаимодействие процессов: взаимное исключение с активным ожиданием, приостановка и активизация
- •2.Взаимное исключение с активным ожиданием
- •2.1 Запрещение прерываний.
- •2.2 Переменные блокировки.
- •3.Приостановка и активизация
- •Введение в планирование, планирование в пакетных системах
- •Планирование в пакетных системах
- •Планирование в интерактивных системах Введение
- •Гарантированное планирование
- •Лотерейное планирование
- •Справедливое планирование
- •Планирование потоков
- •Планирование в системах реального времени, политика и механизмы, планирование потоков
- •Понятие адресного пространства, правление свободной памятью.
- •Методы распределения памяти с использования дискового пространства:
- •Страничное распределение виртуальной памяти
- •Сегментное распределение памяти
- •3. Сегментно-страничная организация разделения памяти
- •Страничная организация памяти, таблицы страниц Страничная организация памяти, таблицы страниц
- •Страничная организация памяти. Виртуальная память.
- •Структура страниц.
- •Формирование адреса при страничном преобразовании.
- •Преимущества страничной памяти
- •Недостатки страничной памяти
- •Ускорение работы страничной организации памяти, таблицы страниц для больших объемов памяти
- •Оптимальный алгоритм замещения страниц, сравнительная характеристика алгоритмов замещения страниц Алгоритмы замещения страниц
- •Оптимальный алгоритм замещения страниц
- •Алгоритм исключения недавно использовавшейся страницы
- •Алгоритм fifo
- •Алгоритм «второй шанс»
- •Алгоритм «часы»
- •Алгоритм замещения наименее востребованной страницы
- •Сравнительная характеристика алгоритмов замещения страниц
- •Разработка систем страничной организации памяти: локальная и глобальная политики, управление загрузкой, разделение пространства команд и данных
- •Локальная и глобальная политика
- •Управление загрузкой
- •Разделение пространства команд и данных
- •Совместно использование страниц, библиотек, очистка страниц, обработка ошибки отсутствия страницы. Совместно используемые страницы
- •Совместно используемые библиотеки
- •Политика очистки страниц
- •Обработка ошибки отсутствия страницы
- •Файлы: имена, структура, типы атрибуты файлов, доступ и операции с файлами.
- •Каталоги: одноуровневые каталоги, иерархические системы каталогов, операции с каталогами
- •Структура файловой системы, реализация файлов, каталогов.
- •Основы аппаратного обеспечения ввода-вывода Устройства ввода-вывода
- •Контроллеры устройств
- •Ввод-вывод, отображаемый на пространство памяти.
- •Принципы создания программного обеспечения ввода-вывода
- •Диски: аппаратная часть, форматирование, алгоритмы планирования перемещения блока головок.
- •Форматирование диска
- •Алгоритмы планирования перемещения головок
- •Аппаратная составляющая и программное обеспечение часов, таймеры
- •Программное обеспечение пользовательского интерфейса: клавиатура, мышь, монитор
- •2.4. Монитор
- •Маршрутизация с использованием масок постоянной и переменной длины
- •Фрагментация ip-пакетов, параметры и механизм фрагментации
- •Групповое вещание
- •Стандартная модель группового вещания ip
- •Основные типы протоколов группового вещания
- •Инжиниринг трафика в mpls
Форматирование диска
Перед использованием диска каждая пластина должна пройти низкоуровневое форматирование, осуществляемое с помощью определенной программы. Диск состоит из серии концентрических дорожек, каждая из дорожек содержит определенное количество секторов и небольшие промежутки между секторами.
При низкоуровневом форматировании задается положение нулевого сектора на каждой дорожке, смещенное относительно положения нулевого сектора предыдущей дорожки. Это смещение, называемое отклонением цилиндров , создается для повышения производительности. Замысел состоит в том, чтобы дать возможность считывать с диска нескольких дорожек за одну непрерывную операцию без потери данных. Следует заметить, что
переключение между головками также занимает некоторое время, поэтому кроме отклонения цилиндров есть еще и отклонение головок, но оно невелико по размеру — обычно значительно меньше времени прохода одного сектора.
В результате низкоуровневого форматирования емкость диска уменьшается в зависимости от размеров заголовков, промежутков между секторами и полей ECC, а также количества запасных секторов. Зачастую объем отформатированного пространства на 20 % меньше, чем неотформатированного.
По завершении низкоуровневого форматирования диск разбивается на разделы. Логически каждый раздел можно уподобить отдельному диску. Разбиение на раздел необходимо для совместного существования нескольких операционных систем.
На завершающем этапе подготовки диска к использованию выполняется высокоуровневое форматирование каждого раздела (по отдельности). При проведении этой операции в разделе размещаются загрузочный блок, незаполненное средство организации пространства хранилища (пустой список или двоичная матрица), корневой каталог и пустая файловая система. Также в запись таблицы разделов помещается код, сообщающий о типе используемой в разделе файловой системы, поскольку многие операционные системы поддерживают несколько несовместимых файловых систем (из соображений преемственности). После этого возможна загрузка системы.
Алгоритмы планирования перемещения головок
Для большинства дисков время позиционирования блока головок существенно доминирует над всеми остальными факторами, поэтому сокращение среднего времени позиционирования может значительно повысить производительность системы.
Если драйвер диска принимает запросы по одному и выполняет их в порядке поступления по принципу «первым пришел — первым обслужен» (First-Come, First-Served (FCFS)), то для оптимизации времени позиционирования практически ничего нельзя сделать
Аппаратная составляющая и программное обеспечение часов, таймеры
Часы (также таймер) — средство в системах с разделением времени, необходимые для отслеживания хода времени ядром и обеспечения работы механизма управления прерывания.
Реализация аппаратной составляющей может осуществляться с помощью электронных часов, которые выдают прерывания каждый цикл изменения напряжения с частотой 50 или 60 Гц, либо с помощью декрементного счетчика (decrement), состоящего из кварцевого генератора, счетчика и регистра хранения. При подаче напряжения на пластину из кристалла кварца, то пластина будет генерировать стабильный периодический сигнал (диапазон сигнала будет зависить от выбранного кристалла). Для увеличения опорного сигнала в несколько раз используются электронные схемы, в итоге получаются частоты до нескольких ГГц. Такой сигнал поступает в счетчик и с фиксированной частотой, периодически будет уменьшаться на единицу, пока значение счетчика не станет равным нулю. В таком случае генерируется прерывание.
Программируемые часы имеют несколько режимов работы. В режиме одиночного импульса (one-shot mode) при старте таймер копирует значение регистра хранения в счетчик и уменьшает значение при каждом импульсе с кварцевого генератора. Когда значение счетчика опустится до нуля, генерируется прерывание и работа часов останавливается до тех пор, пока не будут опять запущены системой. В режиме прямоугольного импульса (squard-wave mode) после достижения счетчиком нуля и генерации прерывания, регистр хранения автоматически копируется в счетчик и весь процесс бесконечно повторяется. Эти периоды прерывания называются “тактом”.
Для предотвращения пропажи текущего времени, на многих компьютерах существуют резервные часы на микросхеме с пониженным энергопотреблением, питаемые от батарейки. Значение таких часов может быть считано при запуске системы. При отсутствии таких данных , система может либо запросить пользователя задать нынешнюю дату и время вручную, либо, в случае сетевых систем, взять нынешние дату и время у главного узла. Всем, кроме выдачи прерываний через известные интервалы времени, управляет драйвер часов. Конкретные обязанности драйвера часов зависят от операционной системы, но обычно в них включены следующие пункты:
Ведение показания времени суток
Предотвращение работы процессора дольше позволенного
Когда значение счетчика кванта времени (запускается при запуске процесса) достигает нуля, драйвер вызывает планировщик для возобновления работы другого процесса.
Ведение учета использования ЦП
Наиболее точно это делается за счет запуска второго таймера, либо более простым, но менее точным способом является ведение учета с записью в глобальной переменной. Однако, если за время работы процесса возникает множество прерываний, ему все равно отводится полный такт системных часов, даже если он не проделал никакой существенной работы.
Обработка системного вызова alarm, выданного процессами пользователей
Во многих ОС процесс может запросить, чтобы ОС выдавала ему предупреждение спустя некоторый интервал времени. Такое предупреждение может быть использовано, например, при сетевом обмене данными, где пакет, получение которого не было подтверждено, должен быть передан повторно.
Предоставление сторожевых программируемых таймеров для компонентов ОС
Сторожевые таймеры применяются для обнаружения таких проблем, как зависания. В ходе работы таймер регулярно перезапускается, поэтому срок его действия никогда не истекает, в ином случае истечение таймера служит подтверждением того, что система не работает долгого времени и это приводит к корректирующему действию, например, к перезапуску системы.
Ведение аналитического, мониторингового и статистического сбора информации
Если текущий процесс профилируется, то с каждым тактом драйвер вычисляет номер ячейки суммирования, соответствующий текущему счетчику команд, а затем значение ячейки увеличивается на единицу.