2013-07-04 3 views
0

У меня есть несколько вопросов, в том числе один в названии для двух случаев (в DotNet и в целом)является кучей для каждого логического процессора в dotnet?

(1) является кучи для каждого логического процессора (я полагаю да вообще)

(2) адресное пространство для каждого логического процесса (ДА вообще?)

(3) может ли процесс получить доступ к нескольким кучам? (Я думаю, что нет для dotnet и YES в целом, если ДА в целом верна. Почему и когда люди будут это делать?)

(4) является GC на dotnet framework.

Благодаря

ответ

0

Все настольные компьютеры используют архитектуру фон Неймана, что означает, есть общая память для данных и инструкций. Память ОЗУ так

1) является кучи для каждого логического процессора (я полагаю да вообще)

кучного является частью памяти, так что нет, это в целом памяти, а не ЦПУ

(2) является адресным пространством для каждого логического processsor (YES вообще?)

Нет, адресное пространство каждого процесса, как это является доступной памятью для этого прока ess

(3) Может ли процесс получить доступ к нескольким кучам?

Нет, см (1)

(4) является GC в рамках Dotnet.

GC - это всего лишь метод, используемый для автоматического сбора неиспользуемых ссылок. Он также используется в Java

+0

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 в этом искусственном. он говорит: «Для сервера GC есть одна куча для каждого логического процессора». что это значит? –

+0

@hongpei Есть несколько куч, но они ведут себя как одна большая куча. Любой процессор может получить доступ к куче, которая «принадлежит» любому другому процессору. Это позволяет одновременно запускать несколько сборщиков мусора, а также позволяет вашему коду продолжать работать на других потоках, пока сборщик мусора работает в другом потоке. –