The design of the UNIX Operating System 12 страница



 

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

 

Взаимодействующие процессы

 

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

 

Для чего процессам нужно заниматься совместной деятельностью? Какие существуют причины для их кооперации?

 

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

 

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

• Модульная конструкция какой-либо системы. Типичным примером может служить микроядерный способ построения операционной системы, когда различные ее части представляют собой отдель-ные процессы, взаимодействующие путем передачи сообщений через микроядро.

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

 

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


Основы операционных систем 41

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

 

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


Дата добавления: 2021-01-21; просмотров: 106; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!