8 (495) 988-61-60

Без выходных
Пн-Вск с 9-00 до 21-00

Натяжной ролик грм


Ролик грм ваз в Москве

1

Цену уточняйте

Шпилька М10х40 ролика натяж.ремня ГРМ ВАЗ-2108 2108-1006129

Доставка из г. Люберцы

87% из 99

Дешевый натяжной ролик ГРМ, найдите предложения по натяжному ролику на сайте Alibaba.com

Натяжной ролик ремня ГРМ F608ZZ Фланцевый шарикоподшипник

11,50 долларов США / лот

Натяжной ролик ремня ГРМ F688ZZ Фланцевый шарикоподшипник

долларов США / лот Tim

F605ZZ Фланцевый шарикоподшипник

11,00 долларов США / много

Натяжной шкив ремня ГРМ F624Z Фланцевый шарикоподшипник

10,00 долларов США / лот

Натяжной ролик ремня ГРМ F625ZZ Фланцевый шарикоподшипник

11 долларов США.00 / lot

Ford Dual Idler Noisey Timing Gear Drive Set

50.00

RobotDigg Алюминиевый беззубый натяжной шкив ремня ГРМ (тип холостого шкива с 20 зубьями) Натяжной шкив 4 мм для 3D-принтера Ширина 6 мм Ремень ГРМ Упаковка из 2 шт.

14,25 8.59

BALITENSEN 5Pcs Беззубик GT2 16 зубьев Гладкий натяжной шкив диаметром 3 мм для 3D-принтера Шкив ГРМ шириной 6 мм

8.98

ПОДЛИННЫЙ SUBARU TIMING BELT IDLER ШКИВ - 13073AA142

582 GENUINE GENUINE SUBARU 142

66.68

Надоело искать поставщиков? Попробуйте запрос предложений!

Запрос коммерческого предложения

  • Получите расценки по индивидуальным запросам
  • Позвольте подходящим поставщикам найти вас
  • Заключите сделку одним щелчком мыши

Настройка обработки апелляций

  • 1000 фабрик могут предложить вам предложение
  • Более быстрый ответ
  • 100% гарантия доставки

ACDelco 24436052 GM Оригинальное оборудование, натяжной шкив ремня ГРМ

43.78

ReliaBot 5PCs Алюминиевый натяжной шкив 2GT 20 зубьев с двойными шарикоподшипниками Диаметр 5 мм для 3D-принтера Ширина 6 мм Ремень привода ГРМ 2GT и шкив привода ГРМ с 20 зубьями

8,59

ACDelco TCK304 Профессиональный комплект зубчатого ремня с натяжным роликом и натяжным роликом

135,78

BEMONOC 2Pcs HTD 3M Шаг натяжного ролика с 22 зубьями 3 мм подходит для ремня ГРМ 3M Ширина 15 мм Отверстие подшипника 6 мм для лазерного гравера Cnc

17,88

Mazda Miata 90-93 1.6L натяжной ролик натяжителя ремня ГРМ Уплотнения водяного насоса Ki

US $ 81,95

Zomiee 5PCS GT2 20T 5 мм Алюминиевый беззубый ремень ГРМ Натяжной шкив для 3D-принтера Ширина 6 мм Ремень ГРМ

7,99

CHANGe GTTA2 Натяжной шкив для 3D-принтера Шкив привода ГРМ шириной 6 мм (упаковка из 5 шт.)

8,99

Gates T42170 Натяжной ролик

18,22

uxcell Алюминий 3 м 20T 4 мм расточка без зубьев Зубчатый ремень промежуточного шкива Фланец синхронного колеса

2 6.69

Beracah 3 мм Диаметр 6 мм Ширина 20 тонн Алюминиевый беззубый натяжной шкив ремня ГРМ для 3D-принтера Ремень привода ГРМ 5Pack

8,99

uxcell Алюминий 3 м 20 зуба 3 мм Беззубик 3 мм Ременный шкив Фланец синхронного колеса для ремня ГРМ 10 мм

8,10002

uxcell Алюминий 3 м, 20 зуб. Диаметр 6 мм, беззубый шкив ремня ГРМ Фланец натяжного шкива Синхронное колесо для зубчатого ремня 15 мм

8,15

Zomiee 5PCS GT2 20 зубьев 3 мм Алюминиевый шкив ремня ГРМ шириной

для 3D-принтера Ширина

6 мм .99

Sunhokey 2шт GT2 Диаметр 5 мм Черный алюминиевый беззубый ремень ГРМ Натяжной шкив для 3D-принтера Ширина 6 мм Ремень ГРМ

6,0

Beracah GT2 Диаметр 3 мм Диаметр 6 мм Ширина 20 т Алюминиевый беззубый ремень ГРМ Натяжной шкив для 3D-принтера Ремень ГРМ

8,99

Beracah GT2 Диаметр 3 мм Ширина 6 мм 16 зубьев Алюминиевый беззубый ремень привода ГРМ Натяжной шкив для 3D-принтера Ремень привода ГРМ 5 упак.

8,99

HONG111 9 шт. GT2 Диаметр 5 мм Алюминиевый беззубый ремень привода ГРМ для 3D-принтера Ширина

Ширина

для 3D-принтера .99

BIQU GT2 Алюминиевый беззубый ремень привода ГРМ с отверстием 5 мм Натяжной шкив для 3D-принтера Ширина ремня 6 мм (упаковка из 5 шт.)

8.99

Вас также может заинтересовать:

IDLER

US $ 50-1000 / Acre (Цена FOB)

.

CPU Idle Time Management - Документация ядра Linux

 Copyright (c) Корпорация Intel, 2018, Рафаэль Высоцкий  

Концепции

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

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

Управление временем простоя ЦП - это функция энергоэффективности, связанная с использованием состояние простоя процессоров для этой цели.

Логические процессоры

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

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

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

Наконец, каждое ядро ​​многоядерного процессора может следовать за более чем одним программа в том же временном интервале (то есть каждое ядро ​​может получать инструкции из разных мест в памяти и выполнять их одновременно кадра, но не обязательно полностью параллельно друг другу).В этом случае ядра представляются программному обеспечению как «пакеты», каждый из которых состоит из несколько отдельных одноядерных «процессоров», называемых аппаратных потоков (или гиперпотоки специально на оборудовании Intel), каждый из которых может следовать одному последовательность инструкций. Затем аппаратные потоки - это процессоры из простоя процессора. перспектива управления временем, и если процессору предлагается перейти в состояние ожидания одним из них, аппаратный поток (или ЦП), который запросил его, останавливается, но больше ничего не происходит, если все остальные аппаратные потоки в том же core также попросили процессор перейти в состояние ожидания.В этой ситуации сердечник может быть переведен в состояние ожидания индивидуально или более крупный блок, содержащий он может быть переведен в состояние ожидания в целом (если другие ядра в пределах более крупный агрегат уже находится в режиме ожидания).

Простаивающие процессоры

Логические ЦП, далее называемые просто «ЦП», считаются простаивает ядром Linux, когда на них нет задач, кроме специальная «неработающая» задача.

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

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

