Страницы

Поиск по вопросам

среда, 10 октября 2018 г.

Хорошая книга по работе с памятью в C++

Ищу хорошую книгу или серию статей, которая описала бы различные нюансы работы с памятью в C++ (в каких-то аспектах язык может не иметь значения, но ориентируюсь именно на этот язык программирования). Хотелось бы знать как "под капотом" работает распределение памяти, хранение объектов и данных в памяти.
Описание вопроса довольно расплывчатое. Привожу пример вопросов, который меня интересует:
Когда вызывается new/delete как программа/ОС хранит информацию о выделенные участках памяти. Как виртуальное адресное пространство соотносится с реальным адресным пространством. Что из себя представляет класс в памяти. А если класс наследуется от двух других классов с виртуальными функциями. Exception-ы в конструкторах/деcтрукторах и особенности для многопоточных приложений. Как реализуется Exception на низком уровне. Оптимизация выделения памяти. Собственный аллокатор памяти. Создание/удаление объектов в программе с несколькими модулями.
Возможно эти вопросы будут отражены в разных книгах, буду рад любым. Насчёт специфики ОС и разных компиляторов: интересны любые варианты.


Ответ

Про механизмы распределения памяти, потоки и межпроцессную/межпоточную синхронизацию нужно читать книги об устройстве операционных систем. Можно порекомендовать:
Таненбаум, Бос. Современные операционные системы Дейтел Х.М. Операционные системы. Том 1. Основы и принципы. Таненбаум Э.С., Вудхалл А.С. Операционные системы. Разработка и реализация
Описание реализации принципов работы операционных систем можно почитать в Лав. Ядро Linux: описание процесса разработки и Labrosse. µC/OS-II: The Real-Time Kernel
Об алгоритмах распределения памяти рассказывается также в Ахо, Хопкрофт, Ульман. Структуры данных и алгоритмы
Написание своих распределителей памяти обсуждается в Джосаттис. Стандартная библиотека C++: справочное руководство. Также этот вопрос затронут в Керниган, Ритчи. Язык программирования C
Разработке многопоточных приложений на C++11 посвящена книга Уильямс. Параллельное программирование на С++ в действии
Еще есть книга о "внутреннем устройстве" C++: Lippman, Inside the C++ Object Model. Она довольно старая - возможно там описаны не все интересующие темы.

Комментариев нет:

Отправить комментарий