Бесплатные материалы

Оперативная, виртуальная и внешняя память: от железа, дисков и ядра ОС до Go

ИСТОЧНИК:
В этом видео мы разберем устройство памяти от «А» до «Я» — от физических транзисторов в оперативной памяти и устройства магнитных дисков до механизмов виртуальной памяти в ядре ОС и их использования в языке Go.

В этом уроке:

  • Физический уровень: разница между DRAM и SRAM, устройство ячеек памяти и почему оперативную память нужно постоянно «подзаряжать».
  • Виртуальная память: зачем она нужна, как обеспечивается изоляция процессов и почему ваша программа никогда не видит реальные физические адреса.
  • Таблицы страниц (Page Tables): глубокий разбор перехода от одноуровневых к иерархическим таблицам трансляции адресов.
  • Аппаратное ускорение: как работают MMU и TLB-кэши, ускоряя доступ к данным на уровне железа.
  • Механизмы ОС: что такое Lazy Allocation (ленивое выделение памяти), свопинг и магия Memory-mapped файлов (mmap).
  • Продвинутые техники: как Huge Pages помогают базам данных работать быстрее и что такое Tagged Pointers.
  • Внешняя память: сравнение HDD и SSD под капотом — от магнитных головок до транзисторов с плавающим затвором.

В итоге у тебя будет четкое понимание того, как данные путешествуют между диском и процессором: ты узнаешь, что на самом деле происходит при вызове make в Go и как понимание этих основ помогает в оптимизации высоконагруженных систем.

Дополнительные материалы к видео

Исходный код
https://github.com/igoroutine-courses/the_nature_of_computer_science/tree/master/lectures
Latency Numbers Every Programmer Should Know
https://gist.github.com/jboner/2841832
Визуализация IO devices and latency
https://planetscale.com/blog/io-devices-and-latency
System Design