Download Tema 2: Fundamentos
Document related concepts
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 comparte 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
Sistemas compactos
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 dependencia 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
Subsistemas
de entorno
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