Volver al temario
Tema 01 · 26 páginas

Introducción a los sistemas operativos

Tema completo Modo estudio
TEXTO ORIGINAL · Páginas 1113 Ver PDF

2.2. La segunda generación

Texto íntegro de la conversión. Las figuras y la disposición de las notas se pueden consultar en el PDF.

2.2. La segunda generación

La aparición del transistor en la década de 1950 permitió construir computadores mucho más pequeños y más fiables, de manera que ya se podían fabricar con la idea de venderlos. Eran máquinas muy caras y sólo estaban al

alcance de las grandes corporaciones, instituciones como el ejército, las universidades y el gobierno.

Paralelamente, constatamos los hechos siguientes:

  • Aparecen dispositivos de entrada/salida nuevos: los lectores de tarjetas perforadas y las impresoras.

  • También se inventan dispositivos de almacenamiento nuevos: las unidades de disco y las cintas magnéticas.

  • Se desarrolla el primer software de sistema, que incluye ensambladores,

compiladores de lenguajes de programación de alto nivel2, cargadores, montadores (linkers), bibliotecas de funciones matemáticas y rutinas estándar de entrada/salida de los diferentes dispositivos que pueden utilizar los programas3.

Con este nuevo entorno, se mejora considerablemente el proceso de programación y ejecución de programas respecto de la etapa inicial. En esta etapa, el proceso tiene lugar siguiendo los pasos siguientes:

  1. Los programas se escriben en lenguajes ensambladores o de alto nivel; una vez creados se llaman código fuente (source code).

  2. Los programas se traducen de manera automática mediante los compiladores/traductores (aplicaciones de sistema) a lenguaje máquina:

  • Si hay errores de sintaxis, hay que corregirlos y volver a hacer la traducción.
  • Si no hay errores sintácticos, el código objeto producido a partir del código fuente por el traductor/compilador se puede cargar en memoria y ejecutar.
  1. Otra aplicación de sistema, el cargador, automatiza el proceso de cargar el programa en memoria para ejecutarlo.

Notas y pies de figura de la fuente

Figura 2 El ENIAC, Electronic Numerical Integrator and Computer (computador e integrador numérico electrónico), pesaba aproximadamente 30 toneladas, ocupaba 150 m2 y consumía una potencia de 150 kW. (2)Algol, Cobol o Fortran (3)Impresoras, monitores y tarjetas perforadas Figura 3 Las tarjetas y las cintas perforadas se utilizaban para programar los computadores y para recibir los resultados de sus cálculos mediante máquinas lectoras-perforadoras de tarjetas.

Página 12

  1. Después de transferir el control al programa cargado por medios manuales o automáticos, empieza la ejecución del programa.

Una vez cargado en memoria, el programa se puede reejecutar con diferentes datos y los resultados se sacan por la impresora o en cinta de papel. Si se detectan errores en los tiempos de ejecución, es posible determinar dónde se han producido mediante un vertido de la memoria y de los registros del computador o bien utilizando el programa depurador (debugger).

En este sistema, las rutinas de entrada/salida, junto con el programa cargador, se pueden considerar una primera versión muy rudimentaria del sistema operativo. Los traductores de lenguaje de alto nivel, los editores y los depuradores son aplicaciones de sistema que se incluyen en los diferentes servicios que ofrece el sistema operativo, pero generalmente se considera que no forman parte del mismo.

A pesar de todas estas mejoras, el modo de operación seguía siendo poco eficaz a causa de las diversas operaciones manuales que había que efectuar y que comportaban una utilización baja de los recursos del sistema. Como el coste económico del sistema computador era elevado, no es extraño que se buscaran maneras de aprovechar el tiempo perdido y aumentar la utilización de los recursos del sistema con el fin de eliminar los tiempos muertos generados por las operaciones manuales.

El primer objetivo fue automatizar al máximo todas las operaciones utilizando hardware. Pero, a pesar de la automatización de estas operaciones y la mejora

de los dispositivos4, la velocidad de las operaciones de entrada/salida de datos seguía siendo demasiado lenta en comparación con la velocidad del procesador y la de la memoria.

Como no era posible reducir el coste temporal de las operaciones de entrada/salida, se intentó al menos efectuarlas el mínimo número de veces posible. La idea era agrupar los trabajos de manera que las operaciones auxiliares tan sólo se ejecutaran una vez para todos los trabajos del grupo. Este sistema se llama sistema por lotes (sistema batch).

El sistema por lotes podría funcionar, por ejemplo, de esta forma: agrupando en un lote todos los programas escritos en lenguaje de alto nivel Fortran sólo se tiene que cargar una vez el compilador de Fortran y los trabajos que se hacen dentro del lote se pueden procesar el uno detrás del otro con un secuenciamiento automático. Para que sea posible este secuenciamiento automático, se tiene que poder indicar al sistema operativo al menos cuándo empieza y cuándo finaliza un programa dentro del lote. En este punto, hay que introducir el concepto de lenguaje de control de trabajos (JCL5). Con este lenguaje, se podía indicar al sistema operativo el inicio y la finalización de un trabajo, dar órdenes de carga y ejecución y solicitar ciertos recursos del computador (como el tiempo de CPU o la cantidad de memoria).

