Java >> Java tutoriál >  >> Java

Rozdíly mezi programem a procesem a vlákny

Program , Zpracovat a Vlákna jsou tři základní koncepty operačních systémů, se kterými musí být obeznámen každý počítačový inženýr. To je důvod, proč většina nováčků dostane v rozhovoru otázku nebo dvě otázky týkající se těchto konceptů. Tazatel položí otázky týkající se těchto pojmů, aby si ověřil, zda kandidát zná základy operačních systémů či nikoli. V tomto příspěvku jsem se velmi jednoduchým způsobem pokusil vysvětlit, co je to program, proces a vlákno a jak se od sebe liší. Doufám, že to pro vás bude užitečné.

Co je program?

Program je spustitelný soubor obsahující sadu instrukcí napsaných pro provedení konkrétní úlohy na vašem počítači. Například chrome.exe je spustitelný soubor obsahující sadu pokynů napsaných tak, abychom mohli prohlížet webové stránky. notepad.exe je spustitelný soubor obsahující sadu pokynů, které nám pomáhají upravovat a tisknout textové soubory.

Programy nejsou uloženy v primární paměti vašeho počítače. Jsou uloženy na disku nebo v sekundární paměti vašeho počítače. Jsou načteny do primární paměti a spuštěny jádrem. Program je někdy označován jako pasivní entita protože je umístěn v sekundární paměti.

Co je to proces?

Proces je spouštěcí instance programu. Když například dvakrát kliknete na ikonu Google Chrome v počítači, spustí se proces, který spustí program Google Chrome. Když dvakrát kliknete na ikonu poznámkového bloku v počítači, spustí se proces, který spustí program poznámkového bloku.

Proces je někdy označován jako aktivní entita protože se nachází v primární paměti a opouští paměť, pokud je systém restartován. Několik procesů může souviset se stejným programem. Můžete například spustit více instancí programu Poznámkový blok. Každá instance je označována jako proces.

Co je vlákno?

Vlákno je nejmenší spustitelná jednotka procesu. Když například spustíte program poznámkového bloku, operační systém vytvoří proces a spustí provádění hlavního vlákna tohoto procesu.

Proces může mít více vláken. Každé vlákno bude mít svůj vlastní úkol a vlastní cestu provádění v procesu. Například v programu Poznámkový blok bude jedno vlákno přebírat uživatelské vstupy a další vlákno bude tisknout dokument.

Všechna vlákna stejného procesu sdílejí paměť tohoto procesu. Protože vlákna stejného procesu sdílejí stejnou paměť, komunikace mezi vlákny je rychlá.

Procesy a vlákna mohou být znázorněny níže,

Proces versus vlákno:

Níže je uveden seznam rozdílů mezi procesem a vláknem.

Proces Vlákno
Procesy jsou náročné operace. Vlákna jsou nenáročné operace.
Každý proces má svůj vlastní paměťový prostor. Vlákna využívají paměť procesu, ke kterému patří.
Komunikace mezi procesy je pomalá, protože procesy mají různé adresy paměti. Komunikace mezi vlákny je rychlá, protože vlákna stejného procesu sdílejí stejnou paměťovou adresu procesu, ke kterému patří.
Přepínání kontextu mezi procesem je dražší. Přepínání kontextu mezi vlákny stejného procesu je levnější.
Procesy nesdílejí paměť s jinými procesy. Vlákna sdílejí paměť s jinými vlákny stejného procesu.

Java Tag