Size: a a a

Compiler Development

2020 January 26

МБ

Михаил Бахтерев in Compiler Development
Berkus Decker
впрочем, вместо споров, пойду дальше писать операционку на rust, а то чо
Я, кстати, смотрел исходники redox. У них нет планировщика даже нормального со сложностью O(1). Перебирают задачи в массивах. Уж не знаю, почему именно так сделано
источник

BD

Berkus Decker in Compiler Development
Михаил Бахтерев
Можно запустить хотя бы в qemu, на сутки без вылетов и зависаний
моя кстати пока не работает, но умеет немношк консольки по сериальнику и мму с графикой
источник

BD

Berkus Decker in Compiler Development
источник

BD

Berkus Decker in Compiler Development
Михаил Бахтерев
Я, кстати, смотрел исходники redox. У них нет планировщика даже нормального со сложностью O(1). Перебирают задачи в массивах. Уж не знаю, почему именно так сделано
наверно не было цели делать планировщик, я читал челов из редокс - они не то чтобы профессиональные разработчики даже
источник

МБ

Михаил Бахтерев in Compiler Development
Berkus Decker
наверно не было цели делать планировщик, я читал челов из редокс - они не то чтобы профессиональные разработчики даже
Планировщик ресурсов в операционке - центральный компонент. Если он следующую задачу выбирает дольше, чем задача работает, ну это такая себе операцинка. А можно ли на Rust написать иначе, я не знаю :( У меня не получилось. Я не особо старался, конечно, но код бы не был таким же простым, как на Си. Это точно
источник

BD

Berkus Decker in Compiler Development
Михаил Бахтерев
Планировщик ресурсов в операционке - центральный компонент. Если он следующую задачу выбирает дольше, чем задача работает, ну это такая себе операцинка. А можно ли на Rust написать иначе, я не знаю :( У меня не получилось. Я не особо старался, конечно, но код бы не был таким же простым, как на Си. Это точно
ну посмотрим, я пока до этого не добрался
источник

А⚙

Антон ⚙️ in Compiler Development
Gymmasssorla
В C#, например
В C# есть, скажем, Task.Run. И это не ключевое слово языка
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
Можно сравнить реализацию L4 на Си и попытку реализации L4 на Rust.
А зачем на Rust писать по подобию C?
источник

А⚙

Антон ⚙️ in Compiler Development
Berkus Decker
вроде да
В личке?
источник

G

Gymmasssorla in Compiler Development
Антон ⚙️
В C# есть, скажем, Task.Run. И это не ключевое слово языка
И можно самому написать асинхронную среду исполнения, оптимизированную под узкий спектр задач?
источник

BD

Berkus Decker in Compiler Development
Михаил Бахтерев
Можно сравнить реализацию L4 на Си и попытку реализации L4 на Rust.
а где была попытка реализации L4 на расте?
источник

BD

Berkus Decker in Compiler Development
я пишу нечто подобное seL4 но без сишных идиом
источник

МБ

Михаил Бахтерев in Compiler Development
Berkus Decker
ну посмотрим, я пока до этого не добрался
Лично я не дотумкал, как сделать нормальные циклические списки задач, как это обычно делают.
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
Лично я не дотумкал, как сделать нормальные циклические списки задач, как это обычно делают.
Гм. И чем циклические списки лучше массивов?
источник

А⚙

Антон ⚙️ in Compiler Development
Gymmasssorla
И можно самому написать асинхронную среду исполнения, оптимизированную под узкий спектр задач?
Угу, спеки .NET-рантайма есть
источник

МБ

Михаил Бахтерев in Compiler Development
Антон ⚙️
Гм. И чем циклические списки лучше массивов?
realloc не надо делать, когда больше задач становится
источник

G

Gymmasssorla in Compiler Development
Антон ⚙️
Угу, спеки .NET-рантайма есть
Это хорошо
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
realloc не надо делать, когда больше задач становится
Я просто не в курсе, насколько часто размер этого списка меняется. Так-то у массивов утилизация кеша лучше
источник

МБ

Михаил Бахтерев in Compiler Development
Антон ⚙️
Я просто не в курсе, насколько часто размер этого списка меняется. Так-то у массивов утилизация кеша лучше
Чем лучше? Вы выбираете следующую задачу и отдаёте ей CPU. Она своими данными забьёт кэш. И как бы часто ни менялось число задач, у юзера и драйверов, вроде как, не должна пропадать реактивность
источник

МБ

Михаил Бахтерев in Compiler Development
У драйверов особенно. Особенно у сетевых
источник