Introducción a losSOs - Geocities.ws · Breve historia de losSOs.?Soporte hardware para...

33
© José Antonio Gómez Hernández, 2000 Departamento de Lenguajes y Sistemas Informáticos E.T.S. de Ingeniería Informática. Universidad de Granada e-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html SISTEMAS OPERATIVOS I Introducción a los SOs © José Antonio Gómez Hernández, 2000 Introducción a los Introducción a los SOs SOs ? Sistemas Concurrentes ? Definición de Sistema Operativo ? Breve historia de los SOs. ? Soporte hardware para los SOs. ? Estructuras de SOs. 10/1/2001 Sistemas Operativos I 2 Sistemas Concurrentes Sistemas Concurrentes ? Sistema Concurrente es aquel sistema software en cual existen diversas actividades separadas en progreso en el mismo instante. ? Algunos sistemas concurrentes: sistemas operativos, entornos de ventanas, sistemas de control de tráfico aéreo, etc. ? La Vida esta repleta de ellos: cocinar, conducir, nosotros mismos, etc.

Transcript of Introducción a losSOs - Geocities.ws · Breve historia de losSOs.?Soporte hardware para...

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

© José Antonio Gómez Hernández, 2000

Introducción a losIntroducción a los SOsSOs? Sistemas Concurrentes? Definición de Sistema Operativo? Breve historia de los SOs.? Soporte hardware para los SOs.? Estructuras de SOs.

10/1/2001 Sistemas Operativos I 2

Sistemas ConcurrentesSistemas Concurrentes

? Sistema Concurrente es aquel sistema software en cual existen diversas actividades separadas en progreso en el mismo instante.

? Algunos sistemas concurrentes: sistemas operativos, entornos de ventanas, sistemas de control de tráfico aéreo, etc.

? La Vida esta repleta de ellos: cocinar, conducir, nosotros mismos, etc.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 3

Sistemas Concurrentes en InformáticaSistemas Concurrentes en Informática

Hardware yArquitectura

Lenguajes yProgramación

SistemasConcurrentes

ProgramaciónConcurrente

Comunicaciónde datos y redes

SistemasOperativos

Sistemasde Tiempo

Real

Bases de Datos:implementación

SistemasDistribuidos

Prerrequisitos Fundamentos Aplicaciones

10/1/2001 Sistemas Operativos I 4

Asignaturas relacionadas con Asignaturas relacionadas con los sistemas concurrenteslos sistemas concurrentes

Ingeniería Informática:? Sistemas Operativos I y II? Diseño de Sistemas

Operativos? Programación Concurrente? Programación Distribuida y

Paralela.? Gestión de Bases de Datos.? Arquitectura de

Computadores II

Ingenierías Técnicas:? Sistemas Operativos I y II? Programación Concurrente? Sistemas Informáticos

Distribuidos.? Desarrollo de Sistemas de

Tiempo Real.? Bases de Datos

Distribuidas.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 5

¿Qué es un Sistema Operativo? ...¿Qué es un Sistema Operativo? ...

? Un sistema operativo (SO) es programa de ordenador que gestiona los recursos.

? Los recursos gestionados son: CPU, memoria, dispositivos de E/S, almacenamiento secundario, red de comunicaciones, etc.

? ¿Por qué no gestiona el usuario esos recursos?? Las aplicaciones deben coexistir? El SO crea una máquina virtual “privada”? El SO eleva el nivel de abstracción para los

usuarios

10/1/2001 Sistemas Operativos I 6

... ó mejor ¿qué hace?... ó mejor ¿qué hace?

? El SO como máquina virtual - presenta al usuario una máquina abstracta más fácil de programar que el hardware subyacente, ocultando su com-plejidad, y dando un tratamiento homogéneo a diferentes objetos de bajo nivel (p.ej. archivos, procesos, dispositivos, etc.)

? El SO como gestor de recursos - controla y protege los recursos (procesadores, dispositivos de E/S, memoria, etc.) entre los programas y/o usuarios que compiten por ellos.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 7

