К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

1. Понятие обмена данными между процессами (IPC)

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

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

Если речь идет о процессах, работающих на одном компьютере, обмен данными между процессами может осуществляться с использованием памяти общего доступа или через анонимный канал (pipe). Длительное время IPC имел место в основном между процессами, работающими на одном компьютере. С распространением сетей область применения IPC существенно расширилась. Чем больше компьютеров включено в сеть, тем сильнее желание осуществлять обмен данными между процессами, работающими на разных компьютерах. Иногда реализовать IPC в подобной ситуации совсем не просто, особенно если один компьютер — это VAX, а другой — это PC.

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

 

 


Предыдущая        В начало страницы       Следующая
1