Login
Операционка - однопоточность и многопоточность
16.11.09 12:32
Люди, тону, помогите!
Помогите ответить на вопросы по операционной системе: нужно два примера, когда многопоточность в ОС увеличивает производительность программы, по сравнению с однопоточностью, и два примера, когда многопоточность не увеличивает производительность программы по сравнению с однопоточностью.
Я конечно могу налить теоритической "воды", мол, какая разница между этими двумя понятиями, но преподавателя интересуют конкретные примеры.
Помогите ответить на вопросы по операционной системе: нужно два примера, когда многопоточность в ОС увеличивает производительность программы, по сравнению с однопоточностью, и два примера, когда многопоточность не увеличивает производительность программы по сравнению с однопоточностью.
Я конечно могу налить теоритической "воды", мол, какая разница между этими двумя понятиями, но преподавателя интересуют конкретные примеры.
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Д мах - отлично поддерживает многопоточность
Почти все современные игры подерживают многопоточность, а старые нет )
сапёр наврятли её поддерживает. также всякая мишура типо ворда, блокнота, калькулятора, драйверов принтера, мышка...
Итого. Требовательные к ресурсам программы обвчно её поддерживают или собераются это делать.
Может вопрос надо ставить так: Какие программы поддерживают многопоточность? На сколько потоков?
3Д мах - отлично поддерживает многопоточность
Почти все современные игры подерживают многопоточность, а старые нет )
сапёр наврятли её поддерживает. также всякая мишура типо ворда, блокнота, калькулятора, драйверов принтера, мышка...
Итого. Требовательные к ресурсам программы обвчно её поддерживают или собераются это делать.
NEW 16.11.09 13:19
in Antwort Ivan_Pomidoroff 16.11.09 13:06
Sorry, операционка здесь действительно не причем, меня просто ввело в заблуждение общее название предмета.
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?
NEW 16.11.09 13:36
in Antwort JESSIKA2004 16.11.09 12:32
Многопоточность увеличивает скорость кодирования видео (и соответствено уменьшает затрачиваемое на это время), однако не уменьшает время просмотра этого видео.
NEW 16.11.09 13:52
in Antwort JESSIKA2004 16.11.09 13:19
многопоточность имеет смысл только на многопроцессорных системах с раздачей потоков по процессорам, если это поддерживается операционкой
и если в совсем примитивном случае процесс часто ждёт внешних сигналов , под это ожидание можно выделить отдельный поток
другая хитрость - создание множества потоков с целью отобрать рабочее время у других процессов. но сама система в этом случае будет ещё медленнее работать
и если в совсем примитивном случае процесс часто ждёт внешних сигналов , под это ожидание можно выделить отдельный поток
другая хитрость - создание множества потоков с целью отобрать рабочее время у других процессов. но сама система в этом случае будет ещё медленнее работать
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 16.11.09 13:53
каким это образом?
in Antwort Кот Дивуар 16.11.09 13:36
В ответ на:
Многопоточность увеличивает скорость кодирования видео (и соответствено уменьшает затрачиваемое на это время),
Многопоточность увеличивает скорость кодирования видео (и соответствено уменьшает затрачиваемое на это время),
каким это образом?
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 16.11.09 13:58
in Antwort gendy 16.11.09 13:53, Zuletzt geändert 16.11.09 13:58 (Кот Дивуар)
Понятия не имею каким образом. На двух ядрах быстрее кодируется, чем на одном.
NEW 16.11.09 13:59
in Antwort Кот Дивуар 16.11.09 13:58
так это уже многопроцессорность
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 16.11.09 14:01
in Antwort gendy 16.11.09 13:53
NEW 16.11.09 14:10
Ну и что? Многопоточность присутствует? Присутствует. Ограничения по колчеству ядер в вопросе нет.
in Antwort gendy 16.11.09 13:59, Zuletzt geändert 16.11.09 14:11 (Кот Дивуар)
В ответ на:
так это уже многопроцессорность
так это уже многопроцессорность
Ну и что? Многопоточность присутствует? Присутствует. Ограничения по колчеству ядер в вопросе нет.
NEW 16.11.09 14:24
на четырёхядерном проце программа (пусть будет 3Дмакс) загружает всё 4 ядра на 100%. Можно поставить приоритет загрузки проца (в диспечере задач) ниже и открыть паролельно ещё одну программу и спокойно в ней работать.
Также можно (в диспеччере задач) указать какие именно ядра будут трудится над поставленной задачей, например:
У вас происходит кодирование видео, процес не быстрый и может занять всё 4 ядра (не во всех приложениях, но может) в тоже время вам не охото сидеть молча а есть желание поиграть в Крайзис. открываем диспеччер задач, находим процесс отвечающий за кодирование видео (он будет сильно нагружать проц) и настраеваем его на использование ядер 0 и1. ядра 2 и3 остаются свободными. для чего? прально, для отстрелва корейских (американских) захвачиков.
..это пример ы работы с многопоточностью.
Естественно, многопоточность может работать толко на многоядерных (многопроцесорных) системах или системах имитирующих её (напримар технология Hyper-Threading).
in Antwort JESSIKA2004 16.11.09 13:19, Zuletzt geändert 16.11.09 14:29 (Ivan_Pomidoroff)
В ответ на:
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?
на четырёхядерном проце программа (пусть будет 3Дмакс) загружает всё 4 ядра на 100%. Можно поставить приоритет загрузки проца (в диспечере задач) ниже и открыть паролельно ещё одну программу и спокойно в ней работать.
Также можно (в диспеччере задач) указать какие именно ядра будут трудится над поставленной задачей, например:
У вас происходит кодирование видео, процес не быстрый и может занять всё 4 ядра (не во всех приложениях, но может) в тоже время вам не охото сидеть молча а есть желание поиграть в Крайзис. открываем диспеччер задач, находим процесс отвечающий за кодирование видео (он будет сильно нагружать проц) и настраеваем его на использование ядер 0 и1. ядра 2 и3 остаются свободными. для чего? прально, для отстрелва корейских (американских) захвачиков.
..это пример ы работы с многопоточностью.
Естественно, многопоточность может работать толко на многоядерных (многопроцесорных) системах или системах имитирующих её (напримар технология Hyper-Threading).
NEW 16.11.09 14:34
in Antwort Ivan_Pomidoroff 16.11.09 14:24
Многопоточность может работать везде, где есть само понятие потока
С количеством ядер/процессоров не связано.