En los computadores de la segunda generación, la ejecución de los programas era totalmente secuencial. Cuando un programa se detenía para esperar la finalización de una operación de entrada/salida (de una unidad de cinta o de

Notas y pies de figura de la fuente

(4)Uso de cintas magnéticas en lugar de tarjetas perforadas (5)Las siglas JCL provienen de la abreviación de la expresión inglesa job control language.

Página 13

cualquier otro dispositivo), la unidad central de proceso (CPU) sencillamente se detenía y también se esperaba que la operación de entrada/salida acabara. En el caso de programas científicos, en los que domina el cálculo de operaciones en coma flotante (que se efectúa en la CPU) y las operaciones de entrada/salida son poco frecuentes, este sistema de trabajo ya era bastante eficiente.

A pesar de esta automatización, la CPU seguía estando mucho tiempo parada. El problema principal era la diferencia de velocidades entre la CPU y los dispositivos: las CPU en este periodo eran lentas, pero los lectores de tarjetas todavía lo eran más. Por lo tanto, la CPU estaba mucho tiempo detenida esperando que finalizara una operación de entrada/salida. Para intentar reducir al máximo estas diferentes velocidades de trabajo, apareció el trabajo fuera de línea (off-line). Con este sistema, se intentaba solapar las operaciones de entrada/salida con la ejecución de programas. Mientras los programas escritos en tarjetas se leían y se pasaban a cinta en una máquina, en otra máquina se podían ejecutar otros programas que ya habían sido cargados anteriormente en otra unidad de cinta.

Posteriormente, se idearon otras técnicas de solapamiento como el almacenaje en la memoria intermedia (buffering), que consiste en solapar las operaciones de entrada/salida de un programa con las operaciones de cálculo del mismo programa.

La aparición del disco, dispositivo de acceso directo, proporcionó una nueva técnica de trabajo: la gestión de colas (spooling), que permitía solapar las operaciones de entrada/salida de diferentes trabajos mientras se estaban ejecutando otras operaciones.

Ver fragmento extraído sin normalizar
2.2.  La segunda generación



                                                                                                                                               Figura￿2
La aparición del transistor en la década de 1950 permitió construir compu-                                        El ENIAC, Electronic Numerical Integrator and
                                                                                                                Computer (computador e integrador numérico
tadores mucho más pequeños y más fiables, de manera que ya se podían fa-                                           electrónico), pesaba aproximadamente 30
                                                                                                                  toneladas, ocupaba 150 m2 y consumía una
bricar con la idea de venderlos. Eran máquinas muy caras y sólo estaban al                                                           potencia de 150 kW.

alcance de las grandes corporaciones, instituciones como el ejército, las uni-
versidades y el gobierno.


Paralelamente, constatamos los hechos siguientes:


•    Aparecen dispositivos de entrada/salida nuevos: los lectores de tarjetas per-
     foradas y las impresoras.


•    También se inventan dispositivos de almacenamiento nuevos: las unida-
     des de disco y las cintas magnéticas.

•    Se desarrolla el primer software de sistema, que incluye ensambladores,                                   (2)Algol, Cobol o Fortran

     compiladores de lenguajes de programación de alto nivel2, cargadores,
                                                                                                               (3)Impresoras, monitores y tarjetas
     montadores (linkers), bibliotecas de funciones matemáticas y rutinas es-                                  perforadas
     tándar de entrada/salida de los diferentes dispositivos que pueden utilizar
     los programas3.


Con este nuevo entorno, se mejora considerablemente el proceso de progra-
mación y ejecución de programas respecto de la etapa inicial. En esta etapa, el
proceso tiene lugar siguiendo los pasos siguientes:


1) Los programas se escriben en lenguajes ensambladores o de alto nivel; una
vez creados se llaman código fuente (source code).


2) Los programas se traducen de manera automática mediante los compilado-
res/traductores (aplicaciones de sistema) a lenguaje máquina:


•    Si hay errores de sintaxis, hay que corregirlos y volver a hacer la traduc-
     ción.                                                                                                                                     Figura￿3
                                                                                                                Las tarjetas y las cintas perforadas se utilizaban
•    Si no hay errores sintácticos, el código objeto producido a partir del código                                  para programar los computadores y para
                                                                                                                recibir los resultados de sus cálculos mediante
     fuente por el traductor/compilador se puede cargar en memoria y ejecutar.                                     máquinas lectoras-perforadoras de tarjetas.


3) Otra aplicación de sistema, el cargador, automatiza el proceso de cargar el
programa en memoria para ejecutarlo.

## Página 12

<!-- source-page: 12 -->

GNUFDL • PID_00169381                                                                                  12                                                                               Introducción a los sistemas operativos

4) Después de transferir el control al programa cargado por medios manuales
o automáticos, empieza la ejecución del programa.


Una vez cargado en memoria, el programa se puede reejecutar con diferentes
datos y los resultados se sacan por la impresora o en cinta de papel. Si se de-
tectan errores en los tiempos de ejecución, es posible determinar dónde se han
producido mediante un vertido de la memoria y de los registros del compu-
tador o bien utilizando el programa depurador (debugger).


En este sistema, las rutinas de entrada/salida, junto con el programa cargador,
se pueden considerar una primera versión muy rudimentaria del sistema ope-
rativo. Los traductores de lenguaje de alto nivel, los editores y los depurado-
res son aplicaciones de sistema que se incluyen en los diferentes servicios que
ofrece el sistema operativo, pero generalmente se considera que no forman
parte del mismo.


A pesar de todas estas mejoras, el modo de operación seguía siendo poco eficaz
a causa de las diversas operaciones manuales que había que efectuar y que
comportaban una utilización baja de los recursos del sistema. Como el coste
económico del sistema computador era elevado, no es extraño que se buscaran
maneras de aprovechar el tiempo perdido y aumentar la utilización de los
recursos del sistema con el fin de eliminar los tiempos muertos generados por
las operaciones manuales.

El primer objetivo fue automatizar al máximo todas las operaciones utilizando                               (4)Uso de cintas magnéticas en lu-
hardware. Pero, a pesar de la automatización de estas operaciones y la mejora                               gar de tarjetas perforadas

de los dispositivos4, la velocidad de las operaciones de entrada/salida de datos
seguía siendo demasiado lenta en comparación con la velocidad del procesa-
dor y la de la memoria.


Como no era posible reducir el coste temporal de las operaciones de entra-
da/salida, se intentó al menos efectuarlas el mínimo número de veces posible.
La idea era agrupar los trabajos de manera que las operaciones auxiliares tan
sólo se ejecutaran una vez para todos los trabajos del grupo. Este sistema se
llama sistema￿por￿lotes (sistema batch).


    El sistema por lotes podría funcionar, por ejemplo, de esta forma: agrupando en un lote                 (5)Las siglas JCL provienen de la
    todos los programas escritos en lenguaje de alto nivel Fortran sólo se tiene que cargar una             abreviación de la expresión inglesa
    vez el compilador de Fortran y los trabajos que se hacen dentro del lote se pueden procesar             job control language.
    el uno detrás del otro con un secuenciamiento automático. Para que sea posible este
    secuenciamiento automático, se tiene que poder indicar al sistema operativo al menos
    cuándo empieza y cuándo finaliza un programa dentro del lote. En este punto, hay que
    introducir el concepto de lenguaje de control de trabajos (JCL5). Con este lenguaje, se
    podía indicar al sistema operativo el inicio y la finalización de un trabajo, dar órdenes
    de carga y ejecución y solicitar ciertos recursos del computador (como el tiempo de CPU
    o la cantidad de memoria).

En los computadores de la segunda generación, la ejecución de los programas
era totalmente secuencial. Cuando un programa se detenía para esperar la fi-
nalización de una operación de entrada/salida (de una unidad de cinta o de

## Página 13

<!-- source-page: 13 -->

GNUFDL • PID_00169381                                                                                  13                                                                               Introducción a los sistemas operativos

cualquier otro dispositivo), la unidad central de proceso (CPU) sencillamente
se detenía y también se esperaba que la operación de entrada/salida acabara.
En el caso de programas científicos, en los que domina el cálculo de operacio-
nes en coma flotante (que se efectúa en la CPU) y las operaciones de entra-
da/salida son poco frecuentes, este sistema de trabajo ya era bastante eficiente.


A pesar de esta automatización, la CPU seguía estando mucho tiempo para-
da. El problema principal era la diferencia de velocidades entre la CPU y los
dispositivos: las CPU en este periodo eran lentas, pero los lectores de tarjetas
todavía lo eran más. Por lo tanto, la CPU estaba mucho tiempo detenida es-
perando que finalizara una operación de entrada/salida. Para intentar reducir
al máximo estas diferentes velocidades de trabajo, apareció el trabajo￿fuera
de￿línea (off-line). Con este sistema, se intentaba solapar las operaciones de
entrada/salida con la ejecución de programas. Mientras los programas escritos
en tarjetas se leían y se pasaban a cinta en una máquina, en otra máquina se
podían ejecutar otros programas que ya habían sido cargados anteriormente
en otra unidad de cinta.


Posteriormente, se idearon otras técnicas de solapamiento como el almace-
naje￿en￿la￿memoria￿intermedia (buffering), que consiste en solapar las ope-
raciones de entrada/salida de un programa con las operaciones de cálculo del
mismo programa.


La aparición del disco, dispositivo de acceso directo, proporcionó una nueva
técnica de trabajo: la gestión￿de￿colas (spooling), que permitía solapar las ope-
raciones de entrada/salida de diferentes trabajos mientras se estaban ejecutan-
do otras operaciones.


Descargar Markdown originalEstudiar este apartado