Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_9_Osnovnye_zadachi_upravlenia_protsessa....doc
Скачиваний:
4
Добавлен:
17.07.2019
Размер:
50.18 Кб
Скачать

Основные задачи управления процессами

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

В однозадачных ОС управление процессами решает следующие задачи:

  • загрузка программы в память, подготовка ее к запуску и запуск на выполнение;

  • выполнение системных вызовов процесса;

  • обработка ошибок, возникших в ходе выполнения;

  • нормальное завершение процесса;

  • прекращение процесса в случае ошибки или вмешательства пользователя.

В многозадачном режиме добавляются следующие задачи:

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

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

  • исключение возможности несанкционированного вмешательства одного процесса в выполнение другого;

  • предотвращение или устранение тупиковых ситуаций, возникающих при конкуренции процессов за системные ресурсы;

  • обеспечение синхронизации процессов и обмена данными между ними.

Ресурс – средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.

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

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

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

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

Квазипараллельное выполнение процессов

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

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

Основные проблемы управления процессами можно разбить на два уровня:

  • проблемы корректной и эффективной реализации параллельного (т.е. обычно квазипараллельного) выполнения процессов – это проблемы нижнего уровня;

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