The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..." +/
Сообщение от Ordu (ok), 08-Янв-20, 02:06 
>  Объективно, это позволяет эффективнее использовать все ядра.

Да, тогда когда занятых работой потоков больше чем ядер. Когда их меньше, получается фигня.

> В статье же, по незнанию автора (статьи, ибо автор статьи и графика
> может не совпадать) этот эффект истолковывается иначе (и делаются неверные выводы),
> якобы ядро 2 крадёт поток A у ядра 0 только потому,
> что оно освободилось (в реальности ядро 0 просто отключилось от потока
> A по расписанию, и начало другую работу; если другой работы бы
> не было, планировщик продлил бы т.н. Quantum Target и вернул управление
> потоку A). Утверждая про некорректное истолкование, я напрямую опираюсь на чётко
> описанный материал в самой авторитетной технической книге по внутренностям Windows.

Ах вот оно что... Знаешь как планировщику следовало бы поступить? Ему бы следовало мониторить активность задач, и заметить, что одна задача серьёзно занята чем-то и хочет сожрать столько процессорных квантов, сколько возможно, и в то же время он должен был заметить, что суммарная производительность остальных ядер более чем в 100 раз больше, чем требуется остальным задачам, а раз так, то следует прибить гвоздями занятую задачу к тому ядру, на котором он выполняется, и шедулить остальные задачи по свободным ядрам.

Именно это делает ядро linux, именно поэтому в аналогичной ситуации на линуксе, сильно занятая задача будет "захватывать" ядро на несколько секунд за раз, а не на 40 миллисекунд в среднем. Ядро windows этого не делает, что ты своими объяснениями подтверждаешь. Именно поэтому "dumb windows scheduler", и "ненужное перекидывание потоков".

Обрати внимание, несмотря на техническую неграмотность, автор статьи лучше тебя ухватил суть проблемы. Это очень похоже на тот редкий случай, когда избыточная грамотность вредит.

Самое интересное, что твоё более точное описание ничего не изменило в моём понимании ситуации. Ну, то есть, понятно, что крайне сложно выстроить идеальную ситуацию, когда в системе есть ровно один процесс, и всегда есть много процессов, и даже если они и спят 99.99% времени, всё же они иногда просыпаются и требуют квантов процессорного времени. Это настолько понятно, что не заслуживает даже упоминания, если по-хорошему. И способность венды держать занятый поток на одном ядре в идеальной ситуации, когда нет этих почти-всегда-спящих процессов -- совершенно бесполезная способность, потому что так не бывает. А как при этом объяснять это -- "ядро крадёт задачу" или "планировщик выделяет квант другой задаче" -- с мой точки зрения не важно совершенно: это просто разные уровни объяснений. Так же как одну и ту же программу можно написать на lisp'е или на asm'е, в каждом случае выбирая различные абстракции в предметной области, так и объяснять можно на разных уровнях и в разных абстракциях.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Линус Торвальдс опроверг проблемы с планировщиком задач, всп..., opennews, 06-Янв-20, 10:21  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру