GNU/Linux → FlexSC: новый механизм системных вызовов в ядре Linux
Эта статья рассказывает о новом механизме системных вызовов ядра Linux, который позволяет существенно сократить время исполнения приложений без необходимости их модификации.
Уже 30 лет системные вызовы остаются стандартным и, в большинстве OS, единственным способом коммуникации между приложениями и ядром OS.
- +4
- eReS
- 10 апреля 2011, 13:11
- execbit.ru/2011/04/04/flexsc/
Поток синхронно вызывает flexsc_wait, когда ему надо выполнить все накопленные вызовы, в данном случае это делает библиотека FlexSC-Threads ровно для одного сискола, но сами вызовы flexsc_wait из разных потоков никак не взаимосвязаны, за счет этого и получается увеличение производительности, правда, при условии, что сисколы от всех потоков валятся прямо лавиной.
А ответ на вопрос «когда же реально произойдут сисколы?» кроется в этой фразе: «Приложение, пожелавшее использовать механизм FlexSC, делает системный вызов (классический) flexsc_register(), в результате которого ядро выделяет нескольких страниц памяти и создает новый внутриядерный поток, который в будущем будет обслуживать интерфейс FlexSC для этого приложения.»
Вот когда этот самый внутриядерный поток получит квант времени, тогда и выполнятся.
Хотя может все и не совсем так. Без деталей реализации трудно рассуждать.
На видео 22:35
— Did it work on linux? Did you tried upstream patcher for the kernel pushes?
— No.
— Did you planned it?
— No.
— Why?!
— Because it think is a lot of timing effort that I prefer to use in another ways.
Вот даже как… «по определению». «А мужики то не знают!» :)