![Page 1: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/1.jpg)
Fundamentos de losSistemas Operativos
Tema 1. Conceptos generalesEstructura del sistema operativo
© 2015 ULPGC - José Miguel Santos Espino
![Page 2: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/2.jpg)
Contenido
• Componentes del S.O.
– Programas del sistema
– El núcleo
– Llamadas al sistema
• Arquitecturas para los S.O.
– Ejemplos: sistemas monolíticos, por capas
– Micronúcleos
– Módulos cargables
© 2015 ULPGC - José Miguel Santos 2
![Page 3: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/3.jpg)
Subsistemas típicos de un SO
• Procesos e hilos
• Entrada/salida
• Memoria y cachés de disco
• Archivos
• Red y mensajería
• Usuarios y seguridad
• Monitorización y contabilidad
© 2015 ULPGC - José Miguel Santos 3
![Page 4: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/4.jpg)
Programas del sistema
• Un SO es una plataforma de software que suele incluir un conjunto de utilidades básicas, para:– Darnos un entorno de trabajo (escritorio, shell…)
– Gestionar los recursos (formatear discos, configurar la red…)
– Trabajar con archivos (ls, cp, mkdir…)
– Editar documentos (vi, notepad, gedit…)
– Desarrollar programas (compilador, depurador…)
• Son lo que los usuarios perciben como «sistema operativo»
© 2015 ULPGC - José Miguel Santos 4
![Page 5: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/5.jpg)
Programas del sistema
• Otros programas del sistema son servicios que se ejecutan en segundo plano (servicios, subsistemas, demonios):
– Sistema de impresión
– Copias de seguridad
– Registro de actividad
– …
© 2015 ULPGC - José Miguel Santos 5
![Page 6: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/6.jpg)
El núcleo (kernel)
• Se suele llamar núcleo al componente del SO que reside en memoria de forma permanente y atiende las llamadas al sistema y demás eventos.
• El resto de utilidades del SO (CLI, GUI, programas del sistema…) se apoyan en los servicios del núcleo.
• En la parte teórica de la asignatura trataremos casi exclusivamente sobre el núcleo, no abordaremos los otros componentes.
© 2015 ULPGC - José Miguel Santos 6
![Page 7: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/7.jpg)
Implementación de lasllamadas al sistema
• En el nivel del procesador:– la llamada al sistema ocurre mediante una
instrucción especial del procesador (syscall, int, trap…)
– esa instrucción cambia a modo privilegiado
• En el ámbito del programador:– La llamada es una subrutina que escribimos en el
código fuente. El compilador la acabará sustituyendo por una invocación a la instrucción especial, con los argumentos que sean necesarios.
© 2015 ULPGC - José Miguel Santos 7
![Page 8: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/8.jpg)
Ejemplos de llamadas al sistema
• Windows: handle = OpenFile("mifichero",ofstruct,OF_READ);
• UNIX: fd = open("mifichero",O_RDONLY);
• MS-DOS: mov ah,3Dh
mov al,0
mov dx,StringMiFichero
int 21h
© 2015 ULPGC - José Miguel Santos 8
![Page 9: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/9.jpg)
Implementación de lasllamadas al sistema
• ¿Cómo se pasan los argumentos a la llamada?
– Mediante registros de CPU (lo más típico)
– Escribiéndolos en una tabla en memoria principal
– Colocándolos en la pila
© 2015 ULPGC - José Miguel Santos 9
![Page 10: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/10.jpg)
Relación entre el proceso, la API de llamadas al sistema y el núcleo
© 2015 ULPGC - José Miguel Santos 10
(tomado de Silberschatz, Galvin & Gagne, 2013)
![Page 11: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/11.jpg)
Ejemplos de llamadas al sistema (UNIX)
• Procesos: crear proceso (fork), finalizar proceso (exit)…
• Memoria: pedir más memoria (sbrk), liberar memoria...
• Archivos: open, close, creat, read, write, mkdir; bloquear fichero (lockf)…
• Redes: crear conexión (socket), cerrar conexión...
• Protección de ficheros: cambiar permisos (chmod), cambiar propietario (chown)…
© 2015 ULPGC - José Miguel Santos 11
![Page 12: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/12.jpg)
Ejemplos en Windows y UNIX
12
(Silberschatz, Galvin & Gagne, 2013)
![Page 13: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/13.jpg)
Ejemplo con la biblioteca estándar
• La biblioteca estándar de C no pertenece al SO y se ejecuta en modo usuario.
• P.ej. printf() utiliza la llamada al sistema write() para poder escribir en la consola.
© 2015 ULPGC - José Miguel Santos 13
![Page 14: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/14.jpg)
Arranque típico de un SO
1. Cuando el equipo se enciende, la CPU inicia su ejecución en un punto fijo de la memoria
2. Hay una ROM con una pequeña rutina de arranque
3. La rutina localiza en qué dispositivo se encuentra el cargador del SO (boot loader) y lo carga en memoria– Nota: La ROM del equipo tiene código para leer y escribir
sobre los dispositivos de E/S
4. El cargador instala el núcleo y se continúa el proceso de carga de módulos, servicios, etc. hasta que el SO queda totalmente operativo.
© 2015 ULPGC - José Miguel Santos 14
![Page 15: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/15.jpg)
ARQUITECTURAS PARA LOS S.O.
© 2015 ULPGC - José Miguel Santos 15
![Page 16: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/16.jpg)
Arquitectura del SO
• ¿qué estructura interna tiene un SO?
• Algunas estructuras:
– Monolítico todo en un mazacote de código
– En capas niveles de abstracción creciente
– Micronúcleos un pequeño SO sobre el que se añaden módulos
© 2015 ULPGC - José Miguel Santos 16
![Page 17: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/17.jpg)
Sistema monolítico sencillo (MS-DOS)
• Estructura ligeramente modular
© 2015 ULPGC - José Miguel Santos 17
controladores de dispositivos en ROM BIOS
controladores de dispositivosde MS-DOS
programa del sistema residente
programa de aplicación
![Page 18: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/18.jpg)
Sistema monolítico complejo(UNIX clásico)
• Separación en capas más nítida
© 2015 ULPGC - José Miguel Santos 18
Procesos de usuario
shells y órdenes
compiladores e intérpretes
bibliotecas del sistema
API de llamadas al sistema
manejo de terminales por
señales
sistema de E/S de caracteres
drivers de terminales
sistema de archivos
E/S por intercambio de bloques
drivers de disco y cinta
planificación de CPU
reemplazo de páginas
paginación por demanda
memoria virtual
Interfaz del núcleo con el hardware
controladores de terminales
terminales
controladores de dispositivos
discos y cintas
controladores de memoria
memoria física
nú
cle
o
![Page 19: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/19.jpg)
Diseño por capas
• El SO se construye como una jerarquía de niveles, cada uno de los cuales aprovecha los servicios del nivel inferior.
© 2015 ULPGC - José Miguel Santos 19
capa 0
capa 1
capa 2programa
![Page 20: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/20.jpg)
Sistema por capas puro (THE)
• Sistema experimental de los años 60
• Seis niveles:
– L5: aplicaciones de usuario
– L4: buffering
– L3: consola del operador
– L2: gestión de memoria paginada
– L1: planificación de procesos
– L0: hardware
© 2015 ULPGC - José Miguel Santos 20
![Page 21: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/21.jpg)
Sistema por capas (Windows, OS/2)
© 2015 ULPGC - José Miguel Santos 21
controladorde dispositivo
controladorde dispositivo
controladorde dispositivo
controladorde dispositivo
núcleo del sistema
• gestión de memoria• planificación de tareas• gestión de dispositivos
subsistema subsistema subsistema
interfaz de programación de aplicaciones (API) extensión API
aplicación aplicación aplicación aplicación
![Page 22: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/22.jpg)
Separar mecanismos y políticas
• Políticas estrategias para administrar un recurso– SJF, FIFO, tiempo compartido, LRU…
• Mecanismos estructuras y objetos que sirven para implementar una política– Colas de espera, bitmaps, despachador de procesos,
temporizador, etc.
• Deseable que el código de los mecanismos y el de las políticas estén separados. Así se pueden reutilizar los mecanismos para otras políticas.
© 2015 ULPGC - José Miguel Santos 22
![Page 23: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/23.jpg)
Micronúcleos
• Dejar en el núcleo lo mínimo imprescindible
– Multitarea básica, gestión de interrupciones, comunicación entre procesos, E/S, etc.
• El resto de servicios se implementan como módulos en espacio de usuario
• Mecanismos en el micronúcleo, políticas fuera
• Los módulos se comunican con mensajes
• Primer micronúcleo: Mach (1980)
© 2015 ULPGC - José Miguel Santos 23
![Page 24: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/24.jpg)
Micronúcleo: ejemplo Mach
© 2015 ULPGC - José Miguel Santos 24
Application
Program
File
System
Device
Driver
Interprocess
Communication
memory
managment
CPU
scheduling
messagesmessages
microkernel
hardware
user
mode
kernel
mode
![Page 25: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/25.jpg)
Micronúcleos: ventajas
• Ventajas– Se pueden construir servicios nuevos del SO sin tocar
el núcleo– Se pueden implementar múltiples versiones para un
mismo servicio (ej. varios sistemas de ficheros)– El SO es más fácil de portar a otras arquitecturas (sólo
hay que tocar el micronúcleo)– Más seguridad y fiabilidad (menos código en modo
privilegiado)
• Inconvenientes– La comunicación entre módulos penaliza el
rendimiento
© 2015 ULPGC - José Miguel Santos 25
![Page 26: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/26.jpg)
Módulos cargables
• Linux, Solaris…
• Módulos de código que se pueden incorporar al núcleo en tiempo de ejecución
• Cada módulo tiene una interfaz conocida
• Los módulos se hacen llamadas entre ellos
© 2015 ULPGC - José Miguel Santos 26
![Page 27: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/27.jpg)
Módulos cargables (Solaris)
© 2015 ULPGC - José Miguel Santos 27
![Page 28: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/28.jpg)
Implementación del SO
• El SO presenta características especiales– Pieza crítica: todas las aplicaciones dependen de él– Es mucho más complicado de depurar y de actualizar
• Lenguaje de programación– En el pasado, en lenguaje ensamblador (por eficiencia)– Ahora en lenguajes de alto nivel, sobre todo C y C++
• Desarrollo modular– Posibilidad de desarrollar módulos cargables por separado y
dinámicamente
• Disponibilidad del código fuente– Sistema propietario sólo tenemos los binarios ya compilados
(Windows, Mac OS X, OS/360…)– Software libre podemos tener el fuente y compilarlo en nuestro
equipo (Linux, FreeBSD…)
© 2015 ULPGC - José Miguel Santos 28
![Page 29: Fundamentos de los Sistemas Operativossopa.dis.ulpgc.es/so/teoria/pdf/FSO-01.3-estructura del... · 2015-01-21 · –En el pasado, en lenguaje ensamblador (por eficiencia) –Ahora](https://reader034.vdocumento.com/reader034/viewer/2022042202/5ea32bf04fa24832a16020cc/html5/thumbnails/29.jpg)
FIN del Tema 1
© 2015 ULPGC – José Miguel Santos Espino