Pull to refresh
149
0
Дмитрий Завалишин @dzavalishin

Архитектор

Send message
Но с миллионами пакетов мне как-то не очевидно: нормальный драйвер на одно прерывание читает все данные, которые есть в буфере железа, или пишет все, которые можно запихать в буфер за один раз. Совсем нормальный вообще делает железу в памяти scatter-gather list и железо само его обходит и делает ввод-вывод чисто аппаратно. В любом случае никто не делает прервание на байт, пакет или сектор — работают пачками.
Вопрос соотношения времени обмена данными и простоя. И — цены свободного ядра процессора. Плюс несколько повышается реактивность. Прерывание тоже требует времени.

Был такой процессор — propeller, если не ошибаюсь — там восемь синхронных ядер и нет прерываний. Весь обмен — поллингом. Принципиально.

Кроме того, в жёстком риалтайме драйвера поллинговые — считается, что иначе невозможно гарантировать время реакции. (Хотя у меня лично есть смутные сомнения на этот счёт.)

В целом — согласен, есть в жизни место поллингу.
проблема только с именами, и то — частичная. рантайм вернёт ошибку. Всё остальное есть у ioctl в полный рост. никто и никак не проверит бинарный номер и формат структуры. а так же выравнивание полей.
«формирование снапшотов и вызовы в ядро могут пересекаться по времени.» — это вызов в ядро. Если он будет блокировать снапшоты, то они не будут происходить месяц.
Всё верно. Но иногда люди эмоциональны. :)
Системный вызов чтения байта с клавиатуры может быть заблокирован на месяц. Когда я в отпуске. :)
Синтаксис запроса вторичен. Конечно, никто не будет парсить URI на системных вызовах. А в остальном — всё верно там написано.
Все объекты прикладного уровня, имеющие отношения с ядром при рестарте получают уведомление о случившемся, соответственно — могут принять его во внимание, чтобы отличить эти два случая. См. restart_list выше.
Ядерные стеки-то — чёрт с ними, а в остальном — да, очень перекликается. Спасибо.

(Кстати, интересное пересечение — нулевая версия ядра фантома использовала в качестве базы oskit, на котором и fluke базировался.)
Такие мысли меня тоже посещают.
Вы о себе или об индустрии? Строка кода на С++ в 4-5 раз дороже строки на Яве.
Кажется, любой юниксосрач можно завершить этой мудрой мыслью:

Не всё укладывается в общий файловый интерфейс, и не всё что удаётся уложить — красиво и эффективно.


:)
Решение требует задачи. Нет смысла выбирать ЯП абстрактно.

Однако, как 20 лет назад был универсальный ответ «не знаешь, на чём писать — пиши на Си (++)», так сегодня дефолтным ЯП является Ява, если ты юниксоид и С#, если ты хочешь жить и умереть в виндах. Инфраструктура поддержки этих двух ЯП несравнима ни с чем (включая си).

Если тебе нужно скриптик или страничку — похрен. Хоть на коболе.
Да, это помогает. Должно, по крайней мере. Семантика диктует структуру.
ок. мне так нравится. :)
давайте тратить байты на обсуждение сути, а не фантика.
реализую похожую модель, но в приложении к другому объекту.
с другой стороны, возможно, правильная схема именно fs:

/dev/tty0
/dev/tty0.speed
/dev/tty0.stop_bits

:) ну — представьте, что приложение с ошибкой запускает треды по числу ядер. часто так и делают, чтобы получить максимальную производительность.
Любой нейминг без централизованного управления приходит в состояние помойки. Вопрос времени. :)

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity