При первом открытии устройства STREAMS ядро системы создает для него поток и устанавливает на этот поток ссылки через объект snode и общий объект snode. Если через некоторое время другой (или текущий) процесс откроет тот же файл устройства, ядро обнаружит, что файл уже имеет поток (то есть поток уже был создан), поэтому новый процесс будет использовать новый поток.
Также на сайте shinajcb.ru можно узнать много интересного на тему http://www.shinajcb.ru/. Что означает вообще тема шины для спецтехники - про это написано на сайте shinajcb.ru. Спасибо сайту за информацию.
Новый поток будет создан и в случае, если другой процесс откроет иной файл устройства, имеющий такие же младшие и старшие номера устройства. Ядро распознает тот факт, что данное устройство было открыто ранее (так как обратится к единственному общему объекту snode), и предоставит возможность двум процессам разделять между собой один и тот же поток. В данном случае мультиплексирование не используется.
Совсем другая ситуация возникает, если второй процесс открывает другой младший номер устройства. В этом случае ядро создает для него отдельный поток, а также объект snode и общий snode. Так оба потока имеют один и тот же старший номер устройства, они обслуживаются одним драйвером. Процедура open драйвера будет вызвана дважды, по одному разу на каждый поток. Драйвер будет управлять двумя наборами очередей, возможно даже с неодинаковыми комбинациями помещенных в них модулей. После получения данных из устройства драйвер производит их проверку и решает, какому из потоков передать их далее. Как правило, это решение обусловлено информацией, содержащейся в данных, либо портом контроллера, на который они поступили.
Оба потока могут содержать разные наборы модулей. Например, один из потоков использует модуль IP, в то время как другой — модуль ICMP. При получении данных из сети драйвер проверяет их содержимое и в зависимости от характера информации принимает решение о том, в какой из потоков их следует передать.
Опубликовал katy
June 24 2015 21:49:48 ·
0 Комментариев ·
3224 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.