Таймер на виндовс 10

Содержание

Таймер отключения компьютера на Windows 10: автоматическое выключение по времени вручную и с помощью программы, что делать если не работает

Таймер на виндовс 10

Если вы любите засыпать под запущенный на компьютере фильм или музыку, будет очень удобно, чтобы ваше устройство не оставалось включённым на всю ночь. В подобных случаях может пригодиться полезная функция автоматического отключения компьютера. Использовать её можно как через штатные средства Windows 10, так и при помощи сторонних программ.

Как создать таймер выключения компьютера

В Windows 10 есть несколько способов заставить компьютер выключиться в определённое время.

Через «Планировщик заданий»

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

  1. Нажмите сочетание клавиш Win+X или нажмите правой кнопкой мыши на иконке «Пуск». В открывшемся меню выберите пункт «Управление компьютером».

    Откройте «Управление компьютером»

  2. Откройте «Планировщик заданий». Попасть в эту службу также можно при помощи команды taskschd.msc в окне «Выполнить».

    Откройте «Планировщик заданий»

  3. Нажмите на кнопку «Создать простую задачу…».

    Нажмите «Создать простую задачу…»

  4. Укажите время и частоту срабатывания команды. Когда дойдёте до этапа «Запуск программы», в строке сценария введите shutdown, а в строке аргументов -s.

    Введите сценарий и его параметр

Через ярлык

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

  1. Нажмите правой кнопкой мыши на рабочем столе и создайте ярлык.

    Создайте ярлык

  2. В строке расположения объекта введите «С:\Windows\System32\shutdown.exe -s -t 1800». 1800 — это время в секундах, через которое будет выключен компьютер после открытия ярлыка (вы можете ввести любое другое). Буква s в команде означает выключение компьютера, а буква t указывает на переменную времени.

    Введите нужную команду и время до выключения

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

Через файл с расширением bat

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

  1. Нажмите правой кнопкой мыши на рабочем столе и создайте текстовый документ.

    Создайте текстовый документ

  2. Откройте созданный документ и введите в него следующие команды (без точки и точек с запятой в конце):
    • echo off;
    • cls;
    • set /p timer_off=»Vvedite vremya v sekundah: «;
    • shutdown -s -t %timer_off%.Введите указанные команды
  3. Нажмите на кнопку «Файл» и выберите «Сохранить как…»

    Нажмите «Сохранить как…»

  4. Сотрите буквы формата txt и замените их на bat. Название выберите любое.

    Установите формат bat и сохраните документ

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

    Укажите время и нажмите Enter

Через окно «Выполнить»

Этот способ подойдёт для одноразового использования. Сочетанием клавиш Win+R вызовите окно «Выполнить» и введите команду «shutdown.exe -s -t 600». Как и в случае с ярлыком, 600 — время в секундах до отключения компьютера. После нажмите Enter.

Введите команду для выключения компьютера по таймеру

Почему таймер выключения может не сработать

Таймер выключения компьютера может не сработать по следующим причинам:

  • кто-то закрыл процесс выключения до истечения времени. Это можно сделать через диспетчер задач;
  • вы создавали команду, не имея прав администратора. Создайте её заново, предварительно получив эти права;
  • какая-то программа блокирует выключение компьютера. Этого можно избежать: добавьте -f после введённой команды для игнорирования всех сообщений об ошибках при выключении компьютера;
  • компьютер уже был перезагружен. Это отменяет установленный таймер, если только он не был задан через «Планировщик заданий».

Программы для отключения компьютера по таймеру

Сторонние программы могут предложить куда большую гибкость и удобство для отложенного выключения компьютера.

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

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

Wise Auto Shutdown

Wise Auto Shutdown — простая и удобная программа, которая является полностью бесплатной. Она хорошо справляется с функцией установки таймера выключения компьютера в назначенный срок и имеет возможность установить напоминание о выключении. Также она может планировать следующие действия:

  • перезагрузка;
  • переход в спящий режим;
  • гибернация.

Помимо прочего, тут есть функция, которая будет отключать компьютер после определённого периода бездействия.

Wise Auto Shutdown хорошо справляется со своей задачей, но не более того

