Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСИ.docx
Скачиваний:
14
Добавлен:
29.10.2018
Размер:
434.23 Кб
Скачать

6. Контекст процесса и его состояния

Контекст процесса – это информация, которая полностью характеризует процесс в любой момент времени.

Контекст процесса является совокупностью следующих контекстов:

  • Регистровый (содержимое всех регистров процессора)

  • Системный (запись в таблице процессов, управляющая информация о процессе)

  • Пользовательский (код и данные)

Деятельность мультипрограммной ОС состоит из цепочек операций, выполняемых над различными процессами, и сопровождается переключением процессора с одного процесса на другой.

Для корректного переключения процессора с одного процесса на другой, необходимо сохранить контекст исполняющегося процесса и восстановить контекст процесса, на который будет переключен процессор. Такая процедура сохранения/восстановления работоспособности процессов называется переключением контекста.

Состояния процесса

Рождение->готовность: выполняются при готовности ОС к обработке дополнительных процессов, что позволяет предотвратить снижение производительности, которое может произойти, если будет загружено слишком много активных процессов.

Готовность-> исполнение: осуществляется выбор процесса для исполнения в соответствии с установленной дисциплиной обслуживания.

Исполнение->готовность: обычно происходит в результате окончания выделенного кванта времени не работы или в результате появления процесса с более с более высоким приоритетом.

Ожидание->готовность: блокированный процесс переходит в состояние готовности к выполнению в момент появления некоторого ожидаемого события

Исполнение->ожидание: перевод процесса в заблокированное состояние осуществляется в случае, если для продолжения его работы требуется наступление некоторого события.

Исполнение-> завершение: если процесс сигнализирует об окончании своей работы или происходит его аварийное завершение, ОС прекращает его выполнение.

Дополнительное состояние приостановлен->готов может может в некоторых случаях существовать в OCPB:

  • при пиковой нагрузке вычислительной системы, когда она не может обеспечить требуемое быстродействие, при расходах времени на смену состояний, превышающих полезную работу;

  • при ненадёжной работе системы и возможном её отказе;

  • в случаях, когда промежуточные результаты работы процесса вызывают сомнение в правильности работы программы.

Основные операции над процессами:

  • Создание процесса – завершение процесса (одноразовые)

  • Приостановка процесса (из состояния исполнение в состояние готовность) – запуск процесса (из состояния готовность в состояние исполнение)

  • Блокировка процесса (перевод из состояния ожидание в состояние готовность) – разблокировка процесса (из состояния ожидание в состояние готовность)

  • Изменение приоритета процесса (не парная операция)

7. Планирование процессов и потоков: критерии, виды, алгоритмы планирования

Планирование – это работа по определению того, в какой момент времени прервать выполнение одного процесса и какому процессу предоставить возможность выполняться.

Планирование процессов включает в себя решение следующих задач:

  • определение момента времени для смены выполняемого процесса;

  • выбор процесса на выполнение из очереди готовых процессов;

  • переключение контекстов «старого» и «нового» процессов.

Диспетчеризация – это реализация решения, найденного в результате планирования.

Задачами диспетчеризации являются:

  • сохранение контекста текущего потока;

  • загрузка контекста нового потока;

Критерии планирования:

При построении алгоритмов прерывания выделяют три уровня:

  • Долгосрочное планирование – отвечает за порождение новых процессов в системе ; выполняется редко ; оказывает влияние на функционирование ВС в течении длительного времени ; в некоторых ОС сведено к минимуму или отсутствует.

  • Кроткосрочное планирование – применяется при планировании процесса; осуществляется не реже чем раз в 100 мс. ; оказывает влияние до наступления очередного аналогичного события.

  • Среднесрочное планирование – применяется в вычислительных системах (ВС) для повышения производительности при “swapping”.

Виды планирования:

Два основных вида планирования процессов:

  • Невытесняющая многозадачность – активный процесс выполняется до тех пор, пока по собственной инициативе не отдаст управление планировщику ОС, что бы тот выбрал из очереди готовый к выполнению процесс.

  • Вытесняющие многозадачность – способ планирования, при котором решение о переключении процессора принимает не активный процесс, а планировщик ОС.

Так же алгоритмы планирования могут быть:

  • Основанные на квантовании

В соответствии с алгоритмами квантования, смена процесса происходит если:

  • процесс завершился и покинул систему;

  • произошла ошибка;

  • процесс перешел в состояние «ожидание»;

  • исчерпан квант процессорного времени, отведенный данному процессу.

  • Основанные на приоритетах

Приоритет – выражается целым, дробным, + или – значением. Чем больше приоритет, тем меньше время простоя в очередях.

Выделяют две разновидности:

    • С относительными приоритетами – активный поток выполняется до тех пор, пока сам не покинет процессор.

    • С абсолютными приоритетами – текущий процесс прерывается, если в очереди появляется процесс с более высоким приоритетом.

Алгоритмы планирования:

  1. FCFS (First Come, First Served (первым пришел, первым обслужен))

- простейший алгоритм, осуществляет невытесняющее планирование.

Алгоритм прост в реализации, но его среднее время выполнения и ожидания зависят от порядка расположения процессов в очереди.

  1. Round Robin (RR) (детская карусель) – модификация FCFS. По сути это тот же FCFS, только для вытесняющего планирования (очередной процесс передается на исполнение по таймеру(по истечению кванта времени))

Можно представить себе все множество готовых процессов организованным циклически – процессы «сидят на карусели». Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени.

  1. Shortest Job First (SJF) – в отличие от FCFS и RR, процесс выбирается не по порядку, а основываясь на его минимальном времени непрерывного использования процессора, то это позволит повысить производительность алгоритма планирования использования процессора. Основную сложность SJF представляет возможность знать в каждом случае время исполнения очередного процесса.