Почему переключение процессов не делает нашу работу с компьютером прерывистой

Почему переключение процессов не делает нашу работу с компьютером прерывистой

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

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

решение1

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

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

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

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

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

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

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

Связанный контент