254.64K
Categories: programmingprogramming informaticsinformatics

Процессы

1.

2.

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

3.

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

4.

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

5.

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

6.

Термин «процесс» характеризует совокупность,
находящуюся под управлением ОС
-
набора исполняющихся команд
ассоциированных с ним ресурсов
текущего момента его исполнения.
Процесс ≠ программа, которая исполняется:
-
для исполнения одной программы может
организовываться несколько процессов
в рамках одного процесса может исполняться несколько
программ
в рамках процесса может исполняться код,
отсутствующий в программе

7.

ВЫПОЛНЕНИЕ - активное состояние процесса, во время
которого процесс обладает всеми необходимыми
ресурсами и непосредственно выполняется процессором;
ОЖИДАНИЕ - пассивное состояние процесса, процесс
заблокирован, он не может выполняться по своим
внутренним причинам, он ждет осуществления
некоторого события, например, завершения операции
ввода-вывода, получения сообщения от другого
процесса, освобождения какого-либо необходимого ему
ресурса;
ГОТОВНОСТЬ - также пассивное состояние процесса,
но в этом случае процесс заблокирован в связи с
внешними по отношению к нему обстоятельствами:
процесс имеет все требуемые для него ресурсы, он готов
выполняться, однако, процессор занят выполнением
другого процесса.

8.

процесс завершился и покинул систему,
произошла ошибка,
процесс перешел в состояние ОЖИДАНИЕ,
исчерпан квант процессорного времени,
отведенный данному процессу

9.

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

10.

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

11.

Процесс 1
Процесс 2
Хочет захватить A и B, начинает с A
Хочет захватить A и B, начинает с B
Захватывает ресурс A
Захватывает ресурс B
Ожидает освобождения ресурса A
Ожидает освобождения ресурса B
Взаимная блокировка
English     Русский Rules