Estado (computação)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Este artigo não cita fontes confiáveis e independentes. (desde abril de 2013). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)
Ambox rewrite.svg
Esta página precisa ser reciclada de acordo com o livro de estilo (desde abril de 2013).
Sinta-se livre para editá-la para que esta possa atingir um nível de qualidade superior.

Na ciência da computação e na teoria de autômatos, o estado de um circuito lógico digital ou programa de computador é um termo técnico para todas as informações armazenadas, em um determinado ponto no tempo, para que o circuito ou programa tem acesso. A saída de um circuito digital ou programa de computador, a qualquer momento é completamente determinado pelas suas entradas atuais e seu estado.

Estados de Circuitos Digitais[editar | editar código-fonte]

Circuitos digitais podem ser divididos em dois tipos: a lógica combinacional, cujos sinais de saída são dependentes apenas dos seus atuais sinais de entrada, e a lógica seqüencial, cujas saídas são uma função de ambas as entradas atuais e da história das entradas passadas. Na lógica seqüencial, as informações de entradas passadas são armazenadas em elementos de memória eletrônicos, tais como flip-flops e travas. Os conteúdos guardados destes elementos de memória, num determinado ponto no tempo, é referido colectivamente como "estado" do circuito e contém todas as informações sobre o passado que o circuito têm acesso.

Por exemplo, o estado de um microprocessador (chip de computador) é o conteúdo de todos os elementos de memória nele: os acumuladores, registradores, caches de dados e flags. Quando os computadores, tais como laptops entrar em um modo de "hibernação" para poupar energia, desligando o processador, o estado do processador é armazenado no disco rígido do computador, para que ele possa ser restaurado quando o computador sai do modo de hibernação, e o processador pode assumir as operações de onde parou.

Estado do programa[editar | editar código-fonte]

Do mesmo modo, um programa de computador armazena dados em variáveis​​, que representam locais de armazenamento na memória do computador. O conteúdo destas posições de memória, em um determinado ponto na execução do programa, é chamado de estado do programa.

Programação imperativa é um paradigma de programação (forma de concepção de uma linguagem de programação) que descreve computação em termos de estado de programa e instruções que alteram o estado de programa. Em contraste, em linguagens de programação declarativas o programa descreve os resultados desejados, e não especifica muda para o estado directamente.

Uma definição mais especializada do estado é usado em alguns programas de computador que operam em série (seqüencialmente) sobre fluxos de dados, tais como analisadores, firewalls, protocolos de comunicação e programas de criptografia. Em alguns desses programas, o histórico de entradas de dados anteriores afeta o processamento da entrada atual, que é o programa pode ser modelado como uma máquina de estado. Estes programas são descritos como "stateful", e as variáveis ​​que contêm os valores do ciclo de processamento anterior são chamados no estado. Em outros programas de série a saída depende apenas da entrada atual, estes são chamados de "sem estado".

Máquinas de estados finitos[editar | editar código-fonte]

A saída de um circuito seqüencial ou programa de computador, a qualquer momento é completamente determinado pelas suas entrada atuail e estado atual. Uma vez que cada elemento de memória binária possui apenas dois estados possíveis, 0 ou 1, o número total de diferentes estados que um circuito pode assumir é finito, e fixado por meio do 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 chamado de máquina de estado finito, usado para projetar os circuitos digitais seqüenciais e programas de computador.

Tipos de estados[editar | editar código-fonte]

Seguintes estados destacam-se:

  • Estados compatíveis são estados em uma máquina de estado que não entrem em conflito para quaisquer valores de entrada. Assim, para cada entrada, os dois estados devem ter a mesma saída, e ambos os estados devem ter o mesmo sucessor (ou sucessores não especificados), ou ambos não deve mudar. Estados compatíveis são redundantes, se ocorrerem na mesma máquina estatal.
  • Estados distinguíveis são estados em uma máquina de estados que têm pelo menos uma seqüência de entrada causando diferentes seqüências de saída - não importa qual é o estado inicial.
  • Estados equivalentes são estados em uma máquina de estado que, para cada seqüência de entrada possível, a mesma seqüência de saída serão produzidos - não importa qual é o estado inicial.

Ver também[editar | editar código-fonte]