есть ли общая куча .net?
Их много. Обычно вас интересуют кучи поколения 0, 1 и 2, куча больших объектов и куча загрузчика. Поколения помогают сделать сборщик мусора более эффективным. LOH используется для объектов, которые слишком велики для перемещения. В куче загрузчика хранятся значения статических переменных.
основано на приложении кучи?
Нет, они основаны на AppDomain. Домены приложений предоставляют дешевую альтернативу процессу.
когда я запускаю приложение, создается новая куча / выделяется память или память из общей кучи .net?
CLR по умолчанию создает основной AppDomain со связанными кучами, прежде чем ваш код начнет работать.
что происходит, когда в куче .net заканчивается исходная память? он запрашивает больше от ОС?
Да.