Download Tema 2

Document related concepts

Núcleo (informática) wikipedia , lookup

Núcleo monolítico wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

GNU Hurd wikipedia , lookup

Transcript
Sistemas Operativos
Tema 2: Fundamentos
1
Tema 2: Fundamentos
Índice:
1. Conceptos básicos
2. Modelos de diseño
3. Ejemplos de organización interna
2
Tema 2: Fundamentos
Índice:
1. Conceptos básicos
2. Modelos de diseño
3. Ejemplos de organización interna
3
1. Conceptos básicos
Tema 2: Fundamentos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
4
1. Conceptos básicos
Tema 2: Fundamentos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
5
1.1 Conceptos básicos sobre A.O.
Tema 2: Fundamentos
 Organización básica de un ordenador:
procesador
Memoria
Adaptador
Teclado
Adaptador
ratón
Adaptador
Pantalla
BUS
DMA
Controlador
discos duros
…
6
1.1 Conceptos básicos sobre A.O.
Tema 2: Fundamentos
La CPU. Modos de ejecución
 Contiene un conjunto de registros de 8, 16, 32 o 64 bits
 Estado de la CPU = valores de sus registros
 Dos registros especiales: siguiente instrucción (IP, PC…) y
estado (CCR)
 Instrucciones: realización de operaciones aritméticas,
lógicas o de movimiento de datos
 Los operandos pueden ser registros o posiciones de memoria
 Al menos dos modos de ejecución:
 Supervisor: ejecución sin restricciones
 Usuario: se restringen las instrucciones que puedan acceder
a recursos del sistema
 Si en modo usuario se intenta ejecutar instrucción
privilegiada: excepción
7
Tema 2: Fundamentos
1.1 Conceptos básicos sobre A.O.
Interrupciones y excepciones
 Interrupción = alteración en secuencia de ejecución de
instrucciones. Causas:
 Interrupción hardware
 Excepción
 Ejecución de instrucción de petición de interrupción (INT, TRAP)
 Tratamiento:
1. CPU termina de ejecutar instrucción actual
2. Se almacena estado de CPU en la pila
3. CPU pasa a modo supervisor
4. Determina dirección SSI (normalmente: tabla de vectores)
5. Salta a SSI
6. Al retornar de SSI: se restaura estado (y modo de ejecución)
7. Se prosigue ejecución por siguiente instrucción
8
Tema 2: Fundamentos
1.1 Conceptos básicos sobre A.O.
Arranque del sistema
 Arranque del sistema = secuencia de operaciones que
tras el encendido llevan la máquina a un estado usable
 Pasos:
1. Procesador realiza inicialización interna que termina
transfiriendo control a una dirección determinada
2. En dicha dirección puede haber…
 Si sistema operativo en ROM: el sistema operativo (ir a paso 5)
 Si sistema operativo no en ROM: el cargador hardware
3. Cargador hardware: realiza…
 Inicialización mínima: determina características y correcto
funcionamiento del sistema
 Determina dispositivo de carga del sistema operativo
 Lee de dicho dispositivo el cargador software
→
9
1.1 Conceptos básicos sobre A.O.
Tema 2: Fundamentos
Arranque del sistema (cont.)
4. Cargador software (pertenece a SO): carga el sistema
operativo y le transfiere el control una vez cargado
5. Inicialización del sistema operativo:
 Se crean estructuras de datos del sistema operativo
 Comprobación detallada del sistema: detección de nuevos
dispositivos, comprobación del sistema de archivos, etc.
 Se cargan los componentes opcionales que procedan del SO
 Se crea uno o más procesos de inicio de sesión
 Tras iniciar sesión, se crea un proceso intérprete de comandos
(texto o gráfico)
10
1. Conceptos básicos
Tema 2: Fundamentos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
11
1.2 Procesos
Tema 2: Fundamentos
 Proceso = programa en ejecución
 Si se ejecuta dos o más veces un mismo programa: procesos
distintos
 Un proceso puede cambiar el programa (execve) y sigue
siendo el mismo proceso
 S.O. multiprogramado: aquel que permite más de un
proceso en ejecución simultáneamente
 Emplean mecanismos de protección para aislar procesos
 Cada proceso tiene su propio espacio de memoria
 Se proporciona mecanismos de comunicación y sincronización
 Mecanismos de identificación de procesos (PID)
 Un proceso puede crear otros procesos
 Relación paterno/filial entre procesos
 Procesos padre: atribuciones especiales sobre procesos hijos
12
1. Conceptos básicos
Tema 2: Fundamentos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
13
Tema 2: Fundamentos
1.3 Llamadas al sistema
 Llamada al sistema: petición que hace un proceso al
sistema operativo para obtener algún tipo de servicio
 API (Aplication Programming Interface):
 Interfaz que el sistema operativo presenta a los programas
 Compuesta por el conjunto de todas las llamadas al sistema