El hardware El hardware

? Existe una realidad tangible que es el hardware del computador, que contiene:

? Elementos de procesamiento: CPU, DMA, procesadores de E/S

? Elementos de memoria: RAM, disco, cintas, ...? Dispositivos de E/S: teclado, ratón, pantalla,

impresora,..? Dispositivos de comunicaciones: red ethernet,

líneas serie y paralelas, ...

10/1/2001 Sistemas Operativos I 8

Las abstraccionesLas abstracciones

? El SO trata de simplificar esa realidad compleja construyendo una serie de abstracciones:

? Proceso: existe una CPU dedicada a cada proceso.

? Memoria virtual: simula una RAM infinita.? Archivo: memoria permanente de datos con tipo.? Canal: dispositivo E/S de datos con tipo? Shell: interfaz de usuario programable.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 9

Las técnicasLas técnicas

? Para construir esas abstracciones se utilizan una serie de técnicas:? Planificación de recursos: CPUs, discos, etc.? Gestión de memoria: paginación, segmentación.? Sistema de archivos: designación, métodos de

acceso, ...? Bufering? Servidores: el shell, servidor de X-windows

10/1/2001 Sistemas Operativos I 10

Técnicas (ii)Técnicas (ii)

? Interrupciones, sondeo? Control de concurrencia: p. ej. exclusión mutua? Comunicación entre procesos: memoria

compartida, paso de mensajes, …? Hebras (threads).? Protección, autentificación, autorización:

dominio, listas de acceso, capacidades,criptosistemas de clave pública, ...

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 11

Una breve historia de los Una breve historia de los SOsSOs

Veremos SOs:? por lotes? multiprogramados? de tiempo compartido? de tiempo real? distribuidos? paralelos? de Internet

10/1/2001 Sistemas Operativos I 12

Una breve historia de los SO’sUna breve historia de los SO’s

? En un principio, el SO era sólo un fragmento de código que se enlazaba con los programas, se cargaba todo en memoria, y se ejecutaba con el programa - como una biblioteca en tiempo de ejecución.

? Problema: uso ineficiente de recursos caros (baja utilización de la CPU) ya que el tiempo de preparación de una tarea era significativo.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 13

Los Sistemas por LotesLos Sistemas por Lotes

? Los sistemas por lotes (batch) simples fueron los primeros SO’s reales:

? El SO estaba almacenado en memoria.? Cargaba un único trabajo en memoria (desde el

lector de tarjetas).? Ejecutaba el trabajo (generaba su salida).? Cargaba el siguiente trabajo.? Las tarjetas de control en el archivo de entrada

indicaban que hacer al SO.

10/1/2001 Sistemas Operativos I 14

Problemas de los Problemas de los sistssists. . batchbatch

? El principal problema de estos sistemas se debe a las largas esperas entre lotes de trabajos.

? Con la 2ª generación de computadores, el uso de hardware separado para gestionar las E/S, y la aparición del concepto interrupción, hacen posible que un programa se siga ejecutando mientras se esta realizando una E/S.

? La dificultad de manejar tal concurrencia ayudó a estimular el desarrollo de los sistemas operativos multiprogramados.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 15

La MultiprogramaciónLa Multiprogramación

? Los sistemas multiprogramados optimizan la productividad (throughput) del sistema:? Se benefician de que los dispositivos de E/S

pueden operar asíncronamente.? Mantienen varios trabajos ejecutables

cargados en memoria.? Solapan procesamiento de E/S de un trabajo

con cómputo de otro.? Necesitan de interrupciones, o DMA.

10/1/2001 Sistemas Operativos I 16

MultiprogramaciónMultiprogramación

Dispositivode E/S

CPUAsíncrona Síncrona

Aplicación

Procesarinterrupción

Transferir

Ocioso

SolicitaE/S

Fin detransferencia

SolicitaE/S

Fin detransferencia

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 17