Специальная «простаивающая» задача становится работоспособной, если нет других выполняемых задач. назначается данному ЦП, и тогда ЦП считается бездействующим.Другими словами, в простаивающих процессорах Linux выполняется код задачи «простоя», называемый , цикл простоя . Который код может привести к тому, что процессор будет переведен в одно из его состояний ожидания, если они поддерживается, в целях экономии энергии, но если процессор не поддерживает состояния ожидания, или недостаточно времени, чтобы провести в состоянии ожидания до следующее событие пробуждения, или существуют строгие ограничения задержки, предотвращающие любое из доступных состояний простоя от использования, ЦП просто выполнит более или менее бесполезные инструкции в цикле, пока ему не будет назначена новая задача для выполнения.

Цикл холостого хода

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

Роль губернатора - найти состояние простоя, наиболее подходящее для условия под рукой. Для этого в режиме ожидания указывается, что оборудование можно запрошенные для входа логическими процессорами представлены абстрактным образом, независимо от платформа или архитектура процессора и организованы в одномерном (линейный) массив. Этот массив должен быть подготовлен и предоставлен CPUIdle драйвер, соответствующий платформе, на которой работает ядро ​​при инициализации время. Это позволяет регуляторам CPUIdle быть независимыми от базовых оборудования и для работы с любыми платформами, на которых может работать ядро ​​Linux.

Каждое состояние ожидания, присутствующее в этом массиве, характеризуется двумя параметрами, которые должны быть с учетом губернатора, целевой резидентности и (наихудший случай) задержка на выходе . Целевая резидентность - это минимальное время, в течение которого оборудование должно провести в данном состоянии, включая время, необходимое для входа в него (которое может быть существенный), чтобы сэкономить больше энергии, чем можно было бы сэкономить, введя один из вместо этого более мелкие состояния простоя. [«Глубина» простоя примерно соответствует мощности, потребляемой процессором в этом состоянии.] Выход задержка, в свою очередь, - это максимальное время, в течение которого ЦП запрашивает у процессора оборудование для перехода в состояние ожидания, чтобы начать выполнение первой инструкции после пробуждение из этого состояния. Обратите внимание, что в целом задержка на выходе также должна охватывать время, необходимое для входа в данное состояние в случае, если пробуждение происходит, когда аппаратное обеспечение входит в него, и он должен быть введен полностью, чтобы выйти в упорядоченным образом.

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

Доступны два регулятора CPUIdle , меню и лестничная диаграмма .Который из них используется в зависимости от конфигурации ядра и, в частности, от может ли галочка планировщика быть остановлена ​​бездействием петля. Можно изменить губернатор во время выполнения если параметр cpuidle_sysfs_switch командной строки был передан в ядро, но в целом это небезопасно, поэтому его не следует делать на производстве системы (хотя это может измениться в будущем). Имя CPUIdle губернатор, используемый в настоящее время ядром, можно прочитать из current_governor_ro (или current_governor , если cpuidle_sysfs_switch присутствует в командной строке ядра) файл под / sys / devices / system / cpu / cpuidle / в sysfs .

С другой стороны, какой драйвер CPUIdle используется, обычно зависит от платформа, на которой работает ядро, но есть платформы с более чем одним соответствующий драйвер. Например, есть два драйвера, которые могут работать с большинство платформ Intel, intel_idle и acpi_idle , одна с жестко закодированная информация о состояниях простоя, и другой может прочитать эту информацию из системных таблиц ACPI соответственно. Тем не менее, даже в этих случаях драйвер, выбранный во время инициализации системы, не может быть заменен позже, поэтому решение о том, какой из них использовать, необходимо принять заранее (на платформах Intel драйвер acpi_idle будет использоваться, если intel_idle отключен для некоторых причина или если он не распознает процессор).Имя CPUIdle драйвер, используемый в настоящее время ядром, можно прочитать из current_driver файл в / sys / devices / system / cpu / cpuidle / в sysfs .

Простаивающие процессоры и отметка планировщика

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

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

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

Имеет ли смысл останавливать отметку планировщика в цикле ожидания зависит от того, чего ожидает губернатор.Во-первых, если есть другой (не тиковый) таймер из-за срабатывания в пределах тикового диапазона, четко останавливая тик было бы пустой тратой времени, даже если аппаратное обеспечение таймера не обязательно перепрограммирован в таком случае. Во-вторых, если губернатор ожидает отсутствия таймера пробуждение в пределах диапазона тиков, останавливать тик не нужно, и это может даже быть вредным. А именно, в этом случае губернатор выберет состояние простоя с целевое место проживания в течение времени до ожидаемого пробуждения, так что это состояние будет относительно неглубоким.Губернатор действительно не может выбрать глубокий холостой ход заявить тогда, поскольку это противоречило бы его собственным ожиданиям короткого пробуждения приказ. Теперь, если пробуждение действительно происходит в ближайшее время, остановка тика будет пустая трата времени, и в этом случае потребуется перепрограммировать аппаратное обеспечение таймера, что дорого. С другой стороны, если галочка остановлена ​​и пробуждение не происходит в ближайшее время, аппаратное обеспечение может проводить неопределенное количество времени в мелком простое, выбранном губернатором, что будет пустой тратой энергия.Следовательно, если губернатор ожидает пробуждения любого рода в пределах тиковый диапазон, лучше разрешить тиковый триггер. Однако в противном случае Губернатор выберет относительно глубокое состояние простоя, поэтому галочку следует остановить чтобы он не разбудил процессор слишком рано.

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

Ядро можно настроить так, чтобы отключить остановку тика планировщика в режиме ожидания петля вообще. Это можно сделать через его конфигурацию во время сборки. (отключив параметр конфигурации CONFIG_NO_HZ_IDLE ) или передав nohz = off на него в командной строке. В обоих случаях при остановке галочка планировщика отключена, решения губернатора по этому поводу просто игнорируется кодом цикла ожидания, и тик никогда не останавливается.

Системы, в которых работают ядра, настроенные так, чтобы разрешить отметку планировщика остановленные в режиме ожидания ЦП называются системами без тиков , и они обычно считается более энергоэффективным, чем системы с ядрами в который галочку нельзя остановить.Если данная система не имеет тиков, она будет использовать меню губернатор по умолчанию, и если он не отключен, по умолчанию CPUIdle Governor на нем будет Ladder .

Представление состояний простоя

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

Например, возьмем процессор с двумя ядрами в более крупном блоке, называемом «модуль» и предположим, что запрос оборудования для перехода в определенное состояние ожидания (скажем «X») на уровне «ядра» одним ядром запустит модуль, чтобы попытаться войти в определенное собственное состояние ожидания (скажем, «MX»), если другое ядро ​​находится в режиме ожидания отметьте «X» уже.Другими словами, запрос состояния простоя «X» на «ядре» уровень дает оборудованию лицензию на переход в состояние простоя «MX» на Уровень «модуля», но нет гарантии, что это произойдет (ядро запрос состояния простоя «X» может просто оказаться в этом состоянии вместо этого). Затем целевая резидентность объекта struct cpuidle_state , представляющего состояние простоя «X» должно отражать минимальное время нахождения в состоянии ожидания «MX» модуль (включая время, необходимое для его ввода), потому что это минимум время простоя ЦП для экономии энергии на случай, если оборудование это состояние.Аналогично, параметр задержки на выходе этого объекта должен охватывать время выхода из состояния простоя «MX» модуля (и обычно время его входа), потому что это максимальная задержка между сигналом пробуждения и временем, когда процессор начнет выполнять первую новую инструкцию (при условии, что оба ядра в модуль всегда будет готов выполнить инструкции, как только модуль становится работоспособным в целом).

Существуют процессоры без прямой координации между разными уровнями однако иерархия единиц внутри них.В тех случаях просят простоя состояние на уровне «ядра» не влияет автоматически на уровень «модуль», поскольку например, никак и CPUIdle и драйвер отвечает за всю обработка иерархии. Тогда определение объектов состояния простоя: полностью зависит от драйвера, но все же физические свойства состояния простоя что аппаратное обеспечение процессора, наконец, должно всегда соответствовать параметрам используется губернатором для выбора состояния простоя (например, фактический выход задержка этого состояния ожидания не должна превышать параметр задержки выхода объект состояния простоя, выбранный губернатором).

В дополнение к параметрам состояния ожидания целевой резидентности и задержки выхода обсуждалось выше, каждый из объектов, представляющих состояния ожидания, содержит несколько других параметры, описывающие состояние ожидания и указатель на функцию, в которой запускается чтобы попросить оборудование войти в это состояние. Также для каждого struct cpuidle_state объект, есть соответствующий struct cpuidle_state_usage одна, содержащая использование статистика данного состояния простоя. Эта информация предоставляется ядром через sysfs .

Для каждого ЦП в системе существует / sys / devices / system / cpu / cpuidle / каталог в sysfs , где номер назначается данному CPU во время инициализации. Этот каталог содержит набор подкаталогов вызывается состояние0 , состояние1 и так далее, вплоть до количества состояния ожидания объекты, определенные для данного ЦП минус один. Каждый из этих каталогов соответствует одному объекту состояния простоя, и чем больше число в его имени, тем глубже представленное им (эффективное) состояние простоя.Каждый из них содержит количество файлов (атрибутов), представляющих свойства состояния ожидания соответствующий ему объект, а именно:

выше
Общее количество запросов об этом состоянии ожидания, но наблюдаемая продолжительность простоя, безусловно, была слишком короткой, чтобы соответствовать заданной резидентство.
ниже
Общее количество запросов об этом состоянии простоя, но верно более глубокое состояние простоя было бы лучше для наблюдаемого простоя продолжительность.
desc
Описание простоя.
отключить
Отключено это состояние ожидания.
задержка
Задержка выхода из состояния ожидания в микросекундах.
наименование
Имя состояния ожидания.
мощность
Мощность, потребляемая оборудованием в этом состоянии ожидания в милливаттах (если указано, 0 в противном случае).
место жительства
Целевое время простоя в микросекундах.
время
Общее время, проведенное в этом состоянии ожидания данным ЦП (измеренное ядро) в микросекундах.
использование
Общее количество запросов к оборудованию от данного ЦП. войдите в это состояние ожидания.

Файлы desc и name содержат строки. Различия между ними заключается в том, что название должно быть более лаконичным, а описание может быть длиннее и содержать пробелы или специальные символы.Остальные файлы, перечисленные выше, содержат целые числа.

Атрибут disable - единственный доступный для записи. Если он содержит 1, данное состояние простоя отключено для этого конкретного процессора, что означает, что губернатор никогда не выберет его для этого конкретного процессора и CPUIdle в результате драйвер никогда не попросит оборудование ввести его для этого процессора. Однако отключение состояния простоя для одного процессора не предотвращает его запрашивается другими процессорами, поэтому он должен быть отключен для всех, чтобы ни один из них никогда не попросит об этом.[Обратите внимание, что из-за способа лестницы реализован губернатор, отключение состояния ожидания не позволяет этому губернатору выбор любых состояний ожидания, более глубоких, чем отключенное]

Если атрибут disable содержит 0, данное состояние простоя разрешено для этот конкретный процессор, но он все еще может быть отключен для некоторых или всех других ЦП в системе одновременно. Запись в него 1 вызывает состояние ожидания быть отключенным для этого конкретного процессора, и запись в него 0 позволяет губернатору учтите, что данный процессор и драйвер запрашивают его, если это состояние не было отключено глобально в драйвере (в этом случае он не может использоваться вообще).

Атрибут power определен не очень хорошо, особенно для состояния простоя объекты, представляющие комбинации состояний бездействия на разных уровнях иерархия блоков в процессоре, и, как правило, трудно добиться простоя числа состояния для сложного оборудования, поэтому power часто содержит 0 (не доступно), и если он содержит ненулевое число, это число может быть не очень точен, и на него не следует полагаться ни в чем значимом.

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

Управление питанием Качество обслуживания для ЦП

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

Управление временем простоя ЦП может быть затронуто PM QoS двумя способами, через глобальное ограничение в классе PM_QOS_CPU_DMA_LATENCY и через возобновить ограничения задержки для отдельных ЦП.Код ядра (например, устройство драйверы) можно настроить оба с помощью специальных внутренних интерфейсов обеспечивается структурой PM QoS. Пользовательское пространство может изменить первое, открыв файл специального устройства cpu_dma_latency под / dev / и запись двоичное значение (интерпретируемое как 32-разрядное целое число со знаком) к нему. В свою очередь, ограничение задержки возобновления для ЦП может быть изменено пространством пользователя, написав строка (представляющая 32-битное целое число со знаком) в power / pm_qos_resume_latency_us файл в / sys / devices / system / cpu / cpu / в sysfs , где номер процессора назначается во время инициализации системы.Отрицательные значения будет отклонено в обоих случаях, а также в обоих случаях записанное целое число number будет интерпретироваться как запрошенное ограничение QoS PM в микросекундах.

Запрошенное значение не применяется автоматически как новое ограничение, однако, поскольку он может быть менее строгим (в данном конкретном случае более значительным), чем другой ограничение, ранее запрошенное кем-то другим. По этой причине PM QoS framework поддерживает список запросов, которые были сделаны до сих пор в каждом глобального класса и для каждого устройства объединяет их и применяет эффективные (минимальное в данном конкретном случае) значение в качестве нового ограничения.

Фактически, открытие файла специального устройства cpu_dma_latency вызывает новый Запрос PM QoS будет создан и добавлен в список приоритетов запросов в PM_QOS_CPU_DMA_LATENCY класс и дескриптор файла, поступающий из Операция «открыть» представляет этот запрос. Если этот файловый дескриптор тогда используется для записи, записанный в него номер будет связан с PM QoS запрос, представленный им как новое запрошенное значение ограничения. Далее механизм списка приоритетов будет использоваться для определения нового действующего значения весь список запросов и это эффективное значение будет установлено как новое ограничение.Таким образом, установка нового запрошенного значения ограничения изменит только реальное ограничение, если оно влияет на действующее значение «списка». В частности, для класса PM_QOS_CPU_DMA_LATENCY это влияет на реальное ограничение, только если это минимум запрошенных ограничений в списке. Процесс проведения дескриптор файла, полученный при открытии специального устройства cpu_dma_latency файл управляет запросом PM QoS, связанным с этим файловым дескриптором, но он управляет только этим конкретным запросом QoS PM.

