Давайте рассмотрим как управляют памятью два популярных языка программирования - Rust и Go.
Когда запускается программа, создается процесс с собственным адресным пространством и потоками, выполняющимися на ядрах. Процессор работает с виртуальной памятью - абстракцией, которой управляет операционная система.
Например в Go, когда мы создаем массив:
arr := make([]byte, 100)
Рантайм запрашивает диапазон виртуальных адресов, но физическая память выделяется не сразу, а при первом обращении к данным:
first := arr[0]
Запрашивая первый элемент происходит page faultЧитать полностью »


