stringtranslate.com

Estado (informática)

En tecnología de la información e informática , un sistema se describe como con estado si está diseñado para recordar eventos anteriores o interacciones del usuario; [1] la información recordada se llama estado del sistema.

El conjunto de estados que puede ocupar un sistema se conoce como espacio de estados . En un sistema discreto , el espacio de estados es contable y, a menudo, finito . El comportamiento interno del sistema o la interacción con su entorno consiste en acciones o eventos individuales que ocurren por separado, como aceptar entradas o producir salidas, que pueden o no causar que el sistema cambie su estado. Ejemplos de tales sistemas son los circuitos y componentes lógicos digitales , los autómatas y el lenguaje formal , los programas informáticos y las computadoras .

La salida de un circuito digital o programa informático determinista en cualquier momento está completamente determinada por sus entradas actuales y su estado. [2]

Estado del circuito lógico digital

Los circuitos lógicos digitales se pueden dividir en dos tipos: lógica combinacional , cuyas señales de salida dependen únicamente de sus señales de entrada actuales, y lógica secuencial , cuyas salidas son función tanto de las entradas actuales como del historial pasado de las entradas. [3] En la lógica secuencial, la información de entradas pasadas se almacena en elementos de memoria electrónica, como los flip-flops . El contenido almacenado de estos elementos de memoria, en un momento dado, se denomina colectivamente estado del circuito y contiene toda la información sobre el pasado al que tiene acceso el circuito. [4]

Dado que cada elemento de memoria binaria , como un flip-flop, tiene sólo dos estados posibles, uno o cero , y hay un número finito de elementos de memoria, un circuito digital tiene sólo un cierto número finito de estados posibles. Si N es el número de elementos de memoria binaria en el circuito, el número máximo de estados que puede tener un circuito es 2 N.

Estado del programa

De manera similar, un programa de computadora almacena datos en variables , que representan ubicaciones de almacenamiento en la memoria de la computadora . El contenido de estas ubicaciones de memoria, en cualquier punto dado de la ejecución del programa, se denomina estado del programa . [5] [6] [7]

Se utiliza una definición más especializada de estado para programas informáticos que operan en serie o secuencialmente en flujos de datos , como analizadores , cortafuegos , protocolos de comunicación y cifrado . Los programas en serie operan con los caracteres o paquetes de datos entrantes de forma secuencial, uno a la vez. En algunos de estos programas, la información sobre caracteres o paquetes de datos anteriores recibidos se almacena en variables y se utiliza para afectar el procesamiento del carácter o paquete actual. Esto se denomina protocolo con estado y los datos transferidos del ciclo de procesamiento anterior se denominan estado . En otros, el programa no tiene información sobre el flujo de datos anterior y comienza de nuevo con cada entrada de datos; esto se llama protocolo sin estado .

La programación imperativa es un paradigma de programación (forma de diseñar un lenguaje de programación ) que describe el cálculo en términos del estado del programa y de las declaraciones que cambian el estado del programa. Los cambios de estado son implícitos y son administrados por el tiempo de ejecución del programa, de modo que una subrutina tiene visibilidad de los cambios de estado realizados por otras partes del programa, conocidos como efectos secundarios .

En los lenguajes de programación declarativos , el programa describe los resultados deseados y no especifica cambios en el estado directamente.

En programación funcional , el estado generalmente se representa con lógica temporal como variables explícitas que representan el estado del programa en cada paso de la ejecución de un programa: una variable de estado se pasa como parámetro de entrada de una función transformadora de estado, que devuelve el estado actualizado como parte de su valor de retorno. Una subrutina funcional pura sólo tiene visibilidad de los cambios de estado representados por las variables de estado en su alcance.

máquinas de estados finitos

La salida de un circuito secuencial o programa de computadora en cualquier momento está completamente determinada por sus entradas actuales y su estado actual. Dado que cada elemento de memoria binaria tiene sólo dos estados posibles, 0 o 1, el número total de estados diferentes que puede asumir un circuito es finito y está fijado por el número de elementos de memoria. Si hay N elementos de memoria binaria, un circuito digital puede tener como máximo 2 N estados distintos. El concepto de estado se formaliza en un modelo matemático abstracto de computación llamado máquina de estados finitos , utilizado para diseñar tanto circuitos digitales secuenciales como programas informáticos.

Ejemplos

Un ejemplo de dispositivo cotidiano que tiene un estado es un televisor . Para cambiar el canal de un televisor, el usuario suele pulsar un botón de "canal arriba" o "canal abajo" en el mando a distancia, que envía un mensaje codificado al televisor. Para poder calcular el nuevo canal que desea el usuario, el sintonizador digital del televisor debe tener almacenado el número del canal actual en el que se encuentra. Luego suma uno o resta uno de este número para obtener el número del nuevo canal y ajusta el televisor para recibir ese canal. Este nuevo número se almacena entonces como el canal actual . Del mismo modo, el televisor también almacena un número que controla el nivel de volumen producido por el altavoz. Al presionar los botones "subir volumen" o "bajar volumen" se incrementa o disminuye este número, estableciendo un nuevo nivel de volumen. Tanto el canal actual como los números de volumen actuales son parte del estado del televisor. Se almacenan en una memoria no volátil , que conserva la información cuando se apaga el televisor, por lo que cuando se vuelva a encender el televisor volverá a su emisora ​​y nivel de volumen anterior.

Como otro ejemplo, el estado de un microprocesador es el contenido de todos los elementos de memoria que contiene: los acumuladores , los registros de almacenamiento , las cachés de datos y las banderas . Cuando las computadoras, como las portátiles, entran en modo de hibernación para ahorrar energía apagando el procesador, el estado del procesador se almacena en el disco duro de la computadora , por lo que se puede restaurar cuando la computadora sale de la hibernación y el procesador puede ocupar operaciones donde las dejó.

Ver también

Referencias

  1. ^ "¿Qué es apátrida? - Definición de WhatIs.com". techtarget.com .
  2. ^ Harris, David Dinero; Harris, Sarah L. (2007). Diseño Digital y Arquitectura de Computadores. Estados Unidos: Morgan Kaufmann. pag. 103.ISBN 978-0123704979.
  3. ^ Kaeslin, Hubert (2008). Diseño de circuitos integrados digitales: de arquitecturas VLSI a fabricación CMOS. Reino Unido: Cambridge University Press. pag. 735.ISBN 978-0521882675.
  4. ^ Srinath, NK (agosto de 2005). Microprocesador 8085: programación e interfaz. Prentice-Hall de la India Pvt. Limitado. Ltd. pág. 326.ISBN 978-8120327856. Consultado el 7 de diciembre de 2012 . página 46
  5. ^ Laplante, Philip A. (2000). Diccionario de Informática, Ingeniería y Tecnología. Estados Unidos: Prensa CRC. pag. 466.ISBN 978-0849326912.
  6. ^ Misra, Jayadev (2001). Una disciplina de multiprogramación: teoría de la programación para aplicaciones distribuidas. Saltador. pag. 14.ISBN 978-0387952062.
  7. ^ Prata, Stephen Prata (2004). C Primer Plus, 5ª ed. Educación Pearson. págs. 113-114. ISBN 978-0132713603.