Как стек JVM, куча и потоки отображаются в физическую память или операционную систему

Книга компиляторов (книга драконов) объясняет, что типы значений создаются в стеке, а ссылочные типы создаются в куче.

Для Java JVM также содержит кучу и стек в области данных времени выполнения. Объекты и массивы создаются в куче, фреймы методов помещаются в стек. Одна куча является общей для всех потоков, в то время как каждый поток имеет свой собственный стек. Следующая диаграмма показывает это:

Больше оОбласти данных Java во время выполнения.

Что я не делаюПонятно, что поскольку JVM по сути является программным обеспечением, как эти куча, стек и потоки JVM отображаются на физическую машину?

Я был бы признателен, если бы кто-то мог сравнить эти концепции между Java и C ++. Потому что Java работает на JVM, а C ++ - нет.

Чтобы уточнить этот вопрос, я хочу знать следующее:

По сравнению с Java, как выглядит область данных C ++ во время выполнения? Картинка была бы полезна, я могуНе могу найти хорошую картинку, подобную изображенной выше.Каким образом куча, стек, регистры и потоки JVM отображаются в операционной системе? или я должен спросить, как они сопоставлены с физической машиной?Правда ли, что каждый поток JVM является просто пользовательским потоком и каким-то образом отображается на kernal? (поток пользователя против потока ядра)

Обновить: Я рисую картинку для физической памяти процесса во время выполнения.

Ответы на вопрос(1)

Ваш ответ на вопрос