Re: вопрос об очереди необработанных запросов (StartIo)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 03.08.06 02:20
Оценка:
Здравствуйте, Vasilich1964, Вы писали:

V>Хотелось бы спросить о StartIo c очередью необработанных запросов

V>1. Пусть карточка не имеет прерываний и DMA. Если карточка быстрая ( при запросе драйвер читает пару — тройку регистров, что-то немного вычисляет и отдает ответ), то я так понимаю, что мне не надо StartIo. Также если придет несколько запросов диспечеру ввода-вывода, то он обеспечит очередность к драйверу. Прав ли я? Если какие-нибудь временные критерии для этого?

Диспетчер очередности к драйверу обеспечивать не будет. Если в процессе обработки одного запроса на другом процессоре будет выдан еще один запрос — диспетчерская функция драйвера будет вызвана немедленно, и обе какое-то время будут работать параллельно.

StartIo — это просто стандартный системный способ постановки запросов в очередь. Если он не нравится — можете сами ставить запросы в очередь и отдавать STATUS_PENDING, а обрабатывать по прерываниям от устройства/таймера.

ВременнЫх критериев, как таковых, нет — все упирается в ожидания. То есть, если драйверу не требуется ожидать какого-то события, и для обработки запроса достаточно каких-то преобразований данных — это синхронный запрос, он должен завершаться без постановки в очередь. Если требуется ожидание — запрос асинхронный, он должен запоминаться для обработки и помечаться, как ждущий (pending).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.