К каким социальным проблемам приводит неправильная последовательность глав в учебнике по программированию

Сегодня видел план вводного курса, написанный начинающей американской преподавательницей. План иллюстрирует распостраненную ошибку - неправильный порядок подачи материала:

https://habr.com/ru/articles/1042868/

#RTOS #прерывания #riscv #arm #MMIO #tlb #виртуальная_память #образование #интервью #учебники

К каким социальным проблемам приводит неправильная последовательность глав в учебнике по программированию

Сегодня видел план вводного курса, написанный начинающей американской преподавательницей. План иллюстрирует распостраненную ошибку - неправильный порядок подачи материала: Операционная система. Кэшы и...

Хабр

In Onur Mutlus Vorlesung wurde heute die TLB-Reichweite nicht erwähnt. Angesichts dessen verfehlt Intels TLB-Design den Zweck von Superpages, weil seine TLB-Reichweite in Stein gemeißelt ist. Deswegen ist diese Auslassung so wesentlich.

In Onur Mutlu's lecture today, TLB reach wasn't mentioned. Intel's TLB design defeats the entire point of superpages in light of that because its TLB reach is set in stone, and that's why the omission is so glaring.

#superpages #TLB #Telix

For an RV32IMA core design, I'm considering implementing the Sv32 MMU using a software-managed TLB, as was commonly done on MIPS and Alpha, instead of hardware table walk. This would use custom CSRs.
Are there any existing RISC-V implementations that use software-managed TLB? The RISC-V Privileged spec leaves open the possibility.
#riscv #sv32 #mmu #tlb

Деконструкция GO: CPU, RAM и что там происходит. Оптимизации на CPU. Часть 1.4

Первые великие оптимизаторы появились уже на таком низком уровне, как железо. По факту, задача выжимки ресурсов в программировании есть на любом уровне. В этой статье мы разберем оптимизации на уровне CPU такие как NUMA, prefetch, TLB и alignment. Статья получится немного неоднородной и больше про “высокие материи”, что в принципе намекает на то, что разбор “железной” составляющей скоро подойдет к концу! Вводная Как мы рассматривали некогда ранее обращение на RAM – это достаточно дорого. CPU пытается это “скрыть”, чтобы работа казалась куда более быстрой. Одним из таких механизмов, естественно, является иерархия кэшей! Но вот не возникало ли у вас вообще вопроса – “А почему память – это в принципе проблема? Почему дорого?”. Все очень просто – доступ к памяти медленный Тактовая частота например моего ноута – 2,70 ГГц, то есть 2,7 миллиарда циклов/операций в секунду Доступ к ОЗУ имеет задержку аж в 150–350 циклов! То есть за это время мы могли бы выполнить 200 операций. Такое положение дел нас в современных реалиях не устраивает, поэтому прибегаем к различным оптимизациями. Prefetch В предыдущей серии мы рассматривали модель исполнения процессорных инструкций. Когда инструкции поступают, CPU, а точнее его механизм hardware prefetcher, загружает данные в кэш из предположения, что они скоро понадобятся. На всякий случай зафиксируем:

https://habr.com/ru/articles/1026308/

#go #assembler #numa #tlb #cpu #ram #hardware

Деконструкция GO: CPU, RAM и что там происходит. Оптимизации на CPU. Часть 1.4

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

Хабр
May Lord Hanuman bless you with strength, courage, and unwavering devotion,
Jai Bajrangbali!
#HanumanJayanti #JaiHanuman #Bajrangbali #TopLabsBazaar #TLB
📞 7480080054
🌐 https://zurl.co/qWdgY

100+ Top NABL Labs | 4000+ Tests | Choose from India’s Top 16 Diagnostic Brands 🔥
"Because reports matter..."
#diabetessebachkeboss
On this auspicious occasion of Shree Ram Navami, may Lord Ram bless you with strength, health, and peace. 🙏✨
TopLabs Bazaar wishes you a happy and healthy Ram Navami.

🌐 toplabsbazaar.com
📞 74 800-800 54
#RamNavami2026 #JaiShriRam #IndianFestivals
#TopLabsBazaar #PreventiveHealth #Diagnostics #TLB

