-1

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

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

3 ответа3

1

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

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

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

0

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

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

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

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

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

0

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

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

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

Так:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .