Категория: Windows
Понадобилось создать задачу автоматического запуска скрипта.
Скрипт копирует файлы через ранее установленное VPN-соединение с удалённым ПК и должен запускаться раз в 10 минут.
Компьютер, на котором выполняется задача, не является членом домена.
Планировщик в Windows 7 перекочевал на новое место. Если в XP это была папка Назначенные заданияПанели управления. то в "семерке" его нужно искать по адресу Панель управления - Все элементы панели управления - Администрирование - Планировщик заданий . Проще в строке поиска главного меню начать писать "Планировщик " и запускать его через результаты поиска (весьма удобно, кстати).
Далее выбираем пункт "Создать простую задачу. " в боковой панели "Действия " или в контекстном меню рабочей области библиотеки планировщика заданий.
В запустившемся мастере создания простой задачи проходим все этапы от начала до завершения.
Подправим свойства только что созданной задачи:
После нажатия кнопки "ОК" в свойствах задачи будет предложено выбрать пользователя, от имени которого будет эта задача выполняться.
Важно.
В локальной системе должна существовать учетная запись, имя и пароль которой совпадают с именем и паролем, указанных в параметрах VPN-соединения.
Задача должна запускаться от имени этой учётной записи - иначе она будет завершаться с кодом (0x2).
Выбранный пользователь не обязан принадлежать к группе "Администраторы", но он должен быть указан в политике "Вход в качестве пакетного задания":
Планировщик задач windows 7, он же иными словами планировщик заданий windows, располагается в меню управления компьютера и служит одновременно как встроенная в систему напоминалка, и как планировщик будущих задач для последующего их выполнения.
Выполнение задач в планировщике может повторятся по расписанию и зависеть от некоторых условий, при которых задача либо будет выполняться либо не будет. Условие и частоту выполнения определенной задачи задает пользователь при ее планировании. Хорошо, теперь давайте подробно разберемся как все это делается.
Где найти планировщик заданий?
Как я уже писал, в меню управления компьютера. Для этого просто кликнете правой кнопкой мыши по иконке "Компьютер" на рабочем столе. Если на рабочем столе и вас такой иконки нет, откройте меню "Пуск" и кликнете правой кнопкой мышки по пункту "Компьютер".
В открывшемся выпадающем меню кликаем по пункту "Управление".
А уже в открывшемся окне управления компьютером переходим в появившийся в левом меню "Планировщик заданий".
Активные задачи в планировщике заданий
В открывшемся после перехода планировщике заданий видим, что в нем уже есть какие-то активные задачи. Эти задачи туда были добавлены встроенными средствами windows и различными сторонними программами. Такими как Adobe и Google в моем случае.
Если хотите, можете отредактировать эти задачи либо вообще удалить их. Для этого достаточно произвести двойной клик мышкой по интересующей вас задаче.
Создание собственной задачи
Теперь давайте попробуем создать собственную задачу. Сделать это вы можете двумя способами. Либо кликнув по пункту "Создать простую задачу", либо кликнув по пункту "Создать задачу". Все эти пункты располагаются в правом меню под названием "Действия", показано на картинке выше.
Различия между простой и обычной задачей заключаются в отсутствии у первой возможности настройки дополнительных параметров и условий, при которой задача будет или не будет выполнятся. Настройка дополнительных параметров и условий используется редко, поэтому в планировщике задач предусмотрено 2 опции.
Я же буду рассматривать создание новой задачи в планировщике задач на основе обычной, чтобы наиболее полно раскрыть вам эту тему. Не бойтесь! После того как вы освоите создание обычной задачи, создание простой задачи у вас много вопросов не вызовет. По этой причине процесс создания простой задачи я опущу.
Итак, кликаем по пункту "Создать задачу" и попадаем в окно "Создание задачи". Начнем рассматривать возможности этого окна со вкладки "Общие".
В поле "Имя" вписываем название новой задачи, в поле "Описание", описание для новой задачи. Затем определяем от имени какого пользователя будет выполнятся задача и будет-ли она выполнятся для всех пользователей (даже для гостевых) или только для конкретно указанных.
Проставляем флажок напротив поля "Выполнить с наивысшими правами", если будущей задаче для выполнения необходимы права администратора. А в ОС windows 7/8 это практически всегда так. Там даже файл на диск С скопировать нельзя без прав администратора, поэтому искренне вам советую этот флажок проставлять.
Также можете проставить флажок напротив поля "Скрытая задача". Это нужно в том случае, если вы не хотите, чтобы ваша задача не отображалась в списке активных задач.
Ну и, само-собой разумеется, напротив поля "Настроить для" выбираете из раскрывающегося списка вашу систему. В моем случае это windows 8.1 c настроенным от windows 7 интерфейсом. Не удивляйтесь. В одной из будущих статей я обязательно вам распишу, как я все это настроил.
Вкладка "Триггеры" отвечает за настройку условий запуска задачи. Т.е в данной вкладке мы определяем при каком условии наша задача должна запускаться.
Чтобы добавить новое условие для запуска задачи, необходимо в левом нижем углу вкладки "Триггеры" нажать на кнопку "Создать"
В результате попадем вот в такое окно создания нового триггера (условия запуска задачи). Как видим из верхнего выпадающего списка условий для запуска новой задачи может быть великое множество. И все они имеют свои дополнительные, но интуитивно понятные, настройки. Так что пугаться не стоит.
Большинство из условий запуска думаю вам понятны, но некоторые я все же поясню:
Это когда в одном из журналов событий windows происходит запись о каком-то только что произошедшем событии. Планировщик задач на эту запись реагирует и выполняет каую-то заранее определенную задачу.
Журналы событий windows также находятся во вкладке управление, прямо под планировщиком заданий windows. Можете открыть один из таких журналов и посмотреть какое-нибудь событие.
Увидите, что каждое событие имеет свой источник и код. Именно на источник и на код события можно настроить запуска какой-нибудь задачи в планировщике заданий.
При создании и изменении задачи
Под этим имеется ввиду текущая задача, которую вы сейчас создаете. Как только вы ее создадите, выполнится какое-нибудь действие. Или если вы вдруг решите эту задачу со временем изменить, тоже выполнится какое-нибудь действие.
При подключении или отключении от пользовательского сеанса
Это когда вы с помощью встроенных средств windows 7/8 устанавливаете удаленное подключение к другому компьютеру под управлением windows 7/8. Задача будет выполнятся на компьютере, к которому вы подключились. (если на нем прописана задача что-то делать при подключении.)
Примерно также это работает и на локальном компьютере. Т.е когда вы зашли на компьютер под одним пользователем, а потом еще вошли и под другим, выполниться какое-нибудь событие, если вы его заранее определили.
При блокировании/разблокировании рабочей станции
Это когда вы в меню завершения работы, выбираете пункт "Блокировка".
Соответственно при блокировке компьютера можно выполнить одну задачу, а при разблокировке другую. Тут уже зависит от вашей фантазии.
Эта вкладка отвечает уже за само действие, которое будет выполнятся, когда сработает заданное нами в триггере условие. Как и в окне "Триггер", во вкладке "Действие" в первую очередь новое действие надо добавить с помощью кнопки "Создать" в левом нижнем углу.
Возможных действий, как видите, всего 3, поэтому попробую вам на примерах показать как они настраиваются.
Здесь нам достаточно указать путь до исполняемого файла приложения, которое мы хотим запустить
Можете еще указать рабочую папку (путь до папки в которой лежит исполняемый файл) и аргументы для запускаемого приложения, если вы хотите чтобы приложение запустилось в определенном режиме.
Предупреждаю, что аргументы для каждого приложения свои, но есть среди них и общие. Можете помучать поисковик, если интересно.
Отправление сообщений электронной почты
Как понятно из названия, нужно для отправки письма с одного почтового ящика на другой. Например прописали вы, чтобы система отправляла вам из офиса письмо на домашний ПК если 1С бухгалтерия вылетит с ошибкой. Вот вам пример:
Тут все вообще элементарно. Заполняете заголовок окошка, текст сообщения и сохраняете.
Эта вкладка нужна для проверки дополнительных условий. Если они будут выполнены, задача запустится. Если дополнительные условия выполнены не будут, задача не запустится.
С помощью этой вкладки мы можем определить как наша задача будет реагировать на простой компьютера, его подключение к источнику питания и типу сети. Вообщем здесь ничего сложного нет, сами все поймете.
Эта вкладка нам нужна для настройки дополнительных параметров выполнения наших задач. Она позволяет определить, что нужно делать, если наша задача вдруг не сработала в нужный момент, как часто стоит ее повторять, стоит ли ждать завершения прошлой задачи перед созданием новой и прочие подобные вещи.
Тут думаю сами разберетесь, исходя из своих интересов, что и как вам нужно выставлять. Все как всегда просто и понятно.
После того, как все нужные вкладки в планировщике задач заполните, смело сохраняйте новую задачу и проверяйте ее работоспособность. Именно проверяйте для того, чтобы быть уверенными, что в нужный момент все сработает как надо. А мне на сем позвольте откланяться и пожелать вам удачи. Ваш,
Вы занимаетесь бизнесом и не знаете, как лучше планировать свой день. А точнее, вы ищите программу, которая помогала бы вам в планировании. Также Вы хотите, чтобы планировщик оповещал вас о важном задании или событии. В этой заметке вы узнаете о подобном планировщике. Я расскажу вам об очень простом в использовании, а также бесплатном планировщике задач.
Всем привет. Сегодня добавил новое видео на канал. На видео я рассказал о планировщике задач. Данный сервис поможет вам планировать свои дела очень удобным способом.
Данный планировщик называется «Wunderlist». Этот сервис предоставляет вам программное обеспечение для любого устройства, начиная от «Windows» и, заканчивая «Iphone». Также вы можете пользоваться сервисом при помощи вашего браузера.
Данный сервис имеет очень простой и в тот же момент функциональный интерфейс. С помощью него вы можете составлять списки своих дел. Формировать структуру ваших списков по папкам. Также можно добавлять напоминания.
Как я уже говорил выше, данный сервис имеет программное обеспечение для любого устройства, и вы можете синхронизировать ваши дела, используя компьютер и, например, смартфон. Это позволит вам всегда иметь под рукой все свои задачи и напоминания.
Также, вы можете работать над одним списком с разных аккаунтов, что позволит вам работать совместно с другими людьми.
Как пользоваться Wunderlist я показал на видео ниже. Посмотрите, там все очень просто.
Зарегистрироваться и скачать софт вы можете на официальном сайте Wunderlist. Вот ссылка: https://www.wunderlist.com/ru/
Поделитесь заметкой с друзьями, нажмите на кнопку соц. сети.
Еще статьиВы включаете компьютер, а он не работает. Вы в недоумении, не понимаете, что произошло? Или, другой пример. Ваш компьютер стал жутко тормозить. Вы открываете текстовый файл, Читать далее »
Здравствуйте, уважаемые подписчики и посетители блога vsemu-nauchim.ru. В данном посте я расскажу вам об SSD-дисках. Так как SSD-диски появились недавно, не все знают, зачем они нужны Читать далее »
Здравствуйте. В этой заметке я расскажу Вам, как почистить реестр. Точнее, не расскажу, а покажу на видео. Данная заметка, по сути, продолжение предыдущей: «Как удалить программу, Читать далее »
В данной заметке Вы узнаете, как почистить компьютер от мусора. Мы будем говорить о системном мусоре, а не о физическом. В конце заметки - видео, на Читать далее »
Здравствуйте. А Вы знаете, что в некоторых компьютерах присутствует вода? Если нет, тогда посмотрите видео на данной странице. Вы узнаете о системе водяного охлаждения PC. Читать далее »
В операционных системах семейства Windows есть достаточно полезная и важная программа под названием «Планировщик заданий». Благодаря этой программе пользователи персональных компьютеров могут создавать задания, которые будут выполнены компьютером в определенное время. Эти задания могут представлять собой, как обычные сообщения — напоминания, так и запуск определенных программ и что самое важное запуск средств резервного копирования. Ведь не для кого не секрет, что информацию необходимо резервировать, иначе в случае непредвиденной ситуации — поломки оборудования, сбой в операционной системе, эту информацию можно безвозвратно потерять……
В операционных системах семейства Windows есть достаточно полезная и важная программа под названием «Планировщик заданий». Благодаря этой программе пользователи персональных компьютеров могут создавать задания, которые будут выполнены компьютером в определенное время. Эти задания могут представлять собой, как обычные сообщения — напоминания, так и запуск определенных программ и что самое важное запуск средств резервного копирования. Ведь не для кого не секрет, что информацию необходимо резервировать, иначе в случае непредвиденной ситуации — поломки оборудования, сбой в операционной системе, эту информацию можно безвозвратно потерять.
Планировщик заданий — это консоль управления Microsoft (MMC). Предназначен планировщик заданий для группирования средств администрирования, которые используются при администрировании компьютеров, компьютерных сетей, различных компонентов и служб. В операционной системе Windows 7, планировщик заданий стал более функциональным и продвинутым. На его борту, в отличие от планировщика заданий Windows XP, появились дополнительные возможности и функции. Во-первых, улучшилась обработка ошибок выявленных при работе. Теперь планировщик уведомляет о причинах, которые могут вызвать сбой в работе программы. Помимо сообщения пользователю будут предложены варианты решения проблемы. Во-вторых, появилась более функциональная панель действий. В-третьих, для облегчения добавления, упорядочения и удаления оснасток, появилось новое диалоговое окно. В нем можно выполнять различные настройки планировщика заданий.
Запустить программу можно несколькими способами: в меню Пуск набрать в строке поиска планировщик заданий или вызвать команду «Выполнить» сочетанием клавиш Win + R и ввести taskschd.msc. Теперь для того, чтобы создать задание щелкните справа «Создать простую задачу». В открывшемся окне присвойте название вашему заданию и нажмите кнопку «Далее».
В следующем окне необходимо будет указать, когда будет запускаться задача, то есть отметить нужный пункт.
Далее вам придется указать время и частоту выполнения задания. В окне, открывшемся после этого, выберите вариант задания, там их три — отправка электронной почты, вывод сообщения, запустить программу. Если вы хотите, чтобы планировщик задания напомнил о каком-то важно деле, то выберите пункт «Отобразить сообщение». После этого напишите текст сообщения, которое будет выводиться, и завершите настройки. Таким образом, в установленное время операционная система выдаст сообщение, которое вы записали в планировщике задания.
Теперь я расскажу вам, как использовать планировщик заданий для ускорения загрузки Windows 7. Как известно, в компьютерах многих пользователей при старте Windows загружается большое количество различных программ. Бывает так, что в автозагрузке находятся десятки различных приложений. При выходе на рабочий стол они начинают все подгружаться, и процесс затягивается на неопределенное время. Для того, чтобы снять эту проблему, мы и будем использовать планировщик заданий. Запустите «Планировщик заданий». Создайте папку, где и будут находиться ваши задачи. Для этого справа нажмите «Создать папку». После этого нажмите на пункт «Создать простую задачу». Как описано выше дайте название заданию, укажите время и сроки его выполнения. Единственное, что нужно изменить — это пункт самого задания и когда его выполнять. То есть в меню «Когда запускать задачу», отмечаем «При старте Windows». Далее нужно отметить в меню Действие — «Запустить программу». В разделе «Запуск программы» необходимо указать путь к исполнительному файлу этого приложения. Для этого воспользуйтесь кнопкой «Обзор». Что мы имеем от этих действий? Допустим, вы используете программу Punto Switcher, при входе в систему она нам сразу не нужна, поэтому лучше отсрочить ее запуск с помощью планировщика заданий. Для этого перейдите в созданную папку.
В окне по центру выберите свое задание и щелкните по нему два раза. Перед вами откроется окно настроек. В нем необходимо внизу на вкладке «Общие» отметить галочкой «Скрытая задача». На вкладке «Триггер» выделите нужную задачу, и нажать кнопку «Изменить». В новом окне в «Дополнительных параметрах» укажите время, на которое вы хотели бы отложить запуск программы.
Не забывайте сохранять изменения. Теперь при загрузке операционной системы Windows данная программа запускаться не будет. Только по истечению указанного времени, планировщик заданий запустит эту программу. Это дает возможность системе гораздо быстрее загружаться, а вам приступать к работе. Таким образом, можно добавить в планировщик заданий, практически, все программы находящиеся в автозагрузке. Увидеть их можно с помощью программы Total Commander. В нем есть возможность просмотра автозагрузки.
Теперь давайте организуем простенькое резервное копирование, какой-либо директории. Для этого напишем программу. Представляет она собой обычный пакетный файл, который будет запускать архиватор WinRar. а он в свою очередь архивировать нужную папку с содержимым в определенный диск. Запуск по расписанию организует нам планировщик заданий. Откройте Блокнот Windows и впишите туда следующие строки:
После чего сохраните этот файл под расширением .bat.
Рассмотрим действие нашего пакетного файла. Команда md j:arhive создает в диске j: папку arhive. Далее запускается архиватор WinRar и создает архив указанной нами папки и ее содержимого D:Blogowed, и в последствии информация о действиях записывается в log файл. В этом файле можно изменить букву диска, в котором будет создаваться резервная копия, и указывать любую папку для архивации. С этим разобрались. Теперь нужно наш пакетный исполнительный файл добавить в планировщик заданий. Здесь сложного ничего нет, просто выполните вышеописанную операцию по запуску программ в определенное время, только вместо программы укажите путь к созданному bat файлу .
Планировщик заданий – это инструмент, благодаря которому можно запускать ту или иную программу либо в определённое время, либо по наступлению какого-либо события. И если сейчас вы не можете найти ему применение, то в будущем эти знания будут полезны если вы столкнётесь в своей практике с вирусами, которые прописывают себя в планировщике задач и найти которые из-за этого часто бывает проблематично.
Вызвать Планировщик заданий можно через окно Выполнить (Windows+R ), введя в поле команду taskschd.msc. либо через боковое меню (Windows+C ) запустить Панель управления (Параметры – Панель управления ). Далее нужно будет перейти в папку Администрирование (папка будет видна в том случае, если в качестве отображения будут стоять либо Мелкие значки. либо Крупные значки ).
А там уже и будет ссылка на Планировщик заданий. щёлкнув по которой мы увидим саму программу.
Как видим из самого окошка программы, слева расположена древовидная структура папок, справа – список основных действий, которые мы можем производить в программе, а по центру – основная информация о том или ином элементе.
Давайте рассмотрим основные действия, которые мы можем выполнять в программе:
Создать простую задачу… — как следует из названия, создание простой задачи с помощью мастера настроек, который проведёт вас по всем шагам.
Создать задачу… — то же, что и выше, только для более опытных пользователей. То есть, все настройки придётся задавать вручную.
Импортировать задачу… — импортировать одну из ранее экспортированных задач. Бывает полезно, если вам нужно на всех компьютерах, находящихся в вашем распоряжении, спланировать одну и ту же последовательность действий.
Отображать все выполняемые задачи – отображение всех запланированных задач.
Включить журнал всех заданий – включает журнал ведения всех запланированных задач.
Стоит сказать, что все вышеперечисленные функции, которые я перечислил, нам доступны в том случае, если курсор находится на строке Планировщик заданий (Локальный). Если же мы курсор поставим на какую-либо папку, на пример на Библиотека планировщика заданий. то в правом окне поменяется список действий, которые мы сможем производить над выбранным элементом.
Появятся новые пункты:
Создать папку… — ну это как раз тот элемент, которые задаёт структуру нашего дерева слева. Нужен для того, чтобы не запутаться, где у нас что лежит.
Удалить папку… — удаление выбранной папки.
Экспорт… — позволяет экспортировать выбранную задачу, на пример если в будущем вы планируете её использовать на другом компьютере.
Этот же список действий можно вызвать щёлкнув правой кнопкой мыши по папке или задаче.
Создание простой задачи и подводные камни.Давайте для начала попробуем создать простую задачу. Для этого необходимо в списке действия выбрать пункт Создать простую задачу…
На первом шаге нам предложат ввести название для нашей задачи. Пусть это будет напоминание о том, что нам нужно не забыть купить покупки на день рождения. А саму задачу мы соответственно назовём «Напоминание о списке покупок на день рождения», например. Здесь же, можно ввести и описание вашей задачи, но не обязательно.
На втором шаге мы устанавливаем триггер. То есть событие или время, при котором наша задача будет выполняться. Я указал здесь значение – Однократно .
Далее нужно будет указать необходимое время выполнения.
На следующем шаге нам будет предложено ввести само событие. В моём случае, здесь бы мне подошёл пункт – Вывести сообщение (не рекомендуется). но не всё так просто на самом деле. И я сейчас объясню почему этот пункт выбирать не стоит.
Дело в том, что если его выбрать, то мы уже изначально пойдём по неверному пути и сейчас я объясню почему. Итак, я выбрал тот самый нерекомендуемый путь.
И на последнем шаге мне предложили ввести заголовок окна сообщения, ну и сам текст сообщения.
После чего на завершающем этапе осталось только нажать кнопку Готово .
И тут меня ждал сюрприз. Сразу же при нажатии на эту кнопку выскочило предупреждающее окно.
Поэтому с помощью кнопочки Назад. мне пришлось вернуться к тому шагу, где нужно было определить само событие и на этот раз я выбрал Запустить программу. Если повторяете все действия за мной, то выбирайте такой же пункт.
Далее я создал файл, который называется Список покупок.txt, внутри которого просто поместил текст с напоминанием:
Возвращаемся к нашему Планировщику.
В поле Программа или сценарий вводим notepad, а в поле Добавить аргументы сам путь к файлу. Он у меня находится на рабочем столе, поэтому путь получился такой C:\Users\Максим\Desktop\Список покупок.txt
Ну вот, наконец-то всё получилось.
Создание задачи без использования мастера.Выбрав данный пункт, перед вами откроется множество дополнительных настроек. Здесь вы можете задать расширенные триггеры; как при простое, так и при блокировке компьютера. Настроить запуск по графику, выбрав определённые дни месяца или дни недели.
Как видим, инструмент очень гибкий, и если ему найти применение, то он может оказаться достаточно полезным.
Ранее в этой же рубрике:Стандартный путь построения программ для микроконтроллеров основывается на применении так называемого суперлупа (superloop). Он представляет собой бесконечный цикл, в теле которого запускаются различные функции. Функции могут запускаться постоянно или в случае выполнения каких-то условий, например установки флагов.
Программы, построенные на таком принципе, обычно используются для простых приложений с небольшим количеством задач, и в которых нет требований к таймингам.
Другой способ организации микроконтроллерных программ основан на применении планировщиков. Такие программы лучше структурированы, их проще модифицировать и они позволяют задавать время запуска задач.
В этой статье мы рассмотрим один из вариантов реализации простого планировщика.
Планировщики – это одни из основных компонентов операционных систем, так как они распределяет процессорное время между задачами (процессами), создавая иллюзию параллельной работы. Планировщики подразделяются на кооперативные и вытесняющие.
В случае с кооперативными планировщиками, одиночная задача выполняется от начала и до конца. Поэтому важно, чтобы даже самая длинная задача укладывалась во временной интервал системного таймера. Такие планировщики простые и понятные.
В случае с вытесняющими планировщиками, задачам отводится определенный квант времени. По завершению выделенного времени планировщик прерывает выполнение задачи, сохраняет ее контекст и запускает на выполнение другую задачу. Спустя какое-то время, первоначальная задача будет снова запущена на выполнение с того места, на котором она была остановлена. Реализация такого планировщика более трудоемка.
Идея с кооперативным планировщиком заключается в следующем. У нас есть постоянно работающий таймер, который при переполнении перезагружается. Таймер формирует отрезки времени, используемые для синхронизации задач.
Для каждой задачи мы определяем две основные вещи – задержку перед самым первым выполнением задачи и период ее выполнения. Во время каждого прерывания таймера, запускается планировщик, который уменьшает значения счетчиков задач и помечает те из них, которые готовы к выполнению.
В главном цикле программы функция, именуемая диспетчером, выполняет помеченные задачи.
ЗадачиДавайте начнем с рассмотрения задачи. Посмотрите на следующее описание.
volatile task TaskArray[MAXnTASKS];
Мы определяем новый тип данных, именуемый task. Это структура, которая содержит в себе основные параметры задачи: указатель на функцию, временные параметры и флаг ее готовности.
Каждая задача выполняет свою функцию и чтобы это обобщить, мы используем такую вещь, как указатель - void (*pfunc) (void). Как видно из описания, это указатель на функцию, которая не принимает аргументы и ничего не возвращает. Следует оставить функции задач именно в таком виде. Если у вас есть потребность в коммуникации задач между собой, нужно обеспечить ее с помощью глобальных переменных.
Задержка до первоначального выполнения задачи и интервал между последующими запусками (переменные dalay и period)задаются в виде количества «тиков» системного таймера, в роли которого у нас выступает 8-ми разрядный таймер Т0.
Далее по коду мы задаем константу, определяющую период переполнения системного таймера, максимальное количество задач и объявляем массив для их хранения.
Частота работы системного таймера должна быть подобрана таким образом, чтобы даже самая продолжительная задача успевала завершиться в пределах одного цикла. В данном случае я выбрал 25-ти миллисекундный интервал, но он может быть и меньше.
Перейдем к функции инициализации планировщика.
void InitScheduler ( void )
Прерывание системного таймера и диспетчерЧто ж, это элементарно. Мы просто уменьшаем задержку для каждой задачи и помечаем задачи, готовые к запуску. Заметьте, что обработчик прерывания не вызывает никакие задачи, потому что должен работать быстро. Задачи запускаются из главного цикла программы с помощью специальной функции, называемой диспетчером.
Как видно из кода, переменная, в которой хранилась задержка первоначального запуска задачи, используется в качестве счетчика времени. После ее обнуления, она инициализируется значением переменной period.
Последняя функция, завершающая функционал нашего планировщика, это диспетчер. Она вызывается из основного цикла программы
void DispatchTask ( void )
for (k=0; k<MAXnTASKS; k++)
if (TaskArray[k].run == 1)
// очистка флага задачи
Тестовый проектВсесторонние испытания и доработку планировщика я оставляю на ваше усмотрение.
В качестве примера использования описанного планировщика, я предлагаю тестовый проект с тремя задачами. Задачи ничего полезного не делают, только выводят в последовательный порт определенные цифры.
#define sei() __enable_interrup t()
typedef unsigned char u8;
typedef unsigned int u16;
typedef struct task
// указатель на функцию
// задержка перед первым запуском задачи
// период запуска задачи
// флаг готовности задачи к запуску
// Константа для таймера Т0
// 25 мс при тактовой частоте
// 8 МГц и предделителе 1024
#define StartFrom 0x3D
// максимальное количество задач
#define MAXnTASKS 8
//Константа для UART`a
//скорость обмена 9600 при частоте 8 МГц
#define UBRRvalue 0x0033
volatile task TaskArray[MAXnTASKS];
void InitUART (u16 baud);
void TransmitByte (u8 data);
void InitScheduler ( void );
void UpdateScheduler( void );
void DeleteTask (u8 index);
void AddTask ( void (*taskfunc)( void ), u16 taskdelay, u16 taskperiod);
void DispatchTask ( void );
Если вы подключите вашу любимую терминальную программу и получите следующий ряд… -1 -2 - - -13 -3 -23 -3 -13 -3 -3 -23 -13 -3 -3 -3 -123 -3 -3 -3 -13 -23 -3 -3 -13 -3 -23 -3 -13 -3 -3 -23 -13 -3 -3 -3 -123. это значит, что планировщик работает.
Напоследок скажу, не желательно использовать с этой схемой прерывания. Единственное прерывание, которое должно здесь быть – это прерывание переполнения таймера. Если вы задействуете другие прерывания, задачи не смогут запускаться в точно заданное время!
ФайлыПо материалам сайта avrtutor.com. который, судя по всему, прекратил функционирование. Код полностью взят оттуда. Текст частично мой, частично переводной. Pashgan.
При помощи материала, изложенного в предыдущих пяти статьях, вы уже приобрели некоторые навыки, которые позволяют выполнять административные задачи по управлению назначенными заданиями средствами командной строки, а именно ее утилиты SchTasks. Теперь вы знаете, как можно создавать простые и сложные задачи, используя контекст /Create. Помимо этого в одной из статей была расписана концепция событийно-управляемых задач, где вы научились создавать такого рода задания при помощи графического интерфейса (а именно, используя функционал оснасток «Просмотр событий» и «Планировщик заданий» ) и используя утилиту командной строки SchTasks/Create со значением ONEVENT параметра /SC. Вы узнали о том, как можно просматривать созданные задания, используя контекст /Query утилиты SchTasks. и в последних двух статьях разобрались со структурой конфигурационных XML-файлов, в которых указываются абсолютно все настройки для создаваемого или существующего задания. В этой, заключительной статье вы узнаете об остальных контекстах утилиты SchTasks. которые помогают эффективно управлять назначенными заданиями. Вы узнаете о средствах изменения, удаления, запуска, а также о выводе ИД для указанного вами задания. Читать далее →
Начало статьи см. здесь
PrincipalsЭлемент Principals позволяет вам задать учетную запись пользователя и уровень привилегий, предназначенные для использования создаваемого задания. Вместе с этим элементом вы можете использовать следующие четыре дочерних элемента:
DisplayName. Текущий элемент определяет учетную запись пользователя, которая отображается в поле «Автор» свойств вашего задания. Пример использования: Читать далее →
Введение В предшествующих статьях данного цикла вы познакомились с утилитой SchTasks командной строки Windows, предназначенной для создания и управления простыми и усложненными заданиями. Вы уже знаете о том, что задания могут быть назначены для запуска однократно, поминутно, через указанный вами интервал времени, при загрузке системы, при входе пользователя в систему, а также при ее простое. Из предыдущих статей вы могли узнать о способах просмотра назначенных заданий при помощи командной строки – контексте /Query утилиты SchTasks командной строки, а также о различных методах создания разнообразных заданий, используя триггеры и всевозможные параметры. В предыдущей статье были расписаны все способы создания событийно-управляемых заданий (задания, которые запускаются при возникновении указанного вами события в заданном журнале). Все эти знания помогут вам избавиться от рутинной работы, автоматизировав задачи, которые вам приходится регулярно выполнять. Но для того чтобы полностью понять структуру заданий, которые вы периодически создаете, необходимо разобраться со структурой конфигурационных XML-файлов, в которых указываются абсолютно все настройки для создаваемого или существующего задания. О структуре таких файлов и пойдет далее речь в этой статье. Читать далее →
Из двух предшествующих частей статьи, посвященной управлению назначенными заданиями средствами командной строки, вы научились просматривать и создавать задания на локальном и удаленном компьютере. Вы научились работать с поднаборами команд /Query и /Create утилиты SchTasks. Как известно, почти все события, которые предоставляют важные хронологические сведения, записываются в определенные журналы событий операционной системы. Ознакомившись с материалом данной части статьи, вы узнаете обо всех доступных способах создания событийно-управляемых заданий. которые запускаются при регистрации компонентом Windows определенных событий в заданном журнале событий. Событие – это любое происшествие в операционной системе, которое записывается в журнал или требует уведомления пользователей или администраторов. Создание заданий подобного рода может вам значительно упростить процесс обслуживания клиентских компьютеров в вашей организации, так как при возникновении конкретного действия или ошибки, операционная система выполнит именно те действия, которые обычно вы используете для решения конкретной проблемы. Читать далее →
ВведениеВ предыдущей части статьи об управлении планировщиком заданий средствами командной строки вы узнали о фундаментальных отличиях планировщика заданий версии 1.0 (с которым вы, возможно, встречались в операционной системе Windows XP и в более ранних версиях) и планировщика заданий версии 2.0 (операционные системы, начиная с Windows Vista). Также была рассмотрена архитектура планировщика заданий и средства управления назначенными заданиями. Помимо этого, вы познакомились с поднабором команд /Query утилиты Schtasks, который предназначен для отображения назначенных заданий на локальном или удаленном компьютере. В этой части статьи вы узнаете о самом важном поднаборе команд данной утилиты – Schtasks /Create, при помощи которого вы можете создавать новые задания. Читать далее →
Навигация по записям