Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как имитировать зависание / 9 сообщений из 9, страница 1 из 1
29.11.2013, 16:51
    #38483722
бУРов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
Отлаживаю программу-сторож. Она следит, запущена или нет другая программа (программа-цель). Если программа-цель не запущена, то моя программа ее запускает.

Также она должна отследить зависание программы-цели. Если та зависла (стала потреблять немеряно ресурсов), то нужно ее убить и запустить по-новой.

Кое-что я сделал. Если руками закрываю программу-цель, то моя программа ее перезапускает.
Теперь мне нужно эмулировать зависание программы-цели. Т.е. какую-то exe-заглушку.

Есть идеи?
...
Рейтинг: 0 / 0
29.11.2013, 17:09
    #38483759
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
Для простоты лучше их называть Master-процесс и Slave/Worker процессы.

Насчёт зависания... это сложно определять. Ведь зависнувшая программа внешне
мало чем отличается от любой другой. Можно в нее внедрить некий счётчик
который будет монотонно расти и спулить его в один файл (var/logs/slave01.counter).
Счётчик должен охватывать весь workflow алгоритма.

А мастер будет поглядывать туда и смотреть есть ли изменения счётчика за минуту времени
к примеру.

Насчёт потребления ресурсов - тут проще. Надо только задать метрики. Сколько и чего
считать порогом.
...
Рейтинг: 0 / 0
29.11.2013, 17:16
    #38483772
бУРов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
maytonНасчёт потребления ресурсов - тут проще. Надо только задать метрики. Сколько и чего
считать порогом.Это да.

А вот вроде бы в винде (а речь о ней) есть механизм счетчиков. Я хотел попробовать через виндовые счетчики.
...
Рейтинг: 0 / 0
29.11.2013, 17:31
    #38483794
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
Хм.. в MSDN всё меньше и меньше кода на С++ поиск выдаёт.
Вот есть примерчик. Можно попробовать его взять за шаблон.
http://msdn.microsoft.com/en-us/library/aa384724(v=vs.85).aspx
...
Рейтинг: 0 / 0
29.11.2013, 18:32
    #38483919
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
бУРовКое-что я сделал. Если руками закрываю программу-цель, то моя программа ее перезапускает.
Теперь мне нужно эмулировать зависание программы-цели. Т.е. какую-то exe-заглушку.

Есть идеи?

Sleep()

или если нужно именно программу -- можно соорудить небольшой батник с

pause 'Press any key'

и запускать cmd.exe
...
Рейтинг: 0 / 0
03.12.2013, 12:30
    #38487195
ДохтаР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
бУРов
Есть идеи?

А какая у вас операционака?

Если Unix / Linux , то там уже готовый сторож есть в ОС, называется init.
...
Рейтинг: 0 / 0
14.12.2013, 04:22
    #38500732
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
Не надо отслеживать зависание. Не надёжно. Надо тупо рестартовать через фиксированные интервалы времени. В микроконтроллерах вообще внешние аппаратные схемы рестартуют процессор по таймеру.
...
Рейтинг: 0 / 0
14.12.2013, 12:05
    #38500785
бУРов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
Dmitry V. LiseevНе надо отслеживать зависание. Не надёжно. Надо тупо рестартовать через фиксированные интервалы времени. В микроконтроллерах вообще внешние аппаратные схемы рестартуют процессор по таймеру.Постойте. Ведь если программа зависла, то ее сначала нужно "убить" и только после этого рстартовать.
...
Рейтинг: 0 / 0
14.12.2013, 15:43
    #38500855
Dmitry V. Liseev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать зависание
бУРовDmitry V. LiseevНе надо отслеживать зависание. Не надёжно. Надо тупо рестартовать через фиксированные интервалы времени. В микроконтроллерах вообще внешние аппаратные схемы рестартуют процессор по таймеру.Постойте. Ведь если программа зависла, то ее сначала нужно "убить" и только после этого рстартовать.Сначала вежливо предложить закрыться самой. Если за таймаут не завершилась, то сурово убивать и стартовать новую.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как имитировать зависание / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]