Airtec Switch Off отличается крайне несовременным интерфейсом, который тем не менее предоставляет удобный доступ ко всем необходимым функциям. Airytec Switch Off может практически всё то же самое, что и предыдущая программа, но имеет ряд дополнительных настроек.

Airtec Switch Off — весьма неплохая программа, несмотря на невзрачный вид интерфейса

В Airtec Switch Off возможно выключение, даже если пользователь не вошёл в систему. Также эта программа отличает бездействие пользователя от бездействия компьютера, а значит, не выключит устройство, когда на самом компьютере идёт установка или другой важный процесс. Airtec Switch Off — очень гибкая программа, которая позволяет настроить таймер отключения до мелочей.

Airtec Switch Off имеет очень гибкие настройки

PowerOff

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

PowerOff — программа со множеством функций и настроек

Для чего может пригодиться таймер отключения

Кроме приведённой в начале статьи ситуации с просмотром фильма, таймер отключения компьютера может пригодиться для следующих целей:

  • ограничение времени, которое за компьютером проводит ребёнок: можно установить таймер выключения и пароль на включение компьютера;
  • выключение компьютера после завершения установки программы, обработки видео, скачивания тяжёлых файлов и всего, что занимает много времени;
  • для удобства обслуживания нескольких компьютеров одновременно. Вы можете запустить несколько действий, например, антивирусную проверку и дефрагментацию, и ко времени их окончания назначить выключение. Так можно заниматься сразу несколькими компьютерами, не ожидая завершения процессов на каждом.

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

  • Михаил Вавилов
  • Распечатать

Источник: https://kompkimi.ru/windows10/taymer-otklyucheniya-kompyutera-windows-10

Таймер выключения Windows 10 — 6 способов

Таймер на виндовс 10

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

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

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

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

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

Как поставить таймер выключения компьютера Windows 10? В операционной системе имеются встроенные инструменты для выполнения этой задачи. Пользователь может воспользоваться альтернативным вариантом: сторонними приложениями.

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

Есть варианты, при которых можно задать определенное время для выключения ПК. Также вы узнаете, как отключить таймер выключения компьютера, если надобность в завершении работы отпала.

Как поставить таймер на выключение компьютера Windows через команду «Выполнить» — 1 способ

С помощью выполнения определенной команды в окне «Выполнить», можно задать время выключения компьютера.

  1. Нажмите на клавиатуре на клавиши «Win» + «R».
  2. В диалоговом окне «Выполнить» введите команду: «shutdown -s -t X» (без кавычек). «X» — время в секундах до завершения работы системы.
  3. Нажмите на кнопку «ОК».

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

Как отключить выключение компьютера в Windows 10 помощью команды в окне «Выполнить»

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

  1. Для открытия окна «Выполнить», нажмите одновременно на клавиши «Win» + «R».
  2. В окне «Выполнить» введите команду: «shutdown -a» (без кавычек).

Запланированное автоматическое завершение работы операционной системы будет отменено.

Как выключить компьютер по таймеру Windows 10 при помощи ярлыка — 2 способ

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

  1. Щелкните правой кнопкой мыши по Рабочему столу.
  2. В контекстном меню выберите «Создать», а затем «Ярлык».
  3. В окне «Создать ярлык» введите путь до расположения объекта «C:WindowsSystem32shutdown.exe -s -t X» (без кавычек). «X» — время в секундах до выключения компьютера.
  4. Нажмите на кнопку «Далее».
  1. В следующем окне введите произвольное имя для ярлыка. Для имени ярлыка выберите что-то понятное, например, «Выключение ПК» или т. п.
  2. Нажмите на кнопку «Готово».

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

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

  1. Кликните правой кнопкой мыши по ярлыку.
  2. В открывшемся контекстном меню выберите пункт «Свойства».
  3. В окне свойств ярлыка откройте вкладку «Ярлык», а затем нажмите на кнопку «Сменить значок…».
  4. В предупреждающем окне нажмите на кнопку «ОК».
  5. В окне «Смена значка» выберите подходящий значок, а потом нажмите на кнопку «ОК».
  1. В окне «Свойства ярлыка» нажмите на кнопку «ОК».

Ярлык на Рабочем столе для выключения системы по таймеру поменяет свой значок.

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

