top of page

Programování pro každého #5 část1 (revize 1)

Aktualizováno: 12. 3. 2022

Dobrý den,

Dnes si krátce řekneme něco o operačním systému


Operační systém je program, který zprostředkovává komunikaci mezi jednotlivými kusy hardwaru (komponenty) ale i mezi softwarem(programy) a hardwarem komunikace může vypadat například tak že se pošlou instrukce do procesoru, operační systém má ale za úkol mnohem více


Například uživateli umožnit multitasking což zaznamená zajistit to aby se mohlo najednou zpracovávat více programů to z podstaty fungování procesoru není možné tedy pokud není takzvaně více jádrový jádro je jen jiný název pro výpočetní jednotky každá výpočetní jednotka může ve stejnou chvíli zpracovávat jiné instrukce tudíž pokud je procesor třeba čtyř jádrový může najednou zpracovat čtyři programy dříve ale tyto procesory neexistovali a v dnes je počet jader daleko nižší než počet současně běžících programů na dnešních počítačích bez ohledu na proces


Řešení tohoto problému je vcelku jednoduché díky vysoké rychlosti procesoru a paměti RAM kdy během 1 sekundy provedou klidně až 4 000 000 000 operací záleží na frekvenci může operační systém téměř hned změnit to jaký program procesor vykonává bez toho aby to uživatel postřehl aby toto fungovalo je nutné uchovávat v paměti stav zpracovávaného programu který byl tímto krokem operačního systému zastaven pro jeho následné pokračování jinak by začal běžet od znova tento celý proces se jmenuje změna kontextu změna kontextu probíhá na všech jádrech procesoru a často je vynucena periferiemi například myší, respektive nějakou akcí uživatele (zapne program) ,chybou programu nebo si jí vyžádá program sám pokud pro pokračování potřebuje dokončit nějakou svojí část které běží samostatně jako vlákno nebo proces


Procesy a vlákna

Standartně program zpracovává jedno jádro procesoru, instrukce se vykonávají od shora až dolů tak jak jdou za s sebou, takovéto zpracování se nazývá sekvenční a může být pomalé, program můžeme zrychlit tak že ho buď rozdělíme na několik částí které budou na sobě nezávislé (každá část udělá svojí práci) nebo program spustíme vícekrát abychom zpracovali hromadu stejných souborů


Proces a vlákno mají stejnou funkci a to vytvořit podprogramy z daných částí kódu hlavního programu a tím umožnit tyto části zpracovat současně takzvaně paralelně liší se pouze tím, jak operační systém pracuje z pamětí, pokud použijeme vlákna tak operní systém přidělí programu kus paměti kterou ale budou používat všechny části programu na ráz výhoda je že pokud dojde ke změně kontextu bude se muset uchovávat a nahrávat zpět pouze strojový kód a pozice ve které procesor skončil z vykonáváním programu nikoliv data programu (proměnné) díky tomu bude trvat změna kontextu krátce na druhou stranu může dojít k přepisu paměti a to může mít za následek špatný výsledky programu a dokonce jeho pád

Použití procesů má tu výhodu, že části programu se jeví pro operační systém jako samostatné programy tudíž mají kdys pozici svůj vlastní kus paměti a tím jsou na sobě nezávislé nevýhodou je nutnost při změně kontextu uchovat i všechny data programu


Dalším důležitým úkolem operačního systému je hlídat, aby si jednotlivé programy nemohli číst navzájem data toto je velmi důležitá bezpečnostní funkce která chrání před zneužitím dat


Pokuď jste v článku nalezly chybu nahlašte jí prosím zde


Další zdroje:


Nejnovější příspěvky

Zobrazit vše
bottom of page