Multiprocesing - Multiprocessing

Multiprocesing je použití dvou nebo více centrálních procesorových jednotek (CPU) v rámci jednoho počítačového systému . Termín také označuje schopnost systému podporovat více než jeden procesor nebo schopnost alokovat úkoly mezi nimi. Existuje mnoho variací na toto základní téma a definice multiprocesoru se může lišit v závislosti na kontextu, většinou v závislosti na tom, jak jsou definovány CPU ( více jader na jedné matrici , více matric v jednom balíčku , více balíčků v jedné systémové jednotce atd.) ).

Podle některých on-line slovníků je multiprocesor počítačový systém, který má dvě nebo více procesorových jednotek (více procesorů), z nichž každá sdílí hlavní paměť a periferní zařízení, aby mohly současně zpracovávat programy. Učebnice z roku 2009 definovala víceprocesorový systém podobně, avšak upozorňuje na to, že procesory mohou sdílet „část nebo celou paměť a I / O zařízení“; také dal těsně spojený systém jako synonymní termín.

Na úrovni operačního systému se multiprocesing někdy používá k označení provádění více souběžných procesů v systému, přičemž každý proces běží na samostatném CPU nebo jádru, na rozdíl od jediného procesu v kterémkoli okamžiku. Při použití s ​​touto definicí je multiprocesing někdy v kontrastu s multitaskingem , který může používat pouze jeden procesor, ale přepínat jej v časových řezech mezi úkoly (tj. Systém sdílení času ). Multiprocesing však znamená skutečné paralelní provádění více procesů pomocí více než jednoho procesoru. Multiprocesing nemusí nutně znamenat, že jeden proces nebo úkol používá více než jeden procesor současně; termín paralelní zpracování se obecně používá k označení tohoto scénáře. Jiní autoři raději označují techniky operačního systému jako multiprogramování a termín multiprocesing si vyhrazují pro hardwarový aspekt více než jednoho procesoru. Zbývající část tohoto článku pojednává o multiprocesu pouze v tomto hardwarovém smyslu.

Ve Flynnově taxonomii jsou multiprocesory, jak jsou definovány výše, stroje MIMD . Jelikož se termín „víceprocesor“ běžně týká těsně spřažených systémů, ve kterých všechny procesory sdílejí paměť, nejsou multiprocesory celou třídou strojů MIMD, které také obsahují systémy pro předávání zpráv předávající zprávy .

Pre-historie

Možná první výraz myšlenky multiprocessingu byl napsán Luigi Federico Menabrea v roce 1842, o Charles Babbage ‚s analytické motoru (v překladu Ada Lovelace ):„stroj může být uveden do hry tak, aby několik výsledků na stejné čas, což značně zkrátí celé množství procesů. “

Klíčová témata

Symetrie procesoru

V systému s více procesy mohou být všechny CPU stejné nebo některé mohou být vyhrazeny pro zvláštní účely. Kombinace úvah o návrhu hardwaru a softwaru operačního systému určuje symetrii (nebo její nedostatek) v daném systému. Například úvahy o hardwaru nebo softwaru mohou vyžadovat, aby na všechna hardwarová přerušení reagovala pouze jedna konkrétní CPU, zatímco všechny ostatní práce v systému mohou být rovnoměrně rozděleny mezi CPU; nebo provedení kódu v režimu jádra může být omezeno pouze na jeden konkrétní CPU, zatímco kód v uživatelském režimu může být spuštěn v jakékoli kombinaci procesorů. Víceprocesní systémy se často navrhují snadněji, pokud jsou zavedena taková omezení, ale mají tendenci být méně efektivní než systémy, ve kterých jsou využívány všechny CPU.

Systémy, které zacházejí se všemi CPU stejně, se nazývají systémy symetrického více procesů (SMP). V systémech, kde si všechny procesory nejsou stejné, lze systémové prostředky rozdělit mnoha způsoby, včetně asymetrického multiprocesingu (ASMP), multiprocesu s přístupem k nejednotné paměti (NUMA) a seskupeného multiprocesu.

Víceprocesorový systém Master / Slave

V multiprocesorovém systému Master / Slave je hlavní CPU pod kontrolou počítače a podřízené CPU provádí přiřazené úkoly. Rychlost a architektura mohou být CPU zcela odlišné. Některé (nebo všechny) CPU mohou mít sdílenou společnou sběrnici, každá může mít také soukromou sběrnici (pro soukromé zdroje), nebo mohou být izolovány s výjimkou společné komunikační cesty. Podobně mohou CPU sdílet společnou RAM a / nebo mít soukromou RAM, ke které ostatní procesory nemají přístup. Role nadřízeného a podřízeného se mohou mezi jednotlivými CPU měnit.