Изменить время запуска таймера можно следующим образом:

  1. Щелкните правой кнопкой мыши по ярлыку, нажмите на «Свойства».
  2. В окне «Свойства», во вкладке «Ярлык» в поле «Объект» поменяйте время в секундах на другой временной промежуток.

Как выключить таймер отключения компьютера в свойствах ярлыка

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

  1. Щелкните правой кнопкой мыши по ярлыку, в контекстном меню выберите «Свойства».
  2. В окне «Свойства», во вкладке «Ярлык», в поле «Объект» удалите после «shutdown.exe» символы «-s -t X», где «X» – время в секундах до выключения компьютера.
  3. Вместо них добавьте пробел, а затем аргумент «-a». Путь до объекта должен выглядеть следующим образом: «C:\Windows\System32\shutdown.exe -a» (без кавычек).
  4. Нажмите на кнопку «ОК».
  5. Кликните два раза по ярлыку для отмены автоматического завершения работы операционной системы.

Выключение компьютера командной строкой — 3 способ

Пользователь может запустить таймер отсчета времени для выключения системы в командной строке.

Запустите командную строку в Windows 10. При настройках по умолчанию, командная строка скрыта в меню «Пуск». Поэтому прочитайте здесь, как открыть в Windows 10 командную строку разными способами.

В окне командной строки введите команду, а затем нажмите на клавиатуре на клавишу «Enter»:

shutdown -s -t X

«X» — время в секундах до выключения ПК.

После выполнения команды, пойдет отсчет времени до выключения Windows 10.

Если необходимо задать точное время для отключения системы, введите эту команду:

at XX:XX shutdown /s /f

Вместо «XX:XX», введите подходящее точное время, например, «23:30».

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

Для отмены отключения компьютера выполните действия:

  1. Запустите командную строку.
  2. В окне интерпретатора командной строки введите команду, нажмите на клавишу «Enter»:

shutdown -a

Запуск таймера выключения ПК в Windows PowerShell — 4 способ

Подобным образом можно автоматически завершить работы системы в Windows PowerShell:

  1. Откройте окно Windows PowerShell, например, из меню «Пуск».
  2. Выполните команду, нажмите «Enter»:

shutdown -s -t X

«X» — время в секундах до выключения компьютера.

Как отменить автоматическое выключение компьютера в Windows PowerShell

Для отмены завершения сеанса Windows в окне Windows PowerShell введите команду, а затем нажмите на «Enter»:

shutdown -a

Выключение компьютера по таймеру в Windows 10 с помощью bat файла — 5 способ

Еще один способ — автоматическое выключение ПК через заданное время, при помощи исполняемого пакетного файла с расширением «.bat». Пользователю нужно создать специальный «bat» файл, а затем запустить его, для запуска таймера отсчета времени до отключения системы. Мы создадим файл при помощи Блокнота. Введите в окно Блокнота один из следующих кодов:

shutdown.exe -s -t X -c “текст сообщения”shutdown.exe -s -t X

«X»— время в секундах до выключения Windows. Вместо текста: «текст сообщения», нужно ввести какой-нибудь текст на английском языке, например, «computer off timer», который будет отображен на экране компьютера.

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

Сохраните файл, в поле «Тип файла» выберите «Все файлы», в поле «Имя файла» присвойте имя файлу с расширением «.bat», например, «Выключение ПК.bat» (без кавычек).

Нажмите на кнопку «Сохранить».

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

Автоматическое выключение системы в Планировщике задач — 6 способ

С помощью Планировщика задач  можно назначить точное время для автоматического завершения работы операционной системы Windows 10.

  1. Вам нужно будет запустить Планировщик заданий, одним из этих способов.
  2. В окне приложения, в колонке «Действия» нажмите на опцию «Создать простую задачу…».
  1. Запустится мастер создания простой задачи. В окне «Создать простую задачу», в поле «Имя» введите любое название задачи, например, «Выключение ПК» (без кавычек).
  2. В окне «Триггер задачи» активируйте пункт «Однократно» для запуска задачи один раз.
  3. В окне «Один раз» выберите дату и время для автоматического отключения компьютера.
  4. В окне «Действие» выберите параметр «Запустить программу».
  5. В следующем окне «Запуск программы» в поле «Программа или сценарий» введите полный путь до файла, или выберите файл с помощью кнопки «Обзор…»:

