En tecnología de la información y ciencias 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 llama el 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 numerable y a menudo finito . El comportamiento interno del sistema o su interacción con el entorno consiste en acciones o eventos individuales que ocurren por separado, como aceptar una entrada o producir una salida, que pueden o no provocar un cambio de estado en el sistema. Ejemplos de estos sistemas son los circuitos y componentes de lógica digital , 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 de entradas pasadas. [ 3 ] En la lógica secuencial, la información de las entradas pasadas se almacena en elementos de memoria electrónica, como los biestables . 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 a la 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 2N .
Estado del programa
De manera similar, un programa informático almacena datos en variables , que representan ubicaciones de almacenamiento en la memoria del ordenador . El contenido de estas ubicaciones de memoria, en cualquier momento 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 programas informáticos que operan de forma serial o secuencial sobre flujos de datos , como analizadores sintácticos , cortafuegos , protocolos de comunicación y cifrado . Los programas seriales procesan 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 que se conservan 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 cero con cada entrada de datos; esto se denomina protocolo sin estado .
La programación imperativa es un paradigma de programación (una forma de diseñar un lenguaje de programación ) que describe la computación en términos del estado del programa y de las instrucciones que modifican dicho estado. Los cambios de estado son implícitos y están gestionados por el entorno 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 .
La programación orientada a objetos intenta mejorar los paradigmas de programación imperativa y procedimental encapsulando el estado (y el comportamiento) relacionado dentro de los objetos . El estado de un objeto suele ocultarse para aislarlo de otros objetos y reducir el acoplamiento . [ 8 ] El estado que se oculta de esta manera se suele denominar "estado interno" del objeto.
En los lenguajes de programación declarativos , el programa describe los resultados deseados y no especifica directamente los cambios de estado.
En la programación funcional , el estado se representa generalmente con lógica temporal mediante variables explícitas que representan el estado del programa en cada paso de su ejecución: una variable de estado se pasa como parámetro de entrada a una función que transforma el estado, la cual devuelve el estado actualizado como parte de su valor de retorno. Una subrutina puramente funcional solo tiene visibilidad de los cambios de estado representados por las variables de estado dentro de su ámbito.
Máquinas de estados finitos
La salida de un circuito secuencial o programa informático en cualquier momento está completamente determinada por sus entradas y estado actuales. Dado que cada elemento de memoria binaria solo tiene dos estados posibles, 0 o 1, el número total de estados diferentes que puede adoptar un circuito es finito y está determinado por el número de elementos de memoria. Si hay N elementos de memoria binaria, un circuito digital puede tener como máximo 2N 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 informáticos.
Ejemplos
Un ejemplo de un dispositivo cotidiano con estado es un televisor . Para cambiar de canal, el usuario suele pulsar el botón de subir o bajar canal del mando a distancia, que envía un mensaje codificado al televisor. Para calcular el nuevo canal deseado, el sintonizador digital debe tener almacenado el número del canal actual . A continuación, suma o resta uno a este número para obtener el del nuevo canal y ajusta el televisor para recibirlo. Este nuevo número se almacena como el canal actual . Del mismo modo, el televisor también almacena un número que controla el volumen del altavoz. Al pulsar los botones de subir o bajar volumen, este número aumenta o disminuye, estableciendo un nuevo nivel de volumen. Tanto el canal actual como el volumen actual forman parte del estado del televisor. Se almacenan en memoria no volátil , que conserva la información cuando el televisor se apaga, de modo que al encenderlo de nuevo, el televisor vuelve a su canal y nivel de volumen anteriores.
Otro ejemplo es que el estado de un ordenador personal se define como el contenido de todos sus elementos de memoria. Cuando ordenadores como los portátiles entran en modo de hibernación para ahorrar energía apagando el procesador, el estado de este 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 continuar donde lo dejó.
Véase también
- Datos (informática)
- Variable (lenguaje de programación de alto nivel) : contenedor utilizado para almacenar el estado de un objeto;
Referencias
- ↑ "¿Qué es sin estado? - Definición de WhatIs.com" . techtarget.com .
- ↑ Harris, David Money; Harris, Sarah L. (2007). Diseño digital y arquitectura informática . EE. UU.: Morgan Kaufmann. pág. 103. ISBN 978-0123704979.
- ↑ Kaeslin, Hubert (2008). Diseño de circuitos integrados digitales: De las arquitecturas VLSI a la fabricación CMOS . Reino Unido: Cambridge University Press. pág. 735. ISBN 978-0521882675.
- ↑ Srinath, NK (agosto de 2005). Microprocesador 8085: Programación e Interconexión . Prentice-Hall of India Pvt. Ltd. pág. 326. ISBN 978-8120327856Consultado el 7 de diciembre de 2012.
Página 46 .
- ↑ Laplante, Philip A. (2000). Diccionario de informática, ingeniería y tecnología . EE. UU.: CRC Press. pág. 466. ISBN 978-0849326912.
- ↑ Misra, Jayadev (2001). Una disciplina de multiprogramación: teoría de la programación para aplicaciones distribuidas . Springer. pág. 14. ISBN 978-0387952062.
- ^ Prata, Stephen Prata (2004). C Primer Plus, 5.ª edición . Educación Pearson. págs. 113-114 . ISBN 978-0132713603.
- ↑ Booch, Grady; Maksimchuk, Robert A.; Engle, Michael W.; Young, Bobbi J.; Conallen, Jim; Houston, Kelli A. (2007). Análisis y diseño orientado a objetos con aplicaciones (3.ª ed.). EE. UU.: Addison-Wesley. págs. 78-31. ISBN 0-201-89551-X.
- Cognición
- Modelos de computación