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



 

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


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

стью одновременной передачи информации в разных направлениях – дуплексной. Прямая и непрямая адресация не имеет непосредственного отношения к направленности связи.

 

Особенности передачи информации с помощью линий связи

 

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

 

Буферизация

 

Может ли линия связи сохранять информацию, переданную одним процессом, до ее получения другим процессом или помещения в промежуточный объект ? Каков объем этой информации? Иными словами, речь идет о том, обладает ли канал связи буфером и каков объем этого буфера. Здесь можно выделить три принципиальных варианта.

 

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

 

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

3. Буфер неограниченной емкости. Теоретически это возможно, но практически вряд ли реализуемо. Процесс, посылающий информацию, никогда не ждет окончания ее передачи и приема другим процессом.

 

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

 

Поток ввода/вывода и сообщения

 

Существует две модели передачи данных по каналам связи – поток ввода -вывода и сообщения . При пе-редаче данных с помощью потоковой модели операции передачи/приема информации вообще не интере-суются содержимым данных. Процесс , прочитавший 100 байт из линии связи, не знает и не может знать, были ли они переданы одновременно, т. е. одним куском или порциями по 20 байт, пришли они от одно-го процесса или от разных. Данные представляют собой простой поток байтов, без какой-либо их интер-претации со стороны системы. Примерами потоковых каналов связи могут служить pipe и FIFO, описан-ные ниже.


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

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






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