С:\Windows\System32\shutdown.exe

  1. В поле «Добавить аргументы (необязательно)» введите «-s» (без кавычек).
  1. В окне «Сводка» отображены все настройки запланированного задания, нажмите на кнопку «Готово» для запуска задачи.

Как выключить таймер выключения компьютера в Планировщике заданий

В окне Планировщика заданий в левой колонке нажмите на параметр «Библиотека планировщика заданий». В списке заданий по названию задачи, найдите задание для отключения ПК в запланированное время.

Щелкните по заданию правой кнопкой мыши, а затем выберите в открывшемся контекстном меню пункт «Отключить».

Выводы статьи

Если пользователю необходимо автоматически выключить компьютер с операционной системой Windows 10 через определенное время, можно воспользоваться системными средствами: с помощью ввода команды в окне «Выполнить», созданием специального ярлыка, выполнением команд в командной строке или в Windows PowerShell, с помощью исполняемого «.bat» файла, создать задачу для выключения ПК в Планировщике заданий.

https://vellisa.ru/computer-off-timer-windows-10Таймер выключения Windows 10 — 6 способовhttps://vellisa.ru/wp-content/uploads/2018/08/0-2.pnghttps://vellisa.ru/wp-content/uploads/2018/08/0-2-300×156.png2020-11-09T20:53:27+03:00ВасилийWindowsВ операционной системе Windows 10 имеется функция, при помощи которой можно запустить таймер выключения компьютера через некоторое заданное время. Выключение компьютера Windows 10 произойдет автоматически, без участия пользователя. Таймер выключения компьютера Windows 10 выполняет полное отключение системы, это не перевод ПК в режим сна или гибернации. Подобная возможность для отключения…ВасилийВасилий vas468@gmail.comAdministratorАвтор 700+ статей на сайте Vellisa.ru. Опытный пользователь ПК и ИнтернетИнтернет и программы для всех

Источник: https://vellisa.ru/computer-off-timer-windows-10

Настраиваем таймер выключения компьютера Windows 10

Таймер на виндовс 10

Всем привет! В последнее время меня часть отвлекают от компьютера и не редко происходят ситуации что уже пора спать…и совсем нет желания вставать из уютной и теплой кроватки и топать выключать шумящий системник в соседнюю комнату. Было бы здорово настроить таймер выключения компьютера Windows 10 таким образом, чтобы в определенное время он выключался и не гонял байты с диска на диск!

Помнится в свое время была популярной программой Light Alloy и мне очень нравился функционал выключения компьютера после просмотра фильма. Уснул? — Не беда, фильм закончился и компьютер отключился (и все домашние довольны).

К сожалению фильмы или сериалы с компьютера уже давно перестали смотреть — онлайн все это делается намного проще и удобнее, поэтому приходится менять привычки… да и кого я обманываю, давненько я не использовал плеер Light Alloy

Таймер выключения компьютера Windows 10

Писать отдельную заметку с расписанием выключения особого желания не было, поэтому решил копнуть немного глубже и рассказать вам о различных способах запланированного выключения компьютера с Windows 10 (да и другие версии ОС компании Майкрософт подойдут)…

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

Когда еще это может понадобиться? Поставили на загрузку тяжелый торрент с новой Red Dead Redemption 2? — качать более 150 гигабайт даже при скоростном интернете может довольно продолжительное время, поэтому можно установить отложенное выключение компьютера (прикинув сколько это займет время) и ложиться спать… а потом проснуться и обнаружить что игра не докачана, а компьютер скоро выключится — поэтому в заметке рассмотрим вариант отмены запланированного выключения!

Выключение с помощью окна «Выполнить…»

Начнем с простого — просто выключим компьютер через пару минут… для этого необходимо вызвать окно «Выполнить» (делается это сочетанием клавиш WIN + R) и вводим команду:

shutdown -s -t X

…где X — это секунды до выключения. А если исключить параметр «-t X» то компьютер выключится… нет, не немедленно как может показаться, а спустя одну минуту!

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

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

