Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Вычислительный процесс и его состояния, дескриптор. Прерывания.



Последовательный процесс (иногда называемый «задачей») – это выполнение отдельной программы с её данными на последовательном процессоре. (определение не из лекций)

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

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

Процесс не может перейти из одного состояния в другое самостоятельно.

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

После рождения процесс допускается к планированию и переходит в состояние готовности, в котором пребывает до тех пор, пока ОС не переключит выполнение на него. Тогда он переходит в состояние исполнение.

В состоянии ожидания процесс находится, если ожидает какое-то событие. После наступления события процесс переводится в состояние готовности.

Выйти из состояния исполнения процесс может только из-за:

  • ОС прекращает его деятельность
  • процесс стал ожидать событие
  • прерывание «готовность» (обычно из-за исчерпания отведенного процессу промежутка времени)

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

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

Прерывания делятся на:

  • внешние (аппаратные, ассинхронные) — исходящие от внешних источников.
  • Внутренние (синхронные) — возникают в процессоре из-за исполнения некорректного кода (например, деление на 0).
  • программные (частный случай внутренних) — инициируются выполнением определенной инструкции в коде программы.

 

 

Планирование и диспетчеризация процессов и задач.

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

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

Краткосрочное планирование — планирование использования процессора. Проводится при обращении процесса к устройствам ввода/вывода или исчерпании выделенного процессу кванта времени, что обычно происходит часто (обычно не реже раза в 100 мс).

В некоторых вычислительных системах бывает выгодно для повышения их производительности временно удалить какой-либо частично выполнившийся процесс из оперативной памяти на диск, а позже вернуть его обратно для дальнейшего выполнения (свопинг). Когда и какой из процессов нужно перекачать на диск и вернуть обратно, решается дополнительным промежуточным уровнем планирования процессов — среднесрочным.

Для каждого уровня планирования существует множество алгоритмов. Основные требования к ним:

  • предсказуемость
  • минимальные накладные расходы
  • равномерная загрузка ресурсов ОС
  • масштабируемость

Планирование может быть вытесняющим и невытесняющим. При вытесняющем планировании процесс может быть временно переведен из состояния планирования другим процессом. Обычно ОС выделяет процессу квант (промежуток) времени, во время которого он исполняется, после чего его выполнение приостанавливается и управление передается другому процессу.

Алгоритм FCFS (first come, fisrt served): процессы собираются в очередь, следующий процесс начинает свое выполнение после завершения предыдущего. Самый простой алгоритм, невытесняющее планирование.

RR (round robin) – модификация FCFS, вытесняющее планирование. Текущий процесс получает квант времени, после его истечения процесс перемещается в конец очереди. Таким образом, процессы переключаются циклически.

 

Рис. Round robin

SJF (shortest job first) – может быть как вытесняющим, так и невытесняющим. Сначала выполняются самые короткие задачи.

Гарантированное планирование — обеспечивает гарантию, что каждый пользователь будет иметь в своем распоряжении часть процессорного времени. Квант времени предоставляется тому процессу, для которого соотношение tiN/Ti минимально. Ti – общее время нахождения пользователя в системе, ti – суммарное процессорное время, выделенное процессам этого пользователя, N – количество пользователей. Недостаток — невозможность предугадать поведение пользователей; после долгого перерыва пользователь будет получать неоправданно много ресурсов.

Приоритетное планирование — каждый процесс получает числовое значение — приоритет.

Приоритеты могут назначаться по разным критериям — например, в зависимости от использования процессом ресурсов или важности процесса.

Процессы с одинаковыми приоритетами планируются как в FCFS.

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

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

 

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-14; Просмотров: 2254; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.013 с.)
Главная | Случайная страница | Обратная связь