Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы(ОС) / Lab6 / LabOS_6.doc
Скачиваний:
57
Добавлен:
17.04.2013
Размер:
91.65 Кб
Скачать

Порядок выполнения лабораторной работы

  1. Выполните задания 1 - 3.

  2. Занесите в отчет результаты выполнения заданий с ответами на все заданные в них вопросы.

Требования

  1. При подготовке к лабораторной работе (дома) занесите в отчет тексты программ из заданий 1 (pipework1, pipework2, pipework3, pipework4) и 3 (server2, client2, server3, client3). Тексты программ должны быть прокомментированы.

  2. Студент должен знать ответы на следующие вопросы:

Вопросы к части I

  1. Для чего предназначены неименованные каналы?

  2. Объясните параметры системного вызова pipe().

  3. Что такое входной и выходной конец канала?

  4. Как в программе соединить концы созданного канала со стандартным входным и выходным устройствами?

  5. Можно ли использовать неименованные каналы для обмена сообщениями между несвязанными процессами?

  6. Продолжает ли канал существовать после завершения процесса, использующего этот канал?

  7. Как установить двухстороннюю связь при помощи каналов?

  8. Пусть у родительского процесса имеется два дочерних процесса. Можно ли в одном дочернем процессе создать канал, а в другом дочернем процессе использовать его?

Вопросы к части II

  1. В чем отличие именованных каналов от неименованных?

  2. Как создать в программе именованный канал?

  3. Каково действие режима O_NONBLOCK, указываемого при открытии именованного канала?

  4. Пусть некоторый процесс пытается писать в именованный канал, в то время как нет процесса, читающего из него. Что произойдет?

  5. Возможно ли использовать именованный канал для взаимодействия между несвязанными процессами? Почему?

  6. Как использовать именованные каналы для двухсторонней связи между процессами?

  7. Какую информацию должен знать процесс, желающий общаться при помощи именованного канала?

  8. Есть ли разница между именованным каналом и обычным файлом?

  9. Можно ли при помощи именованного канала установить связь между процессами, выполняющимися на разных компьютерах? Почему?

  10. Как удалить именованный канал?

Источники информации

1. Стивенс У. UNIX: взаимодействие процессов. - СПб: Питер, 2003. (Глава 4).

2. Митчел М., Оулдем Дж., Самьюэл А. Программирование для Linux. Профессиональный подход. - М.: Издательский дом "Вильямс", 2003. (Глава 5) (The original book (2001) is available at http://www.newriders.com or http://www.advancedlinuxprogramming.com)

3. Конспект лекций.

---------------------------------------------------------------------------------------------------

© Лабораторная работа подготовлена А.Е.Костиным.

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