Windows vs Linux - Как десктоп
, и игровая станция.
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.243] |
|
|
Правила раздела:
| Страницы: (1182) « Первая ... 764 765 [766] 767 768 ... 1181 1182 ( Перейти к последнему сообщению ) |
Windows vs Linux - Как десктоп
, и игровая станция.
|
Сообщ.
#11476
,
|
|
|
|
Короче, если верить MSDN, шедулинг осуществляется так. Для каждого процессора из очереди процессов, желающих выполнить свои треды берется ближайший к началу очереди, имеющий наивысший приоритет. На него переключается этот процессор. Та же операция повторяется для всех цпу.
То есть, если есть система с 2мя процессорами и на ней выполняется приоритетный процесс с двумя тредами, то треды займут оба процессора, но фиксироваться на конкретных процессорах они не будут. То есть между собой они могут меняться местами. По крайней мере опровержения этому, или какое-либо упоминание об affinity я не нашел. У best_lammer процесс занимал своим единственным рассчетным тредом скорее всего 1й процессор. |
|
Сообщ.
#11477
,
|
|
|
|
Цитата rusty_angel @ Так ты о процессе или о потоке? Насколько я помню, в таскменеджере вендовом приоритеты процессам всё-таки назначаются. Приоритет назначается потоку. Процессу назначается класс приоритета, который учитывается при рассчёте приоритета его потоков. Надо полагать, произошло примерно следующее. В момент назначения процессу класса приоритета real-time, работал один поток с приоритетом time-critical. Назначение привело к получению потоком максимального приоритета. А при наличии в системе потока с максимальным приоритетом, другие потоки процессорного времени не получат. На многопроцессорных системах возможна одновременная работа потоков с приоритетом 31 и 30, но таких, видать, просто не было. |
|
Сообщ.
#11478
,
|
|
|
|
Цитата rusty_angel @ Процесс может занимать только один процессор? Действительно, где есть инфа о том, что такое на самом приоритет RT в винде на SMP-системах?Нет такой инфы, афаик. RT priority и SMP systems - несвязанные между собой вещи. Цитата wind А при наличии в системе потока с максимальным приоритетом, другие потоки процессорного времени не получат. Ну, это очень упрощенно, и вообще говоря, не так. Даже при наличии готового к выполнению потока с более высоким приоритетом, может выполняться менее приоритетный поток, если он давно не получал процессорного времени. |
|
Сообщ.
#11479
,
|
|
|
|
Цитата Unhealer @ Это ничего не даст, т.к. потоков будет несколько, вычисления будут идти в одном, т.к. остальные отвечают за гуй и подобные ему вещи. Но все равно интересно знать, сколько у него потоков. Если 2 и меньше, то это не факт, что система рассчитана на многопроцессорность. Если больше двух, то вполне похоже на многопроцессорную конфигурацию. Кстати, а не может быть все гораздо проще? Может в настройках или конфигах нужно задать количество процессоров? Или он их сам детектит? А как тогда отличить Hyper Threading от реальной многопроцессорности? Обоснуй. Речь идет о распараллеливании потока. Один поток не может выполняться одновременно на двух процессорах. Поэтому он может быть распараллелен только таким образом: сначала выполняется на одном процессоре, потом этот процессор переключается на другие потоки, а поток выполняется в это время на другом процессоре. Поскольку время переключения исчисляется миллисекундами, то мы и имеем 50% загрузку каждого ядра, т.к. ресурсоемкий поток занимает примерно половину времени работы каждого процессора. |
|
Сообщ.
#11480
,
|
|
|
|
Цитата Hryak @ Ну, это очень упрощенно, и вообще говоря, не так. Даже при наличии готового к выполнению потока с более высоким приоритетом, может выполняться менее приоритетный поток, если он давно не получал процессорного времени. А есть где-нибудь точное описание алгоритма работы? Просто "может" и "если давно" звучит очень расплывчато. Добавлено Цитата Smike @ Кстати, а не может быть все гораздо проще? Может в настройках или конфигах нужно задать количество процессоров? Или он их сам детектит? А как тогда отличить Hyper Threading от реальной многопроцессорности? Блин, закрыли тему про ансис. Я уже сказал, что есть специальные настройки. Конкретно: параметр NUM_PROC или комманда /CONFIG,NPROC, которые задают число процессоров, которые будут использованы, и (именно и, а не или) выбор солвера, который называется AMG (за него нужно заплатить дополнительно). Все. Вопрос вроде исчерпан и нефиг его обсасывать. |
|
Сообщ.
#11481
,
|
|
|
|
Цитата Hryak @ Ну, это очень упрощенно, и вообще говоря, не так. Даже при наличии готового к выполнению потока с более высоким приоритетом, может выполняться менее приоритетный поток, если он давно не получал процессорного времени. Хм. Информационные источники, которыми я располагаю, такую возможность не допускают. Да, возможно выполнение менее приоритетного потока при ожидающем высокоприоритетном, но только если высокоприоритетный не обладает максимальным приоритетом. Цитата Unhealer @ А есть где-нибудь точное описание алгоритма работы? Просто "может" и "если давно" звучит очень расплывчато. Я сейчас смотрю в книжку Джеффри Рихтера "Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows". |
|
Сообщ.
#11482
,
|
|
|
|
Цитата Smike @ Если больше двух, то вполне похоже на многопроцессорную конфигурацию. Ну, вот у меня, например, в Проводнике 12 потоков. Под какую конфигурацию рассчитан Проводник? Цитата Unhealer Просто "может" и "если давно" звучит очень расплывчато Вот, заставил лезть в книжку. "может" - если разница в приоритетах меньше 15. "давно" - более 300 тиков системного таймера (для Windows2000, по крайней мере). Сколько в секундах - зависит от разрешения таймера, узнать которое можно вызовом GetSystemTimeAdjustment() Источник: Соломон, Руссинович "Внутреннее устройство Windows 2000". |
|
Сообщ.
#11483
,
|
|
|
|
Цитата Unhealer @ Все. Вопрос вроде исчерпан и нефиг его обсасывать. Unhealer, полегче Только наметилась очередная тема обсуждения - скоро придут остальные линуксоиды и обрушатся с критикой форточкиного планировщика задач Мы же не в тематическом разделе. |
|
Сообщ.
#11484
,
|
|
|
|
Да, ксати, чтобы уж совсем закончить с ансисом. Солвер переключается так:
![]() ![]() EQSLV, Lab, TOLER, MULT В данном случае, ![]() ![]() EQSLV, AMG,, Добавлено Цитата wind @ Unhealer, полегче Только наметилась очередная тема обсуждения - скоро придут остальные линуксоиды и обрушатся с критикой форточкиного планировщика задач Мы же не в тематическом разделе.Ну вот, поэтому лучше пофлеймить, чем объяснять кому-то, почему его софт работает не так, как он ожидает ![]() Цитата Hryak @ Вот, заставил лезть в книжку. "может" - если разница в приоритетах меньше 15. "давно" - более 300 тиков системного таймера (для Windows2000, по крайней мере). Сколько в секундах - зависит от разрешения таймера, узнать которое можно вызовом GetSystemTimeAdjustment() Большое спасибо за инфу. |
|
Сообщ.
#11485
,
|
|
|
|
Цитата Hryak @ Ну, вот у меня, например, в Проводнике 12 потоков. Для адаптации приложения под работу в многопроцессорной системе нужно побольше, чем наличие более одного-двух потоков |
|
Сообщ.
#11486
,
|
|
|
|
Цитата wind @ Хм. Информационные источники, которыми я располагаю, такую возможность не допускают. Да, возможно выполнение менее приоритетного потока при ожидающем высокоприоритетном, но только если высокоприоритетный не обладает максимальным приоритетом. Ну, противоречия между твоими и моими источниками нет. Я ведь сказал про магическое число 15. Еще добавить то, что приоритеты реального времени (16-31) динамически не изменяются, получится тот факт, что поток с 31 приоритетом может вытеснить только другой поток с 31 приоритетом. Цитата Для адаптации приложения под работу в многопроцессорной системе нужно побольше, чем наличие более одного-двух потоков Дык, и я про то же... |
|
Сообщ.
#11487
,
|
|
|
|
Цитата Smike @ Может в настройках или конфигах нужно задать количество процессоров? Или он их сам детектит? По дефолту АНСИС все сам детектит. И надо сказать что все определяет правильно. Но и в ручную все это тоже настраивается. Цитата Unhealer @ Блин, закрыли тему про ансис. Ладно бог с ним с АНСИСом разве мало ресурсоёмких программ под винду? Обидно другое а именно то что как такового выигрыша от самой многопроцессорности лично я не вижу в упор. Стоимость железа намного выше. Стоит отдать должное по крайней мере один плюс есть таскменеджер постоянно доступен всмысле даже если прога свалась нафиг и кушает все ресурсы какие только может скушать то все равно есть возможность ее вырубить. Но кроме этого К чему я? У моего любимого MAC есть серия MAC Pro это вполне нормальная серия компов с 8 процами 16 ГБ ОЗУ и 3-4 ТБ харда. Лично мне она очень нравится и я хотел бы приобрести одину из таких малюток себе домой. Так вот к чему разговор. Если перенести ситуацию на этот комп с 8мью процами то выйдет что при выставлении приложению приоритета "реального времени" это приложение займет один из 8ми процов скушая его целиком а все остальные 7мь в это время будут спокойно охлаждатся до запредельно низких температур еще замерзнут поди без работы.Это все к чему? Я конечно могу ошибаться и мало того я не претендую на истину но помоему данный бред нельзя называть "приоритетом реального времени" На однопроцессорной и однопользовательской системе для чего кстати и создана винда ее "приоритет реального времени" имеет хоть какойто смысл. Но с переходом на многопроцессорные системы а главное с увеличением числа процессоров этот самый приоритет "реального времени" в виндовом исполнении теряет всякую логику и смысл. |
|
Сообщ.
#11488
,
|
|
|
|
best_lamer
Ну вот. Больше говорить не о чем. Чувствую, что ты нифига не разобрался и не можешь послушать тех, кто что-то знает. То есть спорить с табой бессмысленно. Ты все равно не будешь слушать. Такое чувство, что если бы тебе сказали то же самое те, кто занимался их дизайном, один фиг, ты бы и им не послушал. Цитата best_lamer @ На однопроцессорной и однопользовательской системе для чего кстати и создана винда ее "приоритет реального времени" имеет хоть какойто смысл. Но с переходом на многопроцессорные системы а главное с увеличением числа процессоров этот самый приоритет "реального времени" в виндовом исполнении теряет всякую логику и смысл. Ты хоть прочитал то, что говорилось выше? Цитата best_lamer @ По дефолту АНСИС все сам детектит. И надо сказать что все определяет правильно. Но и в ручную все это тоже настраивается. Я еще повторю, что ничего он не детектит. Его нужно настраивать. Сколько раз нужно повторить, чтобы ты понял? |
|
Сообщ.
#11489
,
|
|
|
|
Цитата Unhealer @ Ну вот. Больше говорить не о чем. Чувствую, что ты нифига не разобрался и не можешь послушать тех, кто что-то знает. То есть спорить с табой бессмысленно. И ты нифига не желаешь слушать Зачем тогда винда на многопроцессорной системевообще нужна если она с ней по человечески работать не может? Цитата Unhealer @ Я еще повторю, что ничего он не детектит. Его нужно настраивать. Сколько раз нужно повторить, чтобы ты понял? Да стоят в настройках 2 процессора! Я хоть и ламер но не даун слава Аллаху. И стояли кстати сразу непосредственно после установки т.е. я их туда не вписывал а кроме меня остаются еще Ктулх и АНСИС! Я только чисто ради интереса посмотрел 2 ли там проца стоит - стояло 2!!! Так что 2 проца в настройки АНСИСА вписал Ктулх аминь. |
|
Сообщ.
#11490
,
|
|
|
|
Цитата best_lamer @ И ты нифига не желаешь слушать Зачем тогда винда на многопроцессорной системевообще нужна если она с ней по человечески работать не может? Я-то как раз пытаюсь понять, в чем твоя проблема. Почему-то у моих людей все работает по человечески и никто не жалуется. И на винде, и на распределенных системах. Цитата best_lamer @ Да стоят в настройках 2 процессора! Я хоть и ламер но не даун слава Аллаху. И стояли кстати сразу непосредственно после установки т.е. я их туда не вписывал а кроме меня остаются еще Ктулх и АНСИС! Я только чисто ради интереса посмотрел 2 ли там проца стоит - стояло 2!!! Так что 2 проца в настройки АНСИСА вписал Ктулх аминь.У тебя NUM_PROC равен двум? Солвер переключен? Лицензия на него есть? Проверь лицензию. Если ты все настроил, скорее всего дело в ней. |