реклама на сайте
подробности

 
 
> Распределение ресурсов процессора в Windows
Игорь_M
сообщение Apr 20 2012, 04:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 4-03-08
Пользователь №: 35 632



Здравствуйте!

Я недавно наблюдал демонстрацию применения технологии адаптивного квотирования в QNX. То есть возможность выделить гарантированный процент процессорного времени приложению.
Для Windows нашел только возможность ограничить максимальное процессорное время, отводимое процессу (http://www.cyberguru.ru/operating-systems/windows-server2008/server2008-srm.html).
Вопрос: есть ли в Windows механизмы, позволяющие гарантировать процессу процент времени владения процессором.

P.S.: я понимаю, что для получения указанных возможностей существуют RTOS. Но мне надо точно знать о наличии или отсутствии вышеописанного механизма в Windows. Это нужно, чтобы с уверенностью сказать начальству: "Windows не может этого сделать, поэтому мне нужна RTOS и я буду тратить свое рабочее время на то, чтобы с ней разобраться".
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
V_G
сообщение Apr 21 2012, 00:50
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Про время не скажу, приоритетами потоков можно управять через SetThreadPriority
Go to the top of the page
 
+Quote Post
Игорь_M
сообщение Apr 22 2012, 06:49
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 4-03-08
Пользователь №: 35 632



QUOTE (V_G @ Apr 21 2012, 03:50) *
Про время не скажу, приоритетами потоков можно управять через SetThreadPriority

Да, спасибо, с winAPI из сферы управления потоками я знаком. этого мало для обеспечения гарантированного времени захвата процессора.
Go to the top of the page
 
+Quote Post
_sv_
сообщение May 10 2012, 07:12
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 6-03-11
Пользователь №: 63 436



Цитата(Игорь_M @ Apr 22 2012, 08:49) *
с winAPI из сферы управления потоками я знаком. этого мало для обеспечения гарантированного времени захвата процессора.

Вы как-то так ставите задачу, что ответа на нее не найти. Что вам, собственно, надо сделать?
Вам надо, что бы sheduler насильно заставил уснуть готовую и активную задачу?
Нет. Win такого не сделает. Готова - работай. Нужен квант времени - используй таймеры.

Гарантировать то, что Ваша программа получит управление строго по истечении времени Win не сможет.
Равно как и не сможет гарантировать непрерывность работы в течении какого-то времени.

Ну, если не полезете в драйвера, конечно. Там сможете многое.
Но с вашей постановкой задачи виндовс перестанет быть самим собой.
Скажем так: CLI в виндовс - моветон. Из этого вытекает все. Ну... почти все.

P.S. Добавил: А вообще ответ на ваш вопрос либо
- "однозначно ДА" в том смысле, что Win позволяет работать и задачам с высоким приоритетом и низким одновременно.
- "однозначно НЕТ" в том смысле, что никто не выключит готовую и активную задачу если есть свободное время.

Сообщение отредактировал _sv_ - May 10 2012, 07:20
Go to the top of the page
 
+Quote Post
gerber
сообщение May 10 2012, 08:47
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Цитата(_sv_ @ May 10 2012, 11:12) *
Вам надо, что бы sheduler насильно заставил уснуть готовую и активную задачу?
Нет. Win такого не сделает. Готова - работай.

То есть, Вы хотите сказать, что задача, состоящая из одного бесконечного цикла, полностью подвесит остальные процессы ?

Цитата(Игорь_M @ Apr 20 2012, 08:56) *
Вопрос: есть ли в Windows механизмы, позволяющие гарантировать процессу процент времени владения процессором.

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

Однако, если вопрос был о выделении какого-то определённого процента времени CPU, скажем, 10% процессу А, 5% процессу Б (адаптивное квотирование) - то таких возможностей в Win нет.

Сообщение отредактировал gerber - May 10 2012, 08:51


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 14:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016