Scheduler

Kernel architecture questions
  • А можно ли это как-то использовать? Например некоторым задачам, на свое усмотрение, давать приоритет процессорного времени? Есть задачи по управлению оборудованием, там бы это пригодилось.
  • будем делать
  • Иван Поддубный
    Я повел эксперимент еще дальше. :-)
    Запустил 3, 4 и 5 приложение.
    Получается, на первый запущенный процесс выделяется времени как на 2 обычных процесса. На все последующие процессы время делится поровну.
    Это хорошо заметно и на приложении FIRE2.
  • >Получается, на первый запущенный процесс выделяется времени как на 2 обычных процесса.

    Это означает, что после создания потока надо было увеличить какой-то счетчик (то есть перейти на следующий процесс, а не топтаться на одном и том же).
  • Как мне объяснил Поддубный, дело в предыдущем процессе - если процесс идет после icon, то он получает почти удвоенный квант времени (icon обычно быстро отказывается от своей доли), а если после процесса, использующего время по полной, то он получит лишь свой гарантированный квант времени.
  • Да, и на месте ICON может быть любой процесс, ожидающий события.
    Соответственно исправить это положение можно, не выделяя кванта времени таким процессам. Тогда проверка на события должна осуществляться в шедулере (планировщике задач).
  • да совершенно логично. Так сделано даже в винде.
  • Даже если не активировать ожидающие события процессы, распределение процессорного времени несправедливо.
    Например, работающий @RB получает событие от каждого движения мыши. Обработка события занимает много меньше 10мс.
    Таким образом, процесс, стоящий в очереди сразу после @RB, получит почти удвоенный квант времени.

    Чтобы промежутки времени распределялись справедливо, нужно вводить приоритеты процессов.
  • >Чтобы промежутки времени распределялись справедливо, нужно вводить приоритеты процессов.

    ИМХО, приоритеты существуют для того, чтобы время распределялось неравномерно :)
  • Приоритеты создают для того чтобы отдать эти самые "лишние" куски квантов процессам\потокам которые в этом реально нуждаются.
    Появляется конуренция за процессорное время.
  • Wildwest
    Справедливо - не обязательно равномерно!
    Однако с использованием динамически изменяемых приоритетов можно добиться более равномерного распределения процессора внутри одного класса задач.

    Вопрос в том, какой выбать (придумать?) алгоритм для шедулера... сколько приоритетов, каковы правила их изменения?
  • http://www.mycomp.com.ua/text/7227;jses ... D6E4E74F35
    Может тип проца причем? Тестилось ли на разных процах?
  • Дело не в процессоре, а в алгоритмах планирования, диспетчеризации задач, которые используются в ядре ОС.
  • Предлагаю выделить структуру где будет описано по 4 бита для приоритета, т.е. 16 комбинаций. Меньше только 4, чего явно мало.
  • Who is online

    Users browsing this forum: No registered users and 17 guests