A számítástechnikában és az automataelméletben a digitális logikai áramkör vagy számítógépes program állapota minden olyan tárolt információra vonatkozik, amelyhez az áramkör vagy program jelenleg hozzáfér [1] . Egy digitális áramkör vagy számítógépes program kimenetét egy adott időpontban teljes mértékben az aktuális bemenete és állapota határozza meg.
A digitális logikai áramkörök két típusra oszthatók: kombinációs logikára , amelynek kimenőjelei csak a bemeneti jelektől függenek, és szekvenciális (soros) logikára , amelyek kimeneti adatai a múltban a bemeneten kapott aktuális és bemeneti adatok függvényei . ] .
A szekvenciális logikában a korábban a bemeneteken kapott információkat az elektronikus elemek, például triggerek , memóriacellák memóriájában tárolják. Ezeknek a memóriaelemeknek a tárolt tartalma egy adott időpontban, összefoglalóan az áramkör "állapotának" nevezik, tartalmaz minden olyan információt a múltról, amelyhez az eszköz hozzáfér [3] .
Például egy mikroprocesszor (számítógép chip) aktuális állapotát az összes memóriaelemének tartalma határozza meg: akkumulátorok , tárolóregiszterek , adatgyorsítótárak és zászlók .
Amikor a számítógépet "hibernált" vagy "alvó" üzemmódba állítja, hogy energiát takarítson meg a processzor, a memória és más eszközök kikapcsolásával, a processzor és a RAM állapota a külső nem felejtő memóriába kerül, általában a számítógép lemezén . , amikor a számítógépet hibernált üzemmódból kapcsolják be, a RAM és a processzorregiszterek tartalma visszaáll, és a hibernált állapot által megszakított program végrehajtása megfelelően folytatható.
Hasonlóképpen, a processzor állapota mentésre kerül, amikor külső programmegszakításokat dolgoznak fel külső események, amelyek váratlan időpontokban fordulhatnak elő. Ahhoz, hogy a megszakított aktuális program a megszakítás feldolgozása után megfelelően folytathassa munkáját, el kell menteni azon regiszterek és memória állapotát, amelyeket a megszakításkezelő használ. Mielőtt a vezérlést átadná a megszakított programnak, a megszakításkezelő visszaállítja a processzor és a memóriaregiszterek állapotát, és átadja a vezérlést a megszakított programnak. Az állapot mentését és visszaállítását a külső megszakításkezelő végzi.
Mivel minden bináris memóriaelemnek, például egy flip-flopnak vagy regiszterbitnek csak két lehetséges állapota van, a "logikai egyes" vagy a "logikai nulla", és véges számú ilyen bináris memóriaelem van, minden digitális áramkörnek van véges. lehetséges állapotok száma. Ha az áramkörben a bináris memóriaelemek száma N , akkor az állapotok maximális száma 2 N lesz .
A számítógépes programok változókban tárolják az adatokat , amelyek a számítógép memóriájában tárolt adattárolási területek, ezeknek a memóriaterületeknek a tartalmát a program végrehajtása során bármikor nevezzük a program állapotának [4] [5] [6] .
Az imperatív programozás egy programozási paradigma (egy programozási nyelv tervezésének módja ), amely olyan állapotokat és utasításokat ír le, amelyek megváltoztatják a program állapotát. Ezzel szemben a deklaratív programozási nyelvekben a program az állapotváltozások közvetlen megadása nélkül írja le a kívánt eredményt. Az állapot speciálisabb meghatározását használják egyes számítógépes programok, amelyek sorosan működnek adatfolyamokon, például elemzők , tűzfalak , adatátviteli protokollok és titkosító programok . A soros programok egymás után, egyenként dolgozzák fel a bejövő adatokat, karaktereket vagy csomagokat. E programok némelyikében a korábban kapott karakterekkel vagy adatcsomagokkal kapcsolatos információkat változókban tárolják, és az aktuális karakter vagy csomag feldolgozásának befolyásolására használják. Ezt "állapot protokollnak" nevezik, az előző feldolgozási ciklusból átvitt adatokat pedig "állapotnak". Más esetekben a programnak nincs információja az előző adatfolyamról, és minden bemenetnél "tisztán" indul; ezt "állapot nélküli protokollnak" nevezik.
Egy soros áramkör vagy számítógépes program bármely adott időpontban történő kimenetét teljes mértékben meghatározza az aktuális bemeneti adatok és az aktuális állapot. Mivel minden bináris memóriaelemnek csak két lehetséges állapota van, 0 vagy 1, a hálózati állapotok teljes számát végesnek tételezzük fel, és a memóriaelemek számával rögzítjük. Ha az áramkörben a bináris memóriaelemek száma N , akkor az állapotok maximális száma 2 N lesz . Az állapot fogalmát, amelyet a számítástechnika elvont matematikai modellje keretez , véges állapotú gépnek nevezik , amelyet mind szekvenciális digitális áramkörök, mind számítógépes programok fejlesztésére használnak.
A következő típusú állapotok léteznek: