Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Информация о приоритетах потоков и процессов, как определить, когда в системе появился 
:(
    Опции темы
takedo
Дата 27.9.2005, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



Добрый день!
Появилась проблема. Если в системе появляется более приоритетный поток(потоки) у меня может наступить "голодание", то есть моя программа со своими потоками не получит процессорное время (запускал CPUStress и понял, что это может быть проблемой). Поэтому появляется вопрос: Как отследить, что в системе появились или не появились не системные процессы(они вообще RealTime), для того, чтобы задать своим потокам равный приоритет? Главное ведь как я понимаю не только определить, что появился такой поток, но и во время(то есть до начала его работы) повысить приоритет своих потоков или снизить в случае завершения такого потока. Еще необходимо учесть, что виндовс сама повышает приоритет на некоторое время потоков, которые получили активность. Возможно ли все это осуществить? Поделитесь опытом, у кого он есть. Или идеяи, пожалуйста. smile


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
_hunter
Дата 27.9.2005, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



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


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
takedo
Дата 27.9.2005, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



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


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
_hunter
Дата 27.9.2005, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



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


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
takedo
Дата 27.9.2005, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



Цитата
( поставь рару хотябы normal и все поймеш )
- не понял.
А вообще-то я в программе делаю посылки в ComPort и получаю ответы. Все это должно отображаться. И любые изменения в параметрах устройств должны быть отображены с максимальной приближенностью ко времени реального изменения параметров. И как ты представляешь решение такого вопроса?


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
_hunter
Дата 27.9.2005, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



Цитата
- не понял.

ты писал:
Цитата
, писать архивы и т.д..

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

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


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
takedo
Дата 27.9.2005, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



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


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
_hunter
Дата 27.9.2005, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



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


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
takedo
Дата 27.9.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



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


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
takedo
Дата 27.9.2005, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



так нет что-ли способа все-таки хотя бы узнать, когда загружается другой процесс?


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
_hunter
Дата 27.9.2005, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



1: значит нужно выставлять максимальные приоритеты.
2: http://www.rsdn.ru/forum/Message.aspx?mid=562207
и дальше по ссылкам smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
takedo
Дата 4.10.2005, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



можно обойтись и не выставляя максимальные приоритеты, немного подумав, можно их менять по ходу дела! smile


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
mo3art
Дата 4.10.2005, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 29.9.2005
Где: пло не та 3 емля

Репутация: нет
Всего: нет



Цитата(takedo @ 27.9.2005, 12:20)
если запустить программу с максимальным приоритетом, то система будет а) тормозить, б) никакие другие программы не смогут работать

- я чего-то не понимаю... если программа написана правильно, то она загружает ресурсы именно настолько, насколько ей они требуются - таким образом получается что "торможение" компа и работа других программ не должны зависеть от приоритета твоей программы. Чтение портов выполняй с максимальным приоритетом, а рисование и скидывание на диск с нормальным... расчётные задачи тоже можно выполнять с повышенным приоритетом, но не с реалтайм - использование объектов синхронизации спасёт процессор от ненужной работы... smile

ЗЫ - кстати, процесс с большим приоритетом ты просто не увидишь из своей программы - она вообще не попадёт на проц пока такой процесс юзает систему... smile))
ЗЗЫ - Имхо, менять приоритеты это шаманство...
ЗЗЗЫ - хотя конечно, если хочется, можешь изловчиться перехватывать вызовы CreateProcess и CreateThread ;)
PM MAIL   Вверх
takedo
Дата 5.10.2005, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



Цитата
- я чего-то не понимаю... если программа написана правильно

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


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
mo3art
Дата 5.10.2005, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 29.9.2005
Где: пло не та 3 емля

Репутация: нет
Всего: нет



Цитата(takedo @ 5.10.2005, 14:09)
А чего не понятного

- непонятно почему твоя программа при повышении приоритета загружает систему только это... smile но, как говорится, проехали...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1076 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.