Provedení (výpočet) - Execution (computing)

Provedení v počítačovém a softwarovém inženýrství je proces, při kterém počítač nebo virtuální počítač čte a jedná podle pokynů počítačového programu . Každá instrukce programu je popisem konkrétní akce, kterou je třeba provést, aby bylo možné vyřešit konkrétní problém. Provádění zahrnuje opakované sledování cyklu „načtení - dekódování - spuštění“ pro každou instrukci. Vzhledem k tomu, že se prováděcí stroj řídí pokyny, vytvářejí se specifické efekty v souladu se sémantikou těchto pokynů.

Programy pro počítače, mohou být provedeny v dávkovém procesu bez zásahu člověka, nebo uživatel může zadat příkazy v interaktivním zasedání dne o tlumočníka . V tomto případě jsou „příkazy“ jednoduše instrukce programu, jejichž provádění je spojeno dohromady.

Termín běh se používá téměř synonymně. Související význam „spustit“ a „spustit“ se týká konkrétní akce uživatele, který spouští (nebo spouští nebo vyvolává ) program, jako v „Spusťte aplikaci“.

Proces

Před spuštěním musí být nejprve napsán program. To se obecně provádí ve zdrojovém kódu , který je pak kompilován v době kompilace (a staticky propojen v době propojení ) za vzniku spustitelného souboru. Tento spustitelný soubor je poté vyvolán, nejčastěji operačním systémem, který načte program do paměti ( doba načítání ), případně provede dynamické propojení a poté spustí provádění přesunutím ovládacího prvku do vstupního bodu programu; všechny tyto kroky závisí na binárním rozhraní aplikace operačního systému. V tomto okamžiku začíná provádění a program zadá dobu běhu . Program pak běží, dokud neskončí, buď normální ukončení, nebo pád .

Spustitelný

Spustitelný kód , spustitelný soubor nebo spustitelný program , někdy jednoduše označovaný jako spustitelný nebo binární , je seznam instrukcí a dat, které mají způsobit, že počítač „bude provádět označené úlohy podle kódovaných pokynů “, na rozdíl od datového souboru. to musí být interpretováno ( analyzováno ) programem, aby to mělo smysl.

Přesný výklad závisí na použití. „Instrukcemi“ se tradičně rozumí instrukce strojového kódu pro fyzický procesor . V některých kontextech může být za spustitelný soubor považován také soubor obsahující skriptovací instrukce (například bytecode ).

Kontext provedení

Zásadní je kontext, ve kterém probíhá poprava. Jen velmi málo programů se spouští na holém počítači . Programy obvykle obsahují implicitní a explicitní předpoklady o zdrojích dostupných v době spuštění. Většina programů se spouští s podporou operačního systému a knihoven run-time specifických pro zdrojový jazyk, které poskytují klíčové služby, které nejsou poskytovány přímo samotným počítačem. Toto podpůrné prostředí například obvykle odděluje program od přímé manipulace s počítačovými periferiemi a místo toho poskytuje obecnější, abstraktní služby.

Runtime systém

Runtime systém , nazývaný také runtime prostředí , realizuje zejména prvků z modelu provedení . To nemá být zaměňována s runtime životního cyklu fáze programu, během kterého runtime systém je v provozu. Při zacházení s runtime systémem odlišným od runtime prostředí (RTE), první může být definován jako specifická část aplikačního softwaru (IDE) používaného pro programování , kus softwaru, který poskytuje programátorovi pohodlnější prostředí pro spouštění programů během jejich výroby ( testování a podobně), zatímco druhý (RTE) by byl samotnou instancí prováděcího modelu aplikovaného na vyvinutý program, který je pak sám spuštěn ve výše uvedeném běhovém systému .

Většina programovacích jazyků má nějakou formu runtime systému, který poskytuje prostředí, ve kterém běží programy. Toto prostředí může řešit řadu problémů, včetně správy paměti aplikace , jak program přistupuje k proměnným , mechanismy pro předávání parametrů mezi procedurami , rozhraní s operačním systémem a další. Tyto kompilátor předpoklady Vyrábí v závislosti na konkrétním runtime systému generovat správný kód. Běhový systém bude mít obvykle určitou odpovědnost za nastavení a správu zásobníku a haldy a může zahrnovat funkce, jako je sběr odpadu , vlákna nebo jiné dynamické funkce integrované do jazyka.

Instrukční cyklus

Instrukční cyklus (také známý jako fetch-decode-spustit cyklus , nebo jednoduše načíst pro spouštění cyklu ) je cyklus, že centrální procesorová jednotka (CPU), vyplývá z boot-up , dokud je počítač vypnut, aby se pokyny procesní . Skládá se ze tří hlavních fází: fáze načítání, fáze dekódování a fáze spouštění.

Toto je jednoduchý diagram ilustrující jednotlivé fáze cyklu načítání, dekódování a spouštění.

V jednodušších CPU je instrukční cyklus prováděn postupně, přičemž každá instrukce je zpracována před spuštěním další. Ve většině moderních procesorů se instrukční cykly místo toho provádějí souběžně a často paralelně prostřednictvím kanálu instrukcí : další instrukce se začne zpracovávat před dokončením předchozí instrukce, což je možné, protože cyklus je rozdělen na samostatné kroky.

Tlumočník

Systém, který spouští program, se nazývá tlumočník programu. Volně řečeno, tlumočník přímo provádí program. To je v kontrastu s překladačem jazyků, který převádí program z jednoho jazyka do druhého před jeho spuštěním.

Virtuální stroj

Virtual machine ( VM ) je virtualizace / emulace z počítačového systému . Virtuální počítače jsou založeny na počítačové architektuře a poskytují funkčnost fyzického počítače. Jejich implementace může zahrnovat specializovaný hardware, software nebo kombinaci.

Virtuální počítače se liší a jsou organizovány podle jejich funkce, viz zde:

  • Systémové virtuální stroje (označované také jako virtuální virtuály s plnou virtualizací ) představují náhradu za skutečný počítač. Poskytují funkce potřebné pro spuštění celých operačních systémů . Hypervisor používá nativní výkon sdílet a spravovat hardware, takže pro více prostředí, které jsou izolovány od sebe navzájem, a přesto existují na stejném fyzickém stroji. Moderní hypervizory používají virtualizaci podporovanou hardwarem, hardware specifický pro virtualizaci, primárně z hostitelských procesorů.
  • Procesní virtuální stroje jsou navrženy ke spouštění počítačových programů v prostředí nezávislém na platformě.

Některé emulátory virtuálních strojů, jako jsou emulátory QEMU a videoherních konzolí , jsou navrženy tak, aby také emulovaly (nebo „virtuálně napodobovaly“) různé systémové architektury, což umožňuje provádění softwarových aplikací a operačních systémů napsaných pro jiný procesor nebo architekturu. Virtualizace na úrovni operačního systému umožňuje rozdělení prostředků počítače pomocí jádra . Termíny nejsou univerzálně zaměnitelné.

Reference

Viz také