Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько вопросов по моделям ввода-вывода 
:(
    Опции темы
Runcorn
Дата 16.2.2012, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.2.2012

Репутация: нет
Всего: нет



Всем привет.
У меня есть пару общих вопросов по моделям ввода-вывода при работе с сетью на стороне сервера.

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

Меня пока что не интересуют высокоуровневые классы для работы с сетью. Я хочу разобраться на более низком уровне.

Заранее всем спасибо за ответы.
PM MAIL   Вверх
boostcoder
Дата 16.2.2012, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



все очень расплывчато %)

читать темы полностью, и именно в этом порядке, и переходить по ссылкам:
http://forum.vingrad.ru/forum/topic-341333/view-all.html
http://forum.vingrad.ru/forum/topic-342722/kw-disruptor.html

как закончишь - задавай вопросы по существу, пожалуйста.

PM WWW   Вверх
Олег2005
Дата 16.2.2012, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Цитата(Runcorn @  16.2.2012,  01:11 Найти цитируемый пост)
Я знаю, что очень часто используются порты завершения для работы с пулом. Почему именно порты завершения?

Порты завершения заточены под многопроцессорные или многоядерные системы.
Это их первое преимущество.
Второе - с одним портом завершения можно связать произвольное количество клиентов.
Третье - один порт завершения может обрабатываться произвольным количеством рабочих потоков. Причем можно их создать несколько - и пока ненужные потоки повесить в спящий режим. Как только нагрузка увеличивается - автоматически подключаются спящие.
Более эффективном модели пока просто нет.
PM MAIL WWW MSN   Вверх
newbee
Дата 16.2.2012, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: нет
Всего: 19



Порт завершения - это что-то типа epoll?


--------------------
You're face to face
With man who sold the world
PM   Вверх
Runcorn
Дата 18.2.2012, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.2.2012

Репутация: нет
Всего: нет



Цитата(boostcoder @ 16.2.2012,  03:48)
все очень расплывчато %)

читать темы полностью, и именно в этом порядке, и переходить по ссылкам:
http://forum.vingrad.ru/forum/topic-341333/view-all.html
http://forum.vingrad.ru/forum/topic-342722/kw-disruptor.html

как закончишь - задавай вопросы по существу, пожалуйста.

Я написал вопросы, которые меня интересуют в первом посте.
Первую ссылку уже читал раньше, вторую еще прочитаю.
Олег2005, спасибо за ответ.

Кто нибудь читал хорошие статьи по портам завершения? Скиньте, если можете. Язык C/C++, но не принципиально.

Это сообщение отредактировал(а) Runcorn - 18.2.2012, 12:54
PM MAIL   Вверх
12usver12
Дата 18.2.2012, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: нет
Всего: 1



Цитата

Кто нибудь читал хорошие статьи по портам завершения? Скиньте, если можете. Язык C/C++, но не принципиально.

так в чем проблема ? в инете очень много статей и примеров по портам завершения. Если вы не делаете игровой сервер на миллион пользователей - то попроще каркас у сервера будет через Completion Routines(Callbacks), а эффективность приближается к iocp если не такая же.
PM MAIL   Вверх
boostcoder
Дата 18.2.2012, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



Цитата(12usver12 @  18.2.2012,  14:00 Найти цитируемый пост)
то попроще каркас у сервера будет через Completion Routines(Callbacks), а эффективность приближается к iocp если не такая же. 

:facepalm

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.