
- •Понятия процесса и потока. Классификация процессов. Создание процессов и потоков. Планирование процессов и потоков. Типы планирования процессора. Тупики. Методы взаимодействия процессов
- •Понятия процесс и поток
- •Классификация процессов
- •Создание процессов и потоков
- •Создание процесса
- •Завершение процесса
- •Многократные операции над процессами
- •Переключение контекста процесса
- •Иерархия процессов
- •Состояние процессов
- •Планирование процессов и потоков
- •Диспетчеризация процессов. Стратегии диспетчеризации процессов
- •Планирование и диспетчеризация потоков
- •Состояния потока
- •Вытесняющие и не вытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Смешанные алгоритмы планирования
- •Планирование в системах реального времени
- •Моменты перепланировки
- •Типы планирования процессора
- •2. Предотвращение тупиков за счет нарушения условий их возникновения.
- •Методы взаимодействия процессов
- •Независимые и взаимодействующие процессы
- •Виды организации взаимосвязи процессов
- •Коммуникация процессов
- •Непосредственная коммуникация процессов
- •Косвенная коммуникация процессов
- •Клиент-серверная взаимосвязь
2. Предотвращение тупиков за счет нарушения условий их возникновения.
Хавендер показал, что возникновение тупика невозможно, если нарушено хотя бы одно из указанных выше четырех необходимых условий. Он предложил следующую стратегию:
каждый процесс должен запрашивать все требуемые ему ресурсы сразу, причем не может начать выполняться до тех пор, пока все они не будут ему предоставлены;
если процесс, удерживающий определенные ресурсы, получает отказ в удовлетворении запроса на дополнительные ресурсы, этот процесс должен освободить свои первоначальные ресурсы и при необходимости запросить их снова вместе с дополнительными ресурсами;
введение линейной упорядоченности по типам ресурсов для всех процессов. Другими словами, если процессу выделены ресурсы данного типа, в дальнейшем он может запросить только ресурсы более далеких по порядку типов.
Каждый из указанных принципов имеет целью нарушить какое-нибудь одно из необходимых условий существования тупика.
Для обнаружения тупиков в общем случае необходимо получить граф распределения ресурсов между процессами, и если там есть кольца, то это тупик.
Методы взаимодействия процессов
Взаимодействие процессов – основа для распараллеленного, эффективного решения задач с помощью группы процессов, координирующих свои действия друг с другом.
Независимые и взаимодействующие процессы
С точки зрения взаимосвязи, процессы подразделяются на независимые и взаимодействующие.
Независимый процесс – процесс, никак не связанный с другими процессами, который не может влиять на исполнение других процессов или испытывать их влияние.
Взаимодействующий (совместный) процесс – процесс, который может влиять на исполнение других процессов или испытывать их влияние.
Преимущества взаимодействующих процессов очевидны:
совместное использование данных - процессы могут работать с общими данными, при условии их синхронизации;
ускорение вычислений;
модульность - организация взаимодействующих процессов – это метод параллельного решения задачи, декомпозируемой на относительно независимые части, части, каждую из которых решает один из взаимодействующих процессов;
удобство.
Виды организации взаимосвязи процессов
С точки зрения видов взаимосвязи родительского и дочернего процессов, процессы подразделяются на независимые, подчиненные и сопроцессы.
Подчиненный процесс – процесс, зависящий от процесса-родителя. Подчиненный процесс уничтожается при уничтожении родительского процесса, как в системах UNIX и операционной систем «Эльбрус». Процесс-родитель перед своим завершением должен ожидать завершения всех своих подчиненных процессов.
Независимый процесс – дочерний процесс, выполняемый независимо от процесса-родителя. Типичные примеры: процессы-демоны в UNIX, запускаемые начальным процессом init.
Сопроцесс (coprocess, coroutine) – процесс, равноправно взаимодействующий с другими такими же процессами.