2

Мы все знаем, что процессор переключается между процессами, которые он выполняет, но почему мы никогда не прекращаем работу, пока процессор переключается и мы используем приложения?

Я бы сказал, что это из-за высокой скорости переключения между процессами, но мне любопытно, сколько процессов может реально повлиять на производительность ЦП до такой степени, что люди будут испытывать прекращение (или перерывы) в одном приложении и как это проявится в современных операционных системах?

1 ответ1

0

Я бы сказал, что это из-за высокой скорости переключения между процессами

Ты прав. Но все же операции, выполняемые микропроцессором, выполняются дискретно, а не непрерывно. Каждый тактовый цикл заставляет процессор извлекать содержимое памяти, на которое указывает счетчик программ. В следующем тактовом цикле он декодирует инструкцию и так далее. Если вы можете стать достаточно быстрыми (чтобы заметить), вы можете заметить, что музыка, которую вы считаете непрерывной, на самом деле играет некоторое время, затем останавливается, затем воспроизводится снова и так далее.

Быстрый и сложный зверь, который делает процесс быстрого переключения, называется «Краткосрочный планировщик» (CPU scheduler). Он должен быть быстрым, потому что он вызывается каждые несколько миллисекунд и не выполняет никакой полезной работы (с точки зрения пользователя). Хотя разные реализации могут иметь небольшие различия, почти все планировщики поддерживают очереди приоритетов для разных классов процессов, таких как активный, фоновый и т.д.

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

Но мне любопытно, сколько процессов действительно повлияет на производительность процессора до такой степени, что люди будут прекращены

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

Интересный факт: - Чтобы улучшить взаимодействие с пользователем в системе (я забыл), Стив Джобс дал указание инженерам Apple назначить прерывание мыши с наивысшим приоритетом, чтобы указатель не отставал при движении.

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