Альтернативы портам завершенияввода/вывода

Альтернативы портам завершенияввода/вывода

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

Эту же методику мы могли бы применить и в серверах serverSK (программа 12.2) и serverNP (программа 11.3). Все, что для этого требуется — это организовать ожидание перехода семафора в сигнальное состояние после завершения запроса на чтение, выполнение этого запроса, создание ответа и освобождение семафора перед тем, как записать ответ. Такое решение гораздо проще того, которое реализовано в примере с портом завершения ввода/вывода, приведенном в следующем разделе. Единственная проблема состоит в том, что потоков может оказаться очень много, и для каждой из них требуется собственное стековое пространство, что приведет к большому расходу виртуальной памяти. Остроту этой проблемы можно несколько ослабить, тщательно распределяя необходимые объемы стекового пространства. Упражнение 14.6 включает в себя выполнение экспериментов с альтернативным решением подобного рода, а реализация соответствующего примера находится на Web-сайте.

Существует еще одна возможность, которую можно использовать при создании масштабируемых серверов. Выборка пакетов рабочих заготовок (work items) из очереди (см. главу 10) может осуществляться с использованием ограниченного количества потоков. Поступающие рабочие заготовки могут помещаться в очередь одной или несколькими главными потоками, как показано в программе 10.5.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Конечные автоматы и альтернативы

Из книги Давайте создадим компилятор! автора Креншоу Джек

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


Народные альтернативы

Из книги Журнал «Компьютерра» № 40 от 31 октября 2006 года автора Журнал «Компьютерра»

Народные альтернативы Автор: Киви БердСексуальные преступники-педофилы наряду с международным терроризмом уже давно выступают в качестве главного жупела, которым власти пугают обывателей и оправдывают всякое новое ограничение прав и свобод в Интернете. Но хотя


Альтернативы депонированию криптоключей

Из книги Цифровой журнал «Компьютерра» № 3 [11.1.2010-18.1.2010] автора Журнал «Компьютерра»

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


Онлайновые альтернативы Microsoft PowerPoint Андрей Крупин

Из книги Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ автора Мейерс Скотт

Онлайновые альтернативы Microsoft PowerPoint Андрей Крупин В том, что рано или поздно подавляющее число стационарных приложений мигрирует в Сеть, сомневаться не приходится. Уже сейчас набирают популярность cloud-технологии, ведутся разработки «облачных» веб-компьютеров и


Правило 35: Рассмотрите альтернативы виртуальным функциям

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

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


Альтернативы ICQ

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

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


Альтернативы частичным функциям

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Альтернативы частичным функциям Один из технических приемов, используемый в этой лекции, мог вызвать удивление, - применение частичных функций. Он связан с неустранимой проблемой применения в некоторой спецификации не всюду определенных операций. Но являются ли


13.4. Альтернативы read() и write()

Из книги С компьютером на ты. Самое необходимое автора Егоров А. А.

13.4. Альтернативы read() и write() Несмотря на то что системные вызовы read() и write() как нельзя лучше подходят приложениям для извлечения и хранения данных в файле, все же они не всегда являются самыми быстрыми методами. Они допускают управление отдельными порциями данных; для


24.2. Обработка вывода

Из книги Удвоение продаж в интернет-магазине автора Парабеллум Андрей Алексеевич

24.2. Обработка вывода Функции библиотеки S-Lang, предназначенные для вывода данных на терминал, бывают двух разновидностей: функции управления терминалом (семейство SLtt) и функции высокого уровня для управления экраном (семейство SLsmg).Функции, принадлежащие семейству SLtt,


6.4. Альтернативы Internet Explorer

Из книги Работа в Интернете. Энциклопедия автора Ташков Петр Андреевич

6.4. Альтернативы Internet Explorer Internet Explorer — самый популярный браузер на сегодняшний день, его использует подавляющее большинство пользователей, однако кроме Microsoft есть другие компании, которые занимаются выпуском программ-браузеров. Рассмотрим лишь наиболее известные: Opera,


Повышение цен – альтернативы

Из книги C++ для начинающих автора Липпман Стенли

Повышение цен – альтернативы Никаких альтернатив! И вот почему. Мало кто из интернет-бизнесменов Рунета верит в действенность высоких цен. Большинство владельцев очень боятся встать на путь их повышения и никогда этого не делали.На самом деле покупатели


«Википедия» – живая энциклопедия и ее альтернативы

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

«Википедия» – живая энциклопедия и ее альтернативы «Википедия»«Википедия» (от англ. Wikipedia, образованного от гавайского wiki-wiki, что означает «быстро») – общедоступная, многоязычная и свободно распространяемая интернет-энциклопедия (рис. 5.11). Рис. 5.11. Главная страница


Альтернативы DNS

Из книги автора

Альтернативы DNS Можно получить информацию об имени и адресе без использования DNS. Типичной альтернативой служат статические файлы со списком узлов (обычно файл /etc/hosts, как мы указываем в табл. 11.2), информационная система сети (Network Information System, NIS) и упрощенный протокол службы


30.2. Альтернативы для клиента TCP

Из книги автора

30.2. Альтернативы для клиента TCP Мы уже обсуждали различные способы устройства клиентов, но стоит тем не менее еще раз обратить внимание на относительные достоинства и недостатки этих способов.1. В листинге 5.4 показан основной способ устройства клиента TCP. С этой