Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб май 27, 2017 3:40 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 81 сообщение ]  На страницу Пред. 1 2 3 4 5 6 След.
Автор Сообщение
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 8:24 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1593
art_zh писал(а):
Это воровать чужие миллисекунды неправильно.
А чем плох +10мс бонус?
Это ведь сэкономленное время, добровольно предоставленное (именно для этого!) вежливыми предыдущими процессами.

Это воровство. Если есть две ресурсоёмкие программы, то до r3504 вторая получала свои 10 мс каждые 30 мс, то есть за секунду работала 330 миллисекунд, сейчас она же получает свои 10 мс каждые 20 мс, то есть за ту же секунду работает 500 миллисекунд. Старая схема своровала 170 миллисекунд, как нетрудно вычислить.
Цитата:
так на 2 байта короче.

jnc @f / inc edx = 73 01 42, adc edx, 0 = 83 D2 00. Откуда 2 байта?
Цитата:
RT (в т.ч. диски, сеть и звук).

Чушь.

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 9:01 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
CleverMouse писал(а):
Это воровство. Если есть две ресурсоёмкие программы, то до r3504 вторая получала свои 10 мс каждые 30 мс, то есть за секунду работала 330 миллисекунд, сейчас она же получает свои 10 мс каждые 20 мс, то есть за ту же секунду работает 500 миллисекунд. Старая схема своровала 170 миллисекунд, как нетрудно вычислить.

в реальной жизни или один обжора (ему по-любому 100% достанется), или много (тогда не важно, 3% у потока или 6% - все тормозят), или у кого-то должен быть приоритет.
Никакого воровства: или одному хорошо, или всем (почти) одинаково плохо, или кто-то счастливчик.

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

Цитата:
jnc @f / inc edx = 73 01 42, adc edx, 0 = 83 D2 00. Откуда 2 байта?

81 D2 00 00 00 00 - целых 3

CleverMouse писал(а):
Чушь.

Хамство.

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


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 9:12 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1593
Цитата:
в реальной жизни или один обжора (ему по-любому 100% достанется), или много (тогда не важно, 3% у потока или 6% - все тормозят), или у кого-то должен быть приоритет.

Один обжора постоянно серьёзно чем-то занят, второй программе приспичило себя отрисовать - на некоторое время как раз две программы, занимающие столько, сколько дают.
Цитата:
81 D2 00 00 00 00 - целых 3

У тебя какой-то другой fasm?
Цитата:
Гарантированное время кванта - это совершенно необходимое условие RTOS.

Разумеется, нет. Время реакции - это совершенно необходимое условие RTOS, а оно улучшается в r3504 из-за сокращения цикла планировщика. Что не мешает ему оставаться ужасным, конечно.

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 9:26 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
CleverMouse писал(а):
Один обжора постоянно серьёзно чем-то занят, второй программе приспичило себя отрисовать - на некоторое время как раз две программы, занимающие столько, сколько дают.

Ага, вот когда спящему короткому потоку вдруг что-то приспичит отрисовать (а отрисовка займет меньше 10мс), или прочитать блок с диска/сети, или пообщаться с портами в/в...
-- именно тогда этот воровской глюк и долбанет по обжоре.

Еще раз: вариант Mario беспардонно крадет время у тех процессов, которым оно нужнее всего.

Цитата:
У тебя какой-то другой fasm?
Хм,
действительно, fasm вставляет нулевой word вместо dword...
3:3 в пользу Сержа.

Цитата:
Цитата:
Гарантированное время кванта - это совершенно необходимое условие RTOS.

Разумеется, нет. Время реакции - это совершенно необходимое условие RTOS, а оно улучшается в r3504 из-за сокращения цикла планировщика. Что не мешает ему оставаться ужасным, конечно.

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

_________________
Узкий специалист подобен флюсу: полнота его - односторонняя.
Козьма Прутков


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 10:33 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
art_zh писал(а):
Mario
Обещанный макет квантового дегенератора:
Спойлер: Показать
Код:
  
  use32             
  org    0         
  db     'MENUET01' 
  dd     1, START,  VOILA   
  dd     0x1000, 0x1000,  0,  0         
 
START:
  rdtsc
  add eax, 1600000 ; = 1миллисекунда
  jnc @f
  inc edx
@@:
  mov [keep_eax], eax
  mov [keep_edx], edx
wait_1ms:
  rdtsc
  cmp edx, [keep_edx]
  jb wait_1ms
  cmp eax, [keep_eax]
  jb wait_1ms

  mov eax, 68
  mov ebx, 1
  int 40h
  jmp START   

keep_eax  dd 0
keep_edx  dd 0
VOILA:

