Вся правда об указателях. Часть 2: Памятная

В первой части мы разобрали основы указателей, определили, что есть указатель и как с ним работать. В настоящей статье мы углубимся в использование указателей, а точнее в то, на что они указывают. Для понимания материала этой статьи важно понимание работы указателей, которая описана в статье предыдущей, поэтому, если вы не читали первой части, и у вас есть проблемы с пониманием того, чем является указатель, или присутствует непонимание арифметики указателей, тогда я рекомендую первую часть к прочтению, до того как приступать к настоящей статье. Хотя данную статью тоже можно пометить как материал для новичков, я всё же полагаю, что и люди с опытом(хотя и небольшим) смогут вынести отсюда что-то для себя. [Ещё]

Барьеры памяти

В предыдущей статье мы рассмотрели простейшую архитектуру современной многопроцессорной системы. Рассматривая оную, мы столкнулись с понятием барьеров памяти, которые в общих чертах и описали. Чего явно недоставало в предыдущей статье, так это подробностей, касательно барьеров памяти. Что за “оптимизирующий сущности”, что на самом деле делает барьер, какие типы барьеров существуют, кроме тех, что были упомянуты? На все эти вопросы настоящая статья и призвана ответить. [Ещё]

Взаимоотношения с памятью. Мультипроцессор

Продолжая тему, начатую в предыдущей статье, в настоящей статье мы рассмотрим взаимодействие уже много-процессорной архитектуры с памятью. Чтобы немного сузить сферу обсуждения, под много-процессорной моделью мы будем понимать несколько ядер(core) на одном кристалле. Таким образом мы не будем рассматривать системы, в которых установлены несколько физических процессоров(ядра тоже есть физические процессоры, просто термины подобраны не очень удачно). о [Ещё]

Взаимоотношения с памятью. Монопроцессор

За последние 10-15 лет в распоряжении программистов появился целый зоопарк различных языков программирования, каждый из которых ввёл целый ворох абстракций. Абстракции помогали писать программы быстрее, в то же время абстракции редко бывают бесплатными, и каждый новый язык накладывал свои расходы на... [Ещё]