Thread (multithreading): Rozdiel medzi revíziami

z Wikipédie, slobodnej encyklopédie
Smazaný obsah Přidaný obsah
MisoH (diskusia | príspevky)
d štylistika
MisoH (diskusia | príspevky)
porovnanie vlákien a procesov
Riadok 4: Riadok 4:


Veľa moderných operačných systémov priamo podporuje obidva spôsoby – rozdeľovanie času aj multiprocessing s plánovaním procesov ([[scheduling]]). Jadro operačného systému dovoľuje programátorom manipulovať s vláknami cez [[vyvolanie systému|vyvolania systému]]. Niektoré implementácie sa nazývaju vlákna jadra ([[kernel thread]]s) alebo odľahčené procesy. Program može mať vlákna implementované aj bez podpory operačného systému pomocou časovačov, signálov, alebo inak. Je však potrebné prerušiť vlastné vykonávanie a odtiaľ urobiť vlastné rozdeľovanie času. Tieto vlákna sa niekedy nazývaju používateľské.
Veľa moderných operačných systémov priamo podporuje obidva spôsoby – rozdeľovanie času aj multiprocessing s plánovaním procesov ([[scheduling]]). Jadro operačného systému dovoľuje programátorom manipulovať s vláknami cez [[vyvolanie systému|vyvolania systému]]. Niektoré implementácie sa nazývaju vlákna jadra ([[kernel thread]]s) alebo odľahčené procesy. Program može mať vlákna implementované aj bez podpory operačného systému pomocou časovačov, signálov, alebo inak. Je však potrebné prerušiť vlastné vykonávanie a odtiaľ urobiť vlastné rozdeľovanie času. Tieto vlákna sa niekedy nazývaju používateľské.

==Porovnanie vlákien a procesov==
Procesy v tradičných multitask operačných systémoch sa od vlákien odlišujú najmä tým, že procesy:
*sú spravidla nezávislé,
*obsahujú značnú informáciu o svojom stave,
*majú oddelený adresný priestor a
*interagujú len prostredníctvom mechanizmov na medziprocesorovú komunikáciu, ktoré poskytuje operačný systém.
Na druhej strane viacero vlákien priamo zdieľa stavové informácie procesu, ako aj pamäť a ďalšie zdroje. Zmena kontextu medzi vláknami jedného procesu je spravidla rýchlejšia ako zmena kontextu medzi procesmi. Systémy ako [[Windows NT]] alebo [[OS/2]] majú "lacné" vlákna a "drahé" procesy; v ostatných operačných systémoch nie je medzi vláknami a procesmi taký veľký rozdiel.


[[Category:Technológie operačných systémov]]
[[Category:Technológie operačných systémov]]

Verzia z 09:45, 8. september 2008

Thready (z angl. vlákno; súvislosť) alebo hovorovo vlákna v informatike sú nezávisle bežiace úlohy, na ktoré je pri tzv. multithreadingu rozdelený jeden program.

Použitie threadov je spôsob, ako rozdeliť program na dve alebo viac rovnocenne vykonávaných úloh. Viaceré vlákna môžu byť vykonávané naraz – nazýva sa to multithreading (porovnaj s multiprogramovanie). Multithreading sa obyčajne zabezpečuje buď rozdeľovaním času (kde jeden procesor prepína medzi vykonávaním rôznych vlákien) alebo paralelné spracovanie dát - multiprocessing (kde sú vlákna vykonávané na viacerých procesoroch (SMP) či jadrách procesora (CMP)). Vlákno sa podobá procesu, odlišný je spôsob zdieľania prostriedkov a súvisiaci kontext.

Veľa moderných operačných systémov priamo podporuje obidva spôsoby – rozdeľovanie času aj multiprocessing s plánovaním procesov (scheduling). Jadro operačného systému dovoľuje programátorom manipulovať s vláknami cez vyvolania systému. Niektoré implementácie sa nazývaju vlákna jadra (kernel threads) alebo odľahčené procesy. Program može mať vlákna implementované aj bez podpory operačného systému pomocou časovačov, signálov, alebo inak. Je však potrebné prerušiť vlastné vykonávanie a odtiaľ urobiť vlastné rozdeľovanie času. Tieto vlákna sa niekedy nazývaju používateľské.

Porovnanie vlákien a procesov

Procesy v tradičných multitask operačných systémoch sa od vlákien odlišujú najmä tým, že procesy:

  • sú spravidla nezávislé,
  • obsahujú značnú informáciu o svojom stave,
  • majú oddelený adresný priestor a
  • interagujú len prostredníctvom mechanizmov na medziprocesorovú komunikáciu, ktoré poskytuje operačný systém.

Na druhej strane viacero vlákien priamo zdieľa stavové informácie procesu, ako aj pamäť a ďalšie zdroje. Zmena kontextu medzi vláknami jedného procesu je spravidla rýchlejšia ako zmena kontextu medzi procesmi. Systémy ako Windows NT alebo OS/2 majú "lacné" vlákna a "drahé" procesy; v ostatných operačných systémoch nie je medzi vláknami a procesmi taký veľký rozdiel.