- •Понятие операционной системы (ос). Основные функции ос.
- •Сервисы, предоставляемые типичными ос. Основные этапы развития ос.
- •Классификация ос: по назначению, по режиму обработки задач, по способу взаимодействия с пользователем. Компоненты типичной ос.
- •Типы структур ос. Режимы работы ос. Понятие операционной и программной среды.
- •Системный таймер. Программные таймеры. Сторожевой таймер.
- •Утилиты. Понятие транслятора, компилятора, интерпретатора, ассемблера, дизассемблера, компоновщика, отладчика.
- •Преимущества многозадачного режима работы ос. Понятие процесса. Основные причины создания, завершения процессов в вычислительной системе (вс).
- •Модели процесса: с двумя состояниями, с пятью состояниями.
- •Описание процессов: атрибуты, управляющий блок (дескриптор). Действия ос при создании, переключении процессов.
- •Подходы к разработке кода ос по отношению к процессам.
- •Понятие потока. Сравнение процессов и потоков. Понятие, преимущества многопоточности.
- •Способы реализации потоков: в пространстве пользователя, в пространстве ядра, смешанная. Кратко
- •Подробно
- •Виды планирования процессов (потоков). Краткосрочное планирование: режимы решения, стратегии.
- •Стратегии распределения ресурсов вс: одноочередные, многоочередные.
- •Основные режимы работы вс.
- •Основные категории ресурсов ос. Типы доступа к ресурсам ос.
- •Понятие взаимной блокировки (тупика). Примеры, условия возникновения, обнаружение, предупреждение взаимоблокировок.
- •Понятие параллельных, последовательных процессов (потоков). Виды взаимодействия процессов (потоков). Проблемы взаимодействия параллельных процессов (потоков). Пример состояния гонок.
- •Понятие взаимного исключения, критического ресурса, критической секции. Проблемы, условия, способы взаимного исключения.
- •Механизмы взаимодействия процессов (потоков): очереди сообщений, разделяемая память, обмен сообщениями, сокеты.
- •Понятие семафора. Решение задачи взаимоисключения с использованием семафора. Понятие сигнализирующего семафора, мьютекса, монитора.
- •Проблема читателей-писателей
- •Вторая проблема читателей-писателей (приоритет писателя)
- •Третья проблема читателей-писателей (честное распределение ресурсов)
- •Понятие памяти. Функции подсистемы управления памятью. Типы адресов. Понятие виртуального адресного пространства (вап). Типы структур вап. Способы преобразования виртуальных адресов в физические.
- •Механизмы распределения памяти: разделами, свопинг, виртуальная память.
- •Механизмы распределения памяти: страничный.
- •Механизмы распределения памяти: сегментный, сегментностраничный.
- •Принципы организации подсистемы ввода-вывода. Способы реализации ввода-вывода. Уровни подсистемы ввода-вывода.
- •Понятие файловой системы (фс), файла. Функции фс.
- •Физическая организация фс, файла. Логическая организация фс.
- •Свойства безопасной информационной системы. Понятие угрозы, атаки, риска. Классификация угроз. Функции ос по защите данных.
- •Современне ос. Тенденции, перспективы развития современных ос.
Виды планирования процессов (потоков). Краткосрочное планирование: режимы решения, стратегии.
Основная цель планирования вычислительного процесса заключается в распределении времени процессора (нескольких процессоров) между выполняющимися заданиями пользователей таким образом, чтобы удовлетворять требованиям, предъявляемым пользователями к вычислительной системе. Такими требованиями могут быть пропускная способность, время отклика, загрузка процессора и др.
Все виды планирования, используемые в современных ОС в зависимости от временного масштаба делятся на долгосрочное, среднесрочное, краткосрочное и планирование ввода-вывода (табл. 2). Краткосрочный планировщик, называемый часто диспетчером (dispatcher), работает чаще всего, определяя, какой процесс или поток будет выполняться следующим. Ниже приведен перечень функций, выполняемых планировщиком каждого вида.
Таблица 2
В большинстве операционных систем универсального назначения планирование осуществляется динамически (on-line), т. е. решения принимаются во время работы системы на основе анализа текущей ситуации. Найденное в таких условиях решение редко является оптимальным.
Другой тип планирования - статический (предварительный) может быть использован только в специализированных системах с заданным набором задач (заранее определенным), например, в управляющих вычислительных системах или системах реального времени. В этом случае статический планировщик (или предварительный планировщик) принимает решение не во время работы системы, а заранее (off-line).
Результатом его работы является расписание - таблица, в которой указано, какому процессу, когда и на какое время должен быть предоставлен процессор. При этом накладные расходы ОС на исполнение расписания значительно меньше, чем при динамическом планировании.
Краткосрочный планировщик (диспетчер) реализует найденное решение, т. е. переключает процессор с одного процесса (потока) на другой. Он вызывается при наступлении события, которое может приостановить текущий процесс или предоставить возможность прекратить выполнение данного процесса (потока) в пользу другого. Примерами этих событий могут быть:
– прерывание таймера;
– прерывание ввода-вывода;
– вызовы операционной системы;
– сигналы.
Диспетчеризация сводится к следующему:
– сохранение контекста текущего потока, который требуется сменить;
– загрузка контекста нового потока, выбранного в результате планирования;
– запуск нового потока на выполнение.
Планирование в Windows: диаграмма состояний потока, уровни приоритета, слой абстрагирования приоритетов, динамическое повышение приоритета, величина кванта времени. Реализация поддержки симметричных мультипроцессорных систем в Windows.
В Windows используется алгоритм планирования на основе приоритетов, который определяет порядок выполнения потоков и процессов. Приоритеты могут быть статическими или динамическими. Статические приоритеты устанавливаются при создании потока или процесса и не могут быть изменены. Динамические приоритеты могут изменяться во время выполнения программы.
Уровень планирования процессов в системе является одним из слоев абстракции, который позволяет управлять и контролировать выполнение различных задач и процессов. Этот слой абстракции обеспечивает механизм для определения и структурирования целей и приоритетов системы, а также распределения ресурсов и времени для достижения этих целей. Планирование процессов позволяет системе адаптироваться к изменяющимся условиям и приоритетам, обеспечивая эффективность и гибкость в управлении задачами.
Величина кванта времени - это время, на которое поток или процесс получает доступ к процессору. Эта величина может быть установлена в настройках операционной системы или в коде программы.
Уровни приоритета потока определяют порядок выполнения потоков в операционной системе. Чем выше уровень приоритета, тем выше вероятность того, что поток будет выполняться первым. В некоторых операционных системах, таких как Windows, существует несколько уровней приоритета, которые могут быть установлены для каждого потока. Например, в Windows есть приоритеты реального времени, которые используются для критически важных задач, таких как обработка звука или видео. Так же есть следующие уровни приоритетов потоков:
Низкоприоритетные потоки - это потоки, которые не требуют много ресурсов и могут быть приостановлены или прекращены в случае нехватки ресурсов.
Нижесреднего приоритета.
Среднеприоритетные(обычные) потоки - это основные потоки приложения, которые выполняют основные функции приложения.
Вышесреднего приоритета.
Высокоприоритетные потоки - это потоки, которые требуют большого количества ресурсов и должны выполняться в первую очередь.
Реального времени- это потоки ввода/вывода информации, требующие полумнгновенной обработки, для комфорта пользователя. Такие стоят даже выше высокоприоритетных.
Диаграмма состояний потока - это графическое представление состояний потока в операционной системе. Данные диаграммы будут отличаться для многозадачных и однозадачных операционных систем:
Диаграмма состояний потока в однозадачной ОС
Поток переходит из состояния выполнения в состояние ожидания (2) посредством выполнения системного вызова, подразумевающего ожидание наступления какого-либо события, например, нажатия клавиши или истечения 10 с. При наступлении этого события происходит возврат из системного вызова и возвращение потока в состояние выполнения (3).
Особенностью однозадачных систем является предоставление единственному активному процессу всех ресурсов системы.
Диаграмма состояний потока в многозадачной ОС
Выполнение – состояние работающего потока, то есть потока, обладающего всеми необходимыми ресурсами, в том числе возможностью использования центрального процессора.
Готов к выполнению – поток обладает всеми необходимыми для выполнения ресурсами за исключением ресурса «время центрального процессора».
Ожидание (сон) – выполнение потока заблокировано до наступления некоторого внешнего по отношению к нему события (например, поступления входных данных или освобождения ресурса).
Перевод потока из состояния «выполнение» в состояние «готов к выполнению» и обратно (2,3) осуществляется ядром операционной системы. Переход из состояния выполнения в состояние ожидания (4) может производиться в следующих случаях: поток обнаружил, что продолжение работы невозможно; поток обнаружил, что для продолжения работы требуется какого-либо события и другие.
Переход из состояния ожидания в состояние готовности к выполнению (5) производится ядром ОС в момент выполнения условия ожидания.
Переход потока в состояние завершения может произойти из любого состояния, поскольку завершение потока может быть вызвано как внутренними, так и внешними по отношению к потоку причинами.
Симметричные мультипроцессорные системы (SMP) - это системы, которые используют несколько процессоров для обработки задач. Windows поддерживает SMP, позволяя использовать несколько процессоров для выполнения задач.
Для реализации поддержки SMP в Windows используются специальные алгоритмы планирования и распределения ресурсов между процессорами. Эти алгоритмы учитывают количество процессоров, их мощность и загрузку, а также приоритеты задач, чтобы обеспечить оптимальное использование ресурсов системы.