ANNA
       Free Cat
       Кредо Группы 2А
  2A Представляет:
     Наши статьи
     Картины Анны
     Рассылки
     Проекты
     Книги
     Мы поддерживаем

   Написать письмо
   Послать Открытку
   Завалиться в Форум
   Потрепаться в ЧАТе
   Закрытая Гостевая
   На Главную
 

Как крайне просто манипулировать программами

    Бывают такие ситуации, когда программе не хватает процессорных мощностей. От этого просматриваемые фильмы "заикаются", игры начинают дёргаться ... особенно обидно, когда не хватает совсем "чуть-чуть". Можно ли просто решить эту проблему, без покупки нового оборудования, а если можно - то как? Оказывается, решение такой проблемы есть! Достаточно воспользоваться теми программами из предыдущей статьи Process Hacker-ом или Process Killer-ом.
    Как же это работает? Всё просто - Windows, как система, сделана на основе так называемой "вытесняемой многозадачности". А чтобы система знала "кому кого вытеснять" - программам раздаются "приоритеты". Создатели их предусмотрели 32, от 0 до 31, как бы звания, - от солдата до маршала, и, "солдат", естественно уступает "маршалу". Хотя и он получит своё время. Когда нибудь). Возможно)). В реальности этих "ступенек" используется обычно не 32, а 6 - а некоторые программы управления обычно ещё меньше разрешают. Но нам в нашей задаче неважно, сколько их - важна возможность "повысить звание" нужной программе. На короткое время - или на всё время её работы.
    На этот раз начнём с более простой программы - Process Killer-а. Запустим её(хотя я считаю, что она должна запускаться при старте системы - очень полезная программа) и вызовем её окно по Ctr+Shift+~.
    Нажмём правой кнопкой мыши на любой программе(лучше начать с верхних) и вызовем контекстное меню(картинка слева). И, если раньше нас интересовал один пункт нижней части меню, то сейчас рассмотрим верхнюю его часть. А там мы видим 4 пункта, начинающихся со слова "Приоритет:" и 4 градации - начинающийся с "самого старшего", "реального времени" и заканчивающийся "самым младшим" - "низкий". В этой программе создателем выбрано всего 4 ступени - но их вполне достаточно. Пока не будем ничего менять, а "пощёлкаем" по различным программам и посмотрим каков же их приоритет. Приоритет программы вы увидите в виде "галки" на одном из 4-х пунктов меню. Так вот, прогулявшись по различным программам, мы видим, что практически у всех приоритет стоит как "средний". И только в самом "низу", где находятся системные программы, запущенные самыми первыми, иногда встречается "высокий" приоритет. Т.е. все программы более-менее равноправны - но некоторые системные имеют возможность выполниться "впереди" остальных ... т.е. они меньше ждут, когда система разрешит им выполниться.
Process Killer - меню выбора приоритета программы Process Killer - запущен WinRAR
    Теперь для теста запустим какую-нибудь программу, которая требует много процессорных ресурсов и посмотрим что изменилось. Как хороший пример - это архиватор WinRAR в режиме архивации. Запускаем и смотрим(картинка справа).
    Ну, во-первых в чёрном окошке вверху, который является монитором потребления процессорных мощностей зелёный индикатор резко "подпрыгнул до потолка". Т.е. WinRAR начал "пожирать" процессор практически на 100%. И, во-вторых, программа WinRAR имеет слева от своего названия значок <*>. Это означает, что программа потребляет более 50% процессорной мощности. Теперь мы уже можем определить - какая же из программ реально загружает процессор.
    Теперь я проведу эксперимент, в котором уже реально покажу возможности переключения приоритета процессов. Будет запущена программа Crystal Player(это видеоплеер), в котором будет открыт для проигрывания видеофильм расширения MKV(для его декодирования требуется больше процессорных мощностей, чем для "обычного" AVI) с высоким разрешением. Реально в качестве примера будет использована запись открытия Лондонской Олимпиады в высоком разрешении. Запускаем Crystal Player, запускаем проигрывание фильма. Он запускается - но через некоторое время фильм начинает "заикаться". Ну что ж - самое время воспользоваться Process Killer-ом. Вызываем его окно, жмём правой кнопкой на программу Crystal.exe(которая, как мы видим, забирает более 50% процессора - да и монитор "позеленел" до самого верха) и выбираем "Приоритет: высокий"(картинка слева). О-о-опс! Сразу заикания прекратились(у меня во всяком случае, так и было)) )!
