Как процесс может получить много циклов ЦП?

Я заметил, что медиа-проигрыватель VLC иногда загружал до 98% ЦП при преобразовании файлов из MP4 в MP3. Насколько я понимаю, ОС пытается сбалансировать время, которое получает каждый процесс, поэтому это привлекло мое внимание. У меня такое ощущение, что такие программы, как дефрагментатор диска и антивирус, могут также потребовать таких процессорных циклов. Как это достигается в коде (C, C ++)?

-1

Решение

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

Интеллектуальный планировщик вместо этого будет использовать доступные ЦП, в то же время реагируя на такие вещи с более высоким приоритетом, как ввод данных пользователем и аппаратные события. Поток nicelyvealves также отзовет свой временной интервал до своей квоты процессора, если больше нет работы (например, блокировка для события), в противном случае по истечении срока планировщик может взять на себя процессор (preempt) и дать другому потоку возможность выполнить ,

Вы можете установить приоритет потока как подсказку для планировщика, что может повлиять на взять на себя условие, но все зависит от планировщика и внутренних компонентов ОС.

Проще говоря, вам не нужно делать какие-то особые вещи, чтобы использовать ядро ​​процессора, если у вас интенсивные вычисления, ОС даст вам больше всего.

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector