Stat (informatica)

În informatică și teoria automatelor , starea unui circuit logic digital sau a unui program de calculator este un termen tehnic pentru toate informațiile stocate la care circuitul sau programul are acces în prezent [1] . Ieșirea unui circuit digital sau a unui program de calculator la un moment dat este complet determinată de intrarea curentă și starea acestuia.

Starea circuitului logic digital

Circuitele logice digitale pot fi împărțite în două tipuri: logica combinațională , ale cărei semnale de ieșire depind doar de semnalele de intrare și logica secvențială (serială) , ale cărei date de ieșire sunt o funcție atât a datelor curente, cât și a datelor de intrare primite la intrare în trecut [2] ] .

În logica secvenţială, informaţiile primite mai devreme la intrări sunt stocate în memoria elementelor electronice, cum ar fi declanşatoare , celule de memorie. Conținutul stocat al acestor elemente de memorie, la un moment dat în timp, denumit în mod colectiv „starea” circuitului, conține toate informațiile despre trecut la care dispozitivul are acces [3] .

De exemplu, starea curentă a unui microprocesor (cip de calculator) este determinată de conținutul tuturor elementelor sale de memorie: acumulatori , registre de stocare , cache de date și steaguri .

Când puneți computerul în modul „hibernare” sau „repaus” pentru a economisi energie prin oprirea procesorului, a memoriei și a altor dispozitive, starea procesorului și a memoriei RAM este scrisă în memoria externă nevolatilă, de obicei pe discul computerului. , când computerul este pornit din modul hibernare., conținutul memoriei RAM și al registrelor procesorului este restaurat și execuția programului întrerupt de hibernare poate fi continuată corect.

În mod similar, starea procesorului este salvată atunci când se prelucrează întreruperi ale programelor externe prin evenimente externe care pot apărea în momente neașteptate. Pentru ca programul curent întrerupt să-și reia funcționarea corect după finalizarea procesării întreruperii, este necesar să se salveze starea acelor registre și memorie care sunt utilizate de gestionarea întreruperii. Înainte de a transfera controlul către programul întrerupt, gestionarea întreruperilor restabilește starea procesorului și a registrelor de memorie și transferă controlul programului întrerupt. Salvarea și restabilirea stării sunt efectuate de către gestionarea de întrerupere extern.

Deoarece fiecare element de memorie binară, cum ar fi un flip-flop sau un bit de registru, are doar două stări posibile, „una logică” sau „zero logic”, și există un număr finit de astfel de elemente de memorie binare, orice circuit digital are un număr finit. numărul de stări posibile. Dacă numărul de elemente de memorie binare din circuit este N , atunci numărul maxim posibil de stări va fi 2 N .

Starea programului

Programele de calculator stochează date în variabile , care sunt zone de stocare a datelor în memoria computerului, conținutul acestor zone de memorie în orice moment în timpul execuției programului se numește starea programului [4] [5] [6] .

Programarea imperativă  este o paradigmă de programare (o modalitate de a proiecta un limbaj de programare ) care descrie în termeni de stări și declarații care schimbă starea unui program. În schimb, în ​​limbajele de programare declarative , programul descrie rezultatul dorit fără a specifica direct schimbările de stare. O definiție mai specializată a stării este utilizată în unele programe de calculator care funcționează în serie pe fluxuri de date, cum ar fi parsere , firewall -uri , protocoale de transfer de date și programe de criptare . Programele seriale procesează datele, caracterele sau pachetele primite secvenţial, unul câte unul. În unele dintre aceste programe, informațiile despre caracterele sau pachetele de date primite anterior sunt stocate în variabile și utilizate pentru a influența procesarea caracterului sau pachetului curent. Acesta se numește „protocol de stare”, iar datele transferate din ciclul anterior de procesare se numesc „stare”. În alte cazuri, programul nu are informații despre fluxul de date anterior și începe „curat” cu fiecare intrare; acesta se numește „protocol fără stat”.

Automate finite

Ieșirea unui circuit serial sau a unui program de calculator la un moment dat este complet determinată de datele de intrare curente și de starea curentă. Deoarece fiecare element de memorie binar are doar două stări posibile, 0 sau 1, se presupune că numărul total de stări ale rețelei este finit și este fixat de numărul de elemente de memorie. Dacă numărul de elemente de memorie binare din circuit este N , atunci numărul maxim posibil de stări va fi 2 N . Conceptul de stare, încadrat într-un model matematic abstract de calcul , se numește o mașină cu stări finite , utilizată pentru a dezvolta atât circuite digitale seriale, cât și programe de calculator.

Tipuri de stat

Există următoarele tipuri de stări:

Vezi și

Note

  1. Harris, David Money; Sarah L Harris Design digital și arhitectură computerizată . - SUA: Morgan Kaufmann , 2007. - P. 103. - ISBN 0123704979 . Arhivat pe 6 aprilie 2014 la Wayback Machine
  2. Kaeslin, Hubert. Design de circuite integrate digitale : de la arhitecturi VLSI la fabricarea CMOS  . - Marea Britanie: Cambridge University Press , 2008. - P. 735. - ISBN 0521882672 . Arhivat pe 6 aprilie 2014 la Wayback Machine
  3. Srinath, NK 8085 Microprocesor: Programare și  interfață . — Prentice-Hall of India Pvt. Ltd, 2005. - P. 326. - ISBN 978-8120327856 . Arhivat pe 11 iunie 2018 la Wayback Machine . - „pagina 46”.
  4. Laplante, Philip A. Dicţionar de informatică, inginerie şi tehnologie  . - SUA: CRC Press , 2000. - P. 466. - ISBN 0849326915 .
  5. Misra, Jayadev. O disciplină de multiprogramare: Teoria programării pentru  aplicații distribuite . - Springer, 2001. - P. 14. - ISBN 0387952063 . Arhivat pe 5 iulie 2014 la Wayback Machine
  6. Prata, Ştefan Prata. C Primer Plus, Ed. a 5-a . — Pearson Education, 2004. - S. 113-114. — ISBN 0132713608 . Arhivat pe 5 iulie 2014 la Wayback Machine