Process Killer - смена приоритета у Crystal.exe Process Killer - Crystal.exe с высоким приоритетом, часть програм 'подвисает'
    Поневоле возникает вопрос - а почему был выбран приоритет "высокий", а не самый старший - "реального времени". Не спешите! Давайте будем продолжать смотреть фильм и поглядывать на окошко Process Killer-а. И? Вот! ВОТ! Обратите внимание(картинка справа), что у некоторых программ слева стали мигать значки <!>! Это Process Killer сигнализирует что "программа не отвечает". А почему? Да потому что, обратившись к системе и потребовав ресурсы она получила ответ - подожди немного, сейчас более высокоуровневая программа используется. Т.е. "лейтенант" ждёт пока не обслужат "полковника"). А пока она ждёт - работать с этой программой НЕЛЬЗЯ!
    Всё это к чему? А к тому, что система приоритетов распространяется не только на "обычные" программы, но и не системные тоже. Как, например, систему чтения с диска - где этот фильм лежит. Поставим приоритет "реального времени", она "пойдёт первой", потом кусок, который она уже проиграла, закончится - и надо будет новый. Обращается к программе чтения с диска. А система и говорит программе чтения с диска - не можешь ты читать, поскольку приоритет ниже, чем у программы-плеера. А та в это время ждёт данные с диска ... вот такая коллизия)).
    Так что приоритет "реального времени" надо ставить крайне осторожно - ибо после такой установки можно "завесить" систему настолько, что поможет только перезагрузка. Даже Process Killer не поможет - он выполняется обычно в режиме "высокого" приоритета(хотя ему можно поставить и приоритет "реального времени" - но я не рекомендую такие настройки без особой необходимости).
    Зная этот механизм теперь Вы можете на короткое время(или на всё время работы программы) повышать приоритет для программ, которым надо больше ресурсов. Или понижать тем, которые "зарываются" и "отнимают" ресурсы, нужные другим программам. Хотя в этом случае можно "допонижать" до того, что программа просто встанет.
    И уже без меня спокойно сможете ответить на вопрос: "Надо ли повышать приоритет программе, исполняющейся в пустой системе, если ей не хватает ресурсов?". Пустой))? Изучите внимательно список "ниже" программы и увидите, что там находится целая куча программ и процессов. Так что правильный ответ - Да!

Process Hacker - просмотр последних программ и загруженности CPU
    Теперь перейдём к более мощному Process Hacker-у. В то время как Process Killer это скорее инструмент "оперативного реагирования" - очень быстро вызываемый, с легко запоминаемыми обозначениями, позволяющий очень оперативно вмешаться в работу программ(и системы) - то Process Hacker это уже скорее инструмент тонкого анализа ситуации в системе. Эта программа как раз даст ответ на тот вопрос, который я ставил выше - "Почему не был использован приоритет реального времени?". Посмотрим на экран программы(я оставил только самую нижнюю часть - если Вы ещё не забыли самые последние программы находятся внизу. И, увидев, что в приоритете "высокий" наша программа Crystal.exe потребляет 95.76% процессорных ресурсов(в центре экрана, отмечено синей точкой) - а все программы - 98.55%(слева внизу экрана, отмечено зелёной точкой). Если перевести на понятные термины - то от всего процессора остаётся так мало, что и система и все остальные оставшиеся программы исполняются как будто на древнем 386-м компьютере(2.75% CPU). А Вы хотели ставить "реальное время")).
Process Hacker - меню смены приоритета программ
    В Process Hacker-е, естественно, можно управлять и приоритетом исполнения программ. Нажмём правой кнопкой на нужную программу(пусть это будет Crystal.exe - только с приостановленным воспроизведением), выберем из контекстного меню Proirity(приоритет) - и видим возможность выбора. Уже из 6 вариантов. Добавились приоритеты "выше среднего" и "ниже среднего". Текущий приоритет показывается чёрной точкой в меню - и мы видим, что у неё он "высокий".
    Каково же преимущество Process Hacker-а в вопросе изменения приоритетов программ? Кроме 2-х дополнительных ступеней регулировки(которые обычно не слишком и нужны) Process Hacker может менять приоритеты и тех системных программ, которые не получается изменить Process Killer-у. Но, к слову, этих программ крайне мало. Так что преимущество в данном вопросе очень относительное - именно поэтому я рассматриваю его вторым по списку и очень коротко.
    А что же наш "любимый" "Диспетчер задач Windows"(Task Manager), который вызывается по Ctr+Shift+Del? Почему не рассматриваем его? Он совсем плох?
    Ну не то что бы был "совсем плох", НО ... В нём тоже можно изменить приоритет программы(только надо перейти в закладку "Процессы") - но с системными процессами и программами Вы не сможете этого сделать - программа просто отказывается это делать. Так что её конечно можно применять - но только если нет тех программ, которые я рассмотрел в статье.

    Статья обсуждается на Всеобщем форуме в этом топе.
    Копия статьи помещена в мой дневник.

Назад
© 1997-2022 2A Group(A.Chudnovsky, A.Serjogin)