В комментариях, помещенных вслед за программой 10.4, обсуждаются результаты и разъясняются преимущества различных реализаций, а здесь мы лишь отметим, что результаты для сигнальной модели изменяются пропорционально изменению количества потоков, тогда как в случае широковещательной модели, особенно для вариантов с 32 и 64 потоками, это не так. Можно также видеть, что в случае широковещательной модели система потребляет значительную долю процессорного времени, ибо выполняются, вычисляют предикат и осуществляют немедленный возврат в состояние ожидания множество потоков.
1. Широковещательная модель, мьютекс (Mtx), событие (Evt), раздельные вызовы функций освобождения и ожидания. Конечный период ожидания (Time-out, TO) устанавливался равным 5 миллисекундам, что являлось оптимальным значением для 16-поточного варианта.
2. Широковещательная модель, объект CRITICAL_SECTION (CritSec), событие, раздельные вызовы функций освобождения и ожидания. Настраиваемый период ожидания устанавливался равным 5 миллисекундам, что являлось оптимальным значением для 16-поточного варианта.
3. Широковещательная модель, мьютекс, событие, атомарный вызов SignalObjectAndWait (SigObjWait).
4. Сигнальная модель, мьютекс, событие, раздельные вызовы функций освобождения и ожидания.
5. Сигнальная модель, объект CRITICAL_SECTION, событие, раздельные вызовы функций освобождения и ожидания.
6. Сигнальная модель, мьютекс, событие, атомарный вызов SignalObjectAndWait.
Выполнение тестов
На Web-сайте книги в каталоге TimeTest находятся пакетные файлы, с помощью которых вы сможете запускать тесты как под управлением Windows 2000/NT, так и под управлением Windows 9x:
• cpTIME.bat
• cpTIME.bat
• atouTIME.bat
• grepTIME.bat
• sortTIME.bat
• threeST.bat
Для всех тестов, кроме тестов последней серии, текстовые ASCII-файлы большого размера создавались с помощью программы RandFile.
Библиография
1. Beveridge, Jim, and Wiener, Robert.
2. Bott, Ed, and Siechert, Carl.
3. Box, Don.
4. Box, Don (editor), et al.
5. Brain, Marshall, and Reeves, Ron.
6. Butenhof, David.
7. Cohen, Aaron, Woodring, Mike, and Petrusha, Ronald.
8. Comer, Douglas E., and Stevens, David L.
9. Custer, Helen.
10. Custer, Helen.
11. Department of Defense.
12. Donahoo, Michael, and Calvert, Kenneth.
13. Eddon, G., and Eddon, D.