soportadas
 API’s estandarizadas: POSIX (Portable Operating System
Interface)
 API’s propietarias: WIN32, WinFX
 Formas de implementación:
 Mediante rutinas
 Mediante interrupciones
14
Tema 2: Fundamentos
1.3 Llamadas al sistema
Implementación mediante rutinas
 Por cada llamada al sistema, una rutina que la
implementa
 Primera dificultad: ¿en qué direcciones están?
 Soluciones: (Para simplificar: un único punto de entrada)
 Punto de entrada en dirección fija
• ¡Los programas dependen de esta dirección!
 Punto de entrada en dirección apuntada por una variable
• ¡Los programas dependen de la dirección de dicha variable!
 Programas hacen referencia a punto de entrada mediante una
variable conocida por montador de enlaces (Ej: CALL SYS)
• ¡Si cambia de versión de SO, hay que reenlazar los programas!
 Segunda dificultad: ¿paso a modo supervisor?
15
Tema 2: Fundamentos
1.3 Llamadas al sistema
Implementación mediante interrupciones
 Punto de entrada único al que se accede mediante una
interrupción
 Punto de entrada se coloca en cualquier dirección de memoria
 Para efectuar llamada al sistema, se usa instrucción INT n
 En el vector n de interrupción: dirección punto de entrada
 Al realizar una llamada:
 Se pasa a modo supervisor
 Hardware determina dirección de punto de entrada
 Código del SO se ejecuta en modo supervisor
 Al retornar, se restaura modo de ejecución previo a llamada
16
1.3 Llamadas al sistema
Tema 2: Fundamentos
Implementación mediante interrupciones (cont.)
 Ventajas:
 Independencia de los programas respecto a ubicación de
punto de entrada en memoria
 Conmutación implícita a modo supervisor
 Posibilidad de llamadas implícitas al sistema
17
1. Conceptos básicos
Tema 2: Fundamentos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
18
1.4 Usuarios
Tema 2: Fundamentos
 Usuario = personas autorizadas a usar el sistema
 Los sistemas multiprogramados mantienen asociación
entre cada proceso y su usuario propietario
 Es el usuario quien determina los derechos del proceso a
acceder a recursos del sistema
 Identificación de usuario: UID (normalmente numérico)
 Posibilidad de definir grupos de usuario
 Grupos identificados por GID (normalmente numérico)
 Derechos del proceso: determinados por [UID, GID]
19
1. Conceptos básicos
Tema 2: Fundamentos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
20
1.5 Archivos
Tema 2: Fundamentos
 Archivo = conjunto de información
 Organización jerárquica basada en directorios y
subdirectorios
 Archivos frecuentemente residen en dispositivos
 Identificación de dispositivos: dependen de sistema
 Letras de unidad: C:, D:, etc.
 Archivo especial: /def/fd0, /dev/hda, etc.
 En sistemas multiusuario se proporcionan mecanismos
de protección del sistema de archivos
21
1. Conceptos básicos
Tema 2: Fundamentos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
22
1.6 Intérpretes de órdenes
Tema 2: Fundamentos
 Intérprete de órdenes = programa interactivo
que lee e interpreta comandos del usuario
 Nombres alternativos: intérpretes de comandos, shells…
 Algunos sistemas permiten usar distintos intérpretes de
comandos
 Ejemplo: UNIX
 En otros casos está integrado en sistema operativo
 Ejemplo: MS-DOS
 Funciones soportadas más frecuentemente:
 Ejecución de programas con redirección de entrada y/o salida
 Ejecución en paralelo de procesos unidos por una tubería
 Ejecución de secuencias de comandos (scripts)
…
23
1. Conceptos básicos
Tema 2: Fundamentos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
24
Tema 2: Fundamentos
1.7 Interfaces gráficas de usuario
 Interfaz gráfica de usuario (GUI) = intérprete de
órdenes en modo gráfico
 Suelen ofrecer API que permite su uso por parte de
programas de usuario
Aero (Windows Vista)
Beryl
Explorer (Windows XP)
GNOME
25
Tema 2: Fundamentos
Índice:
1. Conceptos básicos
2. Modelos de diseño
3. Ejemplos de organización interna
26
2. Modelos de diseño
Tema 2: Fundamentos
1. Modelo monolítico
2. Modelo en estratos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
27
2. Modelos de diseño
Tema 2: Fundamentos
1. Modelo monolítico
2. Modelo en estratos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
28
2.1 Modelo monolítico
Tema 2: Fundamentos
 Todo el sistema operativo se encuentra en un único