Чтобы потом не оказалось, что в самый ответственный момент я забуду про это запланированное задание и случайно выключу себе компьютер — нам просто необходимо знать, каким образом этот «Shutdown Windows» отключить. Надо всего лишь открыть окно «Выполнить» и ввести знакомую нам команду:

shutdown -a

Этим самым мы отменим выключение вашего компьютера через определенное время.

Выключаем компьютер через командную строку

Начать хочется с предложением ознакомиться с полезной заметкой о способах открыть командную строчку в Windows 10. Я использую вариант «Выполнить» и просто ввожу «CMD» без кавычек:

Что дальше? — тут все как и в предыдущем пункте, правда синтаксис немного изменился и вместо «-» необходимо ставить символ «/», в итоге получим такой набор (опять же, X — это время в секундах до выключения):

shutdown /s /t X А если в командной строке набрать просто shutdown, то увидите список возможных параметров (в общем то осознаете, что возможно не только выключение, но и перезагрузка и много других прикольных фишек)

Думаю как отменить автоотключение Windows вы уже догадались, но на всякий случаю прикреплю команду тут:

shutdown /sПускай для выключения через командную строку вам придется выполнить больше действий, но тут вы можете посмотреть все доступные параметры команды и уже применять их в своей работе

Как выключить компьютер в определенное время

Команда для отключения компьютера через время нам уже известна, но это далеко не всегда удобно! Например мне необходимо выключать рабочий компьютер каждый день в 19:00 если я вдруг ушел на объект и не успел вовремя вернуться в офис и утопал домой… ну на самом деле, не высчитывать же каждый день сколько секунд до конца рабочего дня и долбить команду в окне «Выполнить».

Сейчас мы создадим удобный ярлык выключения компьютера и разберемся как его использовать в планировщике задач Windows (недооцененная многими пользователями функция Windows).

Создаем ярлык Shutdown Windows 10

По поводу создания ярлыков на рабочем столе есть отдельная заметка (если интересно — почитаете), но мы не будем отвлекаться и продублируем часть статьи в контексте данного поста. В свободном месте на экране кликаем правой кнопкой мыши и в контекстном меню выбираем «Создать» > «Ярлык»…

…далее вводим команду:

C:\Windows\System32\shutdown.exe -s -t X

Как обычно «Х» — это время в секундах до выключения. Я рекомендую сделать ее хотя бы 5 минут (300 секунд) чтобы в случае необходимости успеть ввести команду отмены выключения.

Следующим шагом необходимо обозвать ярлык — у меня хватило фантазии только на «Выключение».

Такой значок можно запросто потерять на рабочем столе среди других иконок, поэтому можно сменить его на любой другой. Кликните по нему правой кнопкой мыши, откройте «Свойства» и на вкладке «Ярлык» нажмите «Сменить значок»… выберите понравившийся!

Теперь у нас на рабочем столе козырная кнопка выключения компьютера. Просто 2 раза кликните по ней и через пару минут ваш компьютер выключится!

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

Настраиваем планировщик Windows

Открываем «Планировщик заданий», для этого кликаем «Пуск» и печатаем «Планировщик заданий» в строке поиска — открываем подходящее приложение.

Наша задачка достаточно простая, поэтому нам подойдет создание «Простой задачи»… кликаем «Действие» > «Создать простую задачу…»

Придумываем название (чтобы потом отыскать ее в списке) и краткое описание (не обязательно)…

Выбираем частоту взаимодействия с задачей. Для моей задачи ежедневного выключения в 7 часов вечера я выбрал пункт «Ежедневно».

Выбираем время и частоту повторения… обычно тут вопросов ни у кого не возникает.

Нас интересует запуск ярлыка с прописанными параметрами выключения, поэтому выбираем пункт «Запустить программу».

Жмем «Обзор» и тыкаем в наш подготовленный ярлык «Выключение»

На этом создание постоянной задачи с запланированным расписанием выключением компьютера можно считать завершенным… если вы хотите отменить автоотключение, то просто найди эту задачу в планировщике и удалите ее (ну или исправьте…)

Ничего сложного в планировщике нет… достаточно часто его используют рекламные утилиты и наверняка вы уже сталкивались с ним, а ведь запланировать можно все что угодно и условия для срабатывания могут быть разными! Например таким хитрым способом можно реализовать автозапуск программы в Windows 10.