Закрытие специального файла устройства cpu_dma_latency или, точнее, файла дескриптор файла, полученный при его открытии, вызывает запрос PM QoS, связанный с с этим файловым дескриптором, который нужно удалить из PM_QOS_CPU_DMA_LATENCY список приоритетов класса и уничтожен. Если это произойдет, механизм списка приоритетов снова будет использоваться для определения нового действующего значения для всего списка и это значение станет новым реальным ограничением.

В свою очередь, для каждого ЦП существует только один запрос QoS PM с задержкой возобновления связанный с файлом power / pm_qos_resume_latency_us в / sys / devices / system / cpu / cpu / в sysfs и запись в него вызывает этот единственный запрос QoS PM должен обновляться независимо от того, какое пространство пользователя процесс делает это.Другими словами, этот запрос PM QoS используется всем пользовательское пространство, поэтому доступ к связанному с ним файлу должен быть разрешен чтобы избежать путаницы. [Возможно, единственное законное использование этого механизма в практика заключается в том, чтобы привязать процесс к рассматриваемому процессору и позволить ему использовать sysfs интерфейс для управления ограничением задержки возобновления для него.] Это все же только просьба, однако. Он входит в список приоритетов, используемых для определить эффективное значение, которое будет установлено в качестве ограничения задержки возобновления для Под вопросом CPU каждый раз, когда список запросов так или иначе обновляется (в этом списке могут быть другие запросы, исходящие из кода ядра).

Ожидается, что регуляторы времени простоя ЦП

будут учитывать минимум глобального эффективное ограничение класса PM_QOS_CPU_DMA_LATENCY и эффективное ограничение задержки возобновления для данного ЦП в качестве верхнего предела для выхода время ожидания состояний простоя, которые они могут выбрать для этого ЦП. Они никогда не должны выберите любые состояния ожидания с задержкой выхода за пределами этого предела.

Управление состояниями простоя через командную строку ядра

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

Параметр cpuidle.off = 1 командной строки ядра может использоваться для отключения Управление временем простоя ЦП целиком. Это не мешает холостому циклу работает на простаивающих ЦП, но предотвращает регуляторы времени простоя ЦП и драйверы от призыва. Если он добавлен в командную строку ядра, цикл ожидания попросит оборудование перейти в состояние ожидания на простаивающих процессорах через архитектуру процессора код поддержки, который, как ожидается, предоставит механизм по умолчанию для этой цели. Этот механизм по умолчанию обычно является наименьшим общим знаменателем для всех процессоры, реализующие архитектуру (т.е.е. Набор инструкций процессора), о котором идет речь, однако, поэтому он довольно грубый и не очень энергоэффективный. Именно по этой причине, не рекомендуется для промышленного использования.

Переключатель командной строки ядра cpuidle.governor = разрешает CPUIdle губернатор использовать подлежит уточнению. Он должен быть добавлен с соответствием строки имя доступного регулятора (например, cpuidle.governor = menu ) и что губернатор будет использоваться вместо стандартного. Можно заставить меню регулятор, который будет использоваться в системах, использующих лестничный регулятор по умолчанию так, например.

Другие параметры командной строки ядра, управляющие управлением временем простоя процессора. описанные ниже актуальны только для архитектуры x86 и некоторых из они влияют только на процессоры Intel.

