The design of the UNIX Operating System 12 страница
Взаимодействие процессов в вычислительной системе напоминает жизнь в коммунальной квартире. По-стоянное ожидание в очереди к местам общего пользования (процессору) и ежедневная борьба за ресур-сы (кто опять занял все конфорки на плите?). Для нормального функционирования процессов операци-онная система старается максимально обособить их друг от друга. Каждый процесс имеет собственное адресное пространство (каждая семья должна жить в отдельной комнате), нарушение которого, как пра-вило, приводит к аварийной остановке процесса (вызов милиции). Каждому процессу по возможности предоставляются свои дополнительные ресурсы (каждая семья предпочитает иметь собственный холо-дильник). Тем не менее для решения некоторых задач (приготовление праздничного стола на всю квар-тиру) процессы могут объединять свои усилия. В настоящей лекции описываются причины взаимодейст-вия процессов, способы их взаимодействия и возникающие при этом проблемы (попробуйте отремонти-ровать общую квартиру так, чтобы жильцы не перессорились друг с другом).
|
|
|
|
Взаимодействующие процессы
Для достижения поставленной цели различные процессы (возможно, даже принадлежащие разным поль-зователям) могут исполняться псевдопараллельно на одной вычислительной системе или параллельно на разных вычислительных системах, взаимодействуя между собой.
|
|
Для чего процессам нужно заниматься совместной деятельностью? Какие существуют причины для их кооперации?
• Повышение скорости работы. Пока один процесс ожидает наступления некоторого события (на-пример, окончания операции ввода-вывода), другие могут заниматься полезной работой, направ-ленной на решение общей задачи. В многопроцессорных вычислительных системах программа разбивается на отдельные кусочки, каждый из которых будет исполняться на своем процессоре.
|
|
• Совместное использование данных. Различные процессы могут, к примеру, работать с одной и той же динамической базой данных или с разделяемым файлом, совместно изменяя их содержимое.
• Модульная конструкция какой-либо системы. Типичным примером может служить микроядерный способ построения операционной системы, когда различные ее части представляют собой отдель-ные процессы, взаимодействующие путем передачи сообщений через микроядро.
• Наконец, это может быть необходимо просто для удобства работы пользователя, желающего, на-пример, редактировать и отлаживать программу одновременно. В этой ситуации процессы редак-тора и отладчика должны уметь взаимодействовать друг с другом.
Процессы не могут взаимодействовать, не общаясь, то есть не обмениваясь информацией. "Общение" процессов обычно приводит к изменению их поведения в зависимости от полученной информации. Если деятельность процессов остается неизменной при любой принятой ими информации, то это означает, что они на самом деле в "общении" не нуждаются. Процессы, которые влияют на поведение друг друга путем
Основы операционных систем | 41 |
обмена информацией, принято называть кооперативными или взаимодействующими процессами, в от-личие от независимых процессов, не оказывающих друг на друга никакого воздействия.
Различные процессы в вычислительной системе изначально представляют собой обособленные сущно-сти. Работа одного процесса не должна приводить к нарушению работы другого процесса . Для этого, в частности, разделены их адресные пространства и системные ресурсы, и для обеспечения корректного взаимодействия процессов требуются специальные средства и действия операционной системы. Нельзя просто поместить значение , вычисленное в одном процессе, в область памяти, соответствующую пере-менной в другом процессе, не предприняв каких- либо дополнительных усилий. Давайте рассмотрим ос-новные аспекты организации совместной работы процессов.
Дата добавления: 2021-01-21; просмотров: 106; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!