ISSN 2305-5626. Вестник МГТУ им. Н.Э. Баумана: электронное издание. 2013
15
Окончание табл. 5
Номер
экспе-
римента
Описание сервера
Ожидаемые
ошибки
Обнаруженные
ошибки
7
SMTP-сервер, использующий
в работе
pselect( )
Блокирование
до чтения из
готового сокета
Блокирование
до чтения из
готового сокета
8
Эхо-сервер, чтение и запись
в отдельных потоках
Непрочитанные
данные из гото-
вого сокета
Непрочитанные
данные из гото-
вого сокета
В результате одного эксперимента было выявлено предположи-
тельное ложное срабатывание реализации метода: неправильно уста-
новлена ошибка «Непрочитанные данные из готового сокета». В
приложении, использованном в эксперименте, системный вызов
мультиплексирования определял готовность как дескрипторов соке-
тов, так и файловых дескрипторов. На одной итерации цикла потока
обслуживания вызов
pselect( )
производился дважды с одинако-
вым набором сокетов. После первого вызова обрабатывались файлы,
после второго — сетевые соединения. Вследствие готовности неко-
торых сетевых соединений уже после первого вызова при втором вы-
зове срабатывал созданный метод. Поскольку логика работы потока
не предполагала обслуживания сетевых соединений до второго вызо-
ва, это срабатывание является ложным. Таким образом, созданный
метод имеет ограничение: предполагается, что после вызова мульти-
плексирования данные из готового сокета будут прочитаны до сле-
дующего вызова мультиплексирования. Это соответствует типично-
му подходу к обработке сетевых соединений.
Работа выполнена при частичной поддержке Российского фонда
фундаментальных исследований (грант № 13-07-00918).
СПИСОК ЛИТЕРАТУРЫ
1.
Kege l D. The C10K problem. 1999. URL:
2.
Стивенс. У.Р ., Феннер Б., Рудофф Э.М. UNIX: разработка сете-
вых приложений. СПб.: Питер, 2007. 1039 c.
3.
POSIX.1-2008. The system interfaces volume. URL:
onlinepubs/9699919799/
4.
Бовет Д., Чезати М. Ядро Linux. М.: BHV, 2007. 1104 c.
Статья поступила в редакцию 25.10.2012