The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Линус Торвальдс опроверг проблемы с планировщиком задач, всп..., opennews (??), 06-Янв-20, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


6. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  +/
Сообщение от Аноним (6), 06-Янв-20, 10:43 
> Ничего не понял из текста, но я более за Линуса. гугл в
> утиль.

Спинлок, грубо говоря, это пустой цикл, выполняемый с целью задержки. Если открыть руководство по разработке для ОС с "более простым планировщиком, чем в Linux" -- там такое можно найти в разделе "модули ядра" и с оговоркой про IRQL (нет смысла объяснять, что это -- для разработчиков игр оно неведомо).

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

164. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  +10 +/
Сообщение от Урри (?), 06-Янв-20, 17:27 
Эммм, что за херню вы принесли и какие идиоты вас плюсанули??

Цель спинлоков - не задержка выполнения программы, а быстрая проверка некоторого условия (например и чаще всего, захваченности мьютекса) в юзерспейсе без переключения в кернелспейс (которое довольно дорого по ресурсам).

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

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

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

181. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  +1 +/
Сообщение от Аноним (6), 06-Янв-20, 18:13 
> Эммм, что за херню вы принесли и какие идиоты вас плюсанули??
> Цель спинлоков - не задержка выполнения программы, а быстрая проверка некоторого условия
> (например и чаще всего, захваченности мьютекса) в юзерспейсе без переключения в
> кернелспейс (которое довольно дорого по ресурсам).

Это называется побочный эффект (алгоритма). А кто не принимает во внимание, что сам алгорим -- тупой цикл -- тот потом и получает от Линуса советы.

> Используется для снижения использования вычислительных ресурсов в случаях

Да-да. Бывает, здорово снижает. Вместо пары переключений контекста -- мульён итераций у особо одарённых.)

> когда ожидаются
> частые захват+освобождение того же мьютекса, например.
> Любые программисты (не обезьяны, а программисты) в курсе что такое спинлок и
> нахера он нужен; даже на всех собеседованиях (на позицию программиста, а
> не обезьяны) об этом спрашивают.

Спрашивающий, очевидно, от этого далёк, развёрнутое объяснгение лишь запутает, потому было заменено на оговорку "грубо говоря".

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

188. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  +3 +/
Сообщение от Урри (?), 06-Янв-20, 18:45 
> сам алгорим -- тупой цикл

(facepalm) Охохохохо...

Спинлок - это не тупой цикл. Это давно-давно, еще когда динозавры жили, придуманный примитив синхронизации, который в первую очередь требует эксклюзивного доступа к некоему ресурсу (обычно - ячейке памяти, обычно - lock на шину при доступе к ней) и который, уже во вторую очередь, является циклом (как и 99,999% любой компьютерной программы).

Причем, желательно, чтобы никаких итераций этого цикла не было вовсе. Спинлоки как раз используют тогда, когда ожидают, что ресурс будет в основном свободен. Вот в чем смысл спинлока, безграмотный аноним, а не в бездарном бегании по кругу.

> Да-да. Бывает, здорово снижает. Вместо пары переключений контекста -- мульён итераций у особо одарённых.)

Сдуру можно и буй сломать. Естественно, спинлоки надо правильно использовать - вы же не чистите зубы шариковой ручкой?

> Спрашивающий, очевидно, от этого далёк, развёрнутое объяснгение лишь запутает, потому было заменено на оговорку "грубо говоря".

Ваше "развернутое объяснение" оказалось совершенно ошибочным. Если вы сами не знаете предмета разговора, то лучше промолчать, чем вводить вопрошающего в заблуждение.

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

206. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  +1 +/
Сообщение от Аноним (6), 06-Янв-20, 19:35 
>[оверквотинг удален]
> (facepalm) Охохохохо...
> Спинлок - это не тупой цикл. Это давно-давно, еще когда динозавры жили,
> придуманный примитив синхронизации, который в первую очередь требует эксклюзивного доступа
> к некоему ресурсу (обычно - ячейке памяти, обычно - lock на
> шину при доступе к ней) и который, уже во вторую очередь,
> является циклом (как и 99,999% любой компьютерной программы).
> Причем, желательно, чтобы никаких итераций этого цикла не было вовсе. Спинлоки как
> раз используют тогда, когда ожидают, что ресурс будет в основном свободен.
> Вот в чем смысл спинлока, безграмотный аноним, а не в бездарном
> бегании по кругу.

Я понимаю, что некоторые динозавры до сих пор не знают, что такое побочный эффект. Это собственно то, ради чего алгоритм, в данном случае - тупой цикл без полезной работы, выполняется. Случается, что таких эффектов несколько. В данном случае эффектом оказался вовсе не тот, о котором ты с таким апломбом написал. Такой вот наблюдаемый результат.

>> Да-да. Бывает, здорово снижает. Вместо пары переключений контекста -- мульён итераций у особо одарённых.)
> Сдуру можно и буй сломать. Естественно, спинлоки надо правильно использовать - вы
> же не чистите зубы шариковой ручкой?

Ну вот сломал один. Линус ему объясняет, в чём дело. Тебе ситуация из новости ни о чём не говорит? Мне очевидно, что ты мог бы всё это адресовать тому критику Линукса, было бы больше пользы. Он ведь тоже думает, что у него там "вот счас быстренько проверим свободный ресурс".

>> Спрашивающий, очевидно, от этого далёк, развёрнутое объяснгение лишь запутает, потому было заменено на оговорку "грубо говоря".
> Ваше "развернутое объяснение" оказалось совершенно ошибочным. Если вы сами не знаете предмета
> разговора, то лучше промолчать, чем вводить вопрошающего в заблуждение.

Хочешь сказать, что я напрасно сделал оговорку "грубо говоря", после того как сам же и потратил столько времени на её развёртывание?)))

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

186. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  +12 +/
Сообщение от erthink (ok), 06-Янв-20, 18:31 
Стоит уточнить/усугубить, что в linux (в современной glibc) mutex'ы реализованы через futex'ы aka benaphor'ы.

Суть же фьютекса в том, что это просто word в userspace, над которым выполняются interlocked/atomic  операции с syscall'ом в slow-path.
Соответственно, если такой мьютекст свободен и его никто не ждет, то стоимость его захвата/освобождения такая-же как у spinlock'а. Сискол же будет когда потребуется ожидание при захвате, или для пробуждения других процессов при освобождении.

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

333. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  –2 +/
Сообщение от letsmac (ok), 07-Янв-20, 13:06 
>>Цель спинлоков - не задержка выполнения программы, а быстрая проверка некоторого условия (например и чаще всего, захваченности мьютекса) в юзерспейсе без переключения в кернелспейс (которое довольно дорого по ресурсам).

ИМХО это просто костыль оставшийся от лени делать программные прерывания. Асинхронность можно сделать и без вызова ядра.  

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

411. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  +/
Сообщение от ПриветКолян (?), 09-Янв-20, 19:27 
Захваченности чего? Mutex нельзя захватить. Это просто сигнализирующий механизм. Вывеска на двери номера "Сейчас я трахаю Машу. Дырка занята, заходите позже".
Ответить | Правка | К родителю #164 | Наверх | Cообщить модератору

414. "Линус Торвальдс опроверг проблемы с планировщиком задач, всп..."  +/
Сообщение от КО (?), 13-Янв-20, 15:22 
Захватить это и есть вывесить вывеску на пустую дверь. Кто первый тот и папа.

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

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

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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