Я был очень смущен, но следующий поток очистил мои сомнения:
Многопроцессорная, многопоточная, гипертекстовая, многоядерная
Но он обращается к запросам с аппаратной точки зрения. Я хочу знать, как эти аппаратные функции отображаются на программное обеспечение?
Очевидно, что нет никакой разницы между MultiProcessor (= Mutlicpu) и MultiCore, кроме того, что в многоядерном режиме все процессоры находятся на одном чипе (die), где, как и в Multiprocessor, все процессоры находятся на своих собственных чипах и соединены вместе.
Итак, системы mutlicore/multiprocessor способны выполнять несколько процессов (firefox, mediaplayer, googletalk) в "sametime" (в отличие от контекста, который переключает эти процессы на одну процессорную систему). Правильно?
Если это правильно. Пока что я понятен. Но возникает путаница, когда возникает многопоточность.
-
MultiThreading "предназначен для параллельной обработки. не так ли?
-
Каковы элементы, которые участвуют в многопоточности внутри процессора? схема? Для использования возможности параллельной обработки двух независимых задач, какими должны быть требования к процессору?
-
Когда люди говорят о переключении потоков в контексте. Я действительно не понимаю. потому что если его контекстное переключение потоков, то это не параллельная обработка. потоки должны выполняться "скрининг одновременно". не так ли?
Мое понятие многопоточности заключается в следующем: Рассмотрим систему с одним процессором. когда процесс переключается по контексту на firefox. (предположим) каждая вкладка firefox - это поток, и все потоки выполняются строго в одно и то же время. Не похоже, чтобы какой-то поток выполнялся на некоторое время, а затем снова выполнялся другой поток, пока не наступило время переключения контекста.
-
Что произойдет, если я запустил многопоточное программное обеспечение на процессоре, который не может обрабатывать потоки? Я имею в виду, как процессор обрабатывает такое программное обеспечение?
-
Если все до сих пор хорошо, теперь вопрос: КАК МНОГО НИТЬ? Наверное, это должно быть ограничено аппаратными средствами. Если аппаратное обеспечение поддерживает только 2 потока, и я запускаю 10 потоков в моем процессе. Как cpu справится с этим? За и против? С точки зрения разработки программного обеспечения, при разработке программного обеспечения, которое будет использоваться пользователями в самых разных системах, Тогда как я могу решить, нужно ли мне многопоточность? если да, сколько потоков?