Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
17.04.2013
Размер:
65.54 Кб
Скачать

Взаимодействие процессов на разных машинах

Особенность: потеря, искажение, дублирование.

Надежный поток:

  • Open – устанавливает соединение, так что оба ожидают что-то друг о друга.Sender шлет пакетOpen до тех пор пока не получит подтверждение об установлении соединения или пока не исчерпан счетчик попыток.

  • Обе стороны ведут протокол переданных - принятых данных. В каждом пакете передается пересылаемый диапазон байтов.

  • Sender буферизует переданные данные и держит их до тех пор, пока не получит подтверждение об их успешном приеме.

  • Если подтверждение о приеме данных не приходит в течение установленного таймаута, то передача данных повторяется и так до тех пор, пока не исчерпан счетчик попыток.

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

  • Receiver контролирует правильность приема данных по контрольной сумме.

  • Любая сторона может закрыть поток послав пакет Close. Close должен подтверждаться и лишь после получения подтверждения можно уничтожать все что связано с соединением.

Надежные сообщения:

  • В целом действия аналогичны потокам. Каждое сообщение снабжается порядковым номером для контроля потери и повтора сообщений.

  • Нет Open – Close. Когда освобождать ресурсы? Когда истекло время необходимое на выполнение установленного числа попыток ретрансляции.

Всегда ли параллельные процессы дают выигрыш?

1988 Microsoft OS/2 – все не нитях (позже вIBM переписали ядро полностью). Нить – 9K стек. Реально до 90 нитей, из которых лишь несколько активны. Результат: около 1M дополнительной памяти. В те времена 1М памяти стоил примерно$200.

Мораль: нити очень удобны, но не бесплатны

Соседние файлы в папке вар1