- •Понятие операционной системы. Условия, при которых нужны ос
- •Базовые функции операционной системы
- •Основные характеристики ос
- •Определения операционной системы
- •Назначение операционной системы
- •Место ос в логической структуре вычислительной системы
- •Функции операционных систем
- •Состав и объекты операционной системы
- •Эволюция ос и основные идеи
- •Понятие расширенной машины
- •Ресурс. Классификация ресурсов
- •Операционная среда
- •Прикладная среда
- •Понятие процесса. Процесс, как контейнер
- •Тождественность процесса, выполняемой программы и ос 48 Поток. Контекст. Волокна
- •Назначение прерываний. Определение прерывания. Механизм прерываний
- •Алгоритм выполнения прерываний. Главные функции механизма прерываний
- •Классификация прерываний, возникающих при работе вычислительной системы
- •Распределение прерываний по уровням приоритета
- •Планирование заданий процессов и потоков
- •Виды планирования, используемые в современных ос
- •Жизненный цикл процесса (потока). Очереди. Классы алгоритмов планирования
- •Алгоритмы планирования процессов и потоков. Достоинства и недостатки различных алгоритмов планирования
- •Разделение времени при работе с процессами и потоками. Понятие кванта времени. Алгоритмы, основанные на квантовании
- •Понятие приоритетного обслуживания
- •Разновидности приоритетного планирования
- •Система приоритетного обслуживания Windows
- •Физическая организация памяти
- •Виртуальная память
- •Интерфейс прикладных программ. Перенос приложений между платформами 148 Взаимодействие процессов – синхронизация. Критические ресурсы и критические секции процессов
- •Взаимодействие процессов – синхронизация. Взаимное исключение. Задача взаимного исключения
- •Использование блокировки памяти. Алгоритм Деккера
- •Семафорные примитивы. Мьютексы
- •Задача "поставщик-потребитель"
- •Понятие сообщения в ос. Виды сообщений 170 Вызовы процедур. Локальные вызовы, удаленные вызовы (rpc). Направление вызова – клиент-сервер
- •Вызовы процедур. Локальные вызовы, удаленные вызовы (rpc). Направление вызова – сервер- клиент 175 Проблема тупиков. Предотвращение тупика
- •Проблема тупиков. Обход тупика
- •Проблема тупиков. Распознавание тупика
- •Мониторы
- •Синхронизация в распределенных системах
- •Алгоритмы синхронизации в распределенных системах. Алгоритм «задиры», круговой алгоритм
Жизненный цикл процесса (потока). Очереди. Классы алгоритмов планирования
### Жизненный цикл процесса
Процесс (или поток) проходит через несколько стадий своего существования от момента создания до завершения:
1. Создание – процесс создается операционной системой или другим процессом. В этот момент он получает необходимые ресурсы для выполнения (память, процессорное время и т.п.).
2. Готовность к выполнению – процесс готов к запуску, но ожидает выделения ему ресурсов (например, времени центрального процессора).
3. Выполнение – процесс активно использует центральный процессор для выполнения своих инструкций.
4. Ожидание – процесс приостанавливается, ожидая внешних событий (например, ввода данных пользователем, завершения операции ввода-вывода и т.д.). Процесс может находиться в этом состоянии долгое время без использования процессорных ресурсов.
5. Завершение – процесс завершает свою работу, освобождая все выделенные ему ресурсы.
6. Уничтожение – операционная система удаляет информацию о процессе из своей таблицы процессов.
### Очереди процессов
Для управления процессами используются различные очереди, которые помогают ОС распределять ресурсы между ними:
1. Очередь готовых процессов – процессы, готовые к выполнению, ожидают выделения им процессорного времени.
2. Очередь ожидания – процессы, находящиеся в состоянии ожидания внешних событий.
3. Очередь заблокированных процессов – процессы, которые были приостановлены операционной системой (например, из-за нехватки памяти или других ресурсов).
### Алгоритмы планирования процессов
Алгоритм планирования определяет порядок, в котором процессы получают доступ к центральному процессору. Основные классы алгоритмов планирования включают:
#### 1. FCFS (First-Come, First-Served) – алгоритм «первый пришел – первый обслужен». Процессы выполняются в порядке их поступления в очередь. Этот метод прост, но может привести к долгому ожиданию для коротких задач.
#### 2. SJF (Shortest Job First) – алгоритм «самая короткая работа первой». Планировщик выбирает для выполнения тот процесс, который требует наименьшего времени для завершения. Это помогает уменьшить среднее время ожидания, однако сложно точно предсказать длительность задачи заранее.
#### 3. RR (Round Robin) – циклическое планирование. Каждый процесс получает фиксированное количество времени (квант), после которого его выполнение прерывается, и следующий процесс в очереди получает возможность выполняться. Если квант заканчивается раньше, чем процесс завершил свою задачу, он возвращается в конец очереди. RR обеспечивает справедливость распределения процессорного времени среди всех процессов.
#### 4. Многоуровневые очереди – каждый процесс попадает в одну из нескольких очередей в зависимости от приоритета. Процессы в очереди с высоким приоритетом получают больше процессорного времени, чем те, кто находится в низкоприоритетных очередях. Внутри каждой очереди могут использоваться свои методы планирования (например, FCFS или SJF).
#### 5. Приоритетное планирование – каждому процессу присваивается определенный приоритет, и процессы с более высокими приоритетами получают больше времени процессора. Приоритеты могут изменяться динамически в зависимости от поведения процесса.
#### 6. MLFQ (Multi-Level Feedback Queue) – многоуровневая обратная связь. Этот алгоритм сочетает элементы приоритетного планирования и Round Robin. Процессы перемещаются между уровнями очередей в зависимости от того, сколько времени они уже использовали. Таким образом, короткие интерактивные задачи быстро завершают свое выполнение, а длинные вычислительные задачи постепенно опускаются вниз по уровням очередей.
Каждый из этих методов имеет свои преимущества и недостатки, и выбор конкретного метода зависит от требований системы и типа выполняемых задач.
