Задачи к зачету

60 views
Skip to first unread message

Alexander E. Patrakov

unread,
Dec 14, 2011, 10:47:08 AM12/14/11
to usu_netprog
Вот те задачи, которые были розданы сегодня.

Анцелевич: написать астрологический сервер с сообщениями переменной
длины, использующий select, с фиксированным таймаутом (т.е. если в
течение 10 секунд по какому-либо соединению не передано и не принято ни
одного байта, его надо закрыть).

Щербаков: написать астрологический сервер на основе механизма передачи
сообщений и блокирующими сокетами (process-per-request для процессов,
логически являющихся частью прокси), с фиксированной длиной сообщений.
Для взаимодействия с хранителем гороскопов использовать Unix-domain
сокеты, man 7 unix.

Колмогорцев: написать астрологический сервер с сообщениями фиксированной
длины, использующий epoll с флагом EPOLLET.

Неволин: Написать автрологический сервер, использующий модель prefork с
сообщениями фиксированной длины. Для того, чтобы у процессов была общая
память для хранения гороскопов, использовать системный вызов mmap.
Полезные флаги: MAP_SHARED | MAP_ANONYMOUS. Для защиты общих данных от
одновременного изменения несколькими процессами использовать безымянный
семафор (man sem_init и далее по ссылкам).

Рекомендуется помимо основной задачи реализовать еще несколько "вредных"
клиентов, которые отсылают команды по одному байту с задержками,
склеивают несколько команд в один вызов send(), закрывают соединение на
середине получения гороскопа, отправляют невалидные команды и т.п.
Смысл: обнаружить и исправить типичные баги до сдачи своего сервера.


Задачи, которые были взяты на прошлой неделе, записаны не у меня, а у
Марка. Поэтому я их выслать сейчас не могу.

--
Александр Патраков

Alexander E. Patrakov

unread,
Dec 14, 2011, 11:25:55 AM12/14/11
to usu_netprog
14.12.2011 21:47, Alexander E. Patrakov пишет:

> Вот те задачи, которые были розданы сегодня.

Забыл еще одну задачу

Гареев: астрологический клиент, использующий select, который спрашивает
прогнозы одновременно у нескольких серверов. Сообщения имеют переменную
длину. Знак Зодиака и список серверов (в формате host:port) передаются в
командной строке.

--
Александр Патраков

Pavel White

unread,
Dec 16, 2011, 8:56:48 AM12/16/11
to usu_n...@googlegroups.com
А получить задачу можно?

Alexander E. Patrakov

unread,
Dec 16, 2011, 11:01:56 AM12/16/11
to usu_n...@googlegroups.com, white.mat...@gmail.com
Pavel White <white.mat...@gmail.com> пишет:

> А получить задачу можно?

Конечно!

Астрологический прокси на prefork со строками переменной длины и с
таймаутами через setsockopt(... SO_RCVTIMEO и SO_SNDTIMEO ...). В
случае таймаута со стороны астролога, клиенту передается прогноз "You
are unlucky".

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

--
Александр Патраков

Reply all
Reply to author
Forward
0 new messages