Estado (informática)

Información recordada en un sistema informático

En tecnología de la información y la ciencia de la computación , 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 denomina estado del sistema.

El conjunto de estados que puede ocupar un sistema se conoce como su 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 una entrada o producir una salida, que pueden o no hacer 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 un 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 una función tanto de las entradas actuales como del historial pasado de entradas. [3] En la lógica secuencial, la información de las entradas pasadas se almacena en elementos de memoria electrónica, como flip-flops . El contenido almacenado de estos elementos de memoria, en un punto dado en el tiempo, se denomina colectivamente el estado del circuito y contiene toda la información sobre el pasado al que el circuito tiene acceso. [4]

Dado que cada elemento de memoria binaria , como un flip-flop, tiene solo dos estados posibles, uno o cero , y hay un número finito de elementos de memoria, un circuito digital tiene solo 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]

Una definición más especializada de estado se utiliza para los programas informáticos que operan en serie o secuencialmente en flujos de datos , como analizadores sintácticos , cortafuegos , protocolos de comunicación y cifrado . Los programas en serie operan en los caracteres o paquetes de datos entrantes de forma secuencial, uno a la vez. En algunos de estos programas, la información sobre los caracteres o paquetes de datos recibidos anteriormente 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 denomina 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 instrucciones que lo modifican. Los cambios de estado son implícitos y están gestionados 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 se representa habitualmente con lógica temporal como variables explícitas que representan el estado del programa en cada paso de la ejecución del mismo: una variable de estado se pasa como parámetro de entrada de una función de transformación de estado, que devuelve el estado actualizado como parte de su valor de retorno. Una subrutina funcional pura solo tiene visibilidad de los cambios de estado representados por las variables de estado en su ámbito.

Máquinas de estados finitos

La salida de un circuito secuencial o un programa de ordenador en cualquier momento está completamente determinada por sus entradas actuales y su estado actual. Dado que cada elemento de memoria binaria tiene solo 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 , que se utiliza para diseñar tanto circuitos digitales secuenciales como programas de ordenador.

Ejemplos

Un ejemplo de un dispositivo cotidiano que tiene un estado es un televisor . Para cambiar el canal de un televisor, el usuario suele pulsar un botón de subir o bajar canal en el mando a distancia, que envía un mensaje codificado al aparato. Para calcular el nuevo canal que desea el usuario, el sintonizador digital del televisor debe tener almacenado en él el número del canal actual en el que se encuentra. A continuación, suma uno o resta uno a 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 . De forma similar, el televisor también almacena un número que controla el nivel de volumen producido por el altavoz. Al pulsar los botones de subir o bajar volumen se incrementa o disminuye este número, fijando un nuevo nivel de volumen. Tanto el canal actual como los números de volumen actuales forman 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 vuelve a encender el televisor volverá a su estación y nivel de volumen anteriores.

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 memorias caché de datos y los indicadores . Cuando los ordenadores, como los 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 del ordenador , de modo que se puede restaurar cuando el ordenador sale de la hibernación y el procesador puede retomar las operaciones donde las dejó.

Véase también

Referencias

  1. ^ "¿Qué es sin estado? - Definición de WhatIs.com". techtarget.com .
  2. ^ Harris, David Money; Harris, Sarah L. (2007). Diseño digital y arquitectura informática. Estados Unidos: Morgan Kaufmann. pág. 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. p. 735. ISBN 978-0521882675.
  4. ^ Srinath, NK (agosto de 2005). Microprocesador 8085: programación e interconexión. Prentice-Hall of India Pvt. Ltd., pág. 326. ISBN 978-8120327856. Recuperado 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: CRC Press. pág. 466. ISBN 978-0849326912.
  6. ^ Misra, Jayadev (2001). Una disciplina de multiprogramación: teoría de programación para aplicaciones distribuidas. Springer. pág. 14. ISBN 978-0387952062.
  7. ^ Prata, Stephen Prata (2004). C Primer Plus, 5ª ed. Educación Pearson. págs. 113-114. ISBN 978-0132713603.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Estado_(informática)&oldid=1240124213#Estado_del_programa"