УПРАВЛЕНИЕ ПРОЦЕССАМИ. КООПЕРАЦИЯ ПРОЦЕССОВ И ОСНОВНЫЕ АСПЕКТЫ ЕЕ ЛОГИЧЕСКОЙ ОРГАНИЗАЦИИ
Контрольные вопросы
Ядро операционной системы
Все операции, связанные с процессами, выполняются под управлением той части ОС, которая называется ядром. Ядро обычно резидентно размещается в оперативной памяти, поскольку является наиболее интенсивно используемым компонентом ОС.
Одной из наиболее важных функций ядра является обработка прерываний. Ядро обычно осуществляет лишь минимально возможную предварительную обработку каждого прерывания, затем передавая его на дальнейшую обработку соответствующему системному процессу, поскольку в этот момент другие прерывания запрещены.
В состав ядра ОС входят следующие программные модули:
- средства управления системой прерываний.
- средства выполнения операций над процессами (например, создание и уничтожение процессов, изменение приоритета процесса) и средства по переводу процессов из одного состояния в другое (например, состояния выполнения, готовности, блокировки);
- синхронизация процессов;
- поддержка операций ввода-вывода;
- поддержка работы файловой системы;
- поддержка распределения памяти и др.
1) Дайте определение процессу, ресурсам
2) Приведите типы ресурсов
3) Назовите пять основных состояний процессов, приведите диаграмму состояний
4) Перечислите семь операций над процессами. Укажите, какие из них являются одноразовыми и многоразовыми
5) Назовите информацию, которая содержится в блоке управления процессом
6) Что такое контекст процесса, из каких частей он состоит
7) Дайте определение прерыванию и назовите типы прерываний
8) В чем заключается переключение контекста
9) Какие дисциплины обслуживания используются при переключении контекста
10) Опишите реализацию переключения контекста в компьютерах фирмы IBM
11) Перечислите программные модули ядра
На лекции рассматриваются следующие вопросы:
1) Введение в кооперацию процессов
2) Взаимодействующие процессы
3) Категории средств обмена информацией
4) Логическая организация механизма передачи информации (установление связи между процессами, однонаправленные и двунаправленные связи между процессами, особенности передачи информации с помощью линий связи, завершение связи)
5) Потоки исполнения
В КС процессы находятся в постоянной борьбе за ресурсы (процессор и др.). Для нормального функционирования процессов операционная система старается максимально обособить их друг от друга. Каждый процесс имеет свое собственное адресное пространство, нарушение которого приводит к аварийной остановке процесса. Каждому процессу, по возможности, предоставляются свои собственные дополнительные ресурсы. Тем не менее, для решения некоторых задач процессы могут объединять свои усилия. В данной теме описываются причины, по которым взаимодействуют процессы, способы их взаимодействия и возникающие при этом проблемы.
Для достижения поставленной цели различные процессы могут исполняться псевдопараллельно на одной КС или параллельно на разных КС, взаимодействуя между собой. Причинами для совместной деятельности процессов обычно являются: необходимость ускорения решения задачи, совместное использование обновляемых данных, удобство работы или модульный принцип построения программных комплексов. Процессы, которые влияют на поведение друг друга путем обмена информацией, называют кооперативными или взаимодействующими процессами, в отличие от независимых процессов, не оказывающих друг на друга никакого воздействия и ничего не знающих о взаимном сосуществовании в КС.
Для обеспечения корректного обмена информацией операционная система должна предоставить процессам специальные средства связи. По объему передаваемой информации и степени возможного воздействия на поведение процесса, получившего информацию, их можно разделить на три категории: сигнальные, канальные и разделяемую память. Через канальные средства коммуникации информация может передаваться в виде потока данных или в виде сообщений и накапливаться в буфере определенного размера. Для инициализации общения процессов и его прекращения могут потребоваться специальные действия со стороны операционной системы. Процессы, связываясь друг с другом, могут использовать непрямую, прямую симметричную и прямую асимметричную схемы адресации. Существуют одно- и двунаправленные средства передачи информации. Средства коммуникации обеспечивают надежную связь, если при общении процессов не происходит потери информации, не происходит повреждения информации, не появляется лишней информации, не нарушается порядок данных.
Усилия, направленные на ускорение решения задач в рамках классических операционных систем, привели к появлению новой абстракции внутри понятия “процесс” – потоки исполнения или просто потоки. Потоки процесса разделяют его программный код, глобальные переменные и системные ресурсы, но каждый поток имеет свой собственный программный счетчик, свое содержимое регистров и свой собственный стек. Теперь процесс представляется как совокупность взаимодействующих потоков и выделенных ему ресурсов. Потоки могут порождать новые потоки внутри своего процесса, они имеют состояния, аналогичные состояниям процесса, и могут переводиться операционной системой из одного состояния в другое. В системах, поддерживающих потоки на уровне ядра, планирование использования процессора осуществляется в терминах потоков исполнения, а управление остальными системными ресурсами в терминах процессов. Накладные расходы на создание нового потока и на переключение контекста между потоками одного процесса существенно меньше, чем на те же самые действия для процессов, что позволяет на однопроцессорной КС ускорять решение задач с помощью организации работы нескольких взаимодействующих потоков.