История изменений
Исправление KivApple, (текущая версия) :
Всё конкретно так обламывается на том, что подавляющее большинство тяжёлых приложений ещё и многопоточны. Причём даже не ради того, чтобы занять все ядра. Просто там физически исполняется несколько независимых задач (скажем, в игре 1 поток - просчёт действий ИИ, другой поток - рендеринг сцены, ещё один поток - обработка ввода игрока, четвёртый поток - работа с сетью). И выполнять их в виде нескольких потоков гораздо практичнее, чем городить машины состояний (а ещё одного процессора может и не хватить на всё). В итоге у тебя в системе при 20 задачах может оказаться 200 потоков. И всё, приплыли.
Ну либо каждая программа будет содержать в себе реализацию многозадачности. А, быть может, лучше вынести повторяющийся код в ОС? А, быть может, если программа не использует своё ядро 90% времени перекинуть на это ядро часть потоков другой задачи? И в итоге мы приходим к сегодняшним операционным системам, где точно также можно найти 20-ядерную конфигурацию и с помощью системных утилит раскидать процессы по разным ядрам.
Исправление KivApple, :
Всё конкретно так обламывается на том, что подавляющее большинство тяжёлых приложений ещё и многопоточны. Причём даже не ради того, чтобы занять все ядра. Просто там физически исполняется несколько независимых задач (скажем, в игре 1 поток - просчёт действий ИИ, другой поток - рендеринг сцены, ещё один поток - обработка ввода игрока, четвёртый поток - работа с сетью). И выполнять их в виде нескольких потоков гораздо практичнее, чем городить машины состояний (а ещё одного процессора может и не хватить на всё). В итоге у тебя в системе при 20 задачах может оказаться 200 потоков. И всё, приплыли.
Ну либо каждая программа будет содержать в себе реализацию многозадачности. А, быть может, лучше повторяющийся код в ОС? А, быть может, если программа не использует своё ядро 90% времени перекинуть на это ядро часть потоков другой задачи? И в итоге мы приходим к сегодняшним операционным системам, где точно также можно найти 20-ядерную конфигурацию и с помощью системных утилит раскидать процессы по разным ядрам.
Исходная версия KivApple, :
Всё конкретно так обламывается на том, что подавляющее большинство тяжёлых приложений ещё и многопоточны. Причём даже не ради того, чтобы занять все ядра. Просто там физически исполняется несколько независимых задач (скажем, в игре 1 поток - просчёт действий ИИ, другой поток - рендеринг сцены, ещё один поток - обработка ввода игрока, четвёртый поток - работа с сетью). И выполнять их в виде нескольких потоков гораздо практичнее, чем городить машины состояний. В итоге у тебя в системе при 20 задачах может оказаться 200 потоков. И всё, приплыли.
Ну либо каждая программа будет содержать в себе реализацию многозадачности. А, быть может, лучше повторяющийся код в ОС? А, быть может, если программа не использует своё ядро 90% времени перекинуть на это ядро часть потоков другой задачи? И в итоге мы приходим к сегодняшним операционным системам, где точно также можно найти 20-ядерную конфигурацию и с помощью системных утилит раскидать процессы по разным ядрам.