En informática , el tiempo compartido es el uso compartido simultáneo de un recurso informático entre muchas tareas o usuarios, dándole a cada tarea o usuario una pequeña porción del tiempo de procesamiento . Este cambio rápido entre tareas o usuarios da la ilusión de ejecución simultánea . [1] [2] Permite la realización de múltiples tareas por parte de un solo usuario o habilita sesiones de múltiples usuarios.
Desarrollado durante la década de 1960, su surgimiento como el modelo principal de computación en la década de 1970 representó un cambio tecnológico importante en la historia de la informática. Al permitir que muchos usuarios interactuaran simultáneamente con una sola computadora, el tiempo compartido redujo drásticamente el costo de proporcionar capacidad informática, hizo posible que las personas y las organizaciones usaran una computadora sin poseerla [3] y promovió el uso interactivo de las computadoras y el desarrollo de nuevas aplicaciones interactivas .
Las primeras computadoras eran dispositivos extremadamente caros y muy lentos en comparación con los modelos posteriores. Las máquinas estaban típicamente dedicadas a un conjunto particular de tareas y eran operadas por paneles de control, en los que el operador ingresaba manualmente pequeños programas a través de interruptores para cargar y ejecutar una serie de programas. Estos programas podían tardar horas en ejecutarse. A medida que las computadoras crecían en velocidad, los tiempos de ejecución se redujeron y pronto el tiempo que se tardaba en iniciar el siguiente programa se convirtió en una preocupación. Los nuevos software y metodologías de procesamiento por lotes , incluidos los sistemas operativos por lotes como IBSYS (1960), redujeron estos "períodos muertos" al poner en cola los programas listos para ejecutarse. [4]
Los programadores utilizaban perforadoras de tarjetas o grabadoras de cinta de papel , relativamente económicas , para escribir sus programas "fuera de línea". Los programas se enviaban al equipo de operaciones, que programaba su ejecución. El resultado (generalmente impreso) se devolvía al programador. El proceso completo podía llevar días, durante los cuales el programador podía no ver nunca la computadora. Los estudiantes de Stanford hicieron un cortometraje en el que criticaban esta situación con humor. [5]
La alternativa de permitir que el usuario manejara el ordenador directamente era, en general, demasiado costosa como para considerarla, ya que los usuarios podían disponer de largos periodos para introducir código mientras el ordenador permanecía inactivo. Esta situación limitaba el desarrollo interactivo a aquellas organizaciones que podían permitirse el lujo de desperdiciar ciclos de computación: las grandes universidades en su mayoría.
Se afirma que el concepto fue descrito por primera vez por Robert Dodds en una carta que escribió en 1949, aunque no utilizó el término " tiempo compartido" . [6] Más tarde, John Backus también describió el concepto, pero no utilizó el término, en la sesión de verano de 1954 en el MIT . [7] Bob Bemer utilizó el término " tiempo compartido " en su artículo de 1957 "Cómo considerar una computadora" en Automatic Control Magazine y se informó que el mismo año utilizó el término " tiempo compartido" en una presentación. [6] [8] [9] En un artículo publicado en diciembre de 1958, WF Bauer escribió que "Las computadoras manejarían una serie de problemas simultáneamente. Las organizaciones tendrían equipos de entrada-salida instalados en sus propias instalaciones y comprarían tiempo en la computadora de la misma manera que el hogar promedio compra energía y agua de las empresas de servicios públicos". [10]
Christopher Strachey , que se convirtió en el primer profesor de computación de la Universidad de Oxford , presentó una solicitud de patente en el Reino Unido para "tiempo compartido" en febrero de 1959. [11] [12] Presentó un artículo "Tiempo compartido en computadoras grandes y rápidas" [13] en la primera Conferencia de Procesamiento de Información de la UNESCO en París en junio de ese año, donde transmitió el concepto a JCR Licklider . [14] Este artículo fue acreditado por el Centro de Computación del MIT en 1963 como "el primer artículo sobre computadoras de tiempo compartido". [15]
El significado del término “tiempo compartido” ha cambiado con respecto a su uso original. De 1949 a 1960, el término “tiempo compartido” se utilizaba para referirse a la multiprogramación sin múltiples sesiones de usuario. [6] Más tarde, pasó a significar compartir una computadora de manera interactiva entre múltiples usuarios. En 1984, Christopher Strachey escribió que consideraba que el cambio en el significado del término “tiempo compartido” era una fuente de confusión y no lo que él quería decir cuando escribió su artículo en 1959. [6]
También existen ejemplos de sistemas que proporcionan consolas para múltiples usuarios, pero sólo para aplicaciones específicas, no son sistemas de propósito general. Entre ellos se encuentran SAGE (1958), SABRE (1960) [6] y PLATO II (1961), creado por Donald Bitzer en una demostración pública en el parque Robert Allerton cerca de la Universidad de Illinois a principios de 1961. Bitzer ha dicho durante mucho tiempo que el proyecto PLATO habría obtenido la patente sobre tiempo compartido si la Universidad de Illinois no hubiera perdido la patente durante dos años. [16]
El primer sistema interactivo de uso general de tiempo compartido utilizable para el desarrollo de software, Compatible Time-Sharing System , fue iniciado por John McCarthy en el MIT escribiendo un memorando en 1959. [17] Fernando J. Corbató lideró el desarrollo del sistema, un prototipo del cual había sido producido y probado en noviembre de 1961. [18] Philip M. Morse hizo arreglos para que IBM proporcionara una serie de sus computadoras mainframe comenzando con el IBM 704 y luego la línea de productos IBM 709 IBM 7090 e IBM 7094. [ 18] IBM prestó esas mainframes sin costo al MIT junto con el personal para operarlas y también proporcionó modificaciones de hardware principalmente en forma de RPQs ya que los clientes anteriores ya habían encargado las modificaciones. [19] [18] Había ciertas estipulaciones que regían el uso del hardware prestado de IBM por parte del MIT. El MIT no podía cobrar por el uso de CTSS. [20] El MIT solo podía usar las computadoras IBM durante ocho horas al día; Otras ocho horas estaban disponibles para otras universidades; IBM podía utilizar sus ordenadores durante las ocho horas restantes, aunque hubo algunas excepciones. En 1963 se instaló una segunda implementación de CTSS en un IBM 7094 que el MIT había comprado con dinero de ARPA . Esto se utilizó para apoyar el desarrollo de Multics en el Proyecto MAC . [18]
JOSS comenzó a ofrecer servicio de tiempo compartido en enero de 1964. [21] El sistema de tiempo compartido de Dartmouth (DTSS) comenzó a ofrecer servicio en marzo de 1964. [22]
A finales de los años 1960 y durante los años 1970, las terminales de ordenador se multiplexaron en grandes ordenadores centrales institucionales ( sistemas informáticos centralizados ), que en muchas implementaciones consultaban secuencialmente las terminales para ver si había datos adicionales disponibles o si el usuario de la computadora solicitaba alguna acción. Más tarde, la tecnología de interconexiones se basaba en interrupciones y algunas de ellas utilizaban tecnologías de transferencia de datos en paralelo, como el estándar IEEE 488. En general, las terminales de ordenador se utilizaban en las propiedades de las universidades en lugares muy similares a los que se encuentran hoy en día las computadoras de escritorio o las computadoras personales . En los primeros tiempos de las computadoras personales, muchas se utilizaban de hecho como terminales particularmente inteligentes para sistemas de tiempo compartido.
Los creadores de DTSS escribieron en 1968 que "cualquier tiempo de respuesta que promedie más de 10 segundos destruye la ilusión de tener una computadora propia". [23] Por el contrario, los usuarios de tiempo compartido pensaban que su terminal era la computadora, [24] y, a menos que recibieran una factura por usar el servicio, rara vez pensaban en cómo otros compartían los recursos de la computadora, como cuando una gran aplicación JOSS causaba paginación para todos los usuarios. El boletín JOSS a menudo pedía a los usuarios que redujeran el uso de almacenamiento. [25] El tiempo compartido era, no obstante, una forma eficiente de compartir una computadora grande. En 1972, [actualizar]DTSS admitía más de 100 usuarios simultáneos. Aunque más de 1000 de los 19 503 trabajos que el sistema completaba en "un día particularmente ajetreado" requerían diez segundos o más de tiempo de computadora, DTSS podía manejar los trabajos porque el 78% de los trabajos necesitaban un segundo o menos de tiempo de computadora. Alrededor del 75% de los 3.197 usuarios utilizaron su terminal durante 30 minutos o menos, durante los cuales utilizaron menos de cuatro segundos de tiempo de computadora. Una simulación de fútbol, entre los primeros juegos de mainframe escritos para DTSS, utilizó menos de dos segundos de tiempo de computadora durante los 15 minutos de tiempo real para jugar el juego. [26] Con el auge de la microinformática a principios de la década de 1980, el tiempo compartido perdió importancia, porque los microprocesadores individuales eran lo suficientemente económicos como para que una sola persona pudiera tener todo el tiempo de CPU dedicado exclusivamente a sus necesidades, incluso cuando estaba inactiva.
Sin embargo, Internet volvió a poner de moda el concepto general de tiempo compartido. Las costosas granjas de servidores corporativos, que cuestan millones, pueden alojar a miles de clientes que comparten los mismos recursos comunes. Al igual que con los primeros terminales en serie, los sitios web funcionan principalmente en ráfagas de actividad seguidas de períodos de inactividad. Esta naturaleza de ráfagas permite que el servicio sea utilizado por muchos clientes a la vez, normalmente sin retrasos perceptibles en la comunicación, a menos que los servidores comiencen a estar muy ocupados.
Génesis
En la década de 1960, varias empresas comenzaron a proporcionar servicios de tiempo compartido como oficinas de servicios . Los primeros sistemas usaban máquinas Teletype Model 33 KSR o ASR o Teletype Model 35 KSR o ASR en entornos ASCII y terminales basadas en máquinas de escribir IBM Selectric (especialmente la IBM 2741 ) con dos códigos de siete bits diferentes. [27] Se conectaban a la computadora central mediante un módem Bell 103A de acceso telefónico o módems acoplados acústicamente que operaban a 10-15 caracteres por segundo. Los terminales y módems posteriores admitían entre 30 y 120 caracteres por segundo. El sistema de tiempo compartido proporcionaría un entorno operativo completo, que incluía una variedad de procesadores de lenguaje de programación, varios paquetes de software, almacenamiento de archivos, impresión masiva y almacenamiento fuera de línea. A los usuarios se les cobraba un alquiler por el terminal, un cargo por horas de tiempo de conexión, un cargo por segundos de tiempo de CPU y un cargo por kilobytes-mes de almacenamiento en disco.
Los sistemas comunes utilizados para compartir el tiempo incluían el SDS 940 , el PDP-10 , el IBM 360 y la serie GE-600 . Las empresas que proporcionaban este servicio incluían GEISCO de GE , la subsidiaria de IBM The Service Bureau Corporation , Tymshare (fundada en 1966), National CSS (fundada en 1967 y comprada por Dun & Bradstreet en 1979), Dial Data (comprada por Tymshare en 1968), AL/COM , Bolt, Beranek y Newman (BBN) y Time Sharing Ltd. en el Reino Unido . [28] En 1968, había 32 oficinas de servicios de este tipo que prestaban servicios solo a los Institutos Nacionales de Salud (NIH) de EE. UU. [29] La Guía Auerbach de tiempo compartido (1973) enumera 125 servicios de tiempo compartido diferentes que utilizan equipos de Burroughs , CDC , DEC , HP , Honeywell , IBM , RCA , Univac y XDS . [30] [31]
En 1975, el presidente en funciones de Prime Computer, Ben F. Robelen, dijo a los accionistas que "el mayor mercado de usuarios finales en la actualidad es el de tiempo compartido". [32] Para DEC, durante un tiempo la segunda empresa de ordenadores más grande (después de IBM), esto también era cierto: su PDP-10 y el 360/67 de IBM [33] eran ampliamente utilizados [34] por servicios comerciales de tiempo compartido como CompuServe, On-Line Systems, Inc. (OLS), Rapidata y Time Sharing Ltd.
La llegada de la computadora personal marcó el comienzo del declive del tiempo compartido. [ cita requerida ] La situación económica era tal que el tiempo de computadora pasó de ser un recurso costoso que debía compartirse a ser tan barato que las computadoras podían dejarse inactivas durante largos períodos para estar disponibles cuando fuera necesario. [ cita requerida ]
Aunque muchos servicios de tiempo compartido simplemente cerraron, Rapidata [35] [36] se mantuvo y pasó a formar parte de National Data Corporation . [37] En 1982, seguía siendo de suficiente interés como para ser el centro de atención de "A User's Guide to Statistics Programs: The Rapidata Timesharing System". [38] Incluso cuando los ingresos cayeron un 66% [39] y National Data desarrolló posteriormente sus propios problemas, se hicieron intentos para mantener en marcha este negocio de tiempo compartido. [40] [41] [42]
A partir de 1964, el sistema operativo Multics [43] fue diseñado como una utilidad informática , inspirada en las utilidades eléctricas o telefónicas. En la década de 1970, el repositorio de hipertexto original " Xanadu " de Ted Nelson fue concebido como un servicio de este tipo.
El tiempo compartido fue la primera vez que varios procesos , propiedad de diferentes usuarios, se ejecutaban en una sola máquina y estos procesos podían interferir entre sí. [44] Por ejemplo, un proceso podía alterar los recursos compartidos de los que dependía otro proceso, como una variable almacenada en la memoria. Cuando solo un usuario usaba el sistema, esto podía dar como resultado un resultado posiblemente incorrecto, pero con varios usuarios, esto podía significar que otros usuarios podían ver información que no debían ver.
Para evitar que esto sucediera, un sistema operativo necesitaba aplicar un conjunto de políticas que determinaban qué privilegios tenía cada proceso. Por ejemplo, el sistema operativo podía negarle a un proceso determinado el acceso a una determinada variable.
La primera conferencia internacional sobre seguridad informática, celebrada en Londres en 1971, fue impulsada principalmente por la industria del tiempo compartido y sus clientes. [45]
Se ha considerado que el uso compartido del tiempo en forma de cuentas ficticias supone un riesgo. [46]
Principales sistemas de tiempo compartido tempranos: [30]
Una de las primeras descripciones del tiempo compartido en computadoras.
Lo que Strachey propuso en su concepto de tiempo compartido fue un acuerdo que preservaría el contacto directo entre el programador y la máquina, al tiempo que lograría la economía de la multiprogramación.
En 1959, Christopher Strachey en el Reino Unido y John McCarthy en los Estados Unidos describieron de forma independiente algo que llamaron tiempo compartido.
la expresión "tiempo compartido" estaba muy presente. Sin embargo, generalmente se usaba en mi sentido y no en el sentido de John McCarthy de un objeto similar al CTSS.
. No podíamos formar todos esos técnicos nosotros mismos. Sin embargo, no había ni una sola universidad con un plan de estudios de informática. Así que fui al MIT a mediados de los años 50 y les insté a que empezaran a formar científicos informáticos. Les regalamos una computadora grande y el dinero para hacerla funcionar.
Corbato: No, ese fue uno de los aspectos interesantes. Una de las condiciones de la donación de IBM para el uso del equipo era que no debíamos cobrar por él. Era gratis, sin duda.
Las vulnerabilidades más recientes no se pueden explotar directamente de forma remota en la mayoría de los sistemas. Esto significa que la mayoría de los sistemas no corren el riesgo de sufrir ataques remotos desde Internet. Muchas de las vulnerabilidades pueden ser aprovechadas por alguien con una cuenta shell normal en el sistema.