Сколько процессов в памяти в данный момент

Есть ли только один процесс в памяти за раз, и переключатели контекста постоянно перемещают процессы назад и вперед между DRAM на диск? Или несколько процессов хранятся в DRAM одновременно, и переключатели контекста просто меняют, какой процесс выполняет процессор?

Чем это отличается от виртуальной памяти?

3 ответа

Вопрос действительно не имеет никакого смысла.

Информация загружается и хранится в памяти в зависимости от частоты ее использования и решений, принятых менеджером виртуальной памяти. Процессы планируются планировщиком. Один не имеет ничего общего с другим.

В современных операционных системах в памяти хранятся не процессы, а страницы. И если вы представите, например, два процесса, выполняющих один и тот же исполняемый файл, многие страницы будут совместно использоваться и загружаться в память, если это необходимо, когда любой из них обращается к ним.

Части адресных пространств нескольких процессов наверняка могут быть и почти всегда находятся в физической памяти одновременно. Весьма редко встречающиеся члены процесса могут быть резидентами. Это почти так же редко, чтобы никто из них не был резидентом. (На самом деле, в Windows, поскольку каждый процесс несет с собой небольшое количество информации, не доступной для страниц, это невозможно. Не знаю о других ОС, но я ожидаю, что это то же самое.)

Память не выгружается и выгружается из-за поведения планирования - за исключением того, что, конечно, поток, который не работает, не вызывает сбоев страниц; Если все потоки в процессе не запущены, то нет причин для просмотра страниц в любом из его виртуальных адресных пространств.

И наоборот, процесс с большим временем простоя может получить часть своей памяти, извлеченную из своего рабочего набора (и, возможно, хотя и не обязательно, потерянную из ОЗУ) ОС, если существует нехватка ОЗУ и / или высокая частота отказов страниц.

Вы не указали, о какой ОС вы спрашивали. В Windows, диспетчере задач, вкладке "Процессы" (Windows Vista и 7) или вкладке "Сведения" (Windows 8.x), "Память (частный рабочий набор)" покажет вам, сколько ОЗУ находится в рабочем наборе каждого процесса, для приватных процессов. В столбце "Память (совместно используемый рабочий набор)" указывается объем оперативной памяти каждого ws, который также может быть в рабочем наборе других процессов.

Кроме того, в списках измененных и резервных страниц обычно есть несколько страниц, связанных с каждым из многих процессов. Список ожидания является частью того, что Windows сообщает как "Доступно", а измененный список - нет. Они отсутствуют в рабочих наборах каких-либо процессов, но если соответствующие виртуальные страницы повреждены, их можно очень быстро "вставить", не переходя на диск.

Я иногда думал об этом с философской точки зрения, пытаясь применить его к людям, чтобы подумать о нашем опыте какого-то процесса. Я использовал компьютеры в качестве аналога для нас; сознание является продуктом процесса информации, которая исходит из памяти.

Это не помогло мне, но я думаю, что это относится к вашему вопросу, потому что в простом случае ответ будет положительным.

В ядре процессора, если процесс является выполнением процедуры, мы знаем, что процессор обрабатывает данные из своей памяти регистров. Может быть, это все еще не достаточно низко. Идя глубже, к порогу выполнения, где процесс приводит к продукту, мы увидим, что он заканчивается в арифметическом логическом блоке. АЛУ имеет функцию выполнения операции над двумя числами. Поэтому я говорю "да", если наше представление ограничено, в памяти одновременно может быть только один процесс.

Так:

  • Регистры = рабочая память (наш буфер содержит информацию, которую мы скоро получим, как сейчас, через несколько миллисекунд после факта)
  • ALU = конечный порог процесса (последнее, что мы делаем с этой памятью)
  • Продукт / Выход = сознание (результат процесса)

Это не ответ на вопрос, но я надеюсь, что вы подумаете о различных уровнях и типах памяти и вспомните, что в основе всего этого лежит физическая машина. Ответ предполагает, что ALU наконец завершит процесс из двух входов и одного выхода. Современные процессоры, вероятно, слишком сложны для меня, чтобы даже сказать, сколько потенциально конечных, суб-ALU фактически находится в конце блока.

Другие вопросы по тегам