- Живем один раз!
- Нет, мы умираем один раз. А живем мы каждый день.
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 помогает работе многопоточных систем но никак не заменят.
Многопото́чность - свойство платформы (например, операционной системы, JVM и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся ╚параллельно╩, то есть без предписанного порядка во времени.
Так что на одноядерном проце многопоточность не катит. и даже Hyper-Threading помогает работе многопоточных систем но никак не заменят.
NEW 16.11.09 14:40
in Antwort Ivan_Pomidoroff 16.11.09 14:37
Одно другому не противоречит, Иван.
Один поток ждет, пока юзверь ушастый нажмет эни кей, второй шерстит данные на диске. Исполняться будут параллельно
Один поток ждет, пока юзверь ушастый нажмет эни кей, второй шерстит данные на диске. Исполняться будут параллельно

- Живем один раз!
- Нет, мы умираем один раз. А живем мы каждый день.
NEW 16.11.09 14:40
in Antwort Ivan_Pomidoroff 16.11.09 14:37
Иван, ты смотришь в книгу и видишь известную фигуру.
- Живем один раз!
- Нет, мы умираем один раз. А живем мы каждый день.
NEW 16.11.09 14:42
in Antwort Kabal 16.11.09 14:40
выполняющихся ╚параллельно╩, то есть без предписанного порядка во времени.
NEW 16.11.09 14:45
in Antwort Ivan_Pomidoroff 16.11.09 14:37
Мнэ. Многопоточность подразумевает исполнение в несколько потоков. :)
Могу рассказать про программку, в которой оказалось удобно сделать много потоков, но не пускать их параллельно. А управлять ими. В любой момент времени активен был только один поток. Из н-цати.
Могу рассказать про программку, в которой оказалось удобно сделать много потоков, но не пускать их параллельно. А управлять ими. В любой момент времени активен был только один поток. Из н-цати.
NEW 16.11.09 14:46
in Antwort Ivan_Pomidoroff 16.11.09 14:42
Ну и?.. 
4 потока:
1-й ждет, когда юзверь ушастый нажмет кнопочку "А".
2-й ждет, когда юзверь ушастый нажмет кнопочку "Б".
3-й ждет, когда юзверь ушастый нажмет кнопочку "В".
4-й - рисует на экране обнаженную женщину.
Прошу указать, где имеет место быть "непараллельность", т.е. предписанный порядок по времени.
Иван, ты кто по образованию и профессии будешь? Просто любопытно...

4 потока:
1-й ждет, когда юзверь ушастый нажмет кнопочку "А".
2-й ждет, когда юзверь ушастый нажмет кнопочку "Б".
3-й ждет, когда юзверь ушастый нажмет кнопочку "В".
4-й - рисует на экране обнаженную женщину.
Прошу указать, где имеет место быть "непараллельность", т.е. предписанный порядок по времени.
Иван, ты кто по образованию и профессии будешь? Просто любопытно...
- Живем один раз!
- Нет, мы умираем один раз. А живем мы каждый день.
NEW 16.11.09 14:48
Ололошеньки-лоло
Иван, сколь давно появились многоядерные процессоры / многопроцессорные системы, доступные обывателю?
in Antwort Ivan_Pomidoroff 16.11.09 14:37
В ответ на:
Так что на одноядерном проце многопоточность не катит
Так что на одноядерном проце многопоточность не катит
Ололошеньки-лоло

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