The OpenNET Project / Index page

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

Google начал открытие реализации модели потоков M:N

28.07.2020 12:25

Компания Google предложила для включения в состав ядра Linux первый набор патчей с реализацией компонентов, необходимых для обеспечения работы модели потоков M:N. Инициатива Google связана с открытием развивавшегося за закрытыми дверями API SwitchTo для ядра Linux, обеспечивающего работу реализованной в пространстве пользователя многопоточной подсистемы, применяющей модель потоков M:N. Подсистема используется в Google для обеспечения работы сервисов, требующих минимальных задержек. Планирование и управление распределением потоков производится целиком в пространстве пользователя, что позволяет существенно снизить число операций переключения контекста за счёт минимизации выполнения системных вызовов.

Для обеспечения работы указанной подсистемы на уровне ядра Linux был реализован API SwitchTo, предлагающий три базовых операции - wait, resume и swap (переключение). Для включения в состав ядра предложен код новой операции FUTEX_SWAP, дополняющей FUTEX_WAIT и FUTEX_WAKE, и предоставляющей основу для создания многопоточных библиотек в пространстве пользователя. FUTEX_SWAP также может применяться для передачи сообщений между задачами, по аналогии с RPC. Например, в настоящее время для передачи сообщения между задачами требуется выполнить как минимум четыре вызова FUTEX_WAIT и FUTEX_WAKE, использование же FUTEX_SWAP позволит обойтись одной операцией, которая будет выполнена в 5-10 раз быстрее.

В настоящее время на практике применяются в основном модели потоков 1:1 и N:1. Модель 1:1 используется в NPTL (POSIX потоки) и LinuxThreads, и подразумевает прямое сопоставление потока в пространстве пользователя с потоком (единицей планирования выполнения) на уровне ядра. Модель N:1 реализована в GNU Pth, выносит диспетчеризацию потоков в пространство пользователя и позволяет N потоков в пространстве пользователя привязать к одному потоку в ядре, при этом ядро не имеет информации о пользовательских потоках.

Основным недостатком модели 1:1 являются большие накладные расходы на переключение контекста между ядром и пространством пользователя. Модель N:1 решает эту проблему, но создаёт новую - так как поток в ядре является неделимой единицей планирования выполнения, то пользовательские потоки, привязанные к одному потоку в ядре операционной системы, не могут масштабироваться по ядрам CPU и оказываются привязанными к одному ядру CPU.

