Вход на сайт
Операционка - однопоточность и многопоточность
NEW 16.11.09 12:32
Люди, тону, помогите!
Помогите ответить на вопросы по операционной системе: нужно два примера, когда многопоточность в ОС увеличивает производительность программы, по сравнению с однопоточностью, и два примера, когда многопоточность не увеличивает производительность программы по сравнению с однопоточностью.
Я конечно могу налить теоритической "воды", мол, какая разница между этими двумя понятиями, но преподавателя интересуют конкретные примеры.
Помогите ответить на вопросы по операционной системе: нужно два примера, когда многопоточность в ОС увеличивает производительность программы, по сравнению с однопоточностью, и два примера, когда многопоточность не увеличивает производительность программы по сравнению с однопоточностью.
Я конечно могу налить теоритической "воды", мол, какая разница между этими двумя понятиями, но преподавателя интересуют конкретные примеры.
NEW 16.11.09 13:06
А причём тут операционка?
Может вопрос надо ставить так: Какие программы поддерживают многопоточность? На сколько потоков?
3Д мах - отлично поддерживает многопоточность
Почти все современные игры подерживают многопоточность, а старые нет )
сапёр наврятли её поддерживает. также всякая мишура типо ворда, блокнота, калькулятора, драйверов принтера, мышка...
Итого. Требовательные к ресурсам программы обвчно её поддерживают или собераются это делать.
Может вопрос надо ставить так: Какие программы поддерживают многопоточность? На сколько потоков?
3Д мах - отлично поддерживает многопоточность
Почти все современные игры подерживают многопоточность, а старые нет )
сапёр наврятли её поддерживает. также всякая мишура типо ворда, блокнота, калькулятора, драйверов принтера, мышка...
Итого. Требовательные к ресурсам программы обвчно её поддерживают или собераются это делать.
NEW 16.11.09 13:19
в ответ Ivan_Pomidoroff 16.11.09 13:06
Sorry, операционка здесь действительно не причем, меня просто ввело в заблуждение общее название предмета.
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?
NEW 16.11.09 13:52
в ответ JESSIKA2004 16.11.09 13:19
многопоточность имеет смысл только на многопроцессорных системах с раздачей потоков по процессорам, если это поддерживается операционкой
и если в совсем примитивном случае процесс часто ждёт внешних сигналов , под это ожидание можно выделить отдельный поток
другая хитрость - создание множества потоков с целью отобрать рабочее время у других процессов. но сама система в этом случае будет ещё медленнее работать
и если в совсем примитивном случае процесс часто ждёт внешних сигналов , под это ожидание можно выделить отдельный поток
другая хитрость - создание множества потоков с целью отобрать рабочее время у других процессов. но сама система в этом случае будет ещё медленнее работать
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 16.11.09 14:24
на четырёхядерном проце программа (пусть будет 3Дмакс) загружает всё 4 ядра на 100%. Можно поставить приоритет загрузки проца (в диспечере задач) ниже и открыть паролельно ещё одну программу и спокойно в ней работать.
Также можно (в диспеччере задач) указать какие именно ядра будут трудится над поставленной задачей, например:
У вас происходит кодирование видео, процес не быстрый и может занять всё 4 ядра (не во всех приложениях, но может) в тоже время вам не охото сидеть молча а есть желание поиграть в Крайзис. открываем диспеччер задач, находим процесс отвечающий за кодирование видео (он будет сильно нагружать проц) и настраеваем его на использование ядер 0 и1. ядра 2 и3 остаются свободными. для чего? прально, для отстрелва корейских (американских) захвачиков.
..это пример ы работы с многопоточностью.
Естественно, многопоточность может работать толко на многоядерных (многопроцесорных) системах или системах имитирующих её (напримар технология Hyper-Threading).
В ответ на:
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?
Ладно, каким образом тот же 3DMax может поддерживать многопоточность - например, обработку какого-нибудь объекта (например, обработка сложной текстуры) можно вывести в фоновый процесс, и, например , параллельно создавать другой объект?
на четырёхядерном проце программа (пусть будет 3Дмакс) загружает всё 4 ядра на 100%. Можно поставить приоритет загрузки проца (в диспечере задач) ниже и открыть паролельно ещё одну программу и спокойно в ней работать.
Также можно (в диспеччере задач) указать какие именно ядра будут трудится над поставленной задачей, например:
У вас происходит кодирование видео, процес не быстрый и может занять всё 4 ядра (не во всех приложениях, но может) в тоже время вам не охото сидеть молча а есть желание поиграть в Крайзис. открываем диспеччер задач, находим процесс отвечающий за кодирование видео (он будет сильно нагружать проц) и настраеваем его на использование ядер 0 и1. ядра 2 и3 остаются свободными. для чего? прально, для отстрелва корейских (американских) захвачиков.
..это пример ы работы с многопоточностью.
Естественно, многопоточность может работать толко на многоядерных (многопроцесорных) системах или системах имитирующих её (напримар технология Hyper-Threading).
NEW 16.11.09 14:37
Я имею в виду полноценную многопоточность а не когда два потока выполняются по очереди. Многопоточность подрозумевает паралельное исполнение.
Многопото́чность - свойство платформы (например, операционной системы, JVM и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся ╚параллельно╩, то есть без предписанного порядка во времени.
Так что на одноядерном проце многопоточность не катит. и даже Hyper-Threading помогает работе многопоточных систем но никак не заменят.
Многопото́чность - свойство платформы (например, операционной системы, JVM и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся ╚параллельно╩, то есть без предписанного порядка во времени.
Так что на одноядерном проце многопоточность не катит. и даже Hyper-Threading помогает работе многопоточных систем но никак не заменят.
NEW 16.11.09 14:45
в ответ Ivan_Pomidoroff 16.11.09 14:37
Мнэ. Многопоточность подразумевает исполнение в несколько потоков. :)
Могу рассказать про программку, в которой оказалось удобно сделать много потоков, но не пускать их параллельно. А управлять ими. В любой момент времени активен был только один поток. Из н-цати.
Могу рассказать про программку, в которой оказалось удобно сделать много потоков, но не пускать их параллельно. А управлять ими. В любой момент времени активен был только один поток. Из н-цати.
NEW 16.11.09 14:46
в ответ Ivan_Pomidoroff 16.11.09 14:42
Ну и?.. 
4 потока:
1-й ждет, когда юзверь ушастый нажмет кнопочку "А".
2-й ждет, когда юзверь ушастый нажмет кнопочку "Б".
3-й ждет, когда юзверь ушастый нажмет кнопочку "В".
4-й - рисует на экране обнаженную женщину.
Прошу указать, где имеет место быть "непараллельность", т.е. предписанный порядок по времени.
Иван, ты кто по образованию и профессии будешь? Просто любопытно...

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

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