Программа для отключения компьютера по времени

Волан де Морт — казалось бы, при чем тут персонаж вселенной Гарри Поттера, имя которого нельзя называть?! Мне искренне непонятны мотивы некоторых автором, которые категорически простив использования сторонних утилит… и они их просто игнорируют, как будто написав о них в заметке мы выпустим вселенское зло…

Существует много приложений для автоматического выключения компьютера, но мой взгляд пал на Wise Auto Shutdown — оно полностью дублирует функционал описанный ранее, но делает это в пару кликов и без заучивания команд… скачать можно с официального сайта (что самое странное — ничего вместе с утилитой не навязывалось, что в 2019 уже большая редкость… но вы все равно будьте на чеку, реальность она такая, имеет свойство меняться).

http://www.wisecleaner.com/wise-auto-shutdown.html

В программе присутствует Великий и Могучий, поэтому сложностей не возникнет… Вот посмотрите на скриншот главного окна программы и подумайте — что тут вообще можно написать?

Все правильно… нечего написать — все и так понятно. Хочешь — выключай или перезагружай по расписанию, хочешь через определенное время (и пиши в минутах, а не сиди с калькулятором и переводи секунды в нужную систему измерения).

В общем в обзоре приложение не нуждается. Если смотреть правде в глаза, то в самом начале заметки можно было дать ссылку на программу и на этом бы все закончилось — но это было бы слишком просто!

Итоги

Что имеем? Сегодня мы научились ставить компьютер (или ноутбук) на автовыключение средствами Windows или с использованием сторонних утилит. Немного рассмотрели планировщик заданий и поговорили о ситуациях, когда это необходимо.

Источник: https://www.itshneg.com/set-auto-shutdown-in-windows-10/

Системный таймер в Windows: большое изменение

Таймер на виндовс 10

Поведение планировщика Windows значительно изменилось в Windows 10 2004 без каких-либо предупреждений и изменения документации. Вероятно, это поломает несколько приложений. Такое происходит не первый раз, но эта перемена посерьёзнее.

Если вкратце, то вызовы timeBeginPeriod из одного процесса теперь влияют на другие процессы меньше, чем раньше, хотя эффект ещё присутствует.

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

Прерывания таймера и смысл их существования

Во-первых, немного контекста о дизайне операционных систем. Желательно, чтобы программа могла засыпать, а позже — просыпаться.

На самом деле это не следует делать очень часто — потоки обычно ждут событий, а не таймеров, — но иногда необходимо.

Итак, в Windows есть функция Sleep — передайте ей желаемую продолжительность сна в миллисекундах, и она разбудит процесс:

Sleep(1);

Стоит подумать о том, как это реализуется. В идеале при вызове Sleep(1) процессор переходит в спящий режим. Но как операционная система разбудит поток, если процессор спит? Ответ — аппаратные прерывания. ОС программирует микросхему — аппаратный таймер, который затем запускает прерывание, которое пробуждает процессор, и ОС затем запускает ваш поток.

Функции WaitForSingleObject и WaitForMultipleObjects также имеют значения таймаута, и эти таймауты реализуются с использованием того же механизма.

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

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

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

Существует множество способов объединения пробуждений, но основной механизм в Windows — глобальное прерывание таймера, тикающего с постоянной скоростью. Когда поток вызывает Sleep(n), то ОС запланирует запуск потока сразу после первого прерывания таймера.

Это означает, что поток может в конечном итоге проснуться немного позже, но Windows — это не ОС реального времени, она вообще не гарантирует определённое время пробуждения (в это время ядра процессора могут быть заняты), поэтому вполне нормально проснуться чуть позже.

Интервал между прерываниями таймера зависит от версии Windows и железа, но на всех моих машинах он по умолчанию составлял 15,625 мс (1000 мс/64).

Это означает, что если вызвать Sleep(1) в какое-то случайное время, то процесс будет разбужен где-то между 1,0 мс и 16,625 мс в будущем, когда сработает следующее прерывание глобального таймера (или через одно, если это сработало слишком рано).

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

Некоторым программам не подходит такой большой разброс в задержках ожидания (WPF, SQL Server, Quartz, PowerDirector, Chrome, Go Runtime, многие игры и т. д.).

