Está en la página 1de 11

Sistemas Operativos.

2009/10
TEMA 1.- INTRODUCCIÓN

1 INTRODUCCIÓN

1.1 Concepto de Sistema Operativo (S.O.)

Un Sistema Operativo es un programa o conjunto de programas que asignan y gestionan


los recursos del ordenador y actúan como una interfaz entre el usuario y el hardware.
Se pueden considerar varios objetivos relacionados con un sistema operativo:
• Comodidad
• Eficiencia
• Capacidad de evolución

Considerando estos objetivos el SO se puede ver desde varios aspectos:


• El SO como administrador de recursos:
o Los procesos compiten por el uso de recursos escasos.
o Necesitamos un árbitro imparcial que asigne recursos a los procesos, de
forma justa y eficiente.
o Tiene que conocer el estado de los recursos
o Determina a quién se le cede el control, cuando y durante cuanto tiempo
o Asociar/desasociar recursos
• El SO como interfaz: Es una capa entre el usuario y el hardware, que ofrece una
abstracción de la realidad. Esta abstracción es más cómoda, conveniente, y
fácilmente utilizable por el usuario y por el programador. Además, puesto que
esta interfaz puede ser independiente del hardware se gana portabilidad. Un
Sistema Operativo ofrece servicios en las siguientes áreas:
o Creación de programas.
o Ejecución de programas
o Acceso a los dispositivos de E/S.
o Acceso controlado a los archivos.
o Acceso al sistema.
o Detección y control de errores.
o Contabilidad.

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.

1.2 Recorrido Histórico y Tipos de Sistemas

1.2.1 Primeros sistemas (proceso en serie)

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.

Presentaban una serie de problemas:


• En caso de error era necesaria una corrección manual por parte del programador,
que tenía que examinar los registros y la memoria principal para determinar la
causa del error.
• Se necesitaba un elevado tiempo de preparación (setup time) para preparar el
programa para su ejecución.
• Era necesario reservar intervalos de tiempo.

1.2.2 Sistemas de proceso por lotes (batch)

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.

Punto de vista del monitor

• 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

Punto de vista del procesador

• El procesador ejecuta instrucciones de la zona de memoria que contiene al


monitor

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

Para el correcto funcionamiento del monitor serían convenientes las siguientes


características hardware:
• Protección de memoria: el programa de usuario no debe de modificar la zona de
memoria del monitor.
• Temporizador: prevenir que un solo trabajo monopolice el sistema.
• Instrucciones privilegiadas: ciertas instrucciones sólo pueden ser usadas por el
monitor.
• Interrupciones: más flexibilidad para ceder y retomar el control de los programas
de usuario.

1.2.3 Sistemas de proceso por lotes con multiprogramación

Aunque el sistema de procesamiento por lotes mejora el rendimiento, el procesador


sigue estando desocupado con frecuencia. El problema es que los dispositivos de E/S
son lentos comparados con el procesador.
La multiprogramación o multitarea permite que hayan varios programas de usuario en
memoria (aparte del SO) de forma que cuando un programa esté esperando por E/S el
procesador puede cambiar a otro programa. Así pues, los sistemas multiprogramados:
• Mantienen en memoria principal simultáneamente varios trabajos multiplexando
la CPU
• Permiten la ejecución concurrente de trabajos repartiendo en el tiempo los
recursos

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

1.2.4 Sistemas de tiempo compartido

Aunque gracias a la multiprogramación los sistemas de procesamiento por lotes


consiguen ser más eficientes, en algunos casos es necesario que el usuario interactúe
directamente con el ordenador.
La multiprogramación además de permitir gestionar varios programas por lotes al
mismo tiempo, también se puede usar para gestionar varios programas interactivos. La
técnica de tiempo compartido, en la que se basan estos sistemas consiste en gestionar
varias tareas de forma interactiva con el usuario (multiprogramación + interactividad)
de forma que el procesador se comparte entre varios usuarios. Cuando múltiples
usuarios acceden simultáneamente al sistema por medio de terminales, el SO intercala la
ejecución de cada programa en ráfagas o cuantos (quantum) de tiempo. Así, se
consiguen tiempos de respuesta cortos y el sistema debería ser comparable a un
ordenador dedicado.

1.2.5 Ordenadores personales

La aparición del microprocesador permitió fabricar ordenadores más baratos y


asequibles a partir de la década de los 70. Estos estaban destinados al uso individual y
no experto e inicialmente no estaban destinados a ser multiusuario ni multitarea.
A diferencia de los sistemas anteriores lo que se busca en éstos es maximizar la
facilidad de uso, que los tiempos de respuesta sean bajos, proporcionarle comodidad al
usuario (interfaces de usuario con ventanas, menús, iconos, …), etc.
Los ordenadores personales se han beneficiado del desarrollo de los sistemas operativos
de mainframe e incluyen en la actualidad muchos servicios de los que antes carecían

5
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN
como multiprogramación, sistemas de archivos con protección de datos de los usuarios,
etc.

1.2.6 Sistemas paralelos

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

Mientras que su principal inconveniente es:


• La necesidad de sincronización entre procesos

Existen dos tipos de sistemas paralelos:


• Multiprocesamiento simétrico: cada procesador ejecuta una copia del SO y estas
copias se comunican entre si cuando es necesario.
• Multiprocesamiento asimétrico: A cada procesador se le asigna una tarea
específica. Un procesador maestro controla el sistema y los demás procesadores
obtienen las instrucciones del maestro o tienen tareas predefinidas. Este esquema
define una relación maestro-esclavo.

1.2.7 Sistemas distribuidos

Los sistemas distribuidos constan de múltiples procesadores conectados mediante una


red. Se consideran sistemas débilmente acoplados puesto que los procesadores no
comparten la memoria ni el reloj y se comunican con buses de alta velocidad o líneas
telefónicas. Esto hace que sean escalables hasta millones de procesadores (p. ej.
Internet)

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)

En cambio tienen como inconvenientes que:


• No comparten la memoria por lo que la comunicación es más compleja y no se
puede tener un estado global visible por todos los nodos al instante.
• La red de comunicaciones puede no ser fiable.
• La heterogeneidad de los nodos

Middleware: es una “capa” de software que permite ejecutar sobre diferentes SO


existentes (Ej: CORBA, DCOM).

1.2.8 Sistemas de tiempo real

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

1.2.9 Resumen de Tipos de SO:

Dependiendo del número de procesos un SO puede ser:

• Monotarea o monoproceso: Solo se permite un proceso en cada instante de


tiempo. Ej. MS-DOS.
• Multitarea o multiproceso: Sistemas multiprogramados (permiten la ejecución
de varios procesos a la vez). El SO administra y reparte los recursos entre los
procesos.

En función del número de usuario podemos distinguir:

• Monousuario: Sistema pensado para atender a un único usuario. Ej: MS-DOS.


• Multiusuario: Puede dar soporte a varios usuarios a la vez, normalmente accediendo
desde diferentes terminales. También se conocen con el nombre de sistemas de
tiempo compartido. Ej: Unix, Linux, etc.

Según el número de procesadores disponibles los SO se pueden clasificar en:

• 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.

Dependiendo del modo de trabajo del usuario:

• On-line o interactivos: El usuario interactúa con el trabajo durante su ejecución.


Ej. Los Sistemas de tiempo compartido. Los sistemas interactivos son útiles,
entre otros, en entornos de desarrollo de programas, de procesamiento de textos
y de ejecución de programas interactivos.

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:

• Sistemas de propósito específico: se usan para aplicaciones concretas. P. ej. los


sistemas de tiempo real. Se utilizan en entornos en donde deban ser aceptados y
procesados un gran número de sucesos, la mayoría externos al sistema
informático, en breve tiempo o dentro de ciertos plazo. Ejemplos de tales
aplicaciones incluyen control industrial, equipamiento telefónico conmutado,
control de vuelo y simulaciones en tiempo real.
• Sistemas de propósito general: se caracterizan por tener un gran número de
usuarios trabajando sobre un amplio abanico de aplicaciones. Se suelen dividir
en dos grandes grupos: los de lotes y los de tiempo compartido. Sin embargo,
existen sistemas que compaginan el tiempo compartido con procesos por lotes.

1.3 Historia de los Sistemas Operativos

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

4ª Generación (mediados de los 60 y década de los 70):


Características
• Sistemas de tiempo compartido.
• El Sistema Operativo puede conmutar entre programas, aparecen programas
interactivos, máquinas virtuales, etc.
Ejemplos
• MULTICS
• VM/CMS
• UNIX
• VMS
• OS/400

5ª Generación (1980s, 1990s, 2000):


Características
• Ordenadores Personales (PC).
• Monousuario, multitarea, sistemas paralelos, sistemas distribuidos, sistemas de
tiempo real.
Ejemplos
• CP/M
• MS-DOS
• OS/2
• Windows 3.1, 95, 98, Me, NT, 2000, XP
• Linux
• Mach
• Amoeba

10
Sistemas Operativos. 2009/10
TEMA 1.- INTRODUCCIÓN

Problema de E/S

E/S lenta en comparación con la CPU


Técnicas para solucionar el problema:
• Operación fuera de línea (offline)
• Búferes
• Spooling

Operación fuera de línea:


• El ordenador central dialoga directamente sólo con dispositivos rápidos (cintas
magnéticas).
• Un pequeño ordenador (satélite o canal) se encarga de las transferencias con
dispositivos lentos (tarjetas, impresora).
• Resultado:
o Mayor aprovechamiento del procesador
o Ejecución paralela de cálculo y operaciones de E/S
• Se pueden utilizar varios satélites para aumentar la velocidad.

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

Spooling (Simultaneous Peripheral Operation On-Line):


• Se utiliza un disco como almacenamiento intermedio de gran tamaño.
• Se lee por adelantado de los dispositivos de entrada.
• Se almacenan los archivos de salida hasta que los dispositivos de E/S puedan
aceptarlos.
• Permite solapar la E/S de un proceso ya terminado con las operaciones en CPU
de otro proceso.

11

También podría gustarte