Процессы.
Управление процессами.
Планирование и диспетчеризация процессов
Синхронизация процессов. Процессы работают параллельно и при этом конкурируют за общие ресурсы, а также должны в некоторые моменты вычислений ожидать наступления некоторых событий. Для предотвращения возможных конфликтов и несогласованностей, например, race condition — несогласованного доступа к общим данным, при котором один процесс читает старые данные, а другой их в этот же момент обновляет… Читать ещё >
Процессы. Управление процессами. Планирование и диспетчеризация процессов (реферат, курсовая, диплом, контрольная)
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами.
Процесс (или по-другому, задача) — абстракция, описывающая выполняющуюся программу.
Важная особенность процесса: это единица вычислений, которая должна выполняться последовательно, т. е. каждый процесс имеет свой последовательный поток управления (control flow) — последовательность выполняемых процессом команд. Многие большие задачи успешно решаются путем параллельного выполнения процессов.
Состояния процессов:
Новый (new): Процесс создается операционной системой, но еще не начал выполняться.
Исполняемый (running): Исполняются команды процесса на процессоре или процессорах компьютерной системы под управлением ОС.
Ожидающий (waiting): Процесс ожидает наступления некоторого события, например, завершения ввода-вывода. В состоянии ожидания процесс не занимает процессор.
Готовый к выполнению (ready): Процесс ожидает получения ресурсов процессора для его исполнения. В состояние готовности к выполнению процесс попадает обычно либо при его создании, либо после завершения ввода-вывода (из состояния ожидания).
Завершенный (terminated): Исполнение процесса завершено.
Планирование — обеспечение поочередного доступа процессов к одному процессору.
Ситуации, когда необходимо планирование:
- 1. Когда создается процесс
- 2. Когда процесс завершает работу
- 3. Когда процесс блокируется на операции ввода / вывода, семафоре, и т. д.
- 4. При прерывании ввода / вывода.
Алгоритм планирования без переключений (неприоритетный) — не требует прерывание по аппаратному таймеру, процесс останавливается только когда блокируется или завершает работу.
Алгоритм планирования с переключениями (приоритетный) — требует прерывание по аппаратному таймеру, процесс работает только отведенный период времени, после этого он приостанавливается по таймеру, чтобы передать управление планировщику.
Из состояния готовности в состояние выполнения процесс переводится планировщиком ОС в результате диспетчеризации — выделения кванта процессорного времени. При выполнении процесс может быть прерван (по таймеру, в результате ошибки и т. п.), а после обработки прерывания операционной системой переходит снова в состояние готовности к выполнению. Если в процессе выполняется синхронный ввод-вывод, либо процесс должен ожидать наступления некоторого события (например, определенного момента времени), процесс переходит в состояние ожидания. При завершении ввода-вывода или при наступлении ожидаемого события процесс не получает сразу же квант процессорного времени, а переходит в состояние готовности к выполнению. Процесс переходит в завершенное состояние при завершении работы программы процесса. Управление процессами происходит через блок управления процессами.
Блок управления процессом (Process Control Block — PCB) — системная структура данных, используемая ОС для управления процессом, содержащая следующую информацию, ассоциируемую с каждым процессом:
- · Состояние процесса
- · Текущее значение счетчика команд (используется при продолжении выполнения процесса);
- · Значения регистров процессора (также используются при возобновлении процесса);
- · Информация для диспетчеризации процессора (указатель на стек процесса, номер процесса);
- · Информация для управления памятью (границы области памяти процесса);
- · Статистическая информация (общее время выполнения процесса, оставшееся из заявленного время выполнения, суммарное время ввода-вывода и т. д.)
- · Информация о состоянии ввода-вывода (список открытых файлов).
Создание и удаление процессов. При создании процесса необходимо создать в памяти соответствующие системные структуры (таблицу страниц, стек и др.). При удалении процесса память, занимаемая ими, освобождается, а также выполняется закрытие всех файлов и освобождение всех других ресурсов, которые использовал процесс, если последний не сделал этого явно.
Приостановка и возобновление процессов. Выполнение процесса приостанавливается при выполнении синхронного ввода-вывода, а также системного вызова или команды (типа suspend). Сразу отметим, что использовать подобные операции явной приостановки процессов следует с осторожностью, так как приостанавливаемый процесс может находиться в своей критической секции — выполнять обработку общего ресурса, к которому каждому процессу предоставляется монопольный доступ, так что при его приостановке возникает ситуация тупика (deadlock) — приостановленный процесс не может освободить ресурс, а конкурирующий процесс не может его получить. При приостановке процесса ОС сохраняет состояние его выполнения, а при возобновлении — восстанавливает.
Синхронизация процессов. Процессы работают параллельно и при этом конкурируют за общие ресурсы, а также должны в некоторые моменты вычислений ожидать наступления некоторых событий. Для предотвращения возможных конфликтов и несогласованностей, например, race condition — несогласованного доступа к общим данным, при котором один процесс читает старые данные, а другой их в этот же момент обновляет, — ОС предоставляет средства синхронизации (например, семафоры и мониторы, рассмотренные в следующем разделе).
Взаимодействие процессов. При своей параллельной работе процессам необходимо взаимодействие, с целью согласованного решения различных частей одной и той же задачи. Процессы могут взаимодействовать с помощью передачи сообщений друг другу, а также с помощью так называемых условных переменных и рандеву (все эти виды взаимодействия рассмотрены позже). ОС предоставляет все эти средства, в виде системных вызовов, для организации адекватного и удобного взаимодействия процессов.
операционный вычислительный диспетчеризация.
Список источников
- 1. http://www.intuit.ru — сайт «Интуит»
- 2. http://citforum.ru — онлайн IT библиотека
- 3. http://www.ignatova-e-n.narod.ru — информационный портал