LINUX.ORG.RU

История изменений

Исправление Crocodoom, (текущая версия) :

Например, в современных ОС очень солидную долю процессорного времени в системном коде занимают переключения контекстов — прерывания и системные вызовы. Если придумать инструменты написания программ для реализации надежных алгоритмов взаимодействия меж контекстов без переключения этих контекстов, аля io_uring, только человечнее, то экономия на переключениях контекстов вполне могла бы с лихвой окупить неоптимильность этого ЯП или компилятора. На нынешний момент эффективная асинхронность без переключения контекстов чудовищно сложна в реализации на тех же C/C++.

Ну тут надо ещё учитывать, что программы в сумме могут запросить намного больше потоков, чем есть ядер (даже ядер*2) в системе. И тогда без вытесняющей многозадачности не обойтись.

Вообще, словосочетание "асинхронность без переключения контекстов" мне не нравится. Вот «синхронность без переключения контекстов» — это хорошо, я сам так делаю (на GPU). А асинхронность она как бы предполагает переключение контекстов by design.

Исходная версия Crocodoom, :

Например, в современных ОС очень солидную долю процессорного времени в системном коде занимают переключения контекстов — прерывания и системные вызовы. Если придумать инструменты написания программ для реализации надежных алгоритмов взаимодействия меж контекстов без переключения этих контекстов, аля io_uring, только человечнее, то экономия на переключениях контекстов вполне могла бы с лихвой окупить неоптимильность этого ЯП или компилятора. На нынешний момент эффективная асинхронность без переключения контекстов чудовищно сложна в реализации на тех же C/C++.

Ну тут надо ещё учитывать, что программы в сумме могут запросить намного больше потоков, чем есть ядер (даже ядер*2) в системе. И тогда без вытесняющей многозадачности не обойтись.

Вообще, словосочетание "асинхронность без переключения контекстов" мне не нравится. Вот «синхронность без переключения контекстов» — это хорошо, я сам так делаю. А асинхронность она как бы предполагает переключение контекстов by design.