2.3. La tercera generación
Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.
Multiprogramación: aprovechar las esperas
A mediados de la década de 1960, los circuitos integrados hicieron las máquinas más pequeñas, rápidas y asequibles. Se incorporaron mecanismos de interrupción y protección, mejores periféricos y terminales remotos, y se extendieron los lenguajes de propósito general. La serie IBM 360 representa esta generación en el documento.
La innovación central es la multiprogramación: mantener varios programas que puedan compartir el procesador. Los programas alternan fases de cálculo y fases de E/S. Si solo se ejecuta uno y tiene mucha E/S, el procesador pierde gran parte del tiempo esperando. El texto señala que, en procesamiento comercial, esa espera puede representar el 90 % del tiempo de ejecución.
Cuando A solicita E/S, la CPU puede ejecutar B, que ya está en memoria. Cuando B termina o solicita E/S, puede volver a A si está preparado. Se alterna así el uso del procesador y se solapa con la actividad de los dispositivos. La simultaneidad es aparente respecto al procesador compartido: el mecanismo descrito alterna programas.
En el ejemplo de las páginas 14–15, dos programas pasan de diez unidades de tiempo en ejecución secuencial a seis en ejecución concurrente. Es un caso idealizado: las fases reales varían y no siempre se consigue mantener todos los recursos ocupados. El grado de multiprogramación es el número de programas que compiten activamente por los recursos, no el número de CPU.
Tiempo compartido: atender al usuario interactivo
La multiprogramación pura cambia de programa cuando el actual termina o pide E/S. Un programa con mucho cálculo puede retrasar demasiado a los usuarios conectados mediante terminales. Por eso, aprovechar la CPU no garantiza una buena respuesta interactiva.
El tiempo compartido añade un límite a cada turno de CPU: el quantum o cuanto. El programa deja el procesador por tres causas:
- Finaliza.
- Inicia una operación de E/S.
- Agota su quantum.
Con turnos suficientemente pequeños, los programas avanzan y cada usuario percibe que recibe atención. La diferencia decisiva frente al mecanismo anterior es poder recuperar la CPU aunque el programa no termine ni solicite E/S. Los valores concretos de configuración de Linux que aparecen en la nota del PDF pertenecen a la edición del material y no son una regla universal.
UNIX, variantes y compatibilidad
El documento sitúa aquí el origen de UNIX, asociado al trabajo de Ken Thompson en Bell tras MULTICS. Destaca su desarrollo en C, la distribución del código a universidades, las posteriores líneas comerciales System III y System V y la variante BSD de Berkeley, con TCP/IP. También enumera sistemas como HP-UX, AIX, Solaris, Sun-OS y Ultrix.
La diversidad de versiones produjo diferencias de compatibilidad. POSIX aparece como un esfuerzo de estandarización de la interfaz. Para estudiar esta parte, importa conectar distribución del código, proliferación de variantes y necesidad de una interfaz común.
Esquema de repaso
- Espera de E/S → asignar CPU a otro programa → mejor aprovechamiento.
- Espera interactiva excesiva → limitar el turno con un quantum → tiempo compartido.
- Variantes UNIX → diferencias entre interfaces → estandarización POSIX.
Debes poder explicar
- El ejemplo A/B y por qué la mejora no garantiza utilización del 100 %.
- Qué mide el grado de multiprogramación.
- Las tres causas de liberación de CPU en tiempo compartido.
- Por qué surgió la necesidad de POSIX.