Estado (ciência da computação) - State (computer science)

Em tecnologia da informação e ciência da computação , um sistema é descrito como stateful se for projetado para lembrar eventos anteriores ou interações do usuário; a informação lembrada é chamada de estado do sistema.

O conjunto de estados que um sistema pode ocupar é conhecido como seu espaço de estados . Em um sistema discreto , o espaço de estados é contável e freqüentemente finito . O comportamento interno do sistema ou interação com seu ambiente consiste em ações ou eventos individuais que ocorrem separadamente, como aceitar entrada ou produzir saída, que podem ou não fazer com que o sistema mude seu estado. Exemplos de tais sistemas são circuitos e componentes lógicos digitais , autômatos e linguagem formal , programas de computador e computadores .

A saída de um circuito digital ou programa de computador determinístico a qualquer momento é completamente determinada por suas entradas de corrente e seu estado.

Estado do circuito lógico digital

Os circuitos lógicos digitais podem ser divididos em dois tipos: lógica combinacional , cujos sinais de saída dependem apenas de seus sinais de entrada atuais, e lógica sequencial , cujas saídas são função das entradas atuais e do histórico de entradas anteriores. Na lógica sequencial, as informações das entradas anteriores são armazenadas em elementos de memória eletrônica, como flip-flops . O conteúdo armazenado desses elementos de memória, em um determinado ponto no tempo, é conhecido coletivamente como o estado do circuito e contém todas as informações sobre o passado às quais o circuito tem acesso.

Como cada elemento binário de memória , como um flip-flop, tem apenas dois estados possíveis, um ou zero , e há um número finito de elementos de memória, um circuito digital tem apenas um certo número finito de estados possíveis. Se N é o número de elementos de memória binários no circuito, o número máximo de estados um circuito pode ter é 2 N .

Estado do programa

Da mesma forma, um programa de computador armazena dados em variáveis , que representam locais de armazenamento na memória do computador . O conteúdo dessas localizações de memória, em qualquer ponto da execução do programa, é chamado de estado do programa .

Uma definição mais especializada de estado é usada para programas de computador que operam em série ou sequencialmente em fluxos de dados , como analisadores , firewalls , protocolos de comunicação e criptografia . Os programas seriais operam nos caracteres ou pacotes de dados de entrada sequencialmente, um de cada vez. Em alguns desses programas, as informações sobre caracteres de dados anteriores ou pacotes recebidos são armazenadas em variáveis ​​e usadas para afetar o processamento do caractere ou pacote atual. Isso é chamado de protocolo com estado e os dados transportados do ciclo de processamento anterior são chamados de estado . Em outros, o programa não tem informações sobre o fluxo de dados anterior e começa do zero com cada entrada de dados; isso é chamado de protocolo sem estado .

A programação imperativa é um paradigma de programação (forma de projetar uma linguagem de programação ) que descreve a computação em termos do estado do programa e das instruções que alteram o estado do programa. Em linguagens de programação declarativas , o programa descreve os resultados desejados e não especifica mudanças no estado diretamente.

Máquinas de estado finito

A saída de um circuito sequencial ou programa de computador a qualquer momento é completamente determinada por suas entradas e estado atuais. Como cada elemento binário de memória tem apenas dois estados possíveis, 0 ou 1, o número total de diferentes estados que um circuito pode assumir é finito e fixado pelo número de elementos de memória. Se houver N elementos binários de memória, um circuito digital pode ter no máximo 2 N estados distintos. O conceito de estado é formalizado em um modelo matemático abstrato de computação denominado máquina de estado finito , usado para projetar circuitos digitais sequenciais e programas de computador.

Exemplos

Um exemplo de dispositivo comum que possui um estado é um aparelho de televisão . Para mudar o canal de uma TV, o usuário normalmente pressiona um botão "canal acima" ou "canal abaixo" no controle remoto, que envia uma mensagem codificada ao aparelho. Para poder calcular o novo canal que o usuário deseja, o sintonizador digital da televisão deve ter armazenado o número do canal atual em que se encontra. Em seguida, ele adiciona um ou subtrai um desse número para obter o número do novo canal e ajusta a TV para receber esse canal. Este novo número é então armazenado como o canal atual . Da mesma forma, a televisão também armazena um número que controla o nível de volume produzido pelo alto-falante. Pressionar os botões "aumentar volume" ou "diminuir volume" aumenta ou diminui esse número, definindo um novo nível de volume. Tanto o canal atual quanto os números de volume atuais fazem parte do estado da TV. Eles são armazenados na memória não volátil , que preserva as informações quando a TV é desligada, de modo que, quando for ligada novamente, a TV retornará à sua estação anterior e ao nível de volume.

Como outro exemplo, o estado de um microprocessador é o conteúdo de todos os elementos de memória nele: os acumuladores , registradores de armazenamento , caches de dados e sinalizadores . Quando computadores como laptops entram em modo de hibernação para economizar energia desligando o processador, o estado do processador é armazenado no disco rígido do computador , para que possa ser restaurado quando o computador sair da hibernação, e o processador pode demorar até as operações de onde parou.

Veja também

Referências