Časným příkladem multiprocesorového systému typu master / slave je stolní počítač Tandy / Radio Shack TRS-80 Model 16, který vyšel v únoru 1982 a provozoval operační systém Xenix pro více uživatelů / více úkolů , verzi systému UNIX společnosti Microsoft (nazývanou TRS). -XENIX). Model 16 má 3 mikroprocesory, 8bitový procesor Zilog Z80 běžící na 4MHz, 16bitový procesor Motorola 68000 běžící na 6MHz a Intel 8021 v klávesnici. Když byl systém spuštěn, Z-80 byl hlavní a zaváděcí proces Xenix inicializoval slave 68000 a poté přenesl kontrolu na 68000, načež CPU změnily role a Z-80 se stal podřízeným procesorem, který byl zodpovědný za všechny I / O operace včetně disku, komunikace, tiskárny a sítě, stejně jako klávesnice a integrovaného monitoru, zatímco operační systém a aplikace běžely na CPU 68000. Z-80 lze použít k provádění dalších úkolů.

Dřívější model TRS-80 Model II , který byl vydán v roce 1979, lze také považovat za víceprocesorový systém, protože v klávesnici měl jak procesor Z-80, tak mikroprocesor Intel 8021. Model 8021 učinil z modelu II první stolní počítačový systém se samostatnou odnímatelnou odlehčenou klávesnicí spojenou jediným tenkým ohebným vodičem a pravděpodobně první klávesnicí používající vyhrazený mikroprocesor, což jsou atributy, které by později o roky později zkopírovaly společnosti Apple a IBM .

Pokyny a datové toky

V multiprocesingu lze procesory použít k provedení jedné sekvence instrukcí ve více kontextech ( single-instruction, multiple-data nebo SIMD, často používaných ve vektorovém zpracování ), více sekvencí instrukcí v jednom kontextu ( multiple-instruction, single -DATA nebo MISD, který se používá pro nadbytečnost v selhat bezpečné systémy a někdy žádal popisovat pipeline procesory nebo hyper-threading ), nebo vícenásobné sekvence instrukcí v různých kontextech ( více instrukcí, vícenásobné datové nebo MIMD).

Spojka procesoru

Úzce spojený víceprocesorový systém

Úzce spřažené víceprocesorové systémy obsahují více CPU, které jsou připojeny na úrovni sběrnice. Tyto CPU mohou mít přístup k centrální sdílené paměti (SMP nebo UMA ) nebo se mohou podílet na hierarchii paměti s místní i sdílenou pamětí (SM) ( NUMA ). IBM P690 Závod je příkladem systému, high-end SMP. Intel Xeon procesory dominuje na trhu více procesory pro firemní počítače a byl jediným významným x86 možnost až do vydání AMD je Opteron řady procesorů v roce 2004. Obě řady procesorů měl svou vlastní palubní vyrovnávací paměť, ale za předpokladu přístupu ke sdílené paměti; procesory Xeon prostřednictvím společného kanálu a procesory Opteron prostřednictvím nezávislých cest k systémové paměti RAM .

Čipové multiprocesory, známé také jako vícejádrové výpočty, zahrnují více než jeden procesor umístěný na jednom čipu a lze jej považovat za nejextrémnější formu těsně vázaného multiprocesoru. Systémy sálových počítačů s více procesory jsou často pevně spojeny.

Volně spojený víceprocesorový systém

Volně vázané víceprocesorové systémy (často označované jako klastry ) jsou založeny na více samostatných komoditních počítačích s jedním nebo dvěma procesory propojených prostřednictvím vysokorychlostního komunikačního systému ( běžný je gigabitový Ethernet ). Klastr Linux Beowulf je příkladem volně propojeného systému.

Úzce vázané systémy fungují lépe a jsou fyzicky menší než systémy volně vázané, ale historicky vyžadovaly vyšší počáteční investice a mohou se rychle znehodnocovat ; uzly ve volně propojeném systému jsou obvykle levné komoditní počítače a lze je recyklovat jako nezávislé stroje po vyřazení z klastru.

Spotřeba energie je také v úvahu. Úzce spojené systémy mají tendenci být mnohem energeticky účinnější než klastry. Je to proto, že značnou ekonomiku lze dosáhnout návrhem komponent, které budou od začátku spolupracovat v těsně spojených systémech, zatímco volně spojené systémy používají komponenty, které nemusí být nutně určeny speciálně pro použití v takových systémech.

Volně spojené systémy mají schopnost spouštět různé operační systémy nebo verze OS na různých systémech.

Viz také

Reference