|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Май 16, 2004 18:16:56 Господа Многозадачники! Убедительно прошу просмотреть аттач. Накачав кучу инфу пытаюсь написать реферат, найдя ядро истины. Поэтому не поленитесь заглянуть внутрь аттача и выразить свое мнение: ткнув пальцем на ошибки и просто посоветовать, как оформить мысли в слова, да и просто что еще рекомендуются указать и написать. С уважением обкурившееся Злое Прерывание! +P.S.: Для препода это надо на С++ 200404388__Threads.doc |
|
|
Дата: Май 16, 2004 18:35:03 у меня не открылся .doc сохрани в .rtf |
|
|
Дата: Май 16, 2004 18:37:05 Завязывай курить, а то файл не открывается. Правла у меня open office |
|
|
Дата: Май 16, 2004 20:31:48 · Поправил: Безпощадный даос Я не знаю какого хрена кто-то был настолько совершенномудрым, что не посчитал нужным объяснить причину HELHEIM`а, но остаётся лишь преклонить голову перед его величием! 2120267178__Threads.rtf |
|
|
Дата: Май 16, 2004 22:40:55 Чисто от делать нечего почитал. Веселые определение объектов ядра, таких как поток и процесс. Читай Рихтера. Неточностей много. Если обо всех говорить, то легче приаттачить уже готовый документ. ЗюЫю без обид :-) |
|
|
Дата: Май 16, 2004 22:49:53 · Поправил: Безпощадный даос PavPS Читать му-му, один кричит а это б, второй в каком ряду. А между тем мне реферат катать надо! ДА и самому жутко интересно. НА Рихтера времени практически не остается, т.к. еще зараза по передаче сигналов курсач висит. Жопа! Объсни хоть как - нить по понятней, чтоб хоть как-нить разобраться где "-", а где "+"! |
|
|
Дата: Май 16, 2004 23:09:39 imho создание множества потоков не увеличивает скорость, а в лучшем случае незначительно уменьшает. Потоки создаются для удобства реализации некоторых алгоритмов. JA, JE - команды ветвления. Программы могут останавливать действие по выполнению своего кода, чтобы другие программы тоже могли выполнять свой код Это afaik в виндос 3.1 так было. Теперь переключением задач занимается ОС. Thread кое-где переводят как нить. Вообще, imho - это еще вопрос, как его правильно назвать. И надо ли это. Вот что говорит Lingvo: (а преподам нравятся пустые красивые слова) thread 1) поток; нить ( создаваемый Windows объект (один или несколько) внутри процесса, который выполняет инструкции программы; потоки позволяют осуществлять параллельное выполнение процессов и одновременное выполнение одним процессом различных частей программы на различных процессорах ) process 1) процесс ( в Windows - выполняемое приложение с собственным виртуальным адресным пространством, кодом, данными и другими ресурсами операционной системы, такими как файлы, каналы и синхронизирующие объекты; может иметь один или несколько потоков, выполняемых в контексте данного процесса ) multitasking многозадачность ( организация вычислительных процессов в операционной системе, при которой компьютер выполняет одновременно (или псевдоодновременно) несколько задач ) preemptive multitasking вытесняющая многозадачность; многозадачный режим с приоритетами ( обеспечивает операционной системе возможность захвата процессора в любой момент времени, независимо от состояния работающих приложений ) |
|
|
Дата: Май 16, 2004 23:51:10 Не устаю я удивляться многообразию Дао.. Смысл некоторых слов с первого взгдяда и не понять :). |
|
|
Дата: Май 17, 2004 01:10:35 2 S_T_A_S_ "а в лучшем случае незначительно уменьшают скорость". По-моему всё наоборот. При умелом использовании потоков, достигается наибольшая скорость решения задачи. Хотя вопрос необнозначный, но наиболее заметно на моменте общения с "тормозными" внешними устройствами. Глупый пример: Тебе надо отсортировать данные из 10 файлов для каждого и записать результат в соответствующие файлы на дискету. На сортировать же все файлы сразу и разом писать. Можно прочитать первый, начать сортировать,начинать читать второй,как отсортируешь, даешь команду писать,юзаешь уже считаный второй,даешь команду читать третий. А вот на счет того, что множество потоков помогает реализации алгоритмов, так imho, это только путает синхронизацией. Хотя это тема перекликается с первой. Таков мой взгляд(мнение). |
|
|
Дата: Май 17, 2004 17:23:32 PavPS Вот как я вижу картину: Пусть есть проц 500МГц. Для простоты будем считать, что он выполняет 500Млн любых операций в секунду. Путь у нас есть задача: @@: INC EAX JMP @B Понятно, что за секунду будет выполненно 250Млн операций INC. Теперь создадим 2ю точно такуюже задачу. (переключение между задачами пока нас не волнует - оно просто есть и всё) Понятно, что теперь в каждой задаче за секунду будет выполненно 125Млн операций INC. В сумме - это теже 250Млн, что и выше. Т.е. видно, что суммарная производительность не увеличилась. теперь посмотрим на переключение задач. Что при этом происходит? Помимо всего прочего, происходит сохранение контекста задачи. Т.е. ригистров процессора. Но эта операция не бесплатна! На неё тоже тратится время. Таким образом получаем: КОЛИЧЕСТВО_ОПЕРАЦИЙ (INC) = 2 * 125Млн - C. Где С - зависит от времени потраченного на переключение контектов задач. А те примеры с файлами ^^ - это и есть удобство реализации алгоритмов. |
|
|
Дата: Май 17, 2004 17:46:39 Спасибо!пойду читать |
|
|
Дата: Май 17, 2004 18:20:45 S_T_A_S_ вытесняющая многозадачность это когда ось сама отбирает власть у потока? |
|
|
Дата: Май 17, 2004 19:13:32 2 S_T_A_S_ :-) ты прав, кто бы спорил. И согласен я с тобой. Это вроде и малышу ясно. Но я имел ввиду: "о наиболее заметно на моменте общения с "тормозными" внешними устройствами" Не всерьёз: "КОЛИЧЕСТВО_ОПЕРАЦИЙ (INC) = 2 * 125Млн - C." из кол-ва апераций отнимаем время ??? скорее так КОЛИЧЕСТВО_ОПЕРАЦИЙ (INC) = 2 * 125Млн - C*K, где K - некий коэф-т проп-ти между кол-вом времени, затрач. на пер. контекстов и кол-вом операций, с этой целью потраченных за этот пром-к времени. 2 EvilsInterrupt Это когда " @@:INC EAX JMP @B " не повесит систему под один процесс, а система сама отберет у нее время для других. |
|
|
Дата: Май 17, 2004 20:09:00 PavPS Ну я тоже имел ввиду "о наиболее заметно на моменте общения с "тормозными" внешними устройствами". Это и есть алгоритмическая сторона. Когда одной задаче "нечего делать", делаем вторую. А про C*K imho можно и так записать: C = C'*K - смысл сильно не поменяется. [ EvilsInterrupt : вытесняющая многозадачность это когда ось сама отбирает власть у потока? ] Вот, что я писал раньше: вытесняющая многозадачность; многозадачный режим с приоритетами ( обеспечивает операционной системе возможность захвата процессора в любой момент времени, независимо от состояния работающих приложений ) Ну без обид только, бросай курить всякую фигню. |
|
|
Дата: Май 17, 2004 20:56:45 А возможно ли такая ситуация: Допустим в момент А, одной программе Б пона- добился винчестер, а другой в этот же момент по- надобился видеоадаптер. ТОгда что дело только в проце или еще в чем-то? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.073 |