Я использую утилиту Process Explorer, чтобы посмотреть на использование процессора. Мой процессор работает на <5% по большей части. Но когда я запускаю программу (например, Word, Excel и т.д.), Загрузка ЦП возрастает (по понятным причинам), а затем загрузка ЦП снова снижается до 5-6%. Но когда я закрываю программу, почему загрузка процессора снова увеличивается? (Это возвращается через некоторое время.)
1 ответ
Выбор ответа программы:
Прежде всего, существуют разные способы закрытия программы. Например, рассмотрим Блокнот.
- Если вы запустите Блокнот и сразу же скажете ему закрыть, то он закроется.
- Если вы запустите Блокнот, наберите что-нибудь, сохраните, а затем скажите, что он закроется, он закроется.
- Если вы запустите Блокнот, наберете что-нибудь и скажете, чтобы он закрылся, появится диалоговое окно с вопросом, хотите ли вы сохранить сначала.
- Если вы выберете "Да", Блокнот сохранит файл, а затем закроет.
- Если вы выберете "Нет", "Блокнот" не сохранит файл, а затем "Блокнот" закроется. Если вы не ответите, Блокнот будет ждать ответа.
- Если вы выберете "Отмена", "Блокнот" закроет диалоговое окно, а "Блокнот" останется открытым. Таким образом, Блокнот может отказаться от закрытия, даже если ему сказано закрыть.
Калькулятор (встроенный в Microsoft Windows), однако, просто закроется. Сначала он не будет задавать вопросы.
Таким образом, когда вы говорите программе закрыть или говорите операционной системе закрыть программу, программа может решить ответить на запрос различными способами. Это зависит от программы.
Тем не менее, вы можете принудительно завершить программу. По сути, это просто не дает возможности для закрытия программы. В качестве примера:
-
Запуск
taskkill /fi "imagename eq notepad.exe"
из CMD.EXE (командная строка ) вежливо попросит закрыть все копии Блокнота. -
Запуск
taskkill /f /fi "imagename eq notepad.exe"
из CMD.EXE (командная строка ) принудительно прервет все копии Блокнота
объем памяти
Когда программа запускается или требует больше памяти, она сообщает операционной системе, что ей нужна память. Диспетчер памяти, который является частью операционной системы, заберет часть доступной памяти компьютера и зарезервирует ее для программы.
Когда программа заканчивается, диспетчер памяти должен зарезервировать эту память. Другими словами, диспетчер памяти должен найти маркеры, которые указывают на различные части памяти, и изменить эти маркеры так, чтобы память была помечена как доступная, а не использованная.
Имейте в виду, что часть "памяти" может храниться как "виртуальная память" на диске, а не в ОЗУ. В современных операционных системах компьютер может решить сделать это, даже если программе не хватило доступной оперативной памяти, если компьютер считает, что память, записанная на диск, будет некоторое время неактивна, а доступная оперативная память может быть лучше использована. для какой-то другой цели, например, чтобы помочь кешу диска заставить компьютер работать быстрее.
Как только память этой программы будет освобождена, компьютер может внести дополнительные изменения, чтобы эффективно использовать эту память, помогая программам, которые продолжают работать.
Пример:
Это немного затрагивает тему вежливого закрытия программы. У меня часто бывают десятки и десятки вкладок, открытых в Firefox (часто чуть больше 100 вкладок). Если я вежливо скажу Firefox закрыть себя, то после того, как окно станет невидимым, программа может еще какое-то время работать. Затем, если я попытаюсь запустить Firefox снова, он может сказать, что мне нужно сначала закрыть все другие экземпляры. Я могу зайти в диспетчер задач и посмотреть объем памяти, который использует Firefox, который обычно может превышать гигабайт (для "640 Кбайт должно быть достаточно для всех"), и я могу просто наблюдать за количеством используемой памяти Firefox снижается в довольно устойчивом темпе. Почему-то кажется, что Firefox что-то делает с каждой открытой вкладкой и освобождает требуемую память по частям. Затем, после того, как число приближается к нулю, Firefox внезапно просто полностью исчезает из моего списка запущенных программ. В этот момент я могу снова открыть Firefox. В качестве альтернативы, если я принудительно завершаю Firefox вместо того, чтобы вежливо попросить его закрыть себя, то мне не нужно ждать так долго, прежде чем я смогу с пользой запустить Firefox довольно быстро. Итак, каким-то образом Firefox пытается выполнить некоторую очистку самостоятельно, если ему предоставляется такая возможность.
Другие задачи
Если вы используете Alt- Tab для переключения задач, вы можете увидеть программы, которые работают. Вы также можете просмотреть список процессов (включая "приложения", которые не отображают окна на экране, например "службы"), посмотрев в диспетчере задач или запустив « tasklist
» из командной строки. Очевидно, что операционная система отслеживает программы. Каждая программа имеет PID (номер "идентификатора процесса").
Операционная система должна быть очищена после программы, гарантируя, что после закрытия программы она не появится в списке программ, которые на самом деле запущены.
Если в программе были какие-либо файлы, которые были открыты, дескрипторы файлов должны быть освобождены, чтобы операционная система не думала, что программа все еще использует файл.
Некоторые из этих деталей описывают функции, реализованные в современных версиях Microsoft Windows. Может быть больше задач, которые могут зависеть от операционной системы. (Старые операционные системы, такие как MS-DOS, которые, как правило, не выполняли многозадачный пакет программ (но могли иметь ограниченную многозадачность, позволяющую работать драйверам), могут даже не реализовывать все функции, описанные выше.)
Резюме:
Выше может быть не полный список. Полный список зависит от операционной системы. Тем не менее, это показывает, что операционная система должна активно что-то делать при выходе из программы. Кроме того, программы могут выполнять некоторые действия по своему выбору, и детали этого могут зависеть от того, какую программу вы используете.