Основы операционных систем
Тема 4. Кооперация процессов и основные аспекты ее логической организации
Основные причины для объединения усилий процессов Повышение скорости решения задач Повышение скорости решения задач Совместное использование данных Совместное использование данных Модульная конструкция какой-либо системы Модульная конструкция какой-либо системы Для удобства работы пользователя Для удобства работы пользователя Кооперативные или взаимодействующие процессы - это процессы, которые влияют на поведение друг друга путем обмена информацией
Категории средств обмена информацией Сигнальные Сигнальные Канальные Канальные Разделяемая память Разделяемая память
Основные аспекты логической организации передачи информации Нужна или не нужна инициализация? Нужна или не нужна инициализация? Способы адресации Способы адресации –прямая адресация симметричная симметричная асимметричная асимметричная –непрямая или косвенная адресация Как устанавливается связь
Основные аспекты логической организации передачи информации Сколько процессов может быть ассоциировано с конкретным средством связи? Сколько процессов может быть ассоциировано с конкретным средством связи? Сколько идентичных средств связи может быть задействовано между двумя процессами? Сколько идентичных средств связи может быть задействовано между двумя процессами? Направленность связи Направленность связи –симплексная связь –полудуплексная связь –дуплексная связь Информационная валентность процессов и средств связи
Основные аспекты логической организации передачи информации Буфера нет (нулевая емкость) Буфера нет (нулевая емкость) процесс-передатчик всегда обязан ждать приема Буфер конечной емкости Буфер конечной емкости процесс-передатчик обязан ждать освобождения места в буфере, если буфер заполнен Буфер неограниченной емкости (нереализуемо!) Буфер неограниченной емкости (нереализуемо!) процесс-передатчик никогда не ждет процесс-передатчик никогда не ждет Особенности канальных средств связи Буферизация
Основные аспекты логической организации передачи информации Потоковая модель Потоковая модель операции приема/передачи не интересуются содержимым данных и их происхождением, данные не структурируются Модель сообщений Модель сообщений на передаваемые данные накладывается определенная структура Особенности канальных средств связи Модели передачи данных
Основные аспекты логической организации передачи информации Особенности канальных средств связи Потоковая модель - pipe P0 P1 P2 15 байт 10 байт 5 байт 25 байт началоконец Потоковая модель - FIFO
Основные аспекты логической организации передачи информации Особенности канальных средств связи Модель сообщений m1m2m3 P0 P1 P2 m1 m1 m2 m2m3 m3 m3m2 m3
Основные аспекты логической организации передачи информации Нет потери информации Нет потери информации Нет повреждения информации Нет повреждения информации Нет нарушения порядка поступления информации Нет нарушения порядка поступления информации Не появляется лишняя информация Не появляется лишняя информация Надежность средств связи Средство связи считается надежным, если:
Основные аспекты логической организации передачи информации Нужны ли специальные действия для прекращения использования средства связи? Нужны ли специальные действия для прекращения использования средства связи? Как влияет прекращение использования средства связи одним процессом на поведение других участников взаимодействия? Как влияет прекращение использования средства связи одним процессом на поведение других участников взаимодействия? Как завершается связь
Нити исполнения (threads) A=A+B C=A+C Ожидание ввода A Ожидание ввода B Ожидание ввода C Вывести массив C Ожидание вывода C Ввести массив C Ввести массив B Ввести массив A
Нити исполнения (threads) Ввести массив A Ввести массив C A=A+B C=A+C Ожидание ввода A Ввести массив B Ожидание ввода B Ожидание ввода C Процесс 1 Процесс 2 Ожидание ввода A и B Создание процесса 2 Создание общей памяти Переключение контекста Вывести массив C Ожидание вывода C
Нити исполнения (threads) Системныйконтекст Регистровый контекст Код Данные вне стека Процесс Стек Системный контекст нити Системный контекст Код Данные вне стека Стек Нить исполнения Системный контекст нити Регистровый контекст Стек parentchild
Нити исполнения (threads) Процесс Готовность Готовность Исполнение Готовность Ожидание Закончила исполнение Готовность Исполнение Ожидание Ожидание Ожидание Ожидание Ожидание Закончил исполнение
Нити исполнения (threads) Ввести массив A Ввести массив C A=A+B C=A+C Ожидание ввода A Ввести массив B Ожидание ввода B Ожидание ввода C Нить 1 Нить 2 Ожидание ввода A и B Создание нити 2 Переключение контекста Вывести массив C Ожидание вывода C