Разрешить только определенную загрузку процессора

Тема в разделе "WASM.NT.KERNEL", создана пользователем ntcdm, 3 авг 2010.

  1. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Необходимо для определенного пользователя установить лимит загрузки процессора (например, чтобы все процессы этого юзера занимали в сумме не более 30% процессорного времени).

    Понимаю, что нужно отталкиваться от процессорного времени, которое система выделяет на каждый процесс этого юзера. Только вот как? Подскажите.
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    ntcdm
    http://ru.wikipedia.org/wiki/Microsoft_Hyper-V
     
  3. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Спасибо за ответ. А реально ли такую вещь сделать на процессоре x86 и ОС Windows XP ?
     
  4. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
  5. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Про шедулер я немного знаю - приоритеты потоков, процессов, классы приоритетов и т.п.

    Меня больше интересует а) возможно ли чисто теоретически с минимальными хаками ОС Вин ХР реализовать такое.
    б) реализовывал ли кто то хотя-бы нечто подобное?
     
  6. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    я понимаю что бывают случаи когда некий код работает на повышенных уровнях IRQL и его прерывать не нужно, и опасно для стабильности ОС. Но ведь большинство кода работает на уровне PASSIVE_LEVEL и потому его можно спокойно приостанавливать.

    Пока в голову приходит только разве что по таймеру замораживать/размораживать потоки пользоателя, пока не добьешься нужного уровня загрузки процессора, но это как-то слишком медленно. Может быть в виндовом шедулере есть некоторая квота процессорного времени на каждый поток? тогда я бы ее просто уменьшил да и все.
     
  7. skomarov

    skomarov New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    389
    ntcdm
    Можно вывести диалог, в котором спросить: сколько времени пользователь собирается работать? Разрешить ввод в пределах интервала: задать минимальный и максимальный пределы. После ответа, дать пользователю 30% времени от введенного значения. :)
     
  8. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Оригинально и просто =))))

    Но все же хотелось бы узнать по существу сабжа