0

I have a couple of questions including the one in the title for two cases (in dotnet and in general)

(1) is heap per logical processor (I guess YES in general)

(2) is address space per logical processsor (YES in general?)

(3) can a process get access to more than one heap? (I guess No for dotnet and YES in general. if YES in general is correct. why and when would people do that?)

(4) is GC per dotnet framework.

Thanks

trincot
  • 317,000
  • 35
  • 244
  • 286
hong pei
  • 929
  • 2
  • 13
  • 27

1 Answers1

0

All desktop computers are using Von Neumann architecture, which means there is a common memory for data and instructions. Memory is RAM so

1) is heap per logical processor (I guess YES in general)

Heap is a part of the memory, so no, it's per whole memory, not CPU

(2) is address space per logical processsor (YES in general?)

No, Address Space is per process as it is a memory available to that process

(3) can a process get access to more than one heap?

No, see (1)

(4) is GC per dotnet framework.

GC is just a technique used to auto collect unused references. It's used in Java as well

VladL
  • 12,769
  • 10
  • 63
  • 83
  • http://blogs.msdn.com/b/dotnet/archive/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps.aspx in this artical. it says "For server GC, there’s one heap per logical processor." what does it mean exactly? – hong pei Jul 04 '13 at 21:09
  • @hongpei There are multiple heaps, but they behave like one big heap. Any processor can access the heap that "belongs" to any other processor. This allows multiple garbage collectors to run at the same time, and also allows your code to continue running on other threads while the garbage collector is running on another thread. – John Tseng Jul 04 '13 at 22:29