Wątki i procesy Vs MultiThreading & Multi-Core / MultiProcessor: Jak są mapowane?

Byłem bardzo zdezorientowany, ale następujący wątek wyjaśnił moje wątpliwości:

Wieloprocesowość, wielowątkowość, hiperwątkowość, wielordzeniowy

Ale odnosi się do zapytań z punktu widzenia sprzętu. Chcę wiedzieć, jak te funkcje sprzętowe są mapowane na oprogramowanie?

Jedna rzecz jest oczywista: nie ma różnicy między MultiProcessor (= Mutlicpu) a MultiCore, poza tym, że w wielordzeniowym wszystkie procesory znajdują się na jednym chipie (matrycy), tak jak w Multiprocessor, wszystkie procesory są na własnych chipach i połączone razem.

Tak więc systemy mutlicore / multiprocessor mogą wykonywać wiele procesów (firefox, mediaplayer, googletalk) w „czasie” (w przeciwieństwie do kontekstu przełączającego te procesy w systemie z jednym procesorem).

Jeśli to poprawne. Jak dotąd jestem jasne. Ale zamieszanie pojawia się, gdy pojawia się wielowątkowość.

Wielowątkowość „służy” do przetwarzania równoległego. dobrze?

Jakie elementy są zaangażowane w wielowątkowość wewnątrz procesora? diagram? Aby wykorzystać moc przetwarzania równoległego dwóch niezależnych zadań, jakie powinny być wymagania CPU?

Kiedy ludzie mówią kontekstową zmianę wątków. Naprawdę tego nie rozumiem. ponieważ jeśli jego kontekst przełącza wątki, to nie jest to przetwarzanie równoległe. wątki muszą być wykonywane „jednocześnie”. dobrze?

Moja koncepcja wielowątkowości polega na tym, że: rozważenie systemu z pojedynczą jednostką cpu. kiedy proces jest kontekstem przełączany na firefox. (przypuśćmy), że każda karta firefoxa jest wątkiem i wszystkie wątki wykonują się ściśle w tym samym czasie. Nie tak, jak w przypadku jednego wątku wykonanego przez jakiś czas, kolejny wątek został wykonany, dopóki nie nadejdzie czas przełączenia kontekstu.

Co się stanie, jeśli uruchomię wielowątkowe oprogramowanie na procesorze, który nie obsługuje wątków? Mam na myśli, jak procesor obsługuje takie oprogramowanie?

Jeśli do tej pory wszystko jest dobrze, teraz pytanie brzmi: JAK WIELE NICI? To chyba musi być ograniczone sprzętowo? Jeśli sprzęt może obsługiwać tylko 2 wątki i rozpoczynam 10 wątków w moim procesie. Jak poradziłby sobie z tym procesor? Za I przeciw? Z punktu widzenia inżynierii oprogramowania, podczas opracowywania oprogramowania, które będzie używane przez użytkowników w wielu różnych systemach, w jaki sposób zdecydowałbym, czy powinienem wybrać wielowątkowość? jeśli tak, ile wątków?

questionAnswers(7)

yourAnswerToTheQuestion