Код поддержки архитектуры x86 распознает три командной строки ядра параметры, связанные с управлением временем простоя ЦП: idle = poll , idle = halt , и idle = nomwait . Первые два из них отключают acpi_idle и intel_idle драйверов в целом, что фактически приводит к CPUIdle Подсистема должна быть отключена и заставляет цикл простоя вызывать код поддержки архитектуры для работы с простаивающими процессорами.Как это происходит, зависит от какой из двух параметров добавляется в командную строку ядра. в idle = остановка случай, код поддержки архитектуры будет использовать HLT инструкция ЦП (которая, как правило, приостанавливает выполнение программы и заставляет оборудование пытаться войти в самое мелкое доступное состояние ожидания) для этой цели, и если используется idle = poll , простаивающие процессоры выполнят более или менее легковесная '' последовательность инструкций в замкнутом цикле.[Запись что использование `ʻidle = poll '' во многих случаях несколько радикально, поскольку предотвращает простоя ЦП от экономии почти любой энергии может быть не единственным результатом этого. Например, на оборудовании Intel он эффективно предотвращает использование ЦП P-состояния (см. Масштабирование производительности ЦП), которые требуют, чтобы любое количество ЦП в пакете было простаивает, поэтому это может повредить производительности однопоточных вычислений, а также энергоэффективность. Таким образом, использование его по соображениям производительности может быть не очень хорошей идеей. вообще.]

Параметр idle = nomwait отключает драйвер intel_idle и вызывает acpi_idle , который будет использоваться (если вся необходимая ему информация в таблицах ACPI системы), но не разрешается использовать MWAIT инструкция ЦП, чтобы запросить переход оборудования в состояние ожидания.

В дополнение к параметрам командной строки ядра на уровне архитектуры, влияющим на ЦП управление временем простоя, есть параметры, влияющие на индивидуальный CPUIdle драйверы, которые можно передать им через командную строку ядра. В частности, параметры intel_idle.max_cstate = и processor.max_cstate = , где - индекс состояния простоя, также используемый в имени данного каталог состояния в sysfs (см. Представление состояний простоя), вызывает intel_idle и acpi_idle , соответственно, чтобы отказаться от всех состояние простоя более глубокое, чем состояние ожидания .В таком случае они никогда не спросят для любого из этих незанятых состояний или выставить их губернатору. [Поведение два драйвера отличаются для , равного 0 . Добавление intel_idle.max_cstate = 0 в командной строке ядра отключает intel_idle и позволяет использовать acpi_idle , тогда как processor.max_cstate = 0 эквивалентно processor.max_cstate = 1 . Кроме того, драйвер acpi_idle является частью модуля ядра процессора , который может быть загружен отдельно и max_cstate = может быть передан ему как модуль параметр, когда он загружен.]

.

CPU Idle Time Management - Документация ядра Linux

Концепции

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

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

Управление временем простоя ЦП - это функция энергоэффективности, связанная с использованием состояние простоя процессоров для этой цели.

Логические процессоры

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

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

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

Наконец, каждое ядро ​​многоядерного процессора может следовать за более чем одним программа в том же временном интервале (то есть каждое ядро ​​может получать инструкции из разных мест в памяти и выполнять их одновременно кадра, но не обязательно полностью параллельно друг другу).В этом случае ядра представляются программному обеспечению как «пакеты», каждый из которых состоит из несколько отдельных одноядерных «процессоров», называемых аппаратных потоков (или гиперпотоки специально на оборудовании Intel), каждый из которых может следовать одному последовательность инструкций. Затем аппаратные потоки - это процессоры из простоя процессора. перспектива управления временем, и если процессору предлагается перейти в состояние ожидания одним из них, аппаратный поток (или ЦП), который запросил его, останавливается, но больше ничего не происходит, если все остальные аппаратные потоки в том же core также попросили процессор перейти в состояние ожидания.В этой ситуации сердечник может быть переведен в состояние ожидания индивидуально или более крупный блок, содержащий он может быть переведен в состояние ожидания в целом (если другие ядра в пределах более крупный агрегат уже находится в режиме ожидания).

Простаивающие ЦП

Логические ЦП, далее называемые просто «ЦП», считаются простаивает ядром Linux, когда на них нет задач, кроме специальная «неработающая» задача.

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

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

Специальная «простаивающая» задача становится работоспособной, если нет других выполняемых задач. назначается данному ЦП, и тогда ЦП считается бездействующим.Другими словами, в простаивающих процессорах Linux выполняется код задачи «простоя», называемой , цикл простоя . Который код может привести к тому, что процессор будет переведен в одно из его состояний ожидания, если они поддерживается, в целях экономии энергии, но если процессор не поддерживает состояния ожидания, или недостаточно времени, чтобы провести в состоянии ожидания до следующее событие пробуждения, или существуют строгие ограничения задержки, предотвращающие любое из доступных состояний простоя от использования, ЦП просто выполнит более или менее бесполезные инструкции в цикле, пока ему не будет назначена новая задача для выполнения.

Цикл холостого хода

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

Роль губернатора - найти состояние простоя, наиболее подходящее для условия под рукой. Для этого в режиме ожидания указывается, что оборудование можно запрошенные для входа логическими процессорами представлены абстрактным образом, независимо от платформа или архитектура процессора и организованы в одномерном (линейный) массив. Этот массив должен быть подготовлен и предоставлен CPUIdle драйвер, соответствующий платформе, на которой работает ядро ​​при инициализации время. Это позволяет регуляторам CPUIdle быть независимыми от базовых оборудования и для работы с любыми платформами, на которых может работать ядро ​​Linux.

Каждое состояние ожидания, присутствующее в этом массиве, характеризуется двумя параметрами, которые должны быть принимается во внимание губернатором, целевая резидентность и (наихудший случай) задержка на выходе . Целевая резидентность - это минимальное время, в течение которого оборудование должно провести в данном состоянии, включая время, необходимое для входа в него (которое может быть существенный), чтобы сэкономить больше энергии, чем можно было бы сэкономить, введя один из вместо этого более мелкие состояния простоя. [«Глубина» простоя примерно соответствует мощности, потребляемой процессором в этом состоянии.] Выход задержка, в свою очередь, - это максимальное время, в течение которого ЦП запрашивает у процессора оборудование для перехода в состояние ожидания, чтобы начать выполнение первой инструкции после пробуждение из этого состояния. Обратите внимание, что в целом задержка на выходе также должна охватывать время, необходимое для входа в данное состояние в случае, если пробуждение происходит, когда аппаратное обеспечение входит в него, и он должен быть введен полностью, чтобы выйти в упорядоченным образом.

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

Доступны четыре регулятора CPUIdle , меню , TEO, Лестница и остановка .Какой из них используется по умолчанию, зависит от конфигурация ядра и, в частности, от того, стоит ли планировщик тик может быть остановлен циклом простоя. Доступный губернаторы можно прочитать из available_governors , а губернатор можно изменить во время выполнения. Название процессора CPUIdle в настоящее время используется ядром, можно прочитать из current_governor_ro или current_governor файл в / sys / devices / system / cpu / cpuidle / в sysfs .

С другой стороны, какой драйвер CPUIdle используется, обычно зависит от платформа, на которой работает ядро, но есть платформы с более чем одним соответствующий драйвер. Например, есть два драйвера, которые могут работать с большинство платформ Intel, intel_idle и acpi_idle , одна с жестко закодированная информация о состояниях простоя, и другой может прочитать эту информацию из системных таблиц ACPI соответственно. Тем не менее, даже в этих случаях драйвер, выбранный во время инициализации системы, не может быть заменен позже, поэтому решение о том, какой из них использовать, необходимо принять заранее (на платформах Intel драйвер acpi_idle будет использоваться, если intel_idle отключен для некоторых причина или если он не распознает процессор).Имя CPUIdle драйвер, используемый в настоящее время ядром, можно прочитать из current_driver файл в / sys / devices / system / cpu / cpuidle / в sysfs .

Простаивающие процессоры и отметка планировщика

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

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

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

Имеет ли смысл останавливать отметку планировщика в цикле ожидания зависит от того, чего ожидает губернатор.Во-первых, если есть другой (не тиковый) таймер из-за срабатывания в пределах тикового диапазона, четко останавливая тик было бы пустой тратой времени, даже если аппаратное обеспечение таймера не обязательно перепрограммирован в таком случае. Во-вторых, если губернатор ожидает отсутствия таймера пробуждение в пределах диапазона тиков, останавливать тик не нужно, и это может даже быть вредным. А именно, в этом случае губернатор выберет состояние простоя с целевое место проживания в течение времени до ожидаемого пробуждения, так что это состояние будет относительно неглубоким.Губернатор действительно не может выбрать глубокий холостой ход заявить тогда, поскольку это противоречило бы его собственным ожиданиям короткого пробуждения приказ. Теперь, если пробуждение действительно происходит в ближайшее время, остановка тика будет пустая трата времени, и в этом случае потребуется перепрограммировать аппаратное обеспечение таймера, что дорого. С другой стороны, если галочка остановлена ​​и пробуждение не происходит в ближайшее время, аппаратное обеспечение может проводить неопределенное количество времени в мелком простое, выбранном губернатором, что будет пустой тратой энергия.Следовательно, если губернатор ожидает пробуждения любого рода в пределах тиковый диапазон, лучше разрешить тиковый триггер. Однако в противном случае Губернатор выберет относительно глубокое состояние простоя, поэтому галочку следует остановить чтобы он не разбудил процессор слишком рано.

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

Ядро можно настроить так, чтобы отключить остановку тика планировщика в режиме ожидания петля вообще. Это можно сделать через его конфигурацию во время сборки. (отключив параметр конфигурации CONFIG_NO_HZ_IDLE ) или передав nohz = off на него в командной строке. В обоих случаях при остановке галочка планировщика отключена, решения губернатора по этому поводу просто игнорируется кодом цикла ожидания, и тик никогда не останавливается.

Системы, в которых выполняются ядра, настроенные так, чтобы разрешить отметку планировщика остановленные в режиме ожидания ЦП называются системами без тиков , и они обычно считается более энергоэффективным, чем системы с ядрами в который галочку нельзя остановить.Если данная система не имеет тиков, она будет использовать меню губернатор по умолчанию, и если он не без галочки, по умолчанию CPUIdle Governor на нем будет Ladder .

Регулятор, ориентированный на таймер (TEO)

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

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

Как и в случае с корпусом регулятора меню , первым шагом является получение продолжительность сна , то есть время до ближайшего события таймера с предположение, что тик планировщика будет остановлен (это также верхняя граница время до следующего пробуждения процессора). Это значение затем используется для предварительного выбора состояние ожидания на основе трех показателей, поддерживаемых для каждого предоставленного состояния ожидания драйвером CPUIdle : попадает в , пропускает и Early_hits .

совпадений и пропусков Метрики измеряют вероятность того, что данный состояние будет «соответствовать» наблюдаемой (после пробуждения) продолжительности простоя, если оно «совпадает» с продолжительность сна. Оба они каждый раз разрушаются (после пробуждения процессора). целевая резидентность соответствующего им состояния ожидания меньше или равна продолжительности сна, а целевая длительность следующего состояния ожидания равна больше, чем продолжительность сна (то есть, когда состояние ожидания, соответствующее они «соответствуют» продолжительности сна). достигает метрики увеличивается, если первое условие выполнено и целевая резидентность данного состояния простоя меньше или равно наблюдаемой продолжительности простоя и целевой резидентности следующее состояние ожидания больше, чем наблюдаемая продолжительность простоя в то же время (то есть, он увеличивается, когда данное состояние ожидания «совпадает» с продолжительность и наблюдаемая продолжительность простоя). В свою очередь, пропускает метрику . увеличивается, когда данное состояние ожидания «совпадает» только с продолжительностью сна и наблюдаемая продолжительность простоя слишком мала для целевой резидентности.

Метрика early_hits измеряет вероятность того, что данное состояние простоя будет «Совпадать» с наблюдаемой продолжительностью простоя (после пробуждения), если она не «совпадает» с продолжительность сна. Он уменьшается при каждом пробуждении процессора и увеличивается. когда соответствующее ему состояние ожидания «совпадает» с наблюдаемым (после пробуждения) продолжительность простоя и целевая длительность следующего состояния ожидания меньше или равна продолжительности сна (т.е. состояние ожидания, «соответствующее» длине сна, равно глубже данного).

Регулятор просматривает список состояний простоя, предоставленный драйвером CPUIdle и находит последний (самый глубокий) с целевой резидентностью меньше или равной к продолжительности сна. Затем достигает , а пропускает метрик этого простоя. состояния сравниваются друг с другом, и оно предварительно выбирается, если попадает в , больше (что означает, что это состояние простоя, вероятно, "соответствует" наблюдаемому продолжительность после пробуждения процессора). Если пропускает больше, губернатор предварительно выбирает более мелкое состояние простоя с максимальной метрикой Early_hits (или если есть несколько более мелких состояний простоя с равным early_hits метрика, которая также является максимальной, будет предварительно выбран самый мелкий из них).[Если существует ограничение задержки пробуждения, исходящее от структуры PM QoS, которое достигается до достижения самого глубокого состояния ожидания с целевая резидентность в пределах продолжительности сна, самое глубокое состояние простоя с выходом задержка в пределах ограничения предварительно выбрана без обращения к совпадениям , не попадает в метрики и раннее_ достигает ]

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

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

Представление состояний простоя

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

Например, возьмем процессор с двумя ядрами в более крупном блоке, называемом «модуль» и предположим, что запрос оборудования для перехода в определенное состояние ожидания (скажем «X») на уровне «ядра» одним ядром запустит модуль, чтобы попытаться войти в определенное собственное состояние ожидания (скажем, «MX»), если другое ядро ​​находится в режиме ожидания отметьте «X» уже.Другими словами, запрос состояния простоя «X» на «ядре» уровень дает оборудованию лицензию на переход в состояние простоя «MX» на Уровень «модуля», но нет гарантии, что это произойдет (ядро запрос состояния простоя «X» может просто оказаться в этом состоянии вместо этого). Затем целевая резидентность объекта struct cpuidle_state , представляющего состояние простоя «X» должно отражать минимальное время нахождения в состоянии ожидания «MX» модуль (включая время, необходимое для его ввода), потому что это минимум время простоя ЦП для экономии энергии на случай, если оборудование это состояние.Аналогично, параметр задержки на выходе этого объекта должен охватывать время выхода из состояния простоя «MX» модуля (и обычно время его входа), потому что это максимальная задержка между сигналом пробуждения и временем, когда процессор начнет выполнять первую новую инструкцию (при условии, что оба ядра в модуль всегда будет готов выполнить инструкции, как только модуль становится работоспособным в целом).

Существуют процессоры без прямой координации между разными уровнями однако иерархия единиц внутри них.В тех случаях просят простоя состояние на уровне «ядра» не влияет автоматически на уровень «модуль», поскольку Например, никак и CPUIdle и драйвер отвечает за всю обработка иерархии. Тогда определение объектов состояния простоя: полностью зависит от драйвера, но все же физические свойства состояния простоя что аппаратное обеспечение процессора, наконец, должно всегда соответствовать параметрам используется губернатором для выбора состояния простоя (например, фактический выход задержка этого состояния ожидания не должна превышать параметр задержки выхода объект состояния простоя, выбранный губернатором).

В дополнение к параметрам состояния ожидания целевой резидентности и задержки выхода обсуждалось выше, каждый из объектов, представляющих состояния ожидания, содержит несколько других параметры, описывающие состояние ожидания и указатель на функцию, в которой запускается чтобы попросить оборудование войти в это состояние. Также для каждого struct cpuidle_state объект, есть соответствующий struct cpuidle_state_usage один, содержащий использование статистика данного состояния простоя. Эта информация предоставляется ядром через sysfs .

Для каждого ЦП в системе существует / sys / devices / system / cpu / cpuidle / каталог в sysfs , где номер назначается данному CPU во время инициализации. Этот каталог содержит набор подкаталогов вызывается state0 , state1 и так далее, вплоть до количества состояния ожидания объекты, определенные для данного ЦП минус один. Каждый из этих каталогов соответствует одному объекту состояния простоя, и чем больше число в его имени, тем глубже представленное им (эффективное) состояние простоя.Каждый из них содержит количество файлов (атрибутов), представляющих свойства состояния ожидания соответствующий ему объект, а именно:

выше
Общее количество запросов об этом состоянии ожидания, но наблюдаемая продолжительность простоя, безусловно, была слишком короткой, чтобы соответствовать заданной резидентство.
ниже
Общее количество запросов об этом состоянии простоя, но верно более глубокое состояние простоя было бы лучше для наблюдаемого простоя продолжительность.
desc
Описание состояния ожидания.
отключить
Отключено или нет это состояние ожидания.
default_status
Состояние этого состояния по умолчанию: «включено» или «отключено».
задержка
Задержка выхода из состояния ожидания в микросекундах.
наименование
Имя состояния ожидания.
мощность
Мощность, потребляемая оборудованием в этом состоянии ожидания в милливаттах (если указано, 0 в противном случае).
резиденция
Целевое время простоя в микросекундах.
время
Общее время, проведенное в этом состоянии ожидания данным ЦП (измеренное ядро) в микросекундах.
использование
Общее количество запросов к оборудованию от данного ЦП. войдите в это состояние ожидания.

Файлы desc и name содержат строки. Различия между ними заключается в том, что название должно быть более лаконичным, а описание может быть длиннее и содержать пробелы или специальные символы.Остальные файлы, перечисленные выше, содержат целые числа.

Атрибут disable - единственный доступный для записи. Если он содержит 1, данное состояние простоя отключено для этого конкретного процессора, что означает, что губернатор никогда не выберет его для этого конкретного процессора и CPUIdle в результате драйвер никогда не попросит оборудование ввести его для этого процессора. Однако отключение состояния простоя для одного процессора не предотвращает его запрашивается другими процессорами, поэтому он должен быть отключен для всех, чтобы ни один из них никогда не попросит об этом.[Обратите внимание, что из-за способа лестницы реализован губернатор, отключение состояния ожидания не позволяет этому губернатору выбор любых состояний ожидания более глубоких, чем отключенное]

Если атрибут disable содержит 0, данное состояние ожидания разрешено для этот конкретный процессор, но он все еще может быть отключен для некоторых или всех других ЦП в системе одновременно. Запись в него 1 вызывает состояние ожидания быть отключенным для этого конкретного процессора, и запись в него 0 позволяет губернатору учтите, что данный процессор и драйвер запрашивают его, если это состояние не было отключено глобально в драйвере (в этом случае он не может использоваться вообще).

Атрибут power определен не очень хорошо, особенно для состояния простоя объекты, представляющие комбинации состояний бездействия на разных уровнях иерархия блоков в процессоре, и, как правило, трудно добиться простоя государственные числа мощности для сложного оборудования, поэтому power часто содержит 0 (не доступно), и если он содержит ненулевое число, это число может быть не очень точен, и на него не следует полагаться ни в чем значимом.

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

Управление питанием Качество обслуживания для процессоров

Фреймворк качества обслуживания (PM QoS) управления питанием в ядре Linux позволяет коду ядра и процессам пользовательского пространства устанавливать ограничения на различные энергоэффективные функции ядра для предотвращения падения производительности ниже необходимого уровня.

Управление временем простоя ЦП может быть затронуто PM QoS двумя способами, через глобальный предел задержки ЦП и ограничения задержки возобновления для отдельные процессоры.Код ядра (например, драйверы устройств) может установить их оба с помощью с помощью специальных внутренних интерфейсов, предоставляемых структурой PM QoS. Пользователь пространство может изменить первое, открыв специальный cpu_dma_latency файл устройства под / dev / и записать двоичное значение (интерпретируемое как 32-битное целое число со знаком) к нему. В свою очередь, ограничение задержки возобновления для ЦП можно изменить из пользовательского пространства, написав строку (представляющую подписанный 32-битное целое число) в файл power / pm_qos_resume_latency_us в / sys / devices / system / cpu / cpu / в sysfs , где номер процессора выделяется во время инициализации системы.Отрицательные значения будет отклонено в обоих случаях, а также в обоих случаях записанное целое число number будет интерпретироваться как запрошенное ограничение QoS PM в микросекундах.

Запрошенное значение не применяется автоматически как новое ограничение, однако, поскольку он может быть менее строгим (в данном конкретном случае более значительным), чем другой ограничение, ранее запрошенное кем-то другим. По этой причине PM QoS framework поддерживает список запросов, которые были сделаны до сих пор для глобальный предел задержки ЦП и для каждого отдельного ЦП их агрегирует и применяет эффективное (в данном конкретном случае минимальное) значение в качестве нового ограничение.

Фактически, открытие файла специального устройства cpu_dma_latency вызывает новый Запрос PM QoS должен быть создан и добавлен в глобальный список приоритетов задержки ЦП ограничить запросы и файловый дескриптор, исходящий из операции «открыть» представляет этот запрос. Если этот файловый дескриптор затем используется для записи, записанный в него номер будет связан с запросом QoS PM, представленным это новое запрошенное предельное значение. Далее механизм списка приоритетов будет используется для определения нового действующего значения всего списка запросов и это эффективное значение будет установлено как новый предел задержки ЦП.Таким образом, запрашивая новое предельное значение изменит реальный предел только в том случае, если действующее значение «списка» равно на него влияет, что имеет место, если это минимальное из запрошенных значений в списке.

Процесс, содержащий дескриптор файла, полученный при открытии cpu_dma_latency специальный файл устройства управляет запросом PM QoS связанный с этим файловым дескриптором, но он управляет этим конкретным PM QoS только запрос.

Закрытие файла специального устройства cpu_dma_latency или, точнее, файла дескриптор файла, полученный при его открытии, вызывает запрос PM QoS, связанный с с этим файловым дескриптором, который будет удален из списка глобального приоритета CPU запросы ограничения задержки и уничтожены.Если это произойдет, список приоритетов будет использоваться снова, чтобы определить новое эффективное значение для всего list, и это значение станет новым пределом.

В свою очередь, для каждого ЦП существует один запрос QoS PM с задержкой возобновления, связанный с файл power / pm_qos_resume_latency_us в / sys / devices / system / cpu / cpu / в sysfs и запись в него вызывает этот единственный запрос QoS PM должен обновляться независимо от того, какое пространство пользователя процесс делает это.Другими словами, этот запрос PM QoS используется всем пользовательское пространство, поэтому доступ к связанному с ним файлу должен быть разрешен чтобы избежать путаницы. [Возможно, единственное законное использование этого механизма в практика заключается в том, чтобы привязать процесс к рассматриваемому процессору и позволить ему использовать sysfs интерфейс для управления ограничением задержки возобновления для него.] Это все же только просьба. Это запись в списке приоритетов, используемая для определить эффективное значение, которое будет установлено в качестве ограничения задержки возобновления для Под вопросом CPU каждый раз, когда список запросов так или иначе обновляется (в этом списке могут быть другие запросы, исходящие из кода ядра).

Ожидается, что регуляторы времени простоя ЦП

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

Управление состояниями простоя через командную строку ядра

В дополнение к интерфейсу sysfs , разрешающему отдельные состояния ожидания отключен для отдельных процессоров, есть ядро параметры командной строки, влияющие на управление временем простоя ЦП.

Параметр командной строки ядра cpuidle.off = 1 может использоваться для отключения Управление временем простоя ЦП целиком. Это не мешает холостому циклу работает на простаивающих ЦП, но предотвращает регуляторы времени простоя ЦП и драйверы от призыва. Если он добавлен в командную строку ядра, цикл ожидания попросит оборудование перейти в состояние ожидания на простаивающих процессорах через архитектуру процессора код поддержки, который, как ожидается, предоставит механизм по умолчанию для этой цели. Этот механизм по умолчанию обычно является наименьшим общим знаменателем для всех процессоры, реализующие архитектуру (т.е.е. Набор инструкций процессора), о котором идет речь, однако, поэтому он довольно грубый и не очень энергоэффективный. Именно по этой причине, не рекомендуется для промышленного использования.

Переключатель командной строки ядра cpuidle.governor = разрешает CPUIdle губернатор использовать подлежит уточнению. Он должен быть добавлен с соответствием строки имя доступного регулятора (например, cpuidle.governor = menu ) и что губернатор будет использоваться вместо стандартного. Можно заставить меню регулятор для использования в системах, использующих лестничный регулятор по умолчанию так, например.

Другие параметры командной строки ядра, управляющие управлением временем простоя процессора. описанные ниже актуальны только для архитектуры x86 и некоторых из они влияют только на процессоры Intel.

Код поддержки архитектуры x86 распознает три командной строки ядра параметры, связанные с управлением временем простоя процессора: idle = опрос , idle = остановка , и idle = nomwait . Первые два из них отключают acpi_idle и intel_idle драйверов в целом, что фактически приводит к CPUIdle Подсистема должна быть отключена и заставляет цикл простоя вызывать код поддержки архитектуры для работы с простаивающими процессорами.Как это происходит, зависит от какой из двух параметров добавляется в командную строку ядра. в idle = остановить случай , код поддержки архитектуры будет использовать HLT инструкция ЦП (которая, как правило, приостанавливает выполнение программы и заставляет оборудование пытаться войти в самое мелкое доступное состояние ожидания) для этой цели, и если используется idle = poll , простаивающие процессоры выполнят более-менее «легковесная» последовательность инструкций в замкнутом цикле.[Запись что использование idle = poll во многих случаях несколько радикально, так как предотвращает простоя ЦП от экономии почти любой энергии может быть не единственным результатом этого. Например, на оборудовании Intel он эффективно предотвращает использование ЦП P-состояния (см. Масштабирование производительности ЦП), которые требуют, чтобы любое количество ЦП в пакете было простаивает, поэтому это может повредить производительности однопоточных вычислений, а также энергоэффективность. Таким образом, использование его по соображениям производительности может быть не очень хорошей идеей. вообще.]

Параметр idle = nomwait отключает драйвер intel_idle и вызывает acpi_idle (если вся необходимая ему информация в таблицах ACPI системы), но не разрешается использовать MWAIT Инструкция процессоров, чтобы запросить переход оборудования в состояние ожидания.

В дополнение к параметрам командной строки ядра на уровне архитектуры, влияющим на ЦП управление временем простоя, есть параметры, влияющие на индивидуальный CPUIdle драйверы, которые можно передать им через командную строку ядра.В частности, параметры intel_idle.max_cstate = и processor.max_cstate = , где - это индекс состояния простоя, также используемый в имени данного каталог состояния в sysfs (см. Представление состояний простоя), вызывает intel_idle и acpi_idle , соответственно, чтобы отказаться от всех состояние простоя более глубокое, чем состояние ожидания . В таком случае они никогда не спросят для любого из этих незанятых состояний или выставить их губернатору.[Поведение два драйвера отличаются для , равного 0 . Добавление intel_idle.max_cstate = 0 в командной строке ядра отключает intel_idle и позволяет использовать acpi_idle , тогда как processor.max_cstate = 0 эквивалентно processor.max_cstate = 1 . Кроме того, драйвер acpi_idle является частью модуля ядра процессора , который может быть загружен отдельно и max_cstate = может быть передан ему как модуль параметр, когда он загружен.]

.

Обнаружение простоя, Помидор и напоминания - Справка Clockify

Отслеживайте время с большей точностью, чтобы иметь более точное представление о том, как вы на самом деле проводите время, с помощью обнаружения простоя, pomodoro, автоматического входа / выхода и напоминаний. Вы можете включить их в: «Настройки» (настольное приложение Mac) / «Настройки» (расширение Chrome / Firefox).

Не видите уведомления? #

Если вы не видите уведомления о времени простоя, напоминания или Pomodoro, вам нужно разрешить браузеру отправлять уведомления.

Для включения уведомлений в Windows:

  1. Перейдите в «Уведомления и действия»,
  2. Включите «Получать уведомления от приложений и отправителей»,
  3. Убедитесь, что ваш браузер (Chrome или Firefox) в списке приложений также установлен на ВКЛ.
  4. Включите уведомления от Clockify в Chrome

Обнаружение простоя #

Вы не отошли от компьютера, но забыли остановить таймер? Clockify может определить, если вы случайно оставили таймер включенным, когда вы уходите со своего рабочего места, и позволяет удалить время простоя, чтобы ваши табели оставались точными.

Как работает обнаружение простоя #

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

Вы можете выбрать:

  • Сбросить время простоя - Таймер будет остановлен, и обнаруженное время простоя будет удалено из его общего количества.
  • Отменить и продолжить - Текущий таймер будет остановлен, обнаруженное время простоя будет удалено из общего количества, и немедленно запустится новый таймер для того же действия.
  • Сохранять время простоя - Таймер будет продолжать работать как есть. Чтобы не было простоя в расширении Chrome, просто закройте или закройте уведомление.

Что будет отброшено : если вы были активны в течение 1 часа, неактивны в течение 30 минут, а время простоя срабатывает через 15 минут, Clockify отбрасывает 30 минут (время, необходимое для срабатывания времени простоя и время после этого) , оставляя вас с 1-часовой записью.

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

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

Как настроить обнаружение простоя на:

Помидор #

Если вы используете расширение для браузера Clockify, вы можете настроить уведомления, чтобы вы знали, когда пора сделать небольшой перерыв с таймером Pomodoro.

Когда вы закончите перерыв, вы можете выбрать, продолжить ли последнюю запись или начать новую.

Также есть возможность установить Long Break , где вы можете просто выбрать после того, сколько коротких перерывов вы сделаете более длительный перерыв, чтобы помочь восстановиться после интенсивных серийных сессий.

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

Если вы не хотите запускать / останавливать таймер, вы можете сделать это автоматически по окончании периода Помидора или перерыва.

Итак, когда время истечет, вы просто получите небольшую всплывающую подсказку, уведомляющую о том, что пора сделать перерыв или вернуться к работе, а Clockify сделает все остальное.

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

Отключите / включите звук уведомлений в Windows, выбрав «Настройки»> «Система»> «Уведомления и действия», затем щелкните значок «Google Chrome» (примечание: этот переключатель все еще должен быть установлен в положение ВКЛ.) И выключите или включите » Воспроизвести звук при получении уведомления ".

Вы также можете найти немного другую версию Pomodoro в нашем настольном приложении для Mac.

Автоматический пуск / останов #

Если вы используете расширение для браузера, Clockify может автоматически запускать / останавливать таймер при открытии / закрытии браузера.

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

Если у вас включены и обнаружение холостого хода, и автоматическая остановка, если таймер останавливается автоматически, обнаружение холостого хода не срабатывает (это означает, что время простоя будет сохранено).

Вы также можете автоматически запускать / останавливать таймер в определенное время дня с помощью Zapier (например,автоматически запускает таймер в 9 часов утра и завершает работу любого текущего таймера в 17 часов).

Напоминания #

Если вы все время забываете запустить таймер, Clockify может отправлять вам напоминания о запуске таймера.

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

Например, если сегодня понедельник-пятница с 9:00 до 17:00, и вы не запускали таймер в течение 30 минут, вы получите уведомление, в котором вы можете запустить новый таймер или продолжить работу с последним.

В дополнение к напоминаниям об отслеживании времени Clockify также может отправлять вашей команде ежедневные и еженедельные напоминания по электронной почте (например, если кто-то не регистрирует свою цель 40 часов в неделю).

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

Как настроить напоминания на:

.

Смотрите также