Проблемы разработки систем передачи сообщений

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

Листинг 2.11. Решение задачи производителя-потребителя на языке Java public class ProducerConsumer {

static final int N = 100; // константа, задающая размер буфера

static producer p = new producer( ); // создание экземпляра потока

// производителя

static consumer c = new consumer( ); // создание экземпляра потока

// потребителя

static our monitor mon = new our monitor( ); // создание экземпляра

// монитора

public static void main(String args[ ]) {

р. start( ); // запуск потока производителя

с. start( ); // запуск потока потребителя }

static class producer extends Thread {

public void run( ) { // код потока содержится в методе run

int item;

while (true) { // цикл производителя

item = produce item( );

mon.insert(item);

}

}

private int produce_item( ) { ... } // производство записей

} static class consumer extends Thread {

public void run( ) { // код потока содержится в методе run

int item;

while (true) { // цикл потребителя

item = mon.remove( );

consume_item(item);

}

}

private void consume_item(int item) { ...

} // потребление записи


}

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

Системе передачи сообщений приходится также решать вопрос о том, как именовать процессы, чтобы однозначно указывать процесс в вызовах отправки — send или получения — receive. Для системы передачи сообщений важна и проблема аутентификации: как клиент может отличить связь с реальным файловым сервером от связи с самозванцем?

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

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Проблемы разработки систем передачи сообщений:

  1. ПЕРЕДАЧА АНГЕЛЬСКИХ СООБЩЕНИЙ
  2. Состояние научной разработки проблемы.
  3. Состояние научной разработки проблемы.
  4. Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание, 2007
  5. Интервью с официальными лицами или представителями их пресс-служб чреваты двумя проблемами: опасностью невольного искажения информации при передаче, интерпретации фактов, а также передачей намеренно дозированных сведений.
  6. § 29 Передача и переход прав по обязательствам. – Римская конструкция права передачи. – Облегчение передачи новейшим законодательством. – Передаточная надпись. – Ограничения передачи. – Действие передачи. – Ответственность передатчика и права приобретателя. – Вступление в право кредитора или суброгация. – Русский закон передачи. – Передача заемных писем. – Переход требований к кредиторам.
  7. 4.4. ОТДЕЛЬНЫЕ ПРОБЛЕМЫ СПЕЦИФИЧНОСТИ СООБЩЕНИЯ
  8. 9.2. Порядок разработки и внедрения информационных систем, технологий и средств обеспечения
  9. 4.4. Отдельные проблемы достижения специфичности сообщений.
  10. ЛИМФАТИЧЕСКАЯ СИСТЕМА (ПРОБЛЕМЫ)
  11. IV. 3. 2. Проблема систематизации свойств нервной системы.
  12. Статья 363-1. Препятствование работе электронно-вычислительных машин (компьютеров), автоматизированных систем, компьютерных сетей или сетей электросвязи путем массового распространение сообщений электросвязи
  13. §5. Основные этапы исторического развития системы органов предварительного расследования в России и современные проблемы ее реформирования
  14. Разработка Плана