Elementos necesarios para Elementos necesarios para la multiprogramaciónla multiprogramación

? Las rutinas de E/S deben estar suministradas por el sistema operativo.

? Debe existir una gestión de memoria para poder asignar y controlar la memoria repartida entre varios trabajos.

? Debe existir una planificación de la CPU. El SO debe elegir uno de entre los diferentes trabajos listos para ejecutarse que hay en memoria.

? La asignación de los dispositivos es realizada por el SO.

10/1/2001 Sistemas Operativos I 18

Sistemas de Tiempo CompartidoSistemas de Tiempo Compartido

? Soportan el uso “interactivo” del sistema:? Cada usuario tiene la ilusión de disponer de la

máquina completa.? Intentan optimizar el tiempo de respuesta.? Basados en la asignación de fracciones de

tiempo - se divide el tiempo de CPU de forma equitativa entre los procesos.

? Permiten una participación activa de los usuarios en la edición, depuración, y ejecución de los procesos.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 19

SOsSOs de Tiempode Tiempo--RealReal

? Los SOTRs se suelen utilizan para aplicaciones especializadas, p.ej. sistemas de control, ...

? Idea: el SO debe garantizar la respuesta a sucesos físicos en intervalos de tiempo fijos.

? Problema: poder planificar todas las actividades del sistema con el fin de satisfacer todos los requisitos críticos de las mismas.

? Con el uso de aplicaciones multimedia sobre PC’s, todos los SOs tienen requisitos de tiempo-real.

10/1/2001 Sistemas Operativos I 20

Sistemas Operativos DistribuidosSistemas Operativos Distribuidos

? Los sistemas distribuidos o sistemas débilmente acoplados son sistemas multicomputadores, es decir, sistemas con múltiples procesadores pero que no tienen una memoria común.

? Un objetivo básico es la compartición de recursos distribuidos, ya sean hardware (p.ej. impresoras o discos) o software (p.ej. correo, IRC, Web. etc).

? Permiten un aumento de la fiabilidad del sistema. Si una parte falla, el resto de sistema puede seguir su ejecución, al menos, parcialmente.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 21

Sistemas Operativos Paralelos (i)Sistemas Operativos Paralelos (i)

? Son sistemas operativos que se ejecutan y gestionan sistemas multiprocesadores fuertemente acoplados, es decir, todos los procesadores del computador comparten una única memoria y un reloj.

? Estos sistemas sustentan aplicaciones paralelas que desean obtener aumento de velocidad de tareascomputacionalmente complejas, p. ej. predicción meteorológica, simulaciones de explosiones atómicas, etc.

10/1/2001 Sistemas Operativos I 22

Sistemas Operativos Paralelos (ii)Sistemas Operativos Paralelos (ii)

? Dos tipos de multiprocesamiento:? Multiprocesamiento Simétrico (SMP) - todos

los procesadores pueden ejecutar código del SO. Tienen buen rendimiento. Difíciles de implementar.

? Multiprocesamiento Asimétrico - sólo un procesador, maestro, ejecuta código del SO; el resto de procesadores, esclavos , ejecutan aplicaciones de usuario. Fácil de implementar, mala escalabilidad.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 23

SOsSOs de Internetde Internet

? Algunos vendedores mantienen que el PC es más complicado y caro de lo necesario: tiene el hardware y software necesario para mantener gran funcionalidad que nunca se utiliza.

? Proponen: un computador de red que suministra la funcionalidad mínima para ejecutar un navegador de Internet el cual cargará los applets que suministran la funcionalidad necesaria (SO y aplicaciones).

10/1/2001 Sistemas Operativos I 24

SOs SOs para WIDpara WID

? WID = Wireless Informatión Devices

? Los WID son tanto pequeños como móviles

? Es muy comprometido reducir un SO de PC para ellos.

? Su SO debe gestionar muy bien los escasos recursos, en especial: potencia, CPU y memoria.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 25

Soporte Hardware a los Soporte Hardware a los SOs SOs

