UNIX: взаимодействие процессов
Шрифт:
45-54 Эта функция вызывается родительским процессом в цикле. Каждый раз при вызове функции в управляющий канал записывается целое число, указывающее дочернему процессу на необходимость помещения соответствующего количества данных в канал данных. Затем функция вызывает read в цикле до тех пор, пока не будут приняты все данные.
Текст функций start_time, stop_time и touch приведен в листинге А.З.
Текст функции tv_sub приведен в листинге А.4. Она осуществляет вычитание двух структур timeval, сохраняя результат в первой структуре.
На компьютере Sparc под управлением Solaris 2.6 при выполнении программы пять раз подряд получим следующий результат:
Каждый раз мы задаем пять циклов, 10 Мбайт за цикл и 65536 байт за один вызов write или read. Среднее от этих пяти результатов даст величину 13,7 Мбайт в секунду, приведенную в табл. А.2.
Измерение полосы пропускания очереди сообщений Posix
В листинге А.5 приведена функция main программы, измеряющей полосу пропускания очереди сообщений Posix. Листинг А.6 содержит функции reader и writer. Эта программа устроена аналогично предыдущей, измерявшей полосу пропускания канала.
ПРИМЕЧАНИЕ
Обратите внимание, что в программе приходится указывать максимальное количество сообщений в очереди при ее создании. Мы указываем значение 4. Размер канала IPC может влиять на производительность, потому что записывающий процесс может отправить это количество сообщений, прежде чем будет заблокирован в вызове mq_send, что приведет к переключению контекста на считывающий процесс. Следовательно, производительность программы зависит от этого магического числа. Изменение его с 4 на 8 в Solaris 2.6 никак не влияет на величины, приведенные в табл. А.2, но в Digital Unix 4.0B производительность уменьшается на 12%. Мы могли ожидать, что производительность возрастет с увеличением количества сообщений в очереди, поскольку требуется в два раза меньше переключений контекста. Однако если используется отображение файла в память, это увеличивает размер отображаемого файла в два раза, как и требуемое количество памяти.
Путь к бессмертию 1
1. Девятихвостый Богатырь
Фантастика:
попаданцы
сказочная фантастика
фэнтези
рейтинг книги
Внук сотника
1. Отрок
Приключения:
исторические приключения
рейтинг книги
An ordinary sex life
Любовные романы:
современные любовные романы
love action
рейтинг книги
КАМЕРГЕРСКИЙ ПЕРЕУЛОК
Фантастика:
фэнтези
рейтинг книги