100% CPU
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



100% CPU Expand / Collapse
Автор
Сообщение
12.03.2007 23:53
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.02.2008 19:48
Сообщ.: 480, Visits: 5 178
Никак не пойму, как получается, что если один поток нагружает процессор на 100% (например, примитивный цикл), то все остальное умирает. Ведь система вроде должна заботиться выделять ресурсы поровну всем желающим. Или тут нет формального равного подхода? 
Сообщ. #911460
13.03.2007 0:03
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.04.2007 19:12
Сообщ.: 548, Visits: 5 276
Почему "система" должна выделять всем поровну? Есть понятие приоритетов например.
Сообщ. #911461
13.03.2007 0:09
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.04.2007 19:12
Сообщ.: 548, Visits: 5 276
Кроме того, представь: в системе есть два потока с одинаковым приоритетом. Один загружает процессор на 100% в течении своего кванта, а второй тоже что-то делает, но при этом на 100% процессор не загружает. Как ты думаешь, логично увеличить квант тому процессу, который работает на приделе? Или лучше поровну распределить процессор, но при этом первый процесс будет "голодать", а второй будет использовать процессор только половину отведенного ему времени?
Сообщ. #911462
13.03.2007 13:18
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 03.04.2008 13:12
Сообщ.: 1 297, Visits: 12 498
если 2 процсса интенсивно потребляют ресурсы CPU, то каждый из них получит по 50%, если один процесс "спит", а другой интенсивно потребляет, то распределение будет 0% - 100%

обычно большинство процессов (задач) находятся в "полусонном" состоянии, тебуют пиковой активности на пару секунд, а в остальное время практически не потребляют ресурсов системы

бесконечный цикл (даже если и пустой) без sleep-вставок постоянно требует максимально доступные ресурсы от CPU, потому что он постоянно работает, отсюда и вытекает 100% для данного процесса, потому как все остальные процессы "спят"

если запустить 2 процесса с бесконечным пустым циклом, то ресурсы CPU распределяться примерно равномерно 50% - 50%

примерно так :)
Сообщ. #911470
13.03.2007 15:20
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.02.2008 19:48
Сообщ.: 480, Visits: 5 178
Конечно, вроде логично дать больше ресурса работающему процессу. Однако типичная ситуация случается, когда один поток крутится вхолостую (как правило это ошибка программирования), а другие просто умирают. Даже другие приложения в системе замедляются. Теперь представьте себе, что пользователь одновременно работает с двумя приложениями от конкурирующих поставщиков. Например, смотрит потоки новостей от двух провайдеров. И одно приложение может таким способом (имитацией деятельности) забрать все ресурсы, заблокировать другое. 

Впрочем, что имеем то и имеем. Примерно понятно, что ресурс в виде кванта процессорного времени делится не поровну, а учитывается состояние процесса. 

Сообщ. #911488
14.03.2007 10:57
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 03.04.2008 13:12
Сообщ.: 1 297, Visits: 12 498
может ошибка программы, а может сложные математические вычисления, рассчет какой-нибудь задачи, архивирование файла, шифрование данных или еще чего, вы же не хотите, чтобы процесс который потенциально можно завершить за 30 мин. продолжался бы в течении 1 часа ;)
Сообщ. #911534
14.03.2007 15:29
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.02.2008 19:48
Сообщ.: 480, Visits: 5 178
В некоторых случаях именно хочу. Хочу, чтобы приложение имело гарантированный ресурс. Стоит запустить к примеру WinZip, и все остальное тормозится. Теперь представьте, ваше приложение, постоянно обменивающееся с сервером информацией, работает у клиента. Клиент между делом запускает архиватор. Ваше приложение начинает тормозиться, сервер обрывает соединение.  У клиента претензия к вам, а вы и не в курсе, что клиенту вздумалось запустить параллельно архиватор или видео в интернете посмотреть.
Сообщ. #911553
14.03.2007 17:21
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 03.04.2008 13:12
Сообщ.: 1 297, Visits: 12 498
тогда нужно использовать RealTime OS, а не Windows
Сообщ. #911556
14.03.2007 18:28