espacio de memoria
Administración
de
Memoria
Gestor de Disco
rutina_auxiliar ()
{
…
Administración
de archivos
}
rutina_servicio_interrupcion()
{
…
}
planificador ()
{
…
}
29
2.1 Modelo monolítico
Tema 2: Fundamentos
 Ventajas:
 Eficiencia en tiempo de ejecución
 Eficiencia en ocupación de memoria
 Inconvenientes:
 Dificultad de depuración
 Complejidad y dificultad mantenimiento
30
2.1 Modelo monolítico
Tema 2: Fundamentos
Estructura de un sistema monolítico
Despachador
Servicio 1
Rutina Aux. 1
Servicio 2
Rutina Aux. 2
Servicio 3
…
Rutina Aux. 3
SSI Int.1
Servicio N
…
SSI Int.2
…
31
2.1 Modelo monolítico
Tema 2: Fundamentos
Funcionamiento del despachador
1. ¿Llamada explícita al sistema o fallo de protección?
 En caso de llamada explícita, comprobar validez de llamada
2. Seleccionar rutina de servicio e invocarla
3. Devolver el control
void seleccionar(int ident_servicio)
{
if (ident_servicio == IDENT1)
servicio1(...)
else if (ident_servicio == IDENT2)
servicio2(...)
else if (ident_servicio == IDENT3)
servicio3(...)
else if (ident_servicio == IDENT4)
servicio4(...)
...
voidtabla_servicios
seleccionar(int ident_servicio)
{
servicio1()
fun_serv
tabla_servicios[] = {servicio1,
servicio2()
servicio2,
servicio3…};
servicio3()
tabla_servicios[ident_servicio](…);
…
}
32
2.1 Modelo monolítico
Tema 2: Fundamentos
 Ejemplos de sistemas monolíticos:
 Linux y la mayoría de Unix, a excepción de Solaris
 Las versiones de windows basadas en MS-DOS
33
2. Modelos de diseño
Tema 2: Fundamentos
1. Modelo monolítico
2. Modelo en estratos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
34
Tema 2: Fundamentos
2.2 Modelo en estratos
 Idea: colocando una capa de software sobre el
hardware conseguimos una máquina ampliada
 Podemos construir un sistema colocando sucesivas
capas una encima de otra
Proceso de usuario
Capa 3: Gestión de entrada-salida
Capa 2: Comunicación proceso-consola
Capa 1: Gestión de la memoria
Capa 0: Planificación
Hardware
35
2.2 Modelo en estratos
 Ventajas:
Tema 2: Fundamentos
 Gracias a la modularidad, sistema más fácil de depurar y
mantener
 Inconvenientes:
 Al ser las capas cajas negras, se pierde la posibilidad de
compartir código y datos entre distintas capas
 Ejemplo de sistemas en estratos:
 Multics
 OS/2
36
2. Modelos de diseño
Tema 2: Fundamentos
1. Modelo monolítico
2. Modelo en estratos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
37
2.3 Modelo micronúcleo
Tema 2: Fundamentos
 Parte más compleja de un sistema operativo: el núcleo
 Idea: hagamos un núcleo tan simple como sea posible
 Saquemos fuera de él toda la funcionalidad posible
 Funcionalidad sacada del núcleo: se implementa mediante
procesos externos
 Núcleo mínimo:
 Multiprogramación
 Comunicación entre procesos
 Atención de interrupciones
Administrador Administrador
Archivos
Memoria
Gestor de
Disco
…
Proceso de
Usuario
Micronúcleo
Hardware
38
2.3 Modelo micronúcleo
Tema 2: Fundamentos
 Ventajas:
 Facilidad de depuración
 Robustez
 Flexibilidad
 Fácil adaptación a sistemas distribuidos
 Inconvenientes:
 Sistemas más lentos
 Requieren más memoria
39
2. Modelos de diseño
Tema 2: Fundamentos
1. Modelo monolítico
2. Modelo en estratos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
40
Tema 2: Fundamentos
2.4 Máquinas virtuales
 Colocando una capa de software sobre el hardware
obtenemos una máquina ampliada con interfaz de más
alto nivel
 Idea:
 ¿Por qué una?
 ¿Por qué de más alto nivel?
Sistema
Operativo 1
Sistema
Operativo 2
…
Sistema
Operativo n
Hardware (1)
Hardware (2)
…
Hardware (n)
Monitor de máquinas virtuales
Hardware
41
2.4 Máquinas virtuales
Tema 2: Fundamentos
 Monitor de máquinas virtuales…
 Reparte recursos (memoria, disco)
 Simula dispositivos e interrupciones
 En particular: simula procesador
• Reparte tiempo de procesador entre las máquinas virtuales
• Simula los cambios de modo de ejecución
Proceso de
Usuario
Sistema
OUT DX, AL
Operativo 1
IN EAX,DX
Hardware (1)
OUT DX,AL
Sistema
Operativo 2
Hardware (2)
…
…
Sistema
Operativo n
Hardware (n)
Monitor de máquinas virtuales
Hardware
42
2.4 Máquinas virtuales
Tema 2: Fundamentos
 Aplicaciones de virtualización
 Ejecución simultánea de varios SO en una misma máquina
 Explotación de Mainframes: múltiples máquinas adaptadas
cada una a las necesidades de usuario (escalabilidad)
 Depurado de sistemas operativos
…
 Téngase en cuenta…
 Estamos dividiendo la potencia de la máquina
 Monitor introduce sobrecarga
• Suma de potencia de máquinas menor que la de la máquina real
43
Tema 2: Fundamentos
2.4 Máquinas virtuales
Algunos virtualizadores
 z/VM (http://www.vm.ibm.com)
 VMWare (http://www.vmware.com)
 Virtual PC / Virtual Server
(http://www.microsoft.com/windows/products/winfamily/v
irtualpc/default.mspx)
 BOCHS (http://bochs.sourceforge.net/)
 QEMU (http://fabrice.bellard.free.fr/qemu/)
 Emulador de procesador
 Plex86 (http://plex86.sourceforge.net/)
 Lightweight Virtual Machine diseñada sólo para ejecutar Linux
 Xen (http://www.cl.cam.ac.uk/research/srg/netos/xen/)
 Paravirtualizador
44
2. Modelos de diseño
Tema 2: Fundamentos
1. Modelo monolítico
2. Modelo en estratos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
45
2.5 Diseño orientado a objetos
Tema 2: Fundamentos
 No es un modelo de diseño en sí mismo
 Consecuencia aplicación al desarrollo de un SO de los
métodos de análisis y diseño orientado a objetos
 Un sistema operativo orientado a objetos puede
desarrollarse con cualquier organización
 Recursos en el sistema: se consideran objetos
 Operaciones aplicables: depende de tipo de objetos
46
Tema 2: Fundamentos
Índice:
1. Conceptos básicos
2. Modelos de diseño
3. Ejemplos de organización interna
47
3. Ejemplos de organización interna
Tema 2: Fundamentos
1. Linux
2. Minix
3. Windows 2000
48
3. Ejemplos de organización interna
Tema 2: Fundamentos
1. Linux
2. Minix
3. Windows 2000
49
3.1 Linux
Tema 2: Fundamentos
 Al igual que demás sistemas Unix, consta de:
 Núcleo
 Librerías del sistema
 Utilidades del sistema
Utilidades del
Sistema
Procesos de usuario
Bibliotecas del sistema
Núcleo
50
3.1 Linux
Tema 2: Fundamentos
 Núcleo monolítico
 Problema: dificultad de mantenimiento
 ¡Muchas personas trabajan en núcleo de Linux!
 Solución: módulos cargables
 Enlace dinámico
 Módulos apilables
 El núcleo gestiona dependencias entre módulos
 Tiene en cuenta dichas dependencias al cargar/descargar
 Esto facilita compartir código entre componentes de manera
ordenada
A
B
D
C
E
51
3.1 Linux
Tema 2: Fundamentos
 Se suelen cargar como módulos
 Gestores de dispositivos
 Sistemas de archivos
…
 Procesos de usuario pueden cargar/descargar módulos:
 insprobe: carga un módulo en el núcleo
 rmmod: elimina un módulo del núcleo
 modprobe: gestión de módulos
Linux Kernel Development, 2ª Edición
Robert Love
Novel Press
52
3. Ejemplos de organización interna
Tema 2: Fundamentos
1. Linux
2. Minix
3. Windows 2000
53
3.2 Minix
Tema 2: Fundamentos
 Organización micronúcleo pura
 Organización de Minix 3:
 En modo supervisor:
 Todo lo demás en modo usuario
init
proceso 1
de usuario
proceso 1
de usuario
…
Administrador de Administrador de Administrador de
archivos
memoria
red
Tarea de
disco
Tarea de
terminales
Tarea de
ethernet
…
Tarea del
reloj
…
Tarea del
sistema
Operating Systems Design and Implementation, 3ª Edición
Micronúcleo
Andrew S. Tanenbaum,
Albert S. Woodhull-Amherst
54
Prentice Hall
3. Ejemplos de organización interna
Tema 2: Fundamentos
1. Linux
2. Minix
3. Windows 2000
55
3.3 Windows 2000
Tema 2: Fundamentos
 Combina modelos micronúcleo y monolítico
Procesos de Soporte
del Sistema
Procesos de
Servicios
Aplicaciones
de usuario
Subsistemas
de entorno
Librerías del sistema (DLL’s)
Modo usuario
Modo núcleo
Executive
Kernel
Gestores de
Dispositivos
Interfaz Gráfica de Usuario
Inside Windows 2000
Hardware Abstraction Layer (HAL)
David A. Solomon, Mark E. Russinovich
Microsoft Press
56
57