Tietojenkäsittelytieteessä ja automaatioteoriassa digitaalisen logiikkapiirin tai tietokoneohjelman tila on tekninen termi kaikille tallennetuille tiedoille, joihin piirillä tai ohjelmalla on tällä hetkellä pääsy [1] . Digitaalisen piirin tai tietokoneohjelman lähtö milloin tahansa määräytyy täysin sen nykyisen tulon ja tilan mukaan.
Digitaaliset logiikkapiirit voidaan jakaa kahteen tyyppiin: yhdistelmälogiikkaan , jonka lähtösignaalit riippuvat vain tulosignaaleista, ja peräkkäiseen (sarja)logiikkaan , jonka lähtötiedot ovat funktio sekä nykyisestä että tulotiedosta, joka on vastaanotettu sisäänmenossa aiemmin [2 ] .
Sekvenssilogiikassa aikaisemmin tuloista vastaanotettu tieto tallennetaan elektronisten elementtien, kuten liipaisujen , muistisolujen muistiin. Näiden muistielementtien tallennettu sisältö tiettynä ajankohtana, jota kutsutaan yhteisesti piirin "tilaksi", sisältää kaiken tiedon menneisyydestä, johon laitteella on pääsy [3] .
Esimerkiksi mikroprosessorin (tietokonesirun) nykyinen tila määräytyy kaikkien sen muistielementtien sisällön mukaan: akut , tallennusrekisterit , tietovälimuistit ja liput .
Kun asetat tietokoneesi "horrostilaan" tai "lepotilaan" säästääksesi virtaa sammuttamalla prosessorin, muistin ja muut laitteet, prosessorin ja RAM -muistin tila kirjoitetaan ulkoiseen haihtumattomaan muistiin, yleensä tietokoneen levylle . , kun tietokone käynnistetään horrostilasta, RAM-muistin ja prosessorirekisterien sisältö palautetaan ja lepotilan keskeyttämän ohjelman suorittamista voidaan jatkaa oikein.
Samoin prosessorin tila tallennetaan, kun käsitellään ulkoisia ohjelman keskeytyksiä ulkoisista tapahtumista, jotka voivat tapahtua odottamattomina aikoina. Jotta keskeytetty nykyinen ohjelma voisi jatkaa työtään oikein keskeytyskäsittelyn päätyttyä, on tarpeen tallentaa niiden rekisterien ja muistin tila, joita keskeytyskäsittelijä käyttää. Ennen ohjauksen siirtämistä keskeytetylle ohjelmalle keskeytyskäsittelijä palauttaa prosessorin ja muistirekisterien tilan ja siirtää ohjauksen keskeytetylle ohjelmalle. Tilan tallennuksen ja palauttamisen suorittaa ulkoinen keskeytyskäsittelijä.
Koska jokaisella binäärimuistielementillä, kuten flip-flopilla tai rekisteribitillä, on vain kaksi mahdollista tilaa, "looginen yksi" tai "looginen nolla", ja tällaisia binäärimuistielementtejä on äärellinen määrä, millä tahansa digitaalisella piirillä on äärellinen mahdollisten tilojen määrä. Jos binäärimuistielementtien lukumäärä piirissä on N , niin suurin mahdollinen tilojen lukumäärä on 2 N .
Tietokoneohjelmat tallentavat tiedot muuttujiin , jotka ovat tietojen tallennusalueita tietokoneen muistissa, näiden muistialueiden sisältöä milloin tahansa ohjelman suorittamisen aikana kutsutaan ohjelman tilaksi [ 4] [5] [6] .
Imperatiivinen ohjelmointi on ohjelmointiparadigma (tapa suunnitella ohjelmointikieli ), joka kuvaa tilojen ja lauseiden avulla, jotka muuttavat ohjelman tilaa. Deklaratiivisissa ohjelmointikielissä ohjelma sen sijaan kuvaa halutun tuloksen ilman, että se määrittelee suoraan tilan muutoksia. Erikoisempaa tilan määritelmää käytetään joissakin tietovirroissa sarjassa toimivissa tietokoneohjelmissa, kuten jäsentimissä , palomuureissa , tiedonsiirtoprotokollassa ja salausohjelmissa . Sarjaohjelmat käsittelevät saapuvat tiedot, merkit tai paketit peräkkäin, yksi kerrallaan. Joissakin näistä ohjelmista tiedot aiemmin vastaanotetuista merkeistä tai datapaketeista tallennetaan muuttujiin ja niitä käytetään vaikuttamaan nykyisen merkin tai paketin käsittelyyn. Tätä kutsutaan "tilaprotokollaksi", ja edellisestä käsittelyjaksosta siirrettyä dataa kutsutaan "tilaksi". Muissa tapauksissa ohjelmalla ei ole tietoa edellisestä datavirrasta ja se alkaa "puhtaasti" jokaisella syötteellä; tätä kutsutaan "valtiottomaksi protokollaksi".
Sarjapiirin tai tietokoneohjelman lähtö kulloinkin määräytyy täysin nykyisen tulodatan ja nykyisen tilan mukaan. Koska kullakin binäärimuistielementillä on vain kaksi mahdollista tilaa, 0 tai 1, verkon tilojen kokonaismäärän oletetaan olevan äärellinen ja muistielementtien lukumäärän määräämä. Jos binäärimuistielementtien lukumäärä piirissä on N , niin suurin mahdollinen tilojen lukumäärä on 2 N . Tilan käsitettä, joka on kehystetty laskennan abstraktiin matemaattiseen malliin , kutsutaan äärellistilakoneeksi , jota käytetään sekä peräkkäisten digitaalisten piirien että tietokoneohjelmien kehittämiseen.
On olemassa seuraavan tyyppisiä tiloja: