Ir al contenido

Tiempo compartido (informática)

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 11:36 9 ene 2010 por XZeroBot (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.
El primer proyecto para implementar un sistema de tiempo compartido fue iniciado por John McCarthy a finales de 1957, en un IBM 704 modificado

El tiempo compartido se refiere a compartir un recurso de computación entre muchos usuarios por medio de la multitarea. Su introducción en los años 1960, y el surgimiento como el modelo prominente de la computación en los años 1970, representa un cambio histórico importante en la historia de la computación. Al permitir que un gran número de usuarios interactuara simultáneamente en una sola computadora, el tiempo compartido dramáticamente bajó el costo del servicio de computación, mientras que al mismo tiempo hacía la experiencia computacional mucho más interactiva.

Historia

Procesamiento por lotes

Los primeros computadores eran dispositivos extremadamente costosos y muy lentos. Las máquinas fueron típicamente dedicadas a un particular conjunto de tareas y eran operados por un panel de control, el operador entraba manualmente pequeños programas por medio de interruptores para cargar y correr otros programas. Estos programas pudieron tomar horas, e incluso semanas, para correr. A medida que las computadoras crecieron en velocidad, los tiempos de corrida cayeron, y repentinamente el tiempo tomado para lanzar el siguiente programa se convirtió en una preocupación. Las metodologías de procesamiento por lotes evolucionaron para disminuir estos tiempos muertos, alineando programas uno detrás del otro para que tan pronto como uno terminaron el siguiente comenzaría.

Para soportar una operación de procesamiento por lotes, un número de máquinas para escribir tarjetas perforadas o cintas de papel serían usadas por los programadores, que utilizarían estas máquinas baratas para escribir sus programas "fuera de línea". Cuando ellos terminaban de mecanografiarlo, eran enviados al equipo de operaciones, quienes le asignarían un horario para correr. Los programas importantes correrían en poco tiempo, los menos importantes eran imprevisibles. Cuando el programa finalmente era corrido, la salida, generalmente impresa, sería retornada al programador. El proceso completo podía tardar días, durante los cuales el programador podía no ver el computador nunca.

La alternativa, permitiendo al usuario operar el computador directamente, era generalmente demasiado costoso para considerar. Esto era porque el usuario tenía largos retardos simplemente sentados allí entrando el código. Esto limitó los desarrollos en la interactividad directa a las organizaciones que podían pagar para despilfarrar ciclos computacionales, universidades grandes en general. Los programadores en las universidades denigraron los comportamientos inhumanos que el procesamiento por lotes impuso, al punto que los estudiantes de Stanford hicieron un cortometraje humorístico criticándolo. Ellos experimentaron con nuevas maneras de interactuar directamente con el computador, un campo conocido hoy como Interacción Humano Máquina.

Tiempo compartido

Debido a que los primeros mainframes y minicomputadores eran extremadamente costosos, era raramente posible permitir a un solo usuario el acceso exclusivo a la máquina para uso interactivo. Pero debido a que los computadores en uso interactivo a menudo pasan mucho de su tiempo ocioso esperando por la entrada del usuario, fue sugerido que múltiples usuarios podrían compartir una máquina al asignar el tiempo ocioso de un usuario para servir a otros usuarios.

El tiempo compartido se desarrolló al darse cuenta que mientras un usuario solo era ineficiente, un grupo grande de usuarios juntos no lo era. Esto era debido al patrón de la interacción; en la mayoría de los casos los usuarios entran explosiones (ráfagas) de información seguidas por una larga pausa de inactividad, pero un grupo de usuarios trabajando al mismo tiempo significaría que las pausas de un usuario en un momento determinado serían consumidas por la actividad de los otros. Dado un tamaño de grupo óptimo, el proceso total podía ser muy eficiente. Similarmente se podría conceder a otros usuarios, las pequeñas porciones de tiempo gastadas en esperar por el disco, la cinta, o la entrada de la tarjeta de red.

La implementación de un sistema capaz de tomar provecho de esto sería difícil. El procesamiento por lotes era realmente un desarrollo metodológico encima de los primeros sistemas; las computadoras todavía corrían simple programas para simple usuarios en un momento determinado, todo lo que el procesamiento por lotes cambió fue el retardo de tiempo entre un programa y el siguiente. Desarrollar un sistema que soportara múltiples usuarios al mismo tiempo era un concepto totalmente diferente, el "estado" de cada usuario y sus programas tendría que ser mantenidos en la máquina, y luego cambiado entre ellos rápidamente. Esto tomaría ciclos de la computadora, y en las máquinas lentas de la época esto era una preocupación. Sin embargo, a medida que las computadoras rápidamente mejoraban en velocidad, y especialmente en el tamaño de la memoria de núcleo para mantener el estado, estos gastos indirectos en la implementación del tiempo compartido se redujeron continuamente en términos globales.

El concepto primero fue descrito públicamente a principios de 1957 por Bob Bemer como parte de un artículo en Automatic Control Magazine. El primer proyecto para implementar un sistema de tiempo compartido fue iniciado por John McCarthy a finales de 1957, en un IBM 704 modificado, y más adelante adicionalmente una computadora IBM 7090 modificada. Aunque él se fue para trabajar en el Project MAC y otros proyectos, uno de los resultados del proyecto, conocido como el Compatible Time-Sharing System o CTSS compatible, fue demostrado en noviembre de 1961. El CTSS tiene una buena aclamación de ser el primer sistema de tiempo compartido y permaneció en uso hasta 1973. El primer sistema de tiempo compartido comercialmente exitoso fue el Dartmouth Time-Sharing System (DTSS) que fue implementado por primera vez en el Dartmouth College en 1964 y subsecuentemente formó la base de los computer bureau services de General Electric. El DTSS influenció el diseño de otros sistemas de tiempo compartido tempranos desarrollados por Hewlett Packard, Control Data Corporation, UNIVAC y otros, además de introducir el lenguaje de programación BASIC.

Evolución

Entre finales de los años 1960 y los años 1970, los terminales de computadora fueron multiplexados sobre grandes computadores mainframes institucionales (sistemas centrales de computación), que en muchas implementaciones consultaban secuencialmente a los terminales (polling) para ver si había algún dato o acción adicionales solicitados por el usuario del computador. La tecnología posterior en interconexiones fue manejada por interrupciones, y alguna de estas usaban tecnologías de transferencia paralela de datos como, por ejemplo, el estándar IEEE 488. Generalmente, los terminales fueron utilizados en propiedades de las universidades en muchos de los mismos lugares como se encuentran hoy los computadores de escritorio o los computadores personales. De hecho, en los primeros días de los computadores personales, muchos fueron usados particularmente como terminales inteligentes para los sistemas de tiempo compartido.

Con la auge de la microcomputación a principios de los años 1980, el tiempo compartido se desvaneció porque los microprocesadores individuales eran suficientemente baratos para que una sola persona pudiera tener todo el tiempo de CPU dedicado solamente a sus necesidades, incluso cuando estaba ocioso.

Internet ha traído de vuelta nuevamente a la popularidad el concepto general de tiempo compartido. Granjas de servidores costando millones pueden ser anfitriones de miles de clientes, todos compartiendo los mismos recursos comunes. Al igual que los primeros terminales seriales, los sitios Web operan primariamente en ráfagas de actividad seguidas por períodos de tiempo ocioso. Esta naturaleza en ráfagas permite que el servicio sea usado a la vez por muchos clientes del sitio Web, y ninguno de ellos nota cualquier retardo en las comunicaciones hasta que los servidores comienza a estar muy ocupados.

El negocio del tiempo compartido

En los años 1960, varias compañías comenzaron a proporcionar servicios de tiempo compartido como service bureaus (se alquilaba tiempo y servicio de computación). Los primeros sistemas usaron el teletipo K/ASR-33s o K/ASR-35s en ambientes ASCII, y una teleimpresora de IBM en ambientes EBCDIC. Se conectarían con la computadora central usando dial-up por medio de módems de acople acústico que operaban a 10-15 caracteres por segundo. Terminales y módems posteriores soportaban 30-120 caracteres por segundo. El sistema de tiempo compartido proporcionaría un ambiente operacional completo, incluyendo una variedad de procesadores de lenguaje de programación, varios paquetes de programas informáticos, almacenamiento de archivos, impresión masiva, y de almacenamiento fuera de línea. A los usuarios se les cargaba un alquiler por el terminal, una carga por horas de tiempo de conexión, una carga por segundos de tiempo de CPU, y una carga por kilobytes mensuales de almacenamiento de disco.

Los sistemas comunes usados para el tiempo compartido incluyeron el SDS 940, el PDP-10, y el IBM 360. Las compañías que proporcionaban este servicio incluyeron Tymshare (fundada en 1966), National CSS (fundada en 1967 y comprada por Dun & Bradstreet en 1979), Dial Data (comprada por Tymshare en 1968), y Bolt, Beranek, and Newman. Por 1968, había 32 de esas oficinas de servicio que servían al NIH solamente.[1] La edición 1973 de la Guía Auerbach para el tiempo compartido lista 125 diferentes servicios de tiempo compartido usando equipos de Burroughs, CDC, DEC, HP, Honeywell, IBM, RCA, UNIVAC y XDS.

La utilidad computacional

En los años 1970, mucho de los pensamientos fue dado a los recursos de computadora centralizados que eran ofrecidos como utilidades computacionales (servicios computacionales), iguales que los servicios eléctricos o de teléfono. El repositorio original de hipertexto "Xanadu", de Ted Nelson, fue imaginado como uno de esos servicios. A medida que la industria del computador crecía, se volvió claro que no ocurriría tal consolidación de recursos de computación en sistemas de tiempo compartido. Algunos sostienen que el movimiento a través de la computación cliente-servidor para centralizar granjas de servidores y la virtualización presentan otra vez un mercado para las utilidades computacionales.

Seguridad

La seguridad no había sido un tema importante para los sistemas centralizados de procesamiento por lotes que eran comunes cuando emergió el paradigma de tiempo compartido. Ni uno ni otro era mucho más que la seguridad del nombre de usuario requerida en muchos campus. Los usuarios comerciales, especialmente los de las categorías financieras y al por menor, exigieron una seguridad mucho más alta y también plantearon las cuestiones que se están abordando hoy a medida que las compañías consideran el outsourcing de servicios. En 1971, la primera conferencia internacional sobre seguridad de computadora, en Londres, fue conducida sobre todo por la industria del tiempo repartido y sus clientes. Los mismos problemas todavía se están abordando hoy en la Web y con los productos SaaS.

Primeros sistemas de tiempo compartido significativos

Ver también: Evolución de los sistemas de tiempo compartido

Tiempo compartido en los microcomputadores de hoy

Con el uso de microcomputadores con configuraciones multiseat se pueden tener varios usuarios trabajando simultáneamente en el mismo computador, cada uno de ellos con su propia pantalla, teclado, ratón y opcionalmente tarjeta de sonido.

Otra manera de usar tiempo compartido en los microcomputadores es por medio de LTSP, que permite la reutilización de microcomputadores de bajos recursos (ya viejos y obsoletos), usándolos como terminales inteligentes o clientes ligeros que se conectan a un microcomputador central donde se ejecutan las aplicaciones y se comparten sus recursos.

Referencias

Utilidades computacionales

Sistemas de tiempo compartido

Véase también

Enlaces externos