К счастью, они могут решить проблему с помощью функции timeBeginPeriod, которая позволяет программе запросить меньший интервал.

Есть также функция NtSetTimerResolution, которая позволяет устанавливать интервал меньше миллисекунды, но она редко используется и никогда не требуется, поэтому не буду больше её упоминать.

Десятилетия безумия

Вот сумасшедшая вещь: timeBeginPeriod может вызвать любая программа, и она изменяет интервал прерывания таймера, при этом прерывание таймера — это глобальный ресурс.

Представим, что процесс А находится в цикле с вызовом Sleep(1).

Это неправильно, но это так, и по умолчанию он просыпается каждые 15,625 мс, или 64 раза в секунду. Затем появляется процесс B и вызывает timeBeginPeriod(2). Это заставляет таймер срабатывать чаще, и внезапно процесс А просыпается 500 раз в секунду вместо 64-х раз в секунду.

Это безумие! Но именно так всегда работала Windows.

В этот момент, если бы появился процесс C и вызвал timeBeginPeriod(4), это ничего бы не изменило — процесс A продолжал бы просыпаться 500 раз в секунду. В такой ситуации правила устанавливает не последний вызов, а вызов с минимальным интервалом.

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

Если одна программа вызывает timeBeginPeriod(1), то теперь это интервал прерывания таймера для всей системы.

Если одна программа вызывает timeBeginPeriod(1), а другая timeBeginPeriod(4), то всеобщим законом становится интервал прерывания таймера в одну миллисекунду.

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

Одним из приложений, которому необходимо планирование на основе таймера, является веб-браузер. В стандарте JavaScript есть функция setTimeout, которая просит браузер вызвать функцию JavaScript через несколько миллисекунд.

Для реализации этой и других функций Chromium использует таймеры (в основном WaitForSingleObject с таймаутами, а не Sleep). Это часто требует повышенной частоты прерываний таймера.

Чтобы это не слишком сказывалось на времени автономной работы, Chromium недавно модифицировали таким образом, чтобы при работе от батареи частота прерываний таймера не превышала 125 Гц (интервал 8 мс).

timeGetTime

Функция timeGetTime (не путать с GetTickCount) возвращает текущее время, обновлённое прерыванием таймера.

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

Чтение с этих чипов стоит дорого, поэтому Windows поддерживает 64-битный счётчик времени в миллисекундах, обновляемый прерыванием таймера. Этот таймер хранится в общей памяти, поэтому любой процесс может дёшево считывать оттуда текущее время, не обращаясь к генератору тактовых импульсов.

timeGetTime вызывает ReadInterruptTick, который по сути просто считывает этот 64-битный счётчик. Все просто! Поскольку счётчик обновляется прерыванием таймера, мы можем его отследить и найти частоту прерывания таймера.

Новая недокументированная реальность

С выпуском Windows 10 2004 (апрель 2020 года) некоторые из этих механизмов слегка изменились, но очень запутанным образом. Сначала появились сообщения, что timeBeginPeriod больше не работает. На самом деле всё оказалось куда сложнее.

Первые эксперименты дали смешанные результаты.

Когда я запустил программу с вызовом timeBeginPeriod(2), то clockres показал интервал таймера 2,0 мс, но отдельная тестовая программа с циклом Sleep(1) просыпалась около 64 раз в секунду вместо 500 раз, как в предыдущих версиях Windows.

Научный эксперимент

Тогда я написал пару программ для изучения поведения системы. Одна программа (change_interval.cpp) просто сидит в цикле, вызывая timeBeginPeriod с интервалами от 1 до 15 мс.

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

Другая программа (measure_interval.

cpp) запускает несколько тестов для проверки, как её поведение изменяется при изменении change_interval.cpp. Программа отслеживает три параметра.

  1. Она спрашивает ОС, каково текущее разрешение глобального таймера, используя NtQueryTimerResolution.
  2. Она измеряет точность timeGetTime, вызывая его в цикле до тех пор, пока возвращаемое значение не изменится — и отслеживая величину, на которую оно изменилось.
  3. Она измеряет задержку Sleep(1), вызывая его в цикле в течение секунды и подсчитывая количество вызовов. Средняя задержка является просто обратной величиной числа итераций.

