Apuntes Tema 1
Apuntes Tema 1
Apuntes Tema 1
2009/10
TEMA 1.- INTRODUCCIÓN
1 INTRODUCCIÓN
1
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
Una diferencia entre el SO y el resto de los programas de aplicación es que el SO
ejecuta en modo kernel o supervisor mientras que el resto de los programas ejecutan en
modo usuario.
En los primeros ordenadores (de finales de los 40 hasta mediados de los 50) el
programador interactuaba directamente con el hardware.
Los primeros sistemas de computación se caracterizaban por:
• Su gran tamaño y coste
• La presencia de indicadores luminosos, conmutadores, dispositivos de entrada
(cintas, tarjetas perforadas) e impresora.
Para mejorar el uso de los ordenadores se desarrollaron los sistemas operativos por
lotes. Su principal objetivo era sacar más provecho a la máquina gracias a una mejor
organización del trabajo.
El primer SO de este tipo fue desarrollado a mediados de los años 50 por General
Motors para IBM. En estas máquinas el programador ya no tiene que manipular
directamente el equipo. El programador entregaba los trabajos (en cinta o tarjetas
perforadas) al operador que era el que se encargaba de agrupar los trabajos por lotes que
2
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
requieren la misma operación (p ej. cargar el compilador). El operador sometía la tarea
al sistema (secuencia automática de trabajos) y entregaba los resultados al programador.
La idea central de este esquema es el uso de un elemento software conocido como
monitor.
Para cada trabajo se incluían instrucciones en un lenguaje denominado Lenguaje de
control de trabajos (JCL):
• $JOB: etiqueta de comienzo de trabajo
• $FORTRAN: le indica al SO que cargue el compilador de Fortran
• $LOAD: para cargar el programa compilado en memoria (se guardaba en cinta)
• $RUN: indica el comienzo de la ejecución del programa con los datos de las
siguientes tarjetas.
• $END: fin de trabajo.
Para entender el funcionamiento de este esquema hay que ver dos puntos de vista: el del
monitor y el del procesador.
• Gran parte del monitor está siempre en la memoria principal (monitor residente)
• El resto son utilidades y funciones comunes que se cargan cuando un trabajo los
necesite
• El monitor lee los trabajos uno a uno del dispositivo de entrada
• El trabajo actual se ubica en la zona del programa del usuario y el control pasa al
procesador
• Cuando el trabajo termina se devuelve el control al monitor quien lee un nuevo
trabajo.
• Los resultados de cada trabajo se envían a un dispositivo de salida
3
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
• Estas instrucciones hacen que el trabajo siguiente sea leído en otra zona de la
memoria principal
• Una vez leído el procesador encuentra en el monitor una instrucción de
bifurcación para empezar a ejecutar el programa de usuario
• Se ejecuta el programa de usuario hasta que se encuentre una condición de
finalización o de error
• El procesador va a la siguiente instrucción del programa monitor
4
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
Para que un sistema de procesamiento por lotes pueda incluir multiprogramación son
necesarios varios elementos:
• Interrupciones de E/S y el DMA.
• Gestión de memoria (repartir la memoria entre varios trabajos)
• Planificación de la CPU (el SO debe elegir a que trabajo asignar el procesador).
• Solución a situaciones de interbloqueo
5
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
como multiprogramación, sistemas de archivos con protección de datos de los usuarios,
etc.
Los sistemas paralelos son sistemas que cuentan con más de un procesador. De forma
que pueden ejecutar varias instrucciones simultáneamente (en paralelo).
Se consideran sistemas estrechamente acoplados, ya que, los procesadores comparten el
bus del ordenador, el reloj y la memoria. Esto sólo es posible hasta decenas o centenares
de procesadores.
Las ventajas que presentan estos sistemas son:
• Aumento de velocidad de procesamiento con bajo coste
• Cierta tolerancia a fallos
6
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
Las ventajas de estos sistemas son:
• Permiten compartir recursos dispersos
• Ayudan al trabajo cooperativo de equipos humanos
• Aumento de velocidad
• Mayor fiabilidad (tolerancia a fallos, alta disponibilidad)
Los sistemas de tiempo real se usan para tareas específicas que han de completarse en
un plazo prefijado (ej. sistemas de control industrial, sistemas multimedia)
Existen dos tipos de sistemas de tiempo real:
• Sistemas críticos (rígidos): para tareas que siempre deben cumplir los plazos de
terminación. Adecuados para la industria. Muy simples, incompatibles con
tiempo compartido, memoria virtual, etc.
• Sistemas no críticos (flexibles): intentan cumplir los plazos, pero no los
garantizan al 100%. Adecuados para multimedia, realidad virtual, etc.
7
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
• Monoprocesador: Una única CPU (en un momento dado sólo pueden ejecutar
instrucciones de un único programa).
• Multiprocesador: Disponen de dos o más CPUs.
8
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
• Off-line: Una vez introducida una tarea en el ordenador, el usuario no mantiene
contacto alguno con ella hasta que finaliza su ejecución. Un ejemplo son los
sistemas por lotes.
En función del propósito que se le quiera dar al ordenador los sistemas operativos se
pueden dividir en:
1ª Generación (1945-1955):
Características
• Sin Sistema Operativo.
• Sólo hardware.
Ejemplos
• Mainframe IBM 701 y 704.
2ª Generación (1955-1964):
Características
• Procesamiento por lotes
• Sistema Operativo básico.
Ejemplos
• SO desarrollado por General Motors para el Mainframe IBM 701
9
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
3ª Generación (1965-1968):
Características
• Sistemas de procesamiento por lotes multiprogramados.
• Aparecen más lenguajes de programación y la multiprogramación.
Ejemplos
• IBM OS/360
10
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
Problema de E/S
Búferes:
• Las transferencias de E/S de realizan a través de un área intermedia de memoria
(búfer)
• La E/S se realiza sólo cuando el dispositivo está preparado (la CPU sólo espera
cuando el búfer está vacío o lleno).
• El uso de búferes permite solapar en una misma tarea instrucciones de CPU y
operaciones de E/S
• Su eficacia depende fundamentalmente de la velocidad de los equipos de E/S y
del tipo de tareas en ejecución
11