Читать «UNIX: взаимодействие процессов» онлайн - страница 305
Уильям Ричард Стивенс
Таблица А.5. Время увеличения счетчика в разделяемой памяти в Digital Unix 4.0B (в секундах)
Кол-во потоков | Взаимное исключение Posix | Блокировка чтения-записи | Семафор Posix в памяти | Именованный семафор Posix | Семафор System V | Семафор System V с UNDO | Блокировка записей fcntl |
---|---|---|---|---|---|---|---|
1 | 2,9 | 12,9 | 13,2 | 14,2 | 26,6 | 46,6 | 96,4 |
2 | 11,4 | 40,8 | 742,5 | 771,6 | 54,9 | 93,9 | |
3 | 28,4 | 73,2 | 1080,5 | 1074,5 | 84,5 | 141,9 | |
4 | 49,3 | 95,0 | 1534,1 | 1502,2 | 109,9 | 188,4 | |
5 | 67,3 | 126,3 | 1923,3 | 1764,1 | 137,3 | 233,6 |
Результаты синхронизации процессов
В табл. А.4 и А.5 и на соответствующих рисунках были приведены результаты синхронизации потоков одного процесса. Интересно посмотреть, как взаимодействуют разные процессы. В табл. А.6 и на рис. А.5 приведены результаты измерения времени увеличения счетчика несколькими процессами в Solaris 2.6, а в табл. А.7 и на рис. А.6 — в Digital Unix 4.0B. Результаты похожи на полученные для потоков, однако в Solaris 2.6 теперь получаются одинаковые результаты для первых двух типов семафоров. Мы приводим на графике только первое значение для fcntl, поскольку последующие слишком велики. Как отмечалось в разделе 7.2, Digital Unix 4.0B не поддерживает атрибут PTHREAD_PROCESS_SHARED, поэтому мы не можем измерить скорость работы взаимных исключений в этой системе. Для семафоров Posix в Digital Unix 4.0B опять наблюдаются аномалии.
Рис. А.5. Время увеличения счетчика в разделяемой памяти (Solaris 2.6)
Рис. А.6. Время увеличения счетчика в разделяемой памяти
Таблица А.6. Время увеличения счетчика в разделяемой памяти для Solaris 2.6 (в секундах)
Кол-во процессов | Взаимное исключение Posix | Блокировка чтения-записи | Семафор Posix в памяти | Именованный семафор Posix | Семафор System V | Семафор System V с UNDO | Блокировка записей fcntl |
---|---|---|---|---|---|---|---|
1 | 0,8 | 1,6 | 13,6 | 14,3 | 17,3 | 22,1 | 90,7 |
2 | 1,6 | 3,9 | 29,2 | 29,2 | 34,9 | 41,6 | 244,5 |
3 | 2,3 | 6,4 | 41,6 | 42,9 | 54,0 | 60,1 | 376,4 |
4 | 3,1 | 12,2 | 57,3 | 58,8 | 72,4 | 81,9 | 558,0 |
5 | 4,0 | 20,4 | 70,4 | 73,5 | 87,8 | 102,6 | 764,0 |