отгрызает 1.6млн тактов (=1мс на моем проце) от текущего кванта

т.е. в твоей версии планировщика - приватизирует (безвоздмездно!) время следующего "длинного" процесса.

поставь время задержки 9миллисекунд, а потом запусти своего обжору.
и шо, это таки-не багофича?

Код не менял, т.е. "отгрызает 1.6млн тактов", поскольку Roverbook U800 имеет частоту около 498 МГц.

Итак 3502 показывает следующую картину:
Вложение:
3502.png
3502.png [ 10.1 КБ | 1094 просмотра ]

А 3504 (специально не брал более новые версии сборок, чтобы сохранить чистоту эксперимента) уже показывает:
Вложение:
3504.png
3504.png [ 10.52 КБ | 1094 просмотра ]

Спойлер: Показать
Ожидаю прибытия Гордона Фримена.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 10:49 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
1)Ты их зачем 3 шт понавесил? (последняя идет в зачет к первым двум)
3 * 1.6М * 2.1нс = 9,7мс
какая тут чистота эксперимента?

2) На старом планировщике 1-й Example не может отъедать всего 2% - проверь версию ядра.


Последний раз редактировалось art_zh Чт май 16, 2013 10:57 pm, всего редактировалось 2 раза.

Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 10:51 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
art_zh писал(а):
Ты их зачем 3 шт понавесил? (последняя идет в зачет к первым двум)
3 * 1.6М * 0.21нс = 9,7мс
какая тут чистота эксперимента?

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

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 10:56 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
1) проверь первое ядро: если там действительно 2% - значит это уже с твом планировщиком.

2) убери последний дегенератор. двух достаточно перед первым обжорой, и одного - перед вторым

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

Спойлер: Показать
предсказываю результат на старом ядре:
d1, d2 - 6.4%
e1 - 27.2%
d3 - 6.4%
e2 - 33.6%
e3 - 20%

на новом:
d1, d2 - 10.6%
e1 - 12%
d3 - 10.6%
e2 - 22.7%
e3 - 33,3%


Спойлер: Показать
Хотя этот твой пример еще нагляднее:
2% - это всё что три революцонных хулигана оставили первому обжорке
вместо законных 35% при старом режиме...


Последний раз редактировалось art_zh Чт май 16, 2013 11:44 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Чт май 16, 2013 11:43 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Специально брал вновь распакованные из архивов ночные сборки, чтобы больше не ошибиться.
Вложение:
3502.png
3502.png [ 10.73 КБ | 1056 просмотров ]

Вложение:
3504.png
3504.png [ 10.78 КБ | 1056 просмотров ]

Спойлер: Показать
art_zh писал(а):
2% - это всё что три революцонных хулигана оставили первому обжорке
вместо 35% при старом режиме...

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

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

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Пт май 17, 2013 12:00 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Поднять частоту таймера в два раза одновременно увеличить кол-во тиков в кванте. Картинка будет намного лучше.


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Пт май 17, 2013 12:05 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Serge писал(а):
Поднять частоту таймера в два раза одновременно увеличить кол-во тиков в кванте. Картинка будет намного лучше.

Может уж сразу в 10?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Пт май 17, 2013 12:05 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Mario_r4
Для демок наверное лучше твой вариант: CleverMouse в чем-то права, цикл переключения задач действительно ускоряется. Хотя никто еще не знает к каким глюкам это может привести.

Но для серьезных задач управления процессами и цифродробилок - ни за что!

Serge
Тогда и мышь на таймер?


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Пт май 17, 2013 12:08 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Mario_r4
10 для десктопа многовато будет, имхо 250 Гц самый оптимал.
Закинь на фтп свой example, попробую один тест сделать.


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Пт май 17, 2013 12:12 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
art_zh
Как дети малые. Знаешь же прекрасно, что для серьёзных задач нужен серьёзный планировщик. В упоминавшемся QNX было три (а может и больше, точно уже не помню) разных алгоритма планирования на выбор программиста.


Вернуться к началу
 Заголовок сообщения: Re: Работа планировщика задач
СообщениеДобавлено: Пт май 17, 2013 12:14 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Serge
Закрути
START: jmp START
вот и весь example.

Цитата:
Как дети малые. Знаешь же прекрасно, что для серьёзных задач нужен серьёзный планировщик.

И так работает пока ничего другого нет - главное не ломать.

_________________
Узкий специалист подобен флюсу: полнота его - односторонняя.
Козьма Прутков


Последний раз редактировалось art_zh Пт май 17, 2013 12:23 am, всего редактировалось 2 раза.

Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 81 сообщение ]  На страницу Пред. 1 2 3 4 5 6 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB