2011-03-25 23 views
42

Explica las diferencias entre los sistemas sin estado y con estado, y los impactos del estado en el paralelismo.¿Cuáles son las diferencias entre los sistemas sin estado y con estado, y cómo afectan el paralelismo?

+0

Puede ver esto: http: //www.cs.swarthmore.edu/~newhall/cs85/s08/trilok.pdf –

+0

posible duplicado de [Stateless vs Stateful - Podría usar información concreta] (http: //stackoverflow.com/questions/5329618/stateless-vs-stateful-i-could-use-some-concrete-information) –

+2

¿Tarea? Por favor sea sincero al respecto. – David

Respuesta

60

A sin estado sistema se puede ver como una caja [negro? ;)] Donde en cualquier punto en el tiempo el valor de la salida (s) depende sólo del valor de la entrada (s) [después de un cierto tiempo de procesamiento]

A sistema stateful lugar puede ser visto como una caja donde en cualquier punto en el tiempo el valor de la (s) salida (s) depende del valor de la (s) entrada (s) y de un estado interno, básicamente un sistema con estado es como una máquina de estado con "memoria" como el mismo el conjunto de valores de entrada puede generar diferentes salidas dependiendo de la (s) entrada (s) anterior (es) recibidas por el sistema.

Desde el programación paralela punto de vista, un sistema sin estado, si se aplica correctamente, puede ser ejecutado por múltiples hilos/tareas al mismo tiempo sin ningún problema de concurrencia [como ejemplo pensar en una función de reentrada] A stateful El sistema requerirá que múltiples hilos de ejecución accedan y actualicen el estado interno del sistema de forma exclusiva, por lo que será necesario un punto de [serialización] de serialización.

26

Un servidor con estado mantiene el estado entre las conexiones. Un servidor sin estado no.

Por lo tanto, cuando envía una solicitud a un servidor con estado, puede crear algún tipo de objeto de conexión que rastree la información que solicita. Cuando envía otra solicitud, esa solicitud opera en el estado de la solicitud anterior. Entonces puedes enviar una solicitud para "abrir" algo. Y luego puede enviar una solicitud para "cerrarla" más tarde. Entre las dos solicitudes, esa cosa está "abierta" en el servidor.

Cuando envía una solicitud a un servidor sin estado, no crea ningún objeto que rastree información con respecto a sus solicitudes. Si "abre" algo en el servidor, el servidor no conservará ninguna información de que tiene algo abierto. Una operación "cercana" no tendría sentido, ya que no habría nada que cerrar.

HTTP y NFS son protocolos sin estado. Cada solicitud es independiente.

A veces las cookies se utilizan para agregar algún estado a un protocolo sin estado. En HTTP (páginas web), el servidor le envía una cookie y luego el navegador mantiene el estado, solo para enviarlo de vuelta al servidor en una solicitud posterior.

SMB es un protocolo con estado. Un cliente puede abrir un archivo en el servidor, y el servidor puede denegar a otros clientes el acceso a ese archivo hasta que el cliente lo cierre.

+2

Esta respuesta no aborda la cuestión del impacto de state/less/ful/ness en el paralelismo. –

Cuestiones relacionadas