Модель M:N является гибридной и устраняет все вышеописанные недостатки благодаря сопоставлению M потоков в пространстве пользователя с N потоками в ядре ОС, что позволяет как снизить накладные расходы на переключение контекста, так и обеспечить масштабирование по ядрам CPU. Ценой данного варианта является большое усложнение реализации планировщика потоков в пространстве пользователя и необходимость в механизмах согласования действий с планировщиком ядра.



  1. Главная ссылка к новости (https://www.reddit.com/r/linux...)
  2. OpenNews: Для ядра Linux развивается система распределённого выполнения потоков Popcorn
  3. OpenNews: Новая стабильная версия real-time ветки Linux ядра
  4. OpenNews: В ядре Linux выявлена локальная уязвимость, позволяющая поднять свои привилегии в системе
  5. OpenNews: Компания Intel выпустила релиз Threading Building Blocks 3.0
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/53443-thread
Ключевые слова: thread, linux, kernel, google, futex
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (153) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.13, anonymous yet another (?), 13:33, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +40 +/
    Ага, если кто не знает истории.

    В своё время в Solaris была (лучшая на тот момент) релизация нитей (aka легковесный процесс). Модель была M:N.

    Ребята из ядерной группы, решая какую-то проблему Oracle'а для раскрутки проблемы быстренько написали компактную реализацию нитей в модели 1:1. И внезапно увидели ох^W весьма нехилый рост производительности. И потратили месяца четыре на выяснение --- где они лажанулись. Не нашли. Через четыре месяца эта модель пошла опцией в бету Solaris'а, и в следующем релизе стала основной (и единственной) моделью нитей в Solaris'е.

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

    В Linux'е Линус очень долго вообще отказывался делать поддержку нитей ядром. На этом месте паслись "зелёные нити" (полная х...ь как концепция, IMO). Но после большого успеха модели 1:1 у Sun, он быстро сотворил модель 1:1 в Linux'е.

    Сейчас наблюдаем:
    - во многие языки тянут coroutines (\equiv "зелёные нити");
    - G. подтягивает супер-инновационную модель M:N.

     
     
  • 2.16, CAE (ok), 13:49, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Возможно, простая модель письма прикладнух без асинк колбэков один тред один сокет, сподвигла G. повторять достижения.
    IMHO, внятное письмо на M worker N сокетов с колбэками и есть по сути M:N, только в пространстве пользователя. Но тут всем лениво, это же прикладнухи писать, пахнет своим шедулингом. Поэтому и идёт попытка один раз загнать в ядро.
    Так думаю.
     
     
  • 3.32, anonymous yet another (?), 14:46, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ввод-вывод в нитях --- это полный абзац для планировщика в userspace.
    Ему (user-space scheduler) будет очень удобно определять, какую из
    u пользовательских нитей надо будить по наличию события в-в.

    Ядро-то изначально такую информацию имеет: "стоим на ...,
    ждём события по...; случилось событие, ясно кого будить".

     
  • 2.19, Школьник (ok), 13:57, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Надо же, какие олдфаги на опеннете всё ещё сидят. Приятно удивлён :-)

    Во фряхе, кстати, примерно та же история была с libkse - тоже вышло, что M:N модель слишком сложная. Но зумерам из Гугла некогда читать книги и архивы email-рассылок. Ну раз так, то грабли ждут их лбы.

    А вообще, Соляра как ядро для своего времени была изрядно впереди планеты всей. Пока во фре боролись с giant lock и кидались фекалиями в Диллона, в Соляре синхронизация и нормальная работа SMP давно была сделана как надо. Ну и SMF, зоны, включая branded, с ограничениями ресурсов, ZFS, виртуализация сетевого стека, подключаемые плагинами планировщики, классы планирования - практически всё было сделано, и бОльшая часть сделана по-человечески и еще в то время, когда нынешние зумерки-разрабы типы данных в Си изучали. Но, как говорится, не родись красивой...

     
     
  • 3.51, Аноним (51), 16:46, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Сначала дождитесь рабочей реализации и делайте выводы. Сложно, да. И что? Это значит, что совсем нереализуемо? Нет. Если реализуют, будет быстро. Если нет, то нет.
     
     
  • 4.52, Аноним (51), 16:48, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –13 +/
    Более того, если всё будет работать как надо, это покажет некомпетентность всех предыдущих разработчиков, у которых ничего не вышло и вынуждены были забросить. Не выгораживаю гугл, но выводы рано делать однозначные.
     
     
  • 5.60, Аноним (60), 17:24, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Более того, если всё будет работать как надо, это покажет некомпетентность всех предыдущих разработчиков,

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

    > у которых ничего не вышло и вынуждены были забросить.

    Прекратите фантазировать.

    > Не выгораживаю гугл,

    Просто, как настоящий линуксоид, подлизываешь, надеясь на другие объедки с барского стола?

     
     
  • 6.66, Аноним (51), 17:38, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –9 +/
    >подлизываешь

    Не проецируй свои фантазии на других. Это лишь альтернативное мнение, не более. Включат или нет не особо волнует.

     
     
  • 7.86, Аноним (86), 19:53, 28/07/2020 Скрыто модератором
  • +3 +/
     
     
  • 8.89, Аноним (89), 20:04, 28/07/2020 Скрыто модератором
  • –6 +/
     
     
  • 9.102, Аноним (102), 21:31, 28/07/2020 Скрыто модератором
  • +2 +/
     
     
  • 10.111, Аноним (111), 23:20, 28/07/2020 Скрыто модератором
  • +/
     
  • 10.112, Аноним (111), 23:23, 28/07/2020 Скрыто модератором
  • +/
     
     
  • 11.131, Аноним (131), 12:50, 29/07/2020 Скрыто модератором
  • +/
     
  • 4.78, Анончик (?), 18:52, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Лол, а железо вы в расчет не берете? Или у вас на разном железе программы и их алгоритмы работают совершенно идентично?
     
  • 4.91, Я (??), 20:25, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    так погодьте.. скдя по новости гугл уже написал это всё и уже использует на своих серверах, а сейчас начали готовить патчи   для коммита всего этого в мэйнстрим ядро..
     
  • 2.42, Аноним (42), 16:03, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > На этом месте паслись "зелёные нити" (полная х...ь как концепция, IMO)
    > - во многие языки тянут coroutines (\equiv "зелёные нити");

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

     
     
  • 3.48, anonymous yet another (?), 16:33, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Привет поколению Z!

    Вы язык программирования с архитектурой процессора(ов) в запарке не попутали?

     
     
  • 4.73, Аноним (42), 18:30, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Бумерам привет.

    При чем тут архитектура? Для преобразования сопрограммы в конечный автомат:

    http://dunkels.com/adam/pt/expansion.html

    нужны особые архитектуры?

     
     
  • 5.77, Аноним (77), 18:48, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зумерок, прекращай читать инвалидов умственного труда.
     
     
  • 6.80, Аноним (42), 19:07, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Автор uIP - инвалид умственного труда? Окей, бумер. Гиганты мысли с опеннета поражают.
     
     
  • 7.81, Аноним (77), 19:12, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Реализация tcp/ip под микроконтроллеры - святой грааль программирования? Окей, зумер, читай кого хочешь.
     
  • 7.90, anonymous yet another (?), 20:16, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Если я правильно понимаю, то вы всё время в сторону программирования на baremetal подмигиваете.

    Так это вообще здесь не причём. Нет MMU, нет кэшей, нет операционки --- нет понятия kernel space/user space. Т.е. к изначальной теме никак не относится.

     
  • 3.72, Аноним (72), 18:23, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В "нерасширяемой сишечке" эти твои корутины делаются на макросах препроцессора.

    https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html

     
     
  • 4.74, Аноним (42), 18:35, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я знаю, пользоваться этим невозможно. Сравни с современными async/await.
     
     
  • 5.107, Аноним (72), 22:49, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну, тем не менее, подход Саймона Тэтхэма даёт рабочие корутины (утверждалось, что их невозможно реализовать совсем в сях, кроме как руками - я привёл контрпример). А async/await как по мне - вреден, ибо большинство смузипрогеров даже не вникает в то, как это работает. Типа, о - крутая штука для "многопоточности". А что там творится под капотом и как это реализовано (скажем, что там оно разворачивается в конечный автомат) - даже не догадываются. Реально есть кадры, которые на полном серьёзе считают, что корутины - это про мультитрединг.
     
     
  • 6.125, Аноним (125), 09:31, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тут нужны оговорки Первое это различать три вещи 1 Корутины 2 Протопотоки 3 ... большой текст свёрнут, показать
     
  • 4.84, Аноним (86), 19:51, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В "нерасширяемой сишечке" эти твои корутины делаются на макросах препроцессора.

    Ты не смотрел, что по ссылке? Или просто не едал ничего слаще морковки?
    > https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
    > So now we have this monstrosity, let's rewrite our original code fragments using it.




    int decompressor(void) {
        static int c, len;
        crBegin;
        while (1) {
            c = getchar();
            if (c == EOF)
                break;
            if (c == 0xFF) {
                len = getchar();
                c = getchar();
                while (len--)
            crReturn(c);
            } else
        crReturn(c);
        }
        crReturn(EOF);
        crFinish;
    }


     
     
  • 5.108, Аноним (72), 22:51, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А что? Там должен быть async/await, выблёвывающий смузи?
     
  • 5.134, Аноним (134), 17:28, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Статические переменные внутри функции? Не велели такого отцы-основатели
     
  • 2.54, rshadow (ok), 17:03, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > полная х...ь как концепция, IMO

    Сразу понятно что вы не программист. Но спасибо за исторический экскурс.
    https://ru.wikipedia.org/wiki/C10k

     
     
  • 3.59, Anonn (?), 17:15, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зато люто плюсуют. 4 месяца не могли понять, а потом ответ оказался прост. Какая-то фантастическая история по мне.
    А еще, как обычно: в Гугле одни идиоты (причем, заметьте, со всего мира), все здравые ребята здесь собрались: ишь, те изобретают велосипед заново, и даже не догадались подумать об очевидной вещи как %s.
     
     
  • 4.63, Аноним (-), 17:36, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А еще, как обычно: в Гугле одни идиоты (причем, заметьте, со всего
    > мира), все здравые ребята здесь собрались: ишь, те изобретают велосипед заново, и даже не догадались подумать об очевидной вещи как %s.

    Здравые ребята реалистично не считают себя Гуглом, а свои сценарии использования - схожими с гугловскими.
    И основываясь на опыте предыдущих, в том числе и "академически верно" проработанных реализаций, закономерно ждут подвох для всех тех, кто не является Гуглом.

     
  • 4.67, anonymous yet another (?), 17:43, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 4 месяца не могли понять, а потом ответ оказался прост

    Ребята грамотные были. Сами и задались вопросом: "какого х...а сильно более простая реализация на характерных задачах так выиигрывает? Не упустили ли чего?". Пошли измерять/сравнивать. Потом пошло в news/ML, была публикация (ACM? --- не помню). Потом отдали приближённым, потом в пред-релиз (т.н. "модель T2"). Получилось: по практическим результатам T2 выглядела сильно лучше. В вырожденных случаях T2 не проигрывала основной модели, а в ряде практически значимых сценариев --- сильно выигрывала.

     
  • 3.62, anonymous yet another (?), 17:30, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Таки да, на javascript не пишу.

    Ссылка-то эта к чему? Риди бога, ткните в меня реализацией C10k на setjmp/longjmp! А то так в неведении и помру.

     
  • 2.85, anonymous (??), 19:52, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > В Linux'е Линус очень долго вообще отказывался делать поддержку нитей ядром. На этом месте паслись "зелёные нити" (полная х...ь как концепция, IMO). Но после большого успеха модели 1:1 у Sun, он быстро сотворил модель 1:1 в Linux'е.

    Всё дело в языка. Что для сишечки бессмысленно, сложно и просто ресурсы на ветер, то для жабаскрипта естественно как дыхание. Даёшь поддержку жабаскрипта (и прочих коллбек-ориентированных языков) на уровне ядра!

     
     
  • 3.99, Аноним (99), 21:11, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В js вообще нет нитей - он однопоточен. Главное встрять со своим комментарием про "любимый" язык?
     
  • 2.93, funny.falcon (?), 20:35, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У всех предыдущих подходов к N M была одна общая болезнь работа с диска Оно бл... большой текст свёрнут, показать
     
     
  • 3.100, anonymous yet another (?), 21:16, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Первой (из общедоступных) правильный подход реализовала Go: когда шедулер-тред встаёт в сискол, она порождает новый тред.

    Если это так (я не знаю), то всё просто зашибись: мы попросили новую страницу памяти, а нам в ответ пытаются добавить новую единицу планирования (со всем ворохом ресурсов, привязанных к ней, в т.ч. и с выделением тучки страниц). Идея перекликается с GC в Java.

     
  • 3.105, Аноним (-), 22:28, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > При наличии подсистемы io_uring, все становится ещё намного проще

    С уриной пока всё тоже не слава богу:

    "io_uring is currently like kqueue on OS X - it works with "important" file
    types, but it fails as generic mechanism, and there is no way to detect what
    will work or not, so workarounds are essentially impossible."

    http://lists.schmorp.de/pipermail/libev/2020q3/002879.html

     
  • 2.120, Аноним (120), 06:38, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >В Linux'е Линус очень долго вообще отказывался делать поддержку нитей ядром. На этом месте паслись "зелёные нити" (полная х...ь как концепция, IMO). Но после большого успеха модели 1:1 у Sun, он быстро сотворил модель 1:1 в Linux'е.

    Забываем реализацию M:N со стороны IBM для Linux?.. а еще история...

     

     ....большая нить свёрнута, показать (40)

  • 1.7, Совершенно другой аноним (?), 13:27, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Была попытка использования такой технологии в ядре NetBSD. Называлась Scheduler Activations (https://en.wikipedia.org/wiki/Scheduler_activations). Разработчики долго с ней боролись и в итоге забросили в пользу обычной 1:1.
     
     
  • 2.11, Аноним (11), 13:29, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Но "технологическое отставание" все равно у линукса. Смотри не перепутай.
     
     
  • 3.18, Совершенно другой аноним (?), 13:54, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Э.. а я про Linux ничего плохого не сказал, и про *BSD тоже. Это был исторический экскурс. Прошу прощения, что это Вас так затронуло.
     
  • 3.24, Анонас (?), 14:10, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    2003: в NetBSD появляются Scheduler Activation
    2008: переписывают поддержку Scheduler Activation для совместимости с 1:1
    2020: "Google начал открытие реализации модели потоков M:N" для Linux
    Действительно, кто же тут отстающий?
     
  • 3.36, Аноним (-), 14:57, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Молодец, все верно подметил https www freebsd org cgi man cgi query kse aprop... большой текст свёрнут, показать
     
     
  • 4.101, Аноним (-), 21:19, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > September    10, 2002

    Ну не особенно впечатляет...
    Пока линукс и фряха занимаются спором у кого длиннее...

    А в NetBSD уже тесты уже делали в 90-х...

    An Implementation of Scheduler Activations on the NetBSD Operating System
    http://web.mit.edu/nathanw/www/usenix/freenix-sa/freenix-sa.html

    There are two goals of examining the performance of the scheduler activations system. The first is determining whether the added complexity of having scheduler activations in the kernel hurts the performance of ordinary applications. The second is comparing the performance of the resulting thread system with existing thread systems to demonstrate the merits of the scheduler activations approach.

    The first measurements were done with the HBench-OS package from Harvard University [3]

    [3] A. Brown and M. Seltzer.
    Operating system benchmarking in the wake of lmbench: A case study of the performance of NetBSD on the Intel x86 architecture.
    In Proceedings of the 1997 ACM SIGETRICS Conference on Measurement and Modeling of Computer Systems, pages 214-224, ___1997___.


    1997 (!)

    Все идеи и драфты за авторством ребят из Wasabi Systems в 90-х (сейчас этой конторы нет, но костяк кодеров остался до сих пор в NetBSD). Так что все ваши фрибсд, айбиэмы, ораклы и прочее пролетают как фанера над Парижем.

    а вообще.... ...scheduler activations have been implemented for research purposes in Taos [1], Mach 3.0 [2]... and adopted commercially in Digital Unix  [5] (now Compaq Tru64 Unix)...

    Compaq Tru64 Unix, карл... чуть позже и солярка заблистала... Так что эти ваши линуксы, фряхи, опенбзд уберите в сторону... тут правит балом netbsd и wasabi Systems...

     
     
  • 5.104, Аноним (-), 21:45, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    По ссылке не ходи, на SEE ALSO code SEE ALSO rfork 2 , pthread 3 , uconte... большой текст свёрнут, показать
     
     
  • 6.113, Аноним (-), 23:31, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Баш на баш Nathan J Williams Wasabi Systems, Inc nathanw wasabisystems com T... большой текст свёрнут, показать
     
     
  • 7.114, Аноним (102), 23:54, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сам что-то придумал, сам что-то доказал Да-да 2019 год, 200Gbp s Где там прав... большой текст свёрнут, показать
     
  • 7.115, Аноним (-), 00:02, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, да Кроме циферок - неплохо бы и названия и авторов прочитать Почти все ... большой текст свёрнут, показать
     
  • 7.121, Аноним (121), 09:01, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Идеи в IT видите ли рипают все друг у друга понемногу Тот же clone в Linux зн... большой текст свёрнут, показать
     
  • 7.127, Аноним (127), 10:27, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Просто надо смириться - NetBSD технологический флагман

    Да уже все смирились, не волнуйся! Вон NetBSD - на большинстве северов, заняла топ-500 и к доминированию на десктопах подбирается. Всё-таки не зря там профессионалы пишут.

     
  • 7.128, Аноним (111), 10:33, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Увы, уже давным-давно не технический флагман и сама тащит в себя с линукса.
     
  • 5.106, Аноним (-), 22:44, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Все идеи и драфты за авторством ребят из Wasabi Systems в 90-х (сейчас этой конторы нет, но костяк кодеров остался до сих пор в NetBSD). Так что все ваши фрибсд, айбиэмы, ораклы и прочее пролетают как фанера над Парижем.

    Почему пролетают-то? "Костяк кодеров из Wasabi Systems" выкинул M:N из NetBSD и теперь там 1:1 как в этих ваших линуксах, фряхах и опенбзд? В чём успех-то?

    (местные нетбздшники что-то совсем уже поехали)

     
     
  • 6.109, Аноним (-), 23:08, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В чём успех-то?

    разработали, написали код, протестировали, сравнили, провели тесты... чем не успех - исчерпывающая разработка проблематики? это тоже своеобразный технологический успех. я считаю - абсолютный успех... и теперь в 2020-м году гугел что-то там открывает и тестирует... какие-то графики... ох лол... либо слоупоки, либо новомодные смузихлёбы...

    > что-то совсем уже поехали

    ой да ладно... это вы поехали... или косите мол под ничего не понимающего...

     
     
  • 7.130, Аноним (111), 10:36, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >гугел что-то там открывает

    Исходный код открывает. Заголовок переведённой статьи провокационный и не отражает суть.

     
  • 4.156, Аноньимъ (?), 10:56, 01/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да какая разница если они всё забросили и все полимеры пр*с**ли?

    В бсде вообще ленивые смешные люди сидят которым на ОС и технологии плевать, у них свои какие-то абскурные задачи, на половину академические (пример Беркли) наполовину чисто коммерческие (фаерволы гонять)

     
  • 2.35, Аноним (-), 14:54, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Была попытка использования такой технологии в ядре NetBSD. Называлась Scheduler Activations
    > (https://en.wikipedia.org/wiki/Scheduler_activations). Разработчики долго с ней боролись
    > и в итоге забросили в пользу обычной 1:1.

    В соплярисе и фре тоже было и тоже забросили.


     
  • 2.58, Нанобот (ok), 17:12, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если я правильно понимаю, в винде такое тоже есть и называется fibers (https://docs.microsoft.com/en-us/windows/win32/procthread/fibers). Появилось в хр и я ни разу не видел, чтобы это где-то использовали. Что-то мне кажется, с линуксной реализацией будет так же
     
     
  • 3.65, rshadow (ok), 17:37, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, причем судя по описанию задумано нормально. Создать потоки для утилизации всех ядер и в каждом крутить свой цикл для утилизации ядра.
    Используется редко т.к. надо заново учится программировать на событийных машинах. Намного проще когда у тебя есть простыня последовательно выполняемого кода. Без всяких подводных камней.
     
     
  • 4.69, anonymous yet another (?), 18:05, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Создать потоки для утилизации всех ядер и в каждом крутить свой цикл для утилизации ядра.

    Если задача --- именно утилизировать ядро, то так, наверное, и надо.

    Но можно было бы и что-то полезное делать...

     
  • 3.68, Аноним (68), 17:55, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Fibers, оно же coroutines - это другое. Грубо говоря, это кооперативная многозадачность, т.е. несколько задач, выполняющиеся в *одном потоке* могут переключаться между собой. Из этого вытекают и основные болячки этого подхода, как неработающий TLS, проблемы с блокировкой потока и проблемы с отладкой.

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

    По сути, новость вводит в заблуждение, т.к. модель потоков в Linux не меняется. Просто добавляется еще одна операция, которая позволяет повысить эффективность переключения между потоками.

     
     
  • 4.151, Яков (?), 11:31, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, вместо TLS можно использовать FLS, ино дело, что сразу теряешь языковую поддержку - __declspec(thread) и thread_local сразу становятся не про нас, ну и библиотечные вызовы, где TLS используются (иногда неявно - см. errno) идут лесом.
     

     ....большая нить свёрнута, показать (22)

  • 1.1, Аноним (1), 13:03, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Интересно кто первый угробит линукс - гугл или микрософт?
     
     
  • 2.8, Аноним (-), 13:27, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +56 +/
    комментаторы опеннет
     
     
  • 3.22, Аноним (22), 14:06, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Но ведь комментаторы никакой работы, кроме комментариев не производят. Линуксу нечего бояться.
     
     
  • 4.47, Satori (ok), 16:29, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    >Но ведь комментаторы никакой работы, кроме комментариев не производят. Линуксу нечего бояться.

    Даже окружающую среду не портят, в отличие от гномеров :)

     
     
  • 5.123, Аноним (-), 09:04, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Даже окружающую среду не портят, в отличие от гномеров :)

    Как это? Они производят углекислый газ и даже метан. Это парниковые газы!!!

     
  • 4.141, Аноним (141), 23:12, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну как же не производят...
    Они дурно влияют на неокрепшие умы
     
  • 2.26, Тот_Самый_Анонимус (?), 14:13, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Либерасты угробят.
    Ведь M:N — это зашифрованное MAN. Это явный сексизм и требуется гендерно-нейстральный термин.
     
     
  • 3.30, анон (?), 14:33, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +29 +/
    >Ведь M:N — это зашифрованное MAN

    Master и Niger, же..

     
     
  • 4.44, Тот_Самый_Анонимус (?), 16:18, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты прав, так намного очевиднее.
     
  • 3.53, Аноним (-), 17:02, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Либерасты угробят.

    Тоталитарные уродц придумали на этот случай отличное решение: нет софта - нет проблем! А если еще инженерию слить до уровня землянок - вообще становится зашибись.

     
     
  • 4.57, Тот_Самый_Анонимус (?), 17:11, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Во бомбит, а. Пока что по очкам либеральные негромакаки уделывают. Иди, попробуй им скажи в лицо что важны все жизни.
     
     
  • 5.124, Аноним (-), 09:07, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Во бомбит, а. Пока что по очкам либеральные негромакаки уделывают. Иди, попробуй
    > им скажи в лицо что важны все жизни.

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

     
     
  • 6.140, Тот_Самый_Анонимус (?), 22:24, 29/07/2020 Скрыто модератором
  • –1 +/
     
     
  • 7.144, Аноним (144), 07:08, 30/07/2020 Скрыто модератором
  • –1 +/
     
  • 2.152, Аноним (152), 12:45, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Интересно кто первый угробит линукс - гугл или микрософт?

    Поттеринг и гномеры.

     

  • 1.2, Аноним (2), 13:04, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    Стараниями таких помощников типа мс и гугля скоро переключение контекста будет происходить через http-запрос к центральному серверу (switchto.googleapis.com)
     
     
  • 2.12, null (??), 13:32, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    https, а не http
     
     
  • 3.61, Повидло19 (?), 17:25, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и выросло поколение, считающее HTTPS отдельным протоколом.
     
     
  • 4.116, Аноним (116), 00:57, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У тебя глюки? Тут никто такого не писал =)
     
  • 2.14, Аноним (14), 13:39, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ыыы, жжошь!
     
  • 2.27, danonimous (?), 14:14, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это будет делать systemd-networkd
     

  • 1.3, Аноним (2), 13:05, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Ценой данного варианта является большое усложнение реализации планировщика потоков в пространстве пользователя и необходимость в механизмах согласования действий с планировщиком ядра.

    Всё начинается как с системд -- сматрите, всё в разы быстрее!!11

     
  • 1.4, m.makhno (ok), 13:11, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1:1 вроде очень лаконичная модель, зачем мудрить?
     
     
  • 2.5, Аноним (5), 13:16, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Затем, что по-настоящему низкоуровневый и важный код пишется не для того чтобы программисты любовались его лаконичностью, а для машины и конечных пользователей. См. последний абзац.
     
     
  • 3.17, m.makhno (ok), 13:51, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    насколько же велики эти накладные расходы по переключению контекста?
     
     
  • 4.20, Аноним (5), 13:57, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Таки может новость прочитаете? Там даже большими графиками нарисовано.
     
     
  • 5.28, annon (?), 14:15, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Такие статья не пишет, как это "добро" отражается в производительности реальных многопоточных алгоритмов и какой она даёт выигрыш.
     
     
  • 6.126, Ordu (ok), 10:06, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Реальные многопоточные приложения очень разные. Нет какой-то одной модели, которая позволит оценить влияние и будет верна для всех. Тебе предлагается думать своей головой: подумать о том, как работает твоё приложение, насколько часто оно переключает контексты, и как оно может выиграть от снижения стоимости переключения на порядок. Вообще, лучше даже не думать, а взять и померять частоту переключений контекстов в своём приложении и посчитать.
     
  • 4.55, Аноним (55), 17:07, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Вы когда-нибудь видели по-настоящему большой виртуализированный астериск 24 ядр... большой текст свёрнут, показать
     
     
  • 5.70, Meme (?), 18:08, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Вы когда-нибудь видели по-настоящему большой виртуализированный астериск?

    Писать программы для виртуальной машины, запихивать все эти программы в разные виртуальные машины... "Ядро виновато, оно медленно всё переключает!".

     
     
  • 6.75, Аноним (55), 18:35, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > "Ядро виновато, оно медленно всё переключает!".

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

     
     
  • 7.92, Аноним (92), 20:30, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Срыв покровов, на голом железе ситуация примерно похожая.

    нет.
    никто не гоняет нагруженные приложения в ритуалках. спросите хотябы у держателей серверов ммо игр.

     
     
  • 8.96, Аноним (55), 20:51, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    во-первых, да такая же, но в разительно меньшей степени во-вторых, вы живете в ... текст свёрнут, показать
     
  • 5.71, anonymous yet another (?), 18:16, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы когда-нибудь видели по-настоящему большой виртуализированный астериск?

    24 ядра, но по 2.4GHz, 32ГБ памяти... что-нибудь в таких размерах да еще и с кучей скриптов и тяжеловесных модулей вроде CEL/CDR кучей ARI-стазисов и еще и внутренних AGI-подпрограмм.

    Мы видели и видим не такую слабенькую технику.

     
     
  • 6.76, Аноним (55), 18:39, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Мы видели и видим не такую слабенькую технику.

    Это комментарий в стиле "у меня болшэ"? Ну ок, чо, держите нас в курсе. Нам всем очень интересно (на самом деле нет). Комментарий был ответом конкретному человеку на конкретный вопрос. Но вот пришел ты, опой нюхаешь цветы.

     
     
  • 7.94, anonymous yet another (?), 20:40, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если вы имели ввиду "есть специфичные системы где очень много процессов (как единиц планирования) и переключений контекстов ядро/пользователь очень много", то

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

    А для совсем сильно спец. задач и кремний спецально под эти задачи есть.

     
     
  • 8.97, Аноним (55), 20:56, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, осталось только вывод сделать из собственного же комментария Ближе к делу ... текст свёрнут, показать
     
  • 5.110, Онаним (?), 23:18, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я сначала хотел откомментировать, но потом понял, что этот бесценный опыт получен не просто так: из всех возможных вариантов решения везде были выбраны ошибочные. А потом героически с результатом этого действа боролись, откуда сий опыт и взят.
     
  • 5.117, Аноним (116), 00:59, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня такой дома стоит
     
     
  • 6.119, Аноним (119), 02:34, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И у меня.
     
  • 5.143, deAdm (?), 02:39, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы когда-нибудь видели по-настоящему большой виртуализированный астериск?
    > 24 ядра, но по 2.4GHz, 32ГБ памяти... что-нибудь в таких размерах да
    > еще и с кучей скриптов и тяжеловесных модулей вроде CEL/CDR кучей
    > ARI-стазисов и еще и внутренних AGI-подпрограмм.

    очень доходчиво.спс
    а с фрисвич практика параллели?

     
  • 3.29, n00by (ok), 14:22, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    При этом fibers из FreeBSD выпилили, в NT их практически никто по назначению не использует, а про thread pool некоторые и не знают.
     
     
  • 4.38, OpenEcho (?), 15:11, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Точнее сказать никто не использует в НТ-е без злого умысла, а вот вирусня помню очень даже активно юзала нитки
     
     
  • 5.41, n00by (ok), 15:43, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Например, волокна (fibers) применяют для реализации сопрограмм. Зловреды именно что нитки (thread) задействуют, инжектируя код в чужое адресное пространство.
     
     
  • 6.118, акуленок я туруруру (?), 01:50, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Фиберы юзали, когда их ав-движки еще толком не разбирали.
    А инжекты в (приостановленные) потоки уже позже появились.
     
     
  • 7.132, n00by (ok), 14:23, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Давайте внесём ясность. Машинный код располагается в ячейках памяти, а те - в адресном пространстве (АП). АП принадлежит объекту "процесс". Сам процесс в NT не исполняется, исполняются его потоки. Зловред копирует свою "полезную" нагрузку в АП браузера и создаёт там новый поток (каким образом -- дело десятое). Это и называется инъекция кода (инжект), соответственно -- в процесс. Это задача "что бы работало". Если перекрыть вектор атаки, отвалится масса г-на.

    А если фиберы применяли для надурить эвристику -- по-моему, эта задача называется "генерация исполняемого мусора"? Если запретить фиберы, зловреды особо не пострадают.

     
     
  • 8.136, акуленок я туруру (?), 18:26, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, опечатался, в приостановленный процесс, но для локальной эскалации CreateRe... текст свёрнут, показать
     
     
  • 9.137, n00by (ok), 19:21, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Там были ещё варианты Вот что пишет специалист, первым разобравший Rustock C ... текст свёрнут, показать
     
  • 4.49, Аноним (51), 16:40, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это хорошо или плохо? Объясните пожалуйста ламеру.
     
     
  • 5.98, anonymous yet another (?), 21:04, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эти категории здесь ни при чём.

    Предложенное не пошло по совокупности факторов: выигрыш на характерных задачах был (если вообще был, мог быть и проигрыш) несущественным, программирование требовало более высокой квалификации/внимания/организации, сопровождение (поиск проблем, воспроизводимость, ...) усложнялось.

    Если про fibers (coroutins там рядом), то программирование в кооперативной многозадачности --- довольно тяжелая вещь. В смысле --- тяжело программировать/отлаживать/сопровождать. Там очень много неявных ограничений на то, как и где этим пользоваться. Компиляторы косяки программирования в этой парадигме почти не ловят. Всё ложится на людишек, а это очень ненадёжный материал.

     

  • 1.6, Нанобот (ok), 13:16, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    теперь линукс перестанет тормозить?
     
     
  • 2.9, Аноним (9), 13:27, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сразу после того как весь софт на M:N потоки перепишут
     
     
  • 3.25, Дегенератор (ok), 14:12, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    конечно же на Расте
     
     
  • 4.37, Аноним (37), 15:04, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это ж гугл. На go.
     
  • 4.153, Аноним (152), 12:55, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На JavaScript!
     
  • 2.10, lockywolf (ok), 13:28, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Будет тормозить в Н раз быстрее.
     

  • 1.15, user90 (?), 13:49, 28/07/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +/
     

     ....ответы скрыты модератором (2)

  • 1.21, VoDA (ok), 14:03, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Основным недостатком модели 1:1 являются большие накладные расходы на переключение контекста между ядром и пространством пользователя.

    А куда уйдут эти расходы при M:N?

    Как компенсируются расходы при переносе клиентского процесса из одного ядра CPU на другое?
    При 1:1 и N:1 поток ядра монопольно использует память.
    M:N будет с разделяемой памятью, что на некоторых нагрузках может тормозить.

    M:N нужен для частных случаев. M:N в user space еще более частный случай.

     
     
  • 2.95, funny.falcon (?), 20:40, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > M:N нужен для частных случаев. M:N в user space еще более частный случай.

    Программисты на Go, имеющие M:N  в user space уже несколько лет, смотрят на тебя с пониманием.

    Хотя, GUI то нормального так и нет. Android, iOS - все побоку.

    Так что да: backend services - это действительно частный случай. Такой маааленький частный случай.

     

  • 1.31, siu77 (ok), 14:40, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    "Возьмем N точек, нет, N мало - возьмем M." (c)
     
  • 1.34, Аноним (34), 14:52, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Расслабьтесь. Этот код уже апробирован в голанге лет пять так что включат в ядро легко
     
  • 1.40, Аноним (40), 15:25, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    M:N же давно показал свою несостоятельность и выпилен отовсюду куда его пытались впилить.
     
     
  • 2.50, Zlo (??), 16:44, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Итак создаем проблемы, добавляя фичу долго и упорно с ними боремся. Удаляем фичу красиво аргументируя графиками и цифрами которые идеально подогнаны на частных случаях. Пол года можно при этом поплевывать в потолок получая деньги.
    PS. Хотя хочется верить что гугл тока веб ломает, а не добрался и до линукса.
     

  • 1.43, Аноним (43), 16:16, 28/07/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –1 +/
     
  • 1.45, Аноним (45), 16:22, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я чего то недопонял. Сначала все хипстеры у гугл в том числе тянули TCP в usermode и продвигали модели разработки свойственные микроядрам. Хвалили виртуальные машины, ядро которых по сути особое приложение. А теперь заявляют, что этот подход медленный и нужно вернуться к монолитам? Что дальше, WebAssembly в ядре вместо процессов, чтобы вообще контекст не переключать?
     
     
  • 2.56, Аноним (56), 17:09, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > WebAssembly в ядре вместо процессов, чтобы вообще контекст не переключать?

    Баян, это кто-то вроде уже даже накодил.

     
  • 2.64, Аноним (42), 17:36, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Сначала все хипстеры у гугл в том числе тянули TCP в usermode
    >Планирование и управление распределением потоков производится целиком в пространстве пользователя

    И продолжают тянуть.

     

  • 1.79, Анончик (?), 19:01, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я конечно все понимаю, но если в гошечке наклепать горутин и запустить все на одном ядре 15% производительности улетают. Вполне возможно что для гугла так лучше но явно это не для всех.
     
  • 1.82, Consta (?), 19:18, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вопрос имею: а вот вынос планировщика в юзерспейс - как оно концептуально с точки зрения безопасности? Какие будут мнения? И должен ли этот планировщик иметь рута или какую то, может, капабилитю будет достаточно?
     
     
  • 2.103, anonymous yet another (?), 21:36, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ничего личного, но это не вопрос, а набор слов из предметной области. На ответ тянула бы серия лекций из области "Теория Операционных Систем".
     
  • 2.133, n00by (ok), 14:31, 29/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ответ прост как 2 копейки: сделайте доброе дело, прекратите шарлатанство и профанацию с этой вашей Розалинукс, пока люди не пострадали.
     
     
  • 3.145, Аноним (144), 07:13, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ответ прост как 2 копейки: сделайте доброе дело, прекратите шарлатанство и профанацию
    > с этой вашей Розалинукс, пока люди не пострадали.

    Смотрите, дети: классический пример нездоровой фиксации и фобий.

     
     
  • 4.147, n00by (ok), 07:39, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это ты тот персонаж, которого ссылка на Пуфлера https://sun9-20.userapi.com/b8qwsxYAWkpKCMqlux_9f-uH0PVRsj1JIcdQxw/5blvmy9m8Bc из Розалинукс бомбанула и вынудила отвечать на все подряд мои комментарии?

    Ничего личного к этим проходимцам в няшных чепчиках, но инфраструктура там слегка, эмм... скомпрометирована https://vk.com/video-33847957_456239489
    Такую систему в просторечии называют "дырявой". Совпадение? Не думаю! (с)

     
  • 2.142, Consta (?), 00:33, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какая то странная реакция.
     
     
  • 3.148, n00by (ok), 07:43, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не знать что-либо -- само по себе не плохо. Но когда неуч начинает продавать свою безграмотность, это не только аморально, но и опасно. Хорошо еще, если твой сайт ООО "НТЦ ИТ РОСА" https://vk.com/video-33847957_456239489 тупо ломанули ботом и за 2 дня до того, как вы узнали об этом из ВК, а не полгода назад, протроянив всех пользователей, включая гос.учреждения.
     
     
  • 4.149, Consta (?), 10:08, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты какой то странный. К доктору ходить не пробовал? У меня нет никаких сайтов. Доброе утро.
     
     
  • 5.154, n00by (ok), 18:28, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажи еще, что никогда в той шаражке не работал, не собеседовал и не трудоустраивал туда бестолочей (кого ты ещё можешь принять с "вопросами" из #82?), не учил г-на Потапова грамотно попрошайничать, создавая так называемое НКО (результаты деятельности которого вы изначально намеревались монетизировать) РОСПО. Напиши, что ты некий левый чел, который пишет с того же ника наивные откорячки с характерной стилистикой.
     
  • 3.157, Ordu (ok), 01:18, 02/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да потому, что вопрос твой -- бред Представь себе программу Программа выполняе... большой текст свёрнут, показать
     
  • 2.146, Аноним (60), 07:18, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ИМХО - никак Это для удобства приложений с кооперативными корутинами или типа... большой текст свёрнут, показать
     
     
  • 3.150, Consta (?), 10:19, 30/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо. Но я бы смотрел чуть по другому. Раз это юзерспейс процесс, то он, по идее, подпадает под лимитирование. И что там будет в случае перегрузки - предсказать сложно.
     

  • 1.83, Аноним (83), 19:28, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Было уже в Linux'е под именем NGPT, забросили где-то в 2003, перенеся в NPTL "лучшие части".

    '''In 2003, IBM released the Next Generation POSIX Threads (NGPT), which offered substantial improvements over LinuxThreads. It improved support for the POSIX standard, and was notable for providing an M:N threading model in which M user-space threads are executed on N kernel threads, as opposed to Linux's traditional 1:1 model.'''

     
  • 1.87, Аноним (-), 19:53, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если речь о том что под Windows называется "нити" ( Fibers ) - то когда-то на Channel9-канале Mark Russinovich (было очень очень давно это) - рассказывал что в отладка ПО с нитями было похоже на АД и не рекомендовал их использовать. Точнее проблему с ними я не помню, но что-то со общими стеками и т.п.
     
     
  • 2.88, Аноним (88), 19:55, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Та нет там никаких проблем особенно если все отлажено и хорошо работает под капотом. А вот разрабтывать всякие языки вроде GOlang так для этого всякие Робы Пайки есть в Гугле =)
     

  • 1.138, Аноним (138), 20:41, 29/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Планировщик должен быть на основе нейросети.
     
     
  • 2.158, ыыы (?), 18:20, 02/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    и блокчейна
     
     
  • 3.159, Аноним (159), 22:14, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    обязательно с шифрованной арифметикой ключом 65536 бит
     

  • 1.139, Аноним (139), 21:09, 29/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Can anything good come out of google?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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