Mi multi-threading processzorral

Sok különböző elvek multi-threading (például gyökeresen eltérő, és a különböző csak a részleteket).

Ha nagyon rövid sétát a történelembe, ezt kapod:

1) single-tasking operációs rendszer, mint például az első változata DOS - csak az egyik probléma - ez a feladata az összes utasítást adjuk át a processzor.

2) Indítsa multitasking - van egy nyomtató eszköz támogatása a DOS, amely kiírja párhuzamosan egyéb feladatok elvégzésére. Így az ötlet, hogy szakítsa meg. Ha a végrehajtás a jelenlegi feladat megszakad, és elkezdi végre más, akkor megszakad, és visszatér minden az első.

3) A fogalma áramlás. Minden alkalmazás és minden benne lévő bebugyolálva patakok, amely bekapcsolja magát az operációs rendszert. Egyrészt meglehetősen lassan kapcsol, de a másik - a felhasználó számára szinte nem észlelhető. Fuss Windwos 95 két tucat alkalmazás, amelyek mindegyike 2-3 könnyen áramlását.

4) Az az elképzelés, többprocesszoros. Annak érdekében, hogy növelje a sebességet a javaslat született, hogy különböző szálak a különböző processzorok - így kell váltani kevésbé gyakran, és akkor az egész rendszer működni fog sokkal gyorsabb.

5) A korábbi elképzelés akkoriban túl drága, és azt tette, hogy csökkentse költségeit fogalmát atommagok - nagyon része a számítástechnika két példányban készült, és kihasználni a processzor, hogy elhagyja az egyik a két mag. Ennek eredményeképpen, minden mag képes feldolgozni több folyam.

Összesen. Mnogotochnost realizálható és támogatása nélkül a részét a processzor. De a több magot egy processzor, annál észrevehető hatással van a többszálú.

És hogyan OS meghatározza a legjobb folyamok valós alkalmazásoknál? Mi az a kritérium, hogy szükséges, hogy váltani egy adott patak között, ha maga az alkalmazás bármely áramlások és nem tudja? Egyetértek azzal, hogy a felmondás egy I / O - ez az oka váltás másik alkalmazásra, és ha minden nincs I / O, akkor? És miért multi-core, ha a kapcsoló másik feladatot, a processzor még mindig nem tétlen? - 3 éve

Túl sok különböző kérdések, de megpróbálom megválaszolni:
1) A tengely önmagában is elég megérti, milyen alkalmazást és hány szálat hoz létre. Mindegy, látja az összes hívást a kérelmet.
2) Ha váltani az egyik patak másik nem szükséges (általában) valamit tanulni az alkalmazást. Mi csak megáll, és kapcsolja keretében gyors- valami mást. A Windows, van 11 prioritási szint alkalmazása (csak 6 áll a felhasználó) tengelyére, amely rendezi a patakok és úgy határoz, hogy váltani.
3) Csak tetszőleges időben váltakozik. Ezért ez a művelet elég hosszú - meg kell menteni a összefüggésben a jelenlegi patak, letölteni az új, és csak ezután folytassa számolni.
4) Multi-core szükséges gyorsulást. A növekedési teljesítmény, bár nem lineáris, hanem nagyon jelentős. - 3 éve