Модель инопланетной вражины для мода The Last Bullet на Half-Life.

Геометрия и развёртка сделаны в Blender'е, а раскрашено в Krita.

#thelastbullet #tlb #halflife #goldsrc

Вспомнить всё: как устроены ассоциативные памяти в СнК

Знаете ли вы, что у микропроцессоров существуют памяти, которые могут ответить на вопрос: «А нет ли внутри тебя информации, похожей на вот эту?» То есть они не просто запоминают, что им «скажут», и выдают ранее записанное, но еще и умеют сопоставлять свое содержимое с запросом извне. Как в каждой большой дружеской компании есть товарищ, у которого на любую тему найдется подходящий анекдот или мем.

https://habr.com/ru/companies/yadro/articles/958656/

#микроэлектроника #микропроцессоры #память #схемотехника #SoC #СнК #ассоциативная_память #tlb #компаратор #CAMпамять

Вспомнить всё: как устроены ассоциативные памяти в СнК

Знаете ли вы, что у микропроцессоров существуют памяти, которые могут ответить на вопрос: «А нет ли внутри тебя информации, похожей на вот эту?» То есть они не просто запоминают, что им «скажут», и...

Хабр
Пример типичной системно-прикладной разработки, реализация своей «очереди сообщений» (event loop).
Использованием
#epoll, вместо «традиционных» select & poll, для асинхронной работы через polling’а (и мультиплексирования).

Отслеживание файловых дескрипторов через
#epoll выглядит более современно, меньше копирования памяти между user space и kernel space. А при появлении ожидаемых данных можно напрямую переходить к объекту или структуре данных, что важно при наблюдении за несколькими файлами и\или соединениями. Устраняется поиск «сработавшего» файлового дескриптора в индексных массивах, полноценное О(1) во всех случаях. Можно сразу же работать с теми экземплярами объектов, которые оборачивают тот файл или udp-поток, tcp-, quic-соединение, где появились новые данные.

Есть несколько готовых к использованию «очередей сообщений» (event loop'ов) —
#libev, #libuv, #libevent. Для некоторых агент-серверные решений и брокера #RabbitMQ это подходит. Однако, в некоторых случаях AMQP-библиотеки не скрещиваются с уже готовыми «очередями сообщений». Потому что агентская часть может активно использовать асинхронно-реактивное программирование с хорошей и проверенной «горизонтальной масштабируемостью». Т.е. на агентской части выполняется много работы и реализация сделана через sharing nothing многопоточность. Это такая парадигма, когда не просто достигается не только горизонтальная масштабируемость через lock-free\wait-free, а так же исключается много вредного, как тот же cache ping-pong или false sharing. Внутри агентов идёт своё управление потоками с выделениями памяти. Не только в плане «динамической памяти» (heap, аллокаторы а-ля #jemalloc от #Facebook), но и приколами вокруг pinning страниц, учёта #NUMA и даже huge pages(меньше промахов в #TLB).

Почему бы не использовать epoll?
Библиотека не обязана вычитывает данные целиком из потока (сокета), а может забирает данные лишь до тех пор, пока не насытится автомат состояний (finite-state machine). Например, выполняется парсинг сущностей AMQP-протокола, которые, по мере накопления, передаются в обработчики указанные клиентом библиотеки.
И это плохо соотносится с тем, что используя
#epoll надо выбирать какой вариант оповещений использовать:
• «по уровню» (level-triggered),
• «по фронту» (edge-triggered).

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

Можно быть хоть пять раз technical lead и всё это прекрасно знать, но следует помнить, что как только в коде появляется флаг EPOLLET, то необходимо проводить аудит работы с потоками данных. Это избавляет команду от многих заморочек вокруг тестирования и ковыряния с каким-то совершенно непонятным поведением кода.

Про
«Edge Triggered Vs Level Triggered interrupts»

#programming #linux #softdev #трудовыебудни
Edge Triggered Vs Level Triggered interrupts

Discussion: Level triggered: as long as the IRQ line is asserted, you get an interrupt request. When you serve the interrupt and return, ...