Stat (datalogi) - State (computer science)

I informationsteknologi og datalogi beskrives et system som statefult, hvis det er designet til at huske foregående begivenheder eller brugerinteraktioner; den huskede information kaldes systemets tilstand .

Sættet af stater, et system kan besætte, er kendt som dets tilstandsrum . I et diskret system er statsrummet tælleligt og ofte endeligt . Systemets interne adfærd eller interaktion med dets miljø består af særskilt forekommende individuelle handlinger eller begivenheder, såsom accept af input eller produktion af output, der måske eller ikke får systemet til at ændre dets tilstand. Eksempler på sådanne systemer er digitale logiske kredsløb og komponenter, automata og formelt sprog , computerprogrammer og computere .

Outputtet fra et digitalt kredsløb eller deterministisk computerprogram til enhver tid bestemmes fuldstændigt af dets aktuelle indgange og dets tilstand.

Digital logisk kredsløbstilstand

Digitale logiske kredsløb kan inddeles i to typer: kombinatoriske logik , hvis udgang signaler kun er afhængige dens nuværende indgangssignaler, og sekventiel logik , hvis udgange er en funktion af både de aktuelle input og den tidligere historie af råmaterialer. I sekventiel logik lagres information fra tidligere input i elektroniske hukommelseselementer, såsom flip-flops . Det lagrede indhold af disse hukommelseselementer på et givet tidspunkt betegnes kollektivt som kredsløbets tilstand og indeholder al information om fortiden, som kredsløbet har adgang til.

Da hvert binært hukommelseselement , såsom en flip-flop, kun har to mulige tilstande, en eller nul , og der er et begrænset antal hukommelseselementer, har et digitalt kredsløb kun et bestemt endeligt antal mulige tilstande. Hvis N er antallet af binære hukommelseselementer i kredsløbet, det maksimale antal tilstande et kredsløb kan have, er 2 N .

Programtilstand

Tilsvarende lagrer et computerprogram data i variabler , som repræsenterer lagerplaceringer i computerens hukommelse . Indholdet af disse hukommelsesplaceringer kaldes på et hvilket som helst tidspunkt i programmets udførelse programmets tilstand .

En mere specialiseret definition af tilstand bruges til computerprogrammer, der fungerer serielt eller sekventielt på datastrømme , såsom parsere , firewalls , kommunikationsprotokoller og kryptering . Serielle programmer fungerer sekventielt på de indgående datategn eller pakker, en ad gangen. I nogle af disse programmer gemmes oplysninger om tidligere datategn eller modtagne pakker i variabler og bruges til at påvirke behandlingen af ​​det aktuelle tegn eller den aktuelle pakke. Dette kaldes en stateful protokol, og de data, der overføres fra den foregående behandlingscyklus, kaldes tilstanden . I andre har programmet ingen oplysninger om den tidligere datastrøm og starter frisk med hver dataindgang; dette kaldes en statsløs protokol .

Imperativ programmering er et programmeringsparadigme (måde at designe et programmeringssprog på ), der beskriver beregning i form af programtilstand og udsagn, der ændrer programtilstand. På deklarative programmeringssprog beskriver programmet de ønskede resultater og angiver ikke ændringer i tilstanden direkte.

Endelige tilstandsmaskiner

Outputtet fra et sekventielt kredsløb eller computerprogram til enhver tid bestemmes fuldstændigt af dets aktuelle indgange og aktuelle tilstand. Da hvert binære hukommelseselement kun har to mulige tilstande, 0 eller 1, er det samlede antal forskellige tilstande, et kredsløb kan antage, endeligt og fastgjort af antallet af hukommelseselementer. Hvis der er N binære hukommelseselementer, kan et digitalt kredsløb højst have 2 N forskellige tilstande. Begrebet tilstand er formaliseret i en abstrakt matematisk beregningsmodel kaldet en finite state machine , der bruges til at designe både sekventielle digitale kredsløb og computerprogrammer.

Eksempler

Et eksempel på en dagligdags enhed, der har en tilstand, er et fjernsynsapparat . For at skifte kanal på et tv, trykker brugeren normalt på en "kanal op" eller "kanal ned" knap på fjernbetjeningen, som sender en kodet besked til sættet. For at beregne den nye kanal, som brugeren ønsker, skal den digitale tuner i fjernsynet have gemt nummeret på den aktuelle kanal, den er på. Derefter tilføjes en eller trækker en fra dette nummer for at få nummeret til den nye kanal og justerer tv'et til at modtage den kanal. Dette nye nummer gemmes derefter som den aktuelle kanal . På samme måde gemmer fjernsynet også et nummer, der styrer lydstyrkeniveauet produceret af højttaleren. Ved at trykke på knapperne "lydstyrke op" eller "lydstyrke ned" øges eller formindskes dette nummer og indstilles et nyt lydstyrkeniveau. Både den aktuelle kanal og aktuelle lydstyrkenumre er en del af tv'ets tilstand. De gemmes i en ikke-flygtig hukommelse , som bevarer informationen, når tv'et er slukket, så når det tændes igen, vender tv'et tilbage til dets tidligere station og lydstyrkeniveau.

Som et andet eksempel tilstanden af en mikroprocessor er indholdet af alle hukommelseselementerne i det: de akkumulatorer , lagerregistre , cachelager og flag . Når computere som bærbare computere går i dvaletilstand for at spare energi ved at lukke processoren, gemmes processortilstanden på computerens harddisk , så den kan gendannes, når computeren kommer ud af dvaletilstand, og processoren kan tage op operationer, hvor det slap.

Se også

Referencer