Stát (informatika)

V informatice a teorii automatů je stav digitálního logického obvodu nebo počítačového programu odborný termín pro všechny uložené informace, ke kterým má obvod nebo program aktuálně přístup [1] . Výstup digitálního obvodu nebo počítačového programu v jakémkoli daném čase je zcela určen jeho aktuálním vstupem a jeho stavem.

Stav digitálního logického obvodu

Digitální logické obvody lze rozdělit na dva typy: kombinační logiku , jejíž výstupní signály závisí pouze na vstupních signálech, a sekvenční (sériovou) logiku , jejíž výstupní data jsou funkcí aktuálních i vstupních dat přijatých na vstupu v minulosti [2 ] .

V sekvenční logice jsou informace přijaté dříve na vstupech uloženy v paměti elektronických prvků, jako jsou spouštěče , paměťové buňky. Uložený obsah těchto paměťových prvků v daném časovém okamžiku, souhrnně označovaný jako „stav“ obvodu, obsahuje všechny informace o minulosti, ke kterým má zařízení přístup [3] .

Například aktuální stav mikroprocesoru (počítačového čipu) je určen obsahem všech jeho paměťových prvků: akumulátorů , registrů úložišť , mezipaměti dat a příznaků .

Když počítač přepnete do režimu „hibernace“ nebo „spánku“, abyste šetřili energii vypnutím procesoru, paměti a dalších zařízení, stav procesoru a paměti RAM se zapíše do externí energeticky nezávislé paměti, obvykle na disk počítače. , při zapnutí počítače z režimu hibernace dojde k obnovení obsahu registrů RAM a procesoru a ve vykonávání programu přerušeného hibernací lze správně pokračovat.

Podobně se ukládá stav procesoru při zpracování externích přerušení programu vnějšími událostmi, které mohou nastat v neočekávaných časech. Aby přerušený aktuální program po dokončení zpracování přerušení správně pokračoval ve své práci, je nutné uložit stav těch registrů a paměti, které používá obsluha přerušení. Před předáním řízení přerušenému programu obsluha přerušení obnoví stav procesoru a paměťových registrů a předá řízení přerušenému programu. Uložení a obnovení stavu provádí externí obsluha přerušení.

Protože každý binární paměťový prvek, jako je klopný obvod nebo bit registru, má pouze dva možné stavy, „logická jednička“ nebo „logická nula“, a takových binárních paměťových prvků je konečný počet, má každý digitální obvod konečný počet možných stavů. Pokud je počet binárních paměťových prvků v obvodu N , pak maximální možný počet stavů bude 2 N .

Stav programu

Počítačové programy ukládají data do proměnných , což jsou oblasti uložení dat v paměti počítače, obsah těchto oblastí paměti kdykoliv během provádění programu nazýváme stav programu [4] [5] [6] .

Imperativní programování  je programovací paradigma (způsob navrhování programovacího jazyka ), které popisuje stavy a příkazy, které mění stav programu. Naproti tomu v deklarativních programovacích jazycích program popisuje požadovaný výsledek, aniž by přímo specifikoval změny stavu. Specializovanější definice stavu se používá v některých počítačových programech, které pracují sériově na datových tocích, jako jsou analyzátory , firewally , protokoly přenosu dat a šifrovací programy . Sériové programy zpracovávají příchozí data, znaky nebo pakety postupně, jeden po druhém. V některých z těchto programů jsou informace o dříve přijatých znacích nebo datových paketech uloženy v proměnných a použity k ovlivnění zpracování aktuálního znaku nebo paketu. To se nazývá „stavový protokol“ a data přenesená z předchozího cyklu zpracování se nazývají „stav“. V ostatních případech program nemá žádné informace o předchozím datovém toku a s každým vstupem začíná „čistý“; tomu se říká „bezstavový protokol“.

Konečné automaty

Výstup sériového obvodu nebo počítačového programu v libovolném okamžiku je zcela určen aktuálními vstupními daty a aktuálním stavem. Protože každý binární paměťový prvek má pouze dva možné stavy, 0 nebo 1, předpokládá se, že celkový počet stavů sítě je konečný a pevně daný počtem paměťových prvků. Pokud je počet binárních paměťových prvků v obvodu N , pak maximální možný počet stavů bude 2 N . Koncept stavu, zarámovaný v abstraktním matematickém modelu práce na počítači , se nazývá konečný stavový stroj , který se používá k vývoji jak sekvenčních digitálních obvodů, tak počítačových programů.

Typy stavů

Existují následující typy stavů:

Viz také

Poznámky

  1. Harris, David Money; Sarah L Harrisová Digitální design a počítačová architektura . - USA: Morgan Kaufmann , 2007. - S. 103. - ISBN 0123704979 . Archivováno 6. dubna 2014 na Wayback Machine
  2. Kaeslin, Hubert. Návrh digitálních integrovaných obvodů : Od architektur VLSI po výrobu CMOS  . - UK: Cambridge University Press , 2008. - S. 735. - ISBN 0521882672 . Archivováno 6. dubna 2014 na Wayback Machine
  3. Srinath, Mikroprocesor NK 8085: Programování a  rozhraní . — Prentice-Hall of India Pvt. Ltd, 2005. - S. 326. - ISBN 978-8120327856 . Archivováno 11. června 2018 na Wayback Machine . - "strana 46".
  4. Laplante, Philip A. Slovník informatiky, inženýrství a technologie  . - USA: CRC Press , 2000. - S. 466. - ISBN 0849326915 .
  5. Misra, Jayadev. Disciplína multiprogramování: Teorie programování pro distribuované  aplikace . - Springer, 2001. - S. 14. - ISBN 0387952063 . Archivováno 5. července 2014 na Wayback Machine
  6. Prata, Stephen Prata. C Primer Plus, 5. vydání . — Pearsonova výchova, 2004. - S. 113-114. — ISBN 0132713608 . Archivováno 5. července 2014 na Wayback Machine