@FelixPetriconi провёл для меня тесты на Windows 10 1909, а я провёл тесты на Windows 10 2004. Вот очищенные от случайных флуктуаций результаты:

Это означает, что timeBeginPeriod по-прежнему устанавливает интервал глобального таймера во всех версиях Windows.

Из результатов timeGetTime() можно сказать, что прерывание срабатывает с такой скоростью по крайней мере на одном ядре процессора, и время обновляется. Обратите также внимание, что 2.

0 в первой строке для 1909 года тоже было 2.0 в Windows XP, затем 1.0 в Windows 7/8, а затем вроде опять вернулось к 2.0?

Однако поведение планировщика резко меняется в Windows 10 2004. Ранее задержка для Sleep(1) в любом процессе просто равнялась интервалу прерывания таймера, за исключением timeBeginPeriod(1), давая такой график:

В Windows 10 2004 соотношение между timeBeginPeriod и задержкой сна в другом процессе (который не вызывал timeBeginPeriod) выглядит странно:

Точная форма левой части графика неясна, но она определённо уходит в противоположную сторону от предыдущего! Почему?

Последствия

Как было указано в обсуждении reddit и hacker-news, вероятно, левая половина графика представляет собой попытку максимально точно имитировать «нормальную» задержку, учитывая доступную точность глобального прерывания таймера.

То есть с интервалом прерывания 6 миллисекунд задержка происходит примерно на 12 мс (два цикла), а с интервалом прерывания 7 миллисекунд — примерно на 14 мс (два цикла). Однако измерение фактических задержек показывает, что реальность ещё более запутанна.

При прерывании таймера, установленном на 7 мс, задержка Sleep(1) в 14 мс даже не самый распространённый результат:

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

Особенно противоречивыми кажутся интервалы прерывания таймера от 4 мс до 8 мс. Вероятно, измерения интервалов следует выполнять с помощью QueryPerformanceCounter, поскольку на текущий код беспорядочно влияют изменение правил планирования и изменение точности таймера.
Всё это очень странно, и я не понимаю ни логики, ни реализации. Может, это и ошибка, но я в этом сомневаюсь. Думаю, что за этим стоит сложная логика обратной совместимости. Но самый эффективный способ избежать проблем совместимости — это документировать изменения, желательно заранее, а здесь правки сделаны без какого-либо уведомления.

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

  • Программа может случайно предположить, что у Sleep(1) и timeGetTime одинаковое разрешение, а это теперь не так. Хотя, такое предположение кажется маловероятным.
  • Программа может зависеть от маленького разрешения таймера, которого не получает. Было несколько сообщений о такой проблеме в некоторых играх — есть инструмент под названием Windows System Timer Tool и ещё один под названием TimerResolution 1.2. Они «исправляют» эти игры, повышая частоту прерываний таймера. Видимо, эти исправления больше не будут работать или будут работать не так хорошо. Возможно, это заставит разработчиков игр выпустить правильные патчи, но до тех пор изменение вызывает проблемы обратной совместимости.
  • В многопроцессной программе главная управляющая программа может повысить частоту прерываний таймера, а затем ожидать, что это повлияет на планирование дочерних процессов. Раньше это было разумное предположение, но теперь оно не работает. Именно так я сам узнал об этой проблеме. Продукт, о котором идёт речь, теперь вызывает timeBeginPeriod в каждом процессе, так что всё в порядке, но несколько месяцев программное обеспечение плохо работало по непонятной причине.

Жертва

Тестовая программа change_interval.cpp работает только в том случае, если никто не запрашивает более высокую частоту прерываний таймера. Поскольку и Chrome, и Visual Studio имеют привычку делать это, мне пришлось проделать большую часть моих экспериментов без доступа в интернет и программируя в блокноте. Кто-то предложил Emacs, но ввязываться в эту дискуссию выше моих сил.

  • Windows
  • системный таймер
  • задержка

Hubs:

  • System administration
  • Development for Windows
  • Games and game consoles
  • October 14, 2019 at 10:00 AM
  • July 8, 2019 at 10:00 AM
  • June 13, 2019 at 05:38 PM

Ads AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Источник: https://habr.com/en/post/522212/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.