русский
Germany.ruForen → Архив Досок→ Computer & Co

Операционка - однопоточность и многопоточность

640  1 2 3 4 alle
JESSIKA2004 местный житель16.11.09 12:32
JESSIKA2004
16.11.09 12:32 
Люди, тону, помогите!
Помогите ответить на вопросы по операционной системе: нужно два примера, когда многопоточность в ОС увеличивает производительность программы, по сравнению с однопоточностью, и два примера, когда многопоточность не увеличивает производительность программы по сравнению с однопоточностью.
Я конечно могу налить теоритической "воды", мол, какая разница между этими двумя понятиями, но преподавателя интересуют конкретные примеры.
#1 
Ivan_Pomidoroff старожил16.11.09 13:06
Ivan_Pomidoroff
NEW 16.11.09 13:06 
in Antwort JESSIKA2004 16.11.09 12:32, Zuletzt geändert 16.11.09 13:10 (Ivan_Pomidoroff)
А причём тут операционка?
Может вопрос надо ставить так: Какие программы поддерживают многопоточность? На сколько потоков?
3Д мах - отлично поддерживает многопоточность
Почти все современные игры подерживают многопоточность, а старые нет )
сапёр наврятли её поддерживает. также всякая мишура типо ворда, блокнота, калькулятора, драйверов принтера, мышка...
Итого. Требовательные к ресурсам программы обвчно её поддерживают или собераются это делать.
#2 
JESSIKA2004 местный житель16.11.09 13:19
JESSIKA2004
NEW 16.11.09 13:19 
in Antwort Ivan_Pomidoroff 16.11.09 13:06
Sorry, операционка здесь действительно не причем, меня просто ввело в заблуждение общее название предмета.
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?

#3 
Кот Дивуар коренной житель16.11.09 13:36
Кот Дивуар
NEW 16.11.09 13:36 
in Antwort JESSIKA2004 16.11.09 12:32
Многопоточность увеличивает скорость кодирования видео (и соответствено уменьшает затрачиваемое на это время), однако не уменьшает время просмотра этого видео.
#4 
gendy Dinosaur16.11.09 13:52
gendy
NEW 16.11.09 13:52 
in Antwort JESSIKA2004 16.11.09 13:19
многопоточность имеет смысл только на многопроцессорных системах с раздачей потоков по процессорам, если это поддерживается операционкой
и если в совсем примитивном случае процесс часто ждёт внешних сигналов , под это ожидание можно выделить отдельный поток
другая хитрость - создание множества потоков с целью отобрать рабочее время у других процессов. но сама система в этом случае будет ещё медленнее работать

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#5 
gendy Dinosaur16.11.09 13:53
gendy
NEW 16.11.09 13:53 
in Antwort Кот Дивуар 16.11.09 13:36
В ответ на:
Многопоточность увеличивает скорость кодирования видео (и соответствено уменьшает затрачиваемое на это время),

каким это образом?

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#6 
Кот Дивуар коренной житель16.11.09 13:58
Кот Дивуар
NEW 16.11.09 13:58 
in Antwort gendy 16.11.09 13:53, Zuletzt geändert 16.11.09 13:58 (Кот Дивуар)
Понятия не имею каким образом. На двух ядрах быстрее кодируется, чем на одном.
#7 
gendy Dinosaur16.11.09 13:59
gendy
NEW 16.11.09 13:59 
in Antwort Кот Дивуар 16.11.09 13:58
так это уже многопроцессорность

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#8 
Kabal коренной житель16.11.09 14:01
Kabal
NEW 16.11.09 14:01 
in Antwort gendy 16.11.09 13:53
Что удивляет?
- Живем один раз! - Нет, мы умираем один раз. А живем мы каждый день.
#9 
Кот Дивуар коренной житель16.11.09 14:10
Кот Дивуар
NEW 16.11.09 14:10 
in Antwort gendy 16.11.09 13:59, Zuletzt geändert 16.11.09 14:11 (Кот Дивуар)
В ответ на:
так это уже многопроцессорность

Ну и что? Многопоточность присутствует? Присутствует. Ограничения по колчеству ядер в вопросе нет.
#10 
Ivan_Pomidoroff старожил16.11.09 14:24
Ivan_Pomidoroff
NEW 16.11.09 14:24 
in Antwort JESSIKA2004 16.11.09 13:19, Zuletzt geändert 16.11.09 14:29 (Ivan_Pomidoroff)
В ответ на:
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?

на четырёхядерном проце программа (пусть будет 3Дмакс) загружает всё 4 ядра на 100%. Можно поставить приоритет загрузки проца (в диспечере задач) ниже и открыть паролельно ещё одну программу и спокойно в ней работать.
Также можно (в диспеччере задач) указать какие именно ядра будут трудится над поставленной задачей, например:
У вас происходит кодирование видео, процес не быстрый и может занять всё 4 ядра (не во всех приложениях, но может) в тоже время вам не охото сидеть молча а есть желание поиграть в Крайзис. открываем диспеччер задач, находим процесс отвечающий за кодирование видео (он будет сильно нагружать проц) и настраеваем его на использование ядер 0 и1. ядра 2 и3 остаются свободными. для чего? прально, для отстрелва корейских (американских) захвачиков.
..это пример ы работы с многопоточностью.
Естественно, многопоточность может работать толко на многоядерных (многопроцесорных) системах или системах имитирующих её (напримар технология Hyper-Threading).
#11 
Kabal коренной житель16.11.09 14:34
Kabal
NEW 16.11.09 14:34 
in Antwort Ivan_Pomidoroff 16.11.09 14:24
Многопоточность может работать везде, где есть само понятие потока С количеством ядер/процессоров не связано.
- Живем один раз! - Нет, мы умираем один раз. А живем мы каждый день.
#12 
Ivan_Pomidoroff старожил16.11.09 14:37
Ivan_Pomidoroff
NEW 16.11.09 14:37 
in Antwort Kabal 16.11.09 14:34, Zuletzt geändert 16.11.09 14:41 (Ivan_Pomidoroff)
Я имею в виду полноценную многопоточность а не когда два потока выполняются по очереди. Многопоточность подрозумевает паралельное исполнение.
Многопото́чность - свойство платформы (например, операционной системы, JVM и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся ╚параллельно╩, то есть без предписанного порядка во времени.
Так что на одноядерном проце многопоточность не катит. и даже Hyper-Threading помогает работе многопоточных систем но никак не заменят.
#13 
Kabal коренной житель16.11.09 14:40
Kabal
NEW 16.11.09 14:40 
in Antwort Ivan_Pomidoroff 16.11.09 14:37
Одно другому не противоречит, Иван.
Один поток ждет, пока юзверь ушастый нажмет эни кей, второй шерстит данные на диске. Исполняться будут параллельно
- Живем один раз! - Нет, мы умираем один раз. А живем мы каждый день.
#14 
Kabal коренной житель16.11.09 14:40
Kabal
NEW 16.11.09 14:40 
in Antwort Ivan_Pomidoroff 16.11.09 14:37
Иван, ты смотришь в книгу и видишь известную фигуру.
- Живем один раз! - Нет, мы умираем один раз. А живем мы каждый день.
#15 
Ivan_Pomidoroff старожил16.11.09 14:42
Ivan_Pomidoroff
NEW 16.11.09 14:42 
in Antwort Kabal 16.11.09 14:40
выполняющихся ╚параллельно╩, то есть без предписанного порядка во времени.
#16 
MrSanders местный житель16.11.09 14:45
NEW 16.11.09 14:45 
in Antwort Ivan_Pomidoroff 16.11.09 14:37
Мнэ. Многопоточность подразумевает исполнение в несколько потоков. :)
Могу рассказать про программку, в которой оказалось удобно сделать много потоков, но не пускать их параллельно. А управлять ими. В любой момент времени активен был только один поток. Из н-цати.
#17 
Kabal коренной житель16.11.09 14:46
Kabal
NEW 16.11.09 14:46 
in Antwort Ivan_Pomidoroff 16.11.09 14:42
Ну и?..
4 потока:
1-й ждет, когда юзверь ушастый нажмет кнопочку "А".
2-й ждет, когда юзверь ушастый нажмет кнопочку "Б".
3-й ждет, когда юзверь ушастый нажмет кнопочку "В".
4-й - рисует на экране обнаженную женщину.
Прошу указать, где имеет место быть "непараллельность", т.е. предписанный порядок по времени.
Иван, ты кто по образованию и профессии будешь? Просто любопытно...
- Живем один раз! - Нет, мы умираем один раз. А живем мы каждый день.
#18 
Kabal коренной житель16.11.09 14:48
Kabal
NEW 16.11.09 14:48 
in Antwort Ivan_Pomidoroff 16.11.09 14:37
В ответ на:
Так что на одноядерном проце многопоточность не катит

Ололошеньки-лоло
Иван, сколь давно появились многоядерные процессоры / многопроцессорные системы, доступные обывателю?
- Живем один раз! - Нет, мы умираем один раз. А живем мы каждый день.
#19 
gendy Dinosaur16.11.09 14:54
gendy
NEW 16.11.09 14:54 
in Antwort Kabal 16.11.09 14:01
В ответ на:
Что удивляет?

то что на однопроцессорной системе или без поддержки многопроцессорности многопоточная программа будет работать медленнее чем однопоточная , или забирать ресурсы у других процессов. переключение потоков по шайбе довольно трудоёмкий процесс.

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#20 
1 2 3 4 alle