I datalogi og automatteori er tilstanden af et digitalt logisk kredsløb eller computerprogram en teknisk betegnelse for al lagret information, som kredsløbet eller programmet i øjeblikket har adgang til [1] . Outputtet af et digitalt kredsløb eller computerprogram på ethvert givet tidspunkt er fuldstændig bestemt af dets aktuelle input og dets tilstand.
Digitale logiske kredsløb kan opdeles i to typer: kombinationslogik , hvis udgangssignaler kun afhænger af indgangssignaler, og sekventiel (seriel) logik , hvis udgangsdata er en funktion af både nuværende og inputdata modtaget ved input tidligere [2 ] .
I sekventiel logik lagres informationen modtaget tidligere ved indgangene i hukommelsen af elektroniske elementer, såsom triggere , hukommelsesceller. Det lagrede indhold af disse hukommelseselementer på et givet tidspunkt, samlet benævnt "tilstanden" af kredsløbet, indeholder al information om fortiden, som enheden har adgang til [3] .
For eksempel er den aktuelle tilstand for en mikroprocessor (computerchip) bestemt af indholdet af alle dens hukommelseselementer: akkumulatorer , lagerregistre , datacaches og flag .
Når du sætter din computer i "dvale" eller "dvale"-tilstand for at spare strøm ved at slukke for processoren, hukommelsen og andre enheder, skrives processorens og RAM -tilstanden til ekstern ikke-flygtig hukommelse, normalt på computerens disk , når computeren tændes fra dvaletilstand, gendannes indholdet af RAM- og processorregistrene, og udførelsen af programmet afbrudt af dvaletilstand kan fortsættes korrekt.
På samme måde gemmes processorens tilstand, når eksterne programafbrydelser behandles af eksterne hændelser, der kan forekomme på uventede tidspunkter. For at det afbrudte aktuelle program korrekt kan genoptage sit arbejde efter afslutningen af afbrydelsesbehandlingen, er det nødvendigt at gemme tilstanden for de registre og hukommelse, der bruges af afbrydelsesbehandleren. Før overførsel af kontrol til det afbrudte program, gendanner afbrydelsesbehandleren tilstanden af processoren og hukommelsesregistrene og overfører kontrol til det afbrudte program. Lagring og gendannelse af tilstanden udføres af den eksterne interrupt-handler.
Da hvert binært hukommelseselement, såsom en flip-flop eller registerbit, kun har to mulige tilstande, "logisk en" eller "logisk nul", og der er et endeligt antal af sådanne binære hukommelseselementer, har ethvert digitalt kredsløb et endeligt antal mulige stater. Hvis antallet af binære hukommelseselementer i kredsløbet er N , så vil det maksimalt mulige antal tilstande være 2 N.
Computerprogrammer gemmer data i variabler , som er områder med datalagring i computerens hukommelse, indholdet af disse områder af hukommelsen på et hvilket som helst tidspunkt under programmets udførelse kaldes programmets tilstand [ 4] [5] [6] .
Imperativ programmering er et programmeringsparadigme (en måde at designe et programmeringssprog på ), der beskriver i form af tilstande og udsagn, der ændrer et programs tilstand. I deklarative programmeringssprog beskriver programmet derimod det ønskede resultat uden direkte at specificere tilstandsændringer. En mere specialiseret definition af tilstand bruges i nogle computerprogrammer, der opererer serielt på datastrømme, såsom parsere , firewalls , dataoverførselsprotokoller og krypteringsprogrammer . Serielle programmer behandler indgående data, tegn eller pakker sekventielt én ad gangen. I nogle af disse programmer lagres information om tidligere modtagne tegn eller datapakker i variabler og bruges til at påvirke behandlingen af det aktuelle tegn eller den aktuelle pakke. Dette kaldes "tilstandsprotokollen", og de data, der overføres fra den foregående behandlingscyklus, kaldes "tilstanden". I andre tilfælde har programmet ingen information om den tidligere datastrøm og starter "ren" med hvert input; dette kaldes en "statsløs protokol".
Outputtet af et serielt kredsløb eller computerprogram på et givet tidspunkt er fuldstændig bestemt af de aktuelle inputdata og den aktuelle tilstand. Da hvert binært hukommelseselement kun har to mulige tilstande, 0 eller 1, antages det samlede antal netværkstilstande at være endeligt og fastsat af antallet af hukommelseselementer. Hvis antallet af binære hukommelseselementer i kredsløbet er N , så vil det maksimalt mulige antal tilstande være 2 N. Begrebet en tilstand, indrammet i en abstrakt matematisk computermodel , kaldes en endelig tilstandsmaskine , der bruges til at udvikle både sekventielle digitale kredsløb og computerprogrammer.
Der er følgende typer stater: