2015-07-17 6 views
0

Я читаю об обмене виртуальной памятью и говорится, что страницы памяти могут быть заменены, когда приложение перестает работать. Я пытался Google, что это значит, но не нашел много продуманной информацию для this StackOverflow ответа, кроме:Что означает, когда приложение простаивает

Вашего приложения WinForms приводится в цикле обработки сообщений, который тянет сообщения из из очереди. Когда эта очередь опустеет, цикл сообщения вводит состояние , эффективно спая, пока в очереди сообщений не появится следующее сообщение. Это помогает сэкономить ресурсы обработки ЦП (циклы, потраченные впустую в цикле, забирают процессорное время от других процессов , работающих на машине, поэтому все становится медленнее), а также помогает снизить потребление энергии/продлить срок службы аккумулятора ноутбука.

Так что приложение перестает работать, когда в очереди сообщений нет сообщений?

+1

Процесс становится «Idle», когда нет события для обработки. Затем ЦПУ выпускается для других процессов, которые ему нужны. ОС является многозадачной, она возвращает контроль над процессом, когда ему необходимо, чтобы процессор учитывал новые события. – Graffito

+1

Похоже, что они говорят в основном то, что когда приложение минимизируется в графическом интерфейсе, теряет фокус или иным образом активно не используется, большая часть этого приложения может быть заменена на диск, чтобы сохранить место в памяти – ControlAltDel

+0

Я думаю, вы должны прочитать о компьютерной архитектуре, чтобы глубоко понять, как работает процессор и память, что на самом деле является виртуальной памятью и т. д. Это немного сложная тема, чтобы объяснить только несколько строк. Я рекомендую взглянуть на «Компьютерную организацию и архитектуру» Уильяма Сталлинга. Каковы были ваши ресурсы по обмену VM? – b10n1k

ответ

5

Операционная система решает, что означает простоя. В общем, это означает, что приложение не активно использует системные ресурсы (например, циклы процессоров, операции ввода-вывода и т. Д.).

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

+0

, так ли это не имеет ничего общего с очередью сообщений? –

+2

Он не имеет ничего общего с очередями сообщений. Вопрос, который вы связали с разговорами о какой-то совершенно другой концепции (событие GUI, запущенное, когда все остальные ожидающие события GUI были обработаны). –