En lo que sigue veremos:? Funcionamiento de un sistema

de computadora ? Interrupciones y excepciones? Modo Dual de Operación

?? Llamadas al sistemaLlamadas al sistema? Protección de Memoria? Protección de la CPU

10/1/2001 Sistemas Operativos I 26

Sistema de computadorSistema de computador

Controlador de memoria

Memoria

Controlador de impresora

Controlador del terminal

Tema 7

Controlador de disco

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 27

Funcionamiento del sistema(i)Funcionamiento del sistema(i)

? El sistema dispone de un bus común.? La CPU y los controladores de dispositivos se

comunican a través del bus común.? El controlador de memoria sincroniza los accesos

a memoria.? Los dispositivos de E/S y la CPU operan

concurrentemente.? Los controladores de dispositivos gestionan el tipo

particular de dispositivo.

10/1/2001 Sistemas Operativos I 28

Funcionamiento del sistema (ii)Funcionamiento del sistema (ii)

? Los controladores de dispositivos tienen un búfer local, colas de peticiones y registros de estado.

? La CPU mueve datos desde/hacia memoria principal a/desde los búferes locales.

? Las E/S se realizan desde el dispositivo al búfer local del controlador.

? Los controladores de dispositivo informan a la CPU que han finalizado mediante una interrupción.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 29

Interrupciones y excepcionesInterrupciones y excepciones

? Una interrupción es un suceso que cambia el flujo normal de ejecución y proviene del exterior del procesador. Es un evento asíncrono.

? Una excepción es un suceso inesperado interno al procesador (p.ej. desbordamiento aritmético, dirección inválida, rastreo de programas, instrucción privilegiada, etc.). Es un eventosíncrono.

¡¡ Ojo !! no todos los manuales de arquitectura tratan estos conceptos de igual manera.

10/1/2001 Sistemas Operativos I 30

Manejo de las interrupcionesManejo de las interrupciones

Dispositivo CPU

Gestor generalinterrupciones

Código de usuario

MemoriaPrincipal

Rutina de serviciode interrupción i

. . .

P.ej., Dispositivosde E/S, reloj, etc.

Interrupción

. . . Códigodel SO

Salto

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 31

El gestor de interrupcionesEl gestor de interrupciones

? Realiza las siguientes operaciones:? Salva el contexto del proceso en ejecución

(contenido de los registros de la CPU).? Determina el tipo de interrupción, mediante

sondeo o interrupciones vectorizadas y ejecuta la rutina de servicio de interrupción adecuada.

? Opcionalmente: selecciona el proceso que se ejecuta a continuación.

? Restaura el contexto salvado del proceso en ejecución (o del seleccionado para ejecutarse)

10/1/2001 Sistemas Operativos I 32

ExcepcionesExcepciones

? El mecanismo de gestión de las excepciones es similar al usado en la gestión de interrupciones. Al detectarse la excepción, se transfiere el control al manejador de excepciones. La diferencia básica es que las excepciones suelen tratarse en espacio de usuario. La misión del SO es únicamente notificarlas.

? Denominamos trampa a aquellas instrucciones máquina que generan una excepción si se cumple cierta condición.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 33

Protección hardwareProtección hardware

? Los SOs multiusuario y multitarea necesitan evitar la interferencia entre procesos de usuario, y entre los procesos y el SO.

? Para ello se suelen definir como instrucciones privilegiadas aquellas que pueden potencialmente dañar a otros procesos o usuarios. P. ej. operaciones de E/S, actualizar el reloj, desactivar interrupciones, instrucción halt, etc.

? Para ello se definen diferentes modos de funcionamiento del hardware.

10/1/2001 Sistemas Operativos I 34

Modo Dual de OperaciónModo Dual de Operación

? La CPU necesita, al menos, dos modos de funcionamiento:

? Modo usuario - en él sólo se ejecutan las instrucciones no privilegiadas.

? Modo kernel (supervisor o sistema) - en él? Se puede ejecutar cualquier instrucción.? El SO se ejecuta en este modo.? El cambio de modo se realiza “activando” el bit de modo

del registro PSW (es una instrucción privilegiada.? El hardware cambia a modo kernel cuando se produce

una interrupción o trampa.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 35

Llamadas al SistemaLlamadas al Sistema

? ¿Cómo puede un proceso de usuario realizar una operación privilegiada, p. ej. una E/S, crear un proceso, obtener memoria, etc.?

? Solución: los servicios del SO se obtienen invocando un procedimiento del sistemas a través de una llamada al sistema.

? Las llamadas al sistema se implementan a través de una trampa o, como algunos la denominan, “interrupción software”.

10/1/2001 Sistemas Operativos I 36

Realizando una llamada al sistemaRealizando una llamada al sistema

? De forma simplificada:? Se genera una trampa a una posición específica

del SO. P. ej. en el Intel x86, con la instrucción CALL puerta_de_llamada (call gate).

? Este salto transfiere el control a la rutina de servicio de trampas del SO, y el bit de modo se activa (estamos en modo kernel).

? El SO verifica que los parámetros son correctos y legales. Si es así, ejecuta la solicitud, y devuelve el control a la siguiente instrucción. Si no, devuelve error.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 37

Llamada al sistema: esquemaLlamada al sistema: esquema

. . .call (...). . .

Rutina deservicio

del sistema

Manejadorde trampas

Trampa

Modousuario

ModoKernel

Programa de usuario

Sistema Operativo

main(). . .open(fd, …). . .

Biblioteca

12

34

5

6

7

10/1/2001 Sistemas Operativos I 38

Llamadas al sistema:Llamadas al sistema:paso de parámetrospaso de parámetros

? Para pasar parámetros se utiliza alguno de estos tres métodos:? Paso de parámetros en

los registros. P.ej. como hacía MS-DOS:

? Almacernarlos en una tabla de memoria y pasar la dirección de la tabla como parámetro en un registro.

? El programa empuja los parámetros en la pila, y el SO los recupera de la pila.

load ax, valorload bx, valor....INT 21

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 39

Protección de MemoriaProtección de Memoria

? En los SOs multiusuario y/o multitarea, el SO asigna una zona de memoria a cada proceso en ejecución.

? Objetivo: debemos proteger la memoria para evitar que un proceso de usuario lea/escriba de/en la memoria asignada a otro proceso

? Al memos, debemos de tener protección de memoria para la tabla de vectores de interrupción y las rutinas de servicio de interrupción.

10/1/2001 Sistemas Operativos I 40

Ejemplo: registros base y límiteEjemplo: registros base y límite

CPU Memoria

Registro Base: 3000

5000Registro Límite:

3000

5000

5600

Proceso 1

Proceso 2

SOPID RB RL

12

3000 50005600

7000

7000

- Proceso 1 en ejecución.- El SO carga los registrosbase y límite con losvalores adecuados al planificar un proceso.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 41

Protección hardware del Protección hardware del direccionamientodireccionamiento

CPU

ME

MO

RIA

BASE +LIMITE

BASE

>= <NoNo

Trampa al SOde error de direccionamiento

Dirección

10/1/2001 Sistemas Operativos I 42

Protección de la CPUProtección de la CPU

? Los SOs multiprogramados-multitarea deben evitar que un proceso se “apodere” de la CPU.

? Para ello necesitamos un reloj o temporizador. El funcionamiento de un reloj programable es: ? El reloj tiene un contador que se decrementa en

cada ciclo de reloj. ? Al llegar a cero el contador se genera una

interrupción de reloj o tick. Por ejemplo, frecuencias típicas de funcionamiento son 50, 60 ó 100 Hz. Con 100 Hz se produce una interrupción cada 10 msg.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 43

Tiempo compartidoTiempo compartido

? El SO al asignar la CPU a un proceso, le asocia una fracción de tiempo, time-slice o quantum.

? En cada interrupción de reloj, la RSI del reloj comprueba si el plazo a concluido: Si, el control se devuelve al SO; no, el proceso puede seguir.

Interrupciónde reloj

Proceso

SO

Quantum

Planifica al Procesoy activa el reloja Q segundos

Controlcedido a P

Planifica aotro proceso

t

10/1/2001 Sistemas Operativos I 44

Estructuras de Estructuras de SOsSOs

? Servicios (componentes) de un SOs

? Propiedades de una buena estructura

? Estructura o arquitecturas de SOs:? Monolítica? Capas? Máquina Virtual? Microkernel

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 45

Componentes de un SOComponentes de un SO

? Para comprender mejor un SO, primero veremos sus componentes; después, como se organizan.

? ¡ Tenga presente a partir de ahora que en los SOs, como en la vida real, nada es tan simple como parece ! El diseño y la implementación de los componentes no es tan clara en el mundo real como en los modelos.

? Los conceptos que veremos en la asignatura están presentes en todos los SOs. Sin embargo, cada sistema los puede implementar de forma diferente.

10/1/2001 Sistemas Operativos I 46

Gestión de procesosGestión de procesos

? Podemos definir proceso como una instancia de un programa en ejecución.

? El SO es responsable de las siguientes actividades relacionadas con los procesos:? crear/destruir procesos,? suspender/reanudar procesos,? suministrar los mecanismos para sincronizar y

comunicar procesos.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 47

Gestión de memoria principalGestión de memoria principal

? La memoria principal es el almacenamiento de acceso directo para la CPU y los dispositivos de E/S. Es volátil.

? El SO es responsable de:? asignar/desasignar memoria a los programas

(tanto explícita como implícitamente),? mantener la pista de la de memoria utilizada

actualmente y quién la usa.? decidir cuanta memoria asignar a cada

proceso, y cuando debe ser retirado de memoria un proceso.

10/1/2001 Sistemas Operativos I 48

Gestión de archivosGestión de archivos

? Un archivo es una colección de información con nombre. Es la entidad básica de almacenamiento persistente.

? El sistema de archivos suministra las siguientes operaciones sobre archivos:? crear/borrar archivos y directorios,? primitivas para manipular archivos y

directorios: leer, escribir, renombrar, ...? correspondencia entre archivos y su

almacenamiento secundario.? También, suministra servicios generales: backup,

contabilidad y cuotas, etc.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 49

Gestión de Entradas/SalidasGestión de Entradas/Salidas? Los SOs suministran una interfaz estándar entre los

programas y los dispositivos, es decir, utilizan las mismas funciones independientemente del dispositivo.

? Un manejador de dispositivo es el módulo responsable de gestionar un tipo de dispositivo. Este encapsula el conocimiento específico del dispositivo, p.ej., inicialización, interrupciones, lectura/escritura, etc.

? Puede haber un proceso por cada dispositivo o incluso por cada solicitud de E/S, dependiendo del SO particular.

10/1/2001 Sistemas Operativos I 50

Sistema de protecciónSistema de protección? Protección hace referencia al mecanismo para

controlar los accesos por programas, procesos o usuarios, al sistema o a los recursos de usuario.

? El mecanismo de protección debe:? distinguir entre uso autorizado o no,? especificar el control que se debe imponer, y? suministrar los medios para su aplicación.

? La protección es un mecanismo general a todo el SO, es decir, no esta localizada en un único módulo.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 51

Intérprete de ordenesIntérprete de ordenes? Es un programa o proceso que maneja la

interpretación de ordenes del usuario desde un terminal o un archivo de ordenes, para utilizar los servicios que nos suministra el SO.

? En algunos sistemas, el interprete de ordenes en una parte estándar del SO, p. ej. el command.com de MS-DOS.

? En otros, es simplemente un proceso no privilegiado que hace de interfaz con el usuario. Esto permite la sustitución de un interprete por otro. P. ej. en Unix tenemos csh, bash, ksh, etc.

10/1/2001 Sistemas Operativos I 52

La gran cuestiónLa gran cuestión

? Un SO consta de los elementos vistos ante-riormente, entre los cuales existen muchas relaciones y, a menudo, complejas.

? Las preguntas importantes son:? ¿Cómo se organiza todo esto?? ¿Cuales son los procesos y dónde están?? ¿Cómo cooperan esos procesos?

? Básicamente, ¿cómo construir un sistema complejo que sea: eficiente, fiable y extensible?

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 53

Características de un buen SOCaracterísticas de un buen SO

? Eficiente - el SO debe ser lo más eficiente posible, (puede consumir >40% de los ciclos de CPU).

? Fiable - Fiabilidad se refiere a dos aspectos diferentes pero relacionados: ? Robustez, el SO debe responder de forma

predecible a condiciones de error, incluidos fallos hardware

? El SO debe protegerse activamente a sí mismo y a los usuarios de acciones accidentales o malintencionadas.

10/1/2001 Sistemas Operativos I 54

Características de un buen SO (ii)Características de un buen SO (ii)

? Extensibilidad - dada la aparición constante de nuevo hardware y de nuevos tipos de aplicaciones, cada día se le exige al SO una nueva funcionalidad. En lugar de construir nuevos sistemas cada vez, se pretende construir un sistema de se pueda extender, es decir, su funcionalidad pueda variar o crecer, de una forma sencilla. Por ejemplo, que un sistema tradicional soporte aplicaciones de tiempo real, que soporte nuevos sistemas de archivos, etc. ¡ Desarrollar un SO comercial supera los mil millones !

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 55

La Estructura MonolíticaLa Estructura Monolítica

? Todos los componentes del SO se ejecutan en modo kernel.

? Modelo de obtención de servicios: llamada a procedimiento.

Programa de usuario

Planificación, memoriavirtual, sistema de

archivos, manejadoresde dispositivos, etc.

Call Return

Modousuario

Modokernel

10/1/2001 Sistemas Operativos I 56

Problemas de losProblemas de los sistssists. monolíticos. monolíticos

? Son difíciles de comprender, son un único programa (de cientos de megas).

? Difíciles de modificar y mantener.? No fiables: un error en alguna parte puede

provocar la caída del sistema. P.ej, Pantalla azul de Windows o función panic de Unix.

? Por esto, desde el principio, los diseñadores han buscado formas de estructurar el SO para simplificar su diseño, construcción, depuración, ampliación y mejora de sus funciones.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 57

La Estructura de CapasLa Estructura de Capas

? Implementado como un conjunto de capas; cada capa es una máquina más abstracta para la capa superior.

? Por modularidad, las capas se seleccionan para que cada una utilice funciones sólo de las capas inferiores.

Capa M

Capa M-1

Nuevasoperaciones

Operacionesexistentes

Opers.ocultas

Capa en desarrollo

10/1/2001 Sistemas Operativos I 58

Ejemplo: El Sistema THEEjemplo: El Sistema THE

? El sistema estaba compuesto de una serie de procesos secuenciales.

? Los procesos se sin-cronizan con decla-raciones explícitas de sincronización.

? Se puede probar y verificar de forma independiente cada proceso.

5: Programas deUsuario

4: Búfering para dispositivos de E/S

3: Manejador de laconsola del operador

2: Gestión dememoria

1: Planificación dela CPU

Nivel 0: Hardware

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 59

Problemas de THEProblemas de THE

? Los sistemas de capas son jerárquicos pero lossists. reales son más complejos, p. ej.,? El sistema de archivos podría ser un proceso en la capa

de memoria virtual.? La capa de memoria virtual podría usar archivos como

almacen de apoyo de E/S.? Existe sobrecarga de comunicaciones entre

procesos de distintas capas.? A menudo, los sists. Están modelados con esta

estructura pero no están construidos así.

10/1/2001 Sistemas Operativos I 60

Máquina VirtualMáquina Virtual

? Sigue enfoque de capas para su conclusión lógica.

? La Máquina Virtual crea múltiples réplicas idénticas del hardware.

? El SO crea la ilusión de múltiples procesos, cada uno ejecutándose en su propio procesador con su propia memoria. Hardware

Máquina Virtual

Kernel Kernel Kernel

Pro

ceso

Pro

ceso

Pro

ceso

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 61

Características de la M.V.Características de la M.V.? Suministra protección completa de los recursos ya que

cada máquina virtual esta aislada.? Sin embargo, este aislamiento no permite la

compartición fácil de recursos.? Sirve investigar/desarrollar SO’s: no interrumpe el

funcionamiento del sistema, y permite usar sus herramientas (editor, compilador, etc.)

? Permite la ejecución de aplicaciones realizadas para otro SO, p. ej. ventana MS-DOS de Windows 9x.

? La M.V. es difícil de implementar debido a la com-plejidad de crear un duplicado exacto del hardware.

10/1/2001 Sistemas Operativos I 62

Algunos conceptosAlgunos conceptos

? Denominamos espacio de direcciones de un proceso a aquellas direcciones de memoria que el proceso puede direccionar.

? El SO confina la ejecución de un proceso a su espacio de direcciones.

? El SO es accesible ya que es parte del espacio de direcciones de todos los procesos.

? Una llamada a procedimiento sólo es posible si la dirección del procedimiento esta dentro del espacio de direcciones del llamador.

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 63

La ArquitecturaLa Arquitectura MicrokernelMicrokernel

? Implementa los servicios del SO con procesos de usuario.

? Más fiable - los errores se confinan en el espacio de direcciones del proceso.

? Extensible o personalizable- cambio de un servicio a través del cambio del proceso que lo implementa.

Memoria Virtual de bajo nivel, Protección,

Comunicación, yControl del procesador

Procesode usuario

Serviciodel SO

Call Return

Recibir

Enviar

10/1/2001 Sistemas Operativos I 64

MicrokernelMicrokernel ((contcont.).)Se obtiene servicio con paso de mensajes: el usuario envía mensaje, A, mediante send, que describe el servicio. El SO comprueba el mensaje y lo entrega. El emisor espera el resultado con una operación receive.

send/receive

send(Pk,A,..)

receive(Pk,B,..)

receive(Pi,A,...)

send(Pi,B,...)

Espacio de direc-ciones de B

Espacio de direc-ciones de A

Pk

Pi

© José Antonio Gómez Hernández, 2000Departamento de Lenguajes y Sistemas Informáticos

E.T.S. de Ingeniería Informática. Universidad de Granadae-mail: [email protected], WWW: http://www-lsi.ugr.es/~jagomez/sisopi.html

SISTEMAS OPERATIVOS IIntroducción a los SOs

10/1/2001 Sistemas Operativos I 65

?? kernelkernel frente a monolíticafrente a monolítica? La estructura mkernel tiene peor rendimiento que la

monolítica; para obtener un servicio se realizan más cambios de modo y espacios de direcciones.

SO Monolítico SO microkernel

SO

Programade usuario SO

? kernelEspacio dedireccionesdel proceso

Programausuario

10/1/2001 Sistemas Operativos I 66

Un Un microkernelmicrokernel: Windows NT: Windows NTTM TM

ProcesoLog-on

SubsistemaWin32

Servicios del sistema

Capa de Abstracción Hardware (HAL)

Hardware

Kernel

Gestor de E/SGestorObjetos

Monitorreferenciaseguridad

Gestorde

procesos

Gestormemoria

virtualLlamada a

Procedimien-to Local

Subsistemaseguridad

ClientePOSIX

SubsistemaPOSIX

ClienteWin32

Mod

ous

uario

Ker

nel

Eje

cuti

vo

ClienteOS/2

SubsistemaOS/2

Gestor cachéSist. archivos

Gestors. de redG. dispositivos