Я думал, что ядро отвечает за обработку одного потока. Следовательно, что это значит, когда говорят, что процесс занимает 75% ресурсов? Это память? Вычислительная мощность?
3 ответа
Вопрос
Что значит сказать, что процесс использует 75% ресурсов процессора?
Я думал, что ядро отвечает за обработку одного потока. Следовательно, что это значит, когда говорят, что процесс занимает 75% ресурсов? Это память? Вычислительная мощность?
аналогия
Давайте воспользуемся аналогией: представьте, как за столом сидит двусмысленная знаменитость, раздающая автографы.
Технические характеристики
Вот спецификации системы (событие подписи в целом):
Знаменитость (процессор) раздает автографы (выполняет работу).
Есть очередь (очередь) поклонников (процессов), которые подходят и просят его подписать (сделать работу) фотографии, автографы, рубашки, тела и т.д. (Память, файлы и т.д.)
Знаменитость имеет и может писать обеими руками (ядрами).
Некоторые фанаты являются VIP-персонами (с более высоким приоритетом), поэтому им приходится идти вперед в очереди и дольше оставаться за столом.
Некоторые являются обычными поклонниками, которые стоят в очереди для себя (однопоточные), в то время как некоторые являются «опытными пользователями», такими как менеджеры, и другими деловыми людьми (многопоточными), у которых есть несколько помощников (потоков), стоящих в русле рекламных материалов, так что они можно сделать больше за один раз (пусть он подпишет обе руки вместо одной).
Менеджер знаменитости (планировщик) стоит рядом со столом и решает, когда знаменитость потратила достаточно времени на поклонника и должна перейти к следующему.
Перестановки
Теперь давайте рассмотрим различные виды сценариев, которые могут возникнуть.
Загрузка процессора и температура
Высокое использование
Если линия короткая, то он работает с низкой скоростью (низкая загрузка ЦП%) и не нагревается, потому что не движется с максимальной скоростью.
Низкое использование
Если линия становится длинной, он должен подписывать вещи быстрее, до максимальной скорости, на которую он способен, чтобы не отставать (высокая загрузка ЦП) и нагревается от дополнительной работы.
Многопоточность
Однопоточных
Если нормальный поклонник подходит к столу, он использует одну из своих рук, чтобы подписать фотографию для поклонника, и поклонник уходит. Если поклонник хочет больше автографов, он пытается приспособиться, но если линия слишком длинная, он приносит свои извинения, и поклонник должен идти в конец очереди и ждать другого поворота.
Многопоточная
Если опытный пользователь подходит к столу, это та же самая ситуация, что и с обычным вентилятором, но поскольку он использует обе руки для подписи, он может сделать больше, прежде чем отправить делового человека на задний план линия.
приоритет
Нормальный
Если к подписанию приходит нормальный фанат, он должен встать в очередь и дождаться своей очереди.
Высоко
Если VIP прибывает на подписание, им разрешают опередить обычных поклонников и подождать ближе к столу среди других VIP. Они могут также оставаться за столом дольше, когда они туда доберутся.
Низкий
Если «человек с низким рейтингом / приоритет» (помощник знаменитости? работник? техник?) прибывает на подписание, они должны встать в очередь, но позволяют обычным поклонникам опередить их, когда они прибудут. Они также должны быть срочно отправлены в конец очереди, чтобы люди с более высоким приоритетом могли получить свои автографы.
заявка
Итак, что же происходит в данном сценарии процесса, использующего 75% ЦП?
Хорошо, представьте, что менеджер по маркетингу из студии знаменитости прибывает на подпись с двумя помощниками, чтобы получить целую кучу фотографий с автографом, которые будут разданы на рекламном мероприятии. Исполнительный орган является многопоточным и высокоприоритетным.
Линия не слишком длинная, поэтому знаменитость не торопится и небрежно подписывает.
Руководитель отправляет двух помощников в очередь, где они режут вперед, и быстро достигают стола. Они складывают стопку фотографий на стол, и знаменитость сразу же начинает подписывать обеими руками.
Он увеличивает свою скорость подписи, чтобы выполнить большое количество важной работы, которую необходимо выполнить, но, поскольку очередь не слишком длинная, он развивает только 75% физических способностей (его максимальная скорость).
Помощники остаются за столом довольно долгое время, потому что они важны, но в конце концов менеджер говорит им, чтобы они вернулись в очередь, чтобы некоторые другие поклонники, которые ждали некоторое время, получили ход.
Это верно, что одно ядро может обрабатывать только одну задачу, эта задача - ваша операционная система. Он занимает весь процессор, все ядра, но на самом деле не использует всю свою мощность. Это неиспользованное время распределяется по дочерним процессам операционных систем.
Здесь в игру вступает нечто, называемое планировщиком, существуют разные подходы к тому, как планировщик делит вычислительную мощность для разных запущенных процессов.
Для начала рассмотрим 100% CPU, который будет разделен на несколько одинаково больших временных интервалов. Теперь планировщик назначает каждому процессу один или несколько из тех срезов, в которых он обрабатывается.
Сколько срезов получает каждая задача, зависит от того, насколько фактически использовалась задача последнего среза и насколько она должна быть реактивной. Если у вас более одного ядра, каждое ядро получает свой собственный набор временных интервалов для распределения по различным процессам. Это называется Round Robin Scheduling (один из самых простых планировщиков).
В действительности это намного сложнее, потому что процессы должны реагировать на события в реальном времени, такие как нажатие клавиатуры (аппаратные прерывания) или программные сбои (программные прерывания). Но в основном это то, как это работает и как измеряется процент времени.
Это относится к количеству процессорного времени, которое занимает ваш процесс. Многозадачность достигается путем переключения контекста с такой высокой скоростью, что пользователь чувствует, что несколько программ работают одновременно. Теперь для переключения контекста есть несколько алогритов, которые определяют, сколько процессорного времени выделяется конкретному процессу. Уделите процессу слишком мало времени, и издержки на переключение контекста значительно возрастут, что приведет к снижению производительности компьютера. Большой интервал времени означает, что одно приложение использует много процессорного времени, в то время как другие будут отставать и не отвечать. % Используемых ресурсов - это количество процессорного времени.