- •Место ос в структуре компьютера
- •Історія появи ос
- •Третє, 1965-1980, інтегральні схеми і багатозадачність
- •Цели работы ос
- •Операційна система -
- •Классификации компьютерных систем
- •Функциональные компоненты ос автономного комп’ютера
- •Архитектура ос. Ядро и вспомогательные модули ос
- •Архитектура операционной системы с ядром в привилегированном режиме.
- •Многослойная структура ос. Структура ядра.
- •Состав ядра
- •1. Средства аппаратной поддержки ос
- •Классификация компьютерных архитектур.
- •Мультипрограммирование в системах пакетной обработки
- •Мультипрограммирование в системах разделения времени
- •Мультипрограммирование в системах реального времени
- •Мультипроцессорная обработка
- •Основные функции подсистемы управления процессами
- •Понятия «процесс» и «поток».
- •Создание и завершение процессов и потоков.
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
Создание и завершение процессов и потоков.
Три основных события, приводящие к созданию процессов (вызов fork или CreateProcess):
Загрузка системы
Работающий процесс подает системный вызов на создание процесса
Запрос пользователя на создание процесса
Во всех случаях, активный текущий процесс посылает системный вызов на создание нового процесса.
В UNIX каждому процессу присваивается идентификатор процесса ( PID - Process IDentifier)
Четыре события, приводящие к остановке процесса (вызов exit или ExitProcess):
Плановое завершение (окончание выполнения)
Плановый выход по известной ошибке (например, отсутствие файла)
Выход по неисправимой ошибке (ошибка в программе)
Уничтожение другим процессом
Таким образом, приостановленный процесс состоит из собственного адресного пространства, обычно называемого образом памяти (core image), и компонентов таблицы процессов (в числе компонентов и его регистры).
Процессы в ОС UNIX
<-- Смотреть 30 -->
Состояния потока
Три состояния процесса:
Выполнение (занимает процессор)
Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу)
Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода)
При создании процесса, он переходит в готовность.
Из готовности он может перейти в выполнение(3).
С выполнения он может сменить состояние на ожидание(1) или готовность (2) Из ожидания он может перейти только в готовность(4).
Возможные переходы между состояниями.
1. Процесс блокируется, ожидая входных данных
2. Планировщик выбирает другой процесс
3. Планировщик выбирает этот процесс
4. Поступили входные данные
Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают о этих переходах. С точки зрения самих процессов есть два состояния выполнения и ожидания.
На серверах для ускорения ответа на запрос клиента, часто загружают несколько процессов в режим ожидания, и как только сервер получит запрос, процесс переходит из "ожидания" в "выполнение". Этот переход выполняется намного быстрее, чем запуск нового процесса.
Планирование и диспетчеризация потоков
Работа по определению того, в какой момент необходимо прервать выполнение текущего активного потока и какому потоку предоставить возможность выполняться, называется планированием.
Планирование потоков осуществляется на основе информации, хранящейся в описателях процессов и потоков. При планировании могут приниматься во внимание приоритет потоков, время их ожидания в очереди, накопленное время выполнения, интенсивность обращении к вводу и выводу и другие факторы.
Планирование потоков включает в себя решение 2–х задач:
- определение момента времени для смены текущего активного потока;
- выбор для выполнения потока из очереди готовых потоков.
Особенности реализации планирования потоков в наибольшей степени определяют специфику операционной системы, в частности, является ли она системой пакетной обработки, системой разделения времени или системой реального времени.
В большинстве операционных систем универсального назначения планирование осуществляется динамически (on-Line), т.е. решения принимаются во время работы системы на основе анализа текущей ситуации.
Другой тип планирования – статический – может быть использован в специализированных системах, в которых весь набор одновременно выполненных задач определен заранее (off-Line).
Диспетчеризация заключается в реализации найденного в результате планирования (динамического или статического) решения, т.е. в переключении процессора с одного потока на другой. Прежде чем прервать выполнение потока, ОС запоминает его контекст, с тем, чтобы впоследствии использовать эту информацию для последующего возобновления выполнения данного потока.
Диспетчеризация сводится к следующему:
- сохранение контекста текущего потока, который следует сменить;
- загрузка контекста нового потока, выбранного в результате планирования;
