Estructura del sistema operativo
2Estructura del sistema operativo
Contenidos (T2 y T3)
Introducción Diseño por capas
Ventajas del empleo de capas Niveles clásicos de un SO Núcleo de un SO
Funciones básicas del núcleo Enfoques de diseño:
Comparativa Estructura de UNIX clásico Estructura de Mach Estructura de Linux
El núcleo de Linux Estructura de W2K Llamadas al sistema
APIs de llamadas al sistema Realización
3Estructura del sistema operativo
Introducción
Objetivo de la estructuración: Buscar una organización interna que facilite la
comprensión, incremente la portabilidad, extensión y favorezca el mantenimiento
¿Cómo abordar un programa de hasta 30 – 35 millones de líneas de código?
4Estructura del sistema operativo
Diseño por capas (i)
Interfaces del SO que debe conocer el diseñador: Interfaz hardware:
Interrupciones, repertorio de instrucciones, traducción de direcciones de la MMU, punto de entrada para cargar el SO
Interfaz usuario y programas API (Application Program Interface)
S.O.
Hardware
AplicacionesIntérprete de órdenes
5Estructura del sistema operativo
Diseño por capas (ii)
El diseño por capas lleva asociada una jerarquización que permite disminuir la complejidad observable de un sistema
Concepto de capa: conjunto de funciones claramente definidas hacia un objetivo común
Capa N
Capa N-1
Entidad N
Entidad N-1
Entidad N-1
Servicios
6Estructura del sistema operativo
Diseño por capas (iii) Ventajas del empleo de capas
Las estructuras internas y algoritmos de una capa no son visibles a las demás
El sistema puede evolucionar fácilmente. Lo único que hay que mantener son las interfaces
Pueden existir realizaciones alternativas llevadas a cabo por diferentes grupos de trabajo
Algunas capas pueden ser transparentes si sus servicios no son necesarios
Cada capa se codifica y prueba de modo independiente, para luego hacer las pruebas de integración y de conjunto
Esto es muy importante en el desarrollo del software
7Estructura del sistema operativo
Niveles clásicos de un SO (i)
Usuario y aplicaciones
N5: Gestión de la informaciónN4: Gestión de los dispositivosN3: Gestión de procesosN2: Gestión de memoriaN1: Gestión del procesador
Hardware
8Estructura del sistema operativo
Niveles clásicos de un SO (ii)
NIVEL 1Nivel inferior de gestión del procesador
Objetivo: Compartir la CPU entre procesos
Funciones: Sincronización entre procesos Conmutación de la CPU Gestión de interrupciones Arranque inicial
9Estructura del sistema operativo
Niveles clásicos de un SO (iii)
NIVEL 2Gestión de memoria
Objetivo: Repartir la memoria entre procesos
Funciones: Asignación y liberación de memoria Control violación de acceso
10Estructura del sistema operativo
Niveles clásicos de un SO (iv)
NIVEL 3Nivel superior de gestión de procesos
Objetivo: Gestión de procesos de alto nivel
Funciones: Creación y destrucción de procesos Intercambio de mensajes entre procesos Detención y arranque de procesos
11Estructura del sistema operativo
Niveles clásicos de un SO (v)
NIVEL 4Nivel de gestión de dispositivos
Objetivo: Realizar la gestión de las E/S en función de los
dispositivos existentes Funciones:
Creación de procesos de E/S Asignación y liberación de dispositivos de E/S Planificación de la E/S
12Estructura del sistema operativo
Niveles clásicos de un SO (vi)
NIVEL 5Nivel de gestión de la información
Objetivo: Gestionar el espacio de nombres lógicos y la
protección de la información Funciones:
Creación y destrucción de archivos y directorios Apertura y cierre de archivos Lectura y escritura de archivos Protección de acceso
13Estructura del sistema operativo
Núcleo del sistema operativo (i)
Proporciona la funcionalidad básica del SO Es la parte más dependiente del hw de todo el
SO Suele permanecer en el almacenamiento
primario porque su código se ejecuta muy frecuentemente
Otros niveles
Núcleo
HW
14Estructura del sistema operativo
Núcleo del sistema operativo (ii)Funciones básicas del núcleo
Proporcionar el entorno adecuado para la existencia de procesos
Funciones: Tratamiento de interrupciones Conmutación del procesador entre procesos
(soporte al diagrama de estados) Mecanismos básicos de comunicación y
sincronización entre hilos y procesos Carga inicial y activación de la configuración del
sistema
EDSO
15Estructura del sistema operativo
Núcleo del sistema operativo (iii)Funciones básicas del núcleo
Tratamiento de interrupciones: El núcleo transforma las interrupciones en eventos
de más alto nivel (p. ej. mensajes) El núcleo determina qué proceso espera una
interrupción y le envía un mensaje
16Estructura del sistema operativo
Núcleo del sistema operativo (iv)Funciones básicas del núcleo
Conmutación de CPU entre procesos Los procesos de usuario pasan por varios estados
durante su tiempo de vida en el sistema El núcleo proporciona los mecanismos de
conmutación de la CPU entre procesos
AsignarDormir
Despertar
Revocar
Ejecución
ListoEspera
17Estructura del sistema operativo
Núcleo del sistema operativo (v)Funciones básicas del núcleo
Comunicación y sincronización entre procesos El núcleo proporciona mecanismos para que los
procesos puedan intercambiar información y sincronizarse
Mecanismos: Señales Semáforos Mensajes RPCs (remote procedure calls)
Ejemplo: NFS (Sistema de ficheros en red) construido a partir
de RPCs
18Estructura del sistema operativo
Enfoques de diseño (i)
Enfoques de diseño: Monitor monolítico Micronúcleo
Monitor monolítico Toda la funcionalidad del SO se incluye se incluye
en el núcleo Ejemplos: MS-DOS, Linux
Micronúcleo Parte de los sevicios del SO la llevan a cabo los
procesos de sistema, que se sirven de la funcionalidad mínima proporcionada por un micronúcleo
Ejemplos: Mach, L4, Chorus
19Estructura del sistema operativo
Enfoques de diseño (ii) Comparativa
Monitor monolítico Todo el SO se ejecuta en
modo supervisor Menos robusto El SO es ininterrumpible Mayor rendimiento
Difícil de modificar en tiempo de ejecución
Menos adaptable
Micronúcleo Sólo el núcleo se ejecuta
en modo supervisor Más robusto El SO es interrumpible Menor rendimiento debido
a la sobrecarga de comunicaciones
Fácil de modificar en tiempo de ejecución
Más adaptable
20Estructura del sistema operativo
Estructura de UNIX clásico
Subsistema de
archivos
Subsistema decontrol de procesos
Manejo de memoria
IPC
Planificador
Interfaz de llamadas al sistema
Programas de usuario
Bibliotecas
Buffer cache
Control hardware
Hardware
Nivel kernelNivel hardware
Nivel kernel
Nivel de usuario
Trap
Subsistema
de E/S
Carácter BloqueDrivers
21Estructura del sistema operativo
Estructura de Mach
Manejo de hilos
Programasde usuario
Servidorde proces
os
Hardware
Manejadores de dispositivos
Nivel kernelNivel hardware
Nivel kernelNivel de usuario
Servidor de
memoria
Servidorde
archivos
Servidorde
gráficos
Estructura de Linux (i)
Validación de argumentos de las llamadas al sistema
Conmutador de sistemas de archivo
Manejador delbuffer de cache
Bib
liote
cas
del ke
rnel
Manejadorde
memoria
Manejadorde
procesos
Manejadores de dispositivo
Est. datos compartidas entre nivelalto y bajo
Interfaz de llamadas de alto nivel
Hardware
Bajo niveldel núcleo
Manejador de interrupcionesManejador traps de llamadas al sist.Manejador de excepciones
Manejadorprocesos debajo nivel
Cambiode
contexto
Tabladispatch
Callout debajo nivel
Manejadorde
terminalesPila de red
Interfaz desockets ystreams
Manejadorde archivos
Estructuras del núcleo(alto nivel)
Manejadorde callouts
Sis
tem
as
de
arc
hiv
o
Alto niveldel núcleo
Modo usuario
23Estructura del sistema operativo
Estructura de Linux (ii) El núcleo de Linux
Comunicación entre procesos Señales Tuberías Sockets (TCP/IP)
Manejadores (drivers) Modo carácter Modo bloque
Sistema de archivos Archivos,
directorios Bloqueo de
archivos
Facilidades básicas Manejo del reloj y
temporizador Manejo del estado
de los procesos Manejo de
descriptores Semáforos
Gestión de memoria Memoria virtual Trasiego Memoria
compartida
24Estructura del sistema operativo
WinLogon
Estructura de W2K
DLLsDLLs
Controladorservicios
Manejador de sesiones
ReplicadorAlertador
RPCRegistradorde eventos
Aplicacionesde usuario
DLLs
POSIX
OS2
Win32
NTDLL.DLLHilos del sistema
API del núcleoManejador
de E/S
Sistemade archivos
Manejadorde caché
PnPControl de
alimentación
SeguridadMemoriavirtual
Procesose hilos
Win32GDI
Manejador de objetosManejadores de dispositivo Kernel
HAL
Hardware
NtosKrnl.exe
Procesos de sistema Servicios Aplicaciones Subsistemas
25Estructura del sistema operativo
Llamadas al sistema (i)
Interfaz de llamadas al sistema Funciones de biblioteca compartidas por todos
los procesos que se ejecutan en la máquina
S.O.
Hardware
AplicacionesIntérprete de órdenes
Interfaz de llamadas al sistema
26Estructura del sistema operativo
Llamadas al sistema (ii)
Llamadas al sistema Mecanismo controlado de acceso por parte de los
procesos a los recursos del S.O. Funcionalidad básica:
Comunicación y sincronización de procesos Ejecución de programas Manejo de operaciones de E/S Manipulación del sistema de archivos Detección y control de errores en tiempo de ejecución Asignación no conflictiva de recursos Protección en el empleo de recursos Contabilidad de los recursos empleados
27Estructura del sistema operativo
Llamadas al sistema (iii) APIs de llamadas al sistema
Las llamadas al sistema están definidas a nivel de ensamblador
Código no portable (depende de la arquitectura) Incómodo de programar
Existen APIs (Application Program Interface) para mejorar la portabilidad y facilitar la codificación
El API es un “envoltorio” para realizar llamadas al sistema desde un lenguaje de alto nivel (portable y cómodo)
API estándar: POSIX (Portable Operating System Unix)
Ejemplo de llamada de interfaz POSIX para abrir un fichero:
int open( char* archivo, int modo);
28Estructura del sistema operativo
Llamadas al sistema (iv) APIs de llamadas al sistema
Manipulación de archivos:int open (const char *pathname, int flags, mode_t mode);
int close (int fd)
int creat (const char *pathname, mode_t mode)
int unlink (const char *pathname);
ssize_t read (int fd, void *buf, size_t count);
ssize_t write (int fd, const void *buf, size_t count);
off_t lseek (int fildes, off_t offset, int whence);
int rename (const char *oldpath, const char *newpath);
29Estructura del sistema operativo
Llamadas al sistema (v)Realización
Método: A través de una instrucción máquina específica, el
hw la trata como una interrupción sw Al ejecutarse esta instrucción toma el control el
S.O.
P1
...
...syscall N
...
...
...
switch N {
case 0:
case 1:
…
case N:
}
Modo supervisorCarga vector interrupción
30Estructura del sistema operativo
Llamadas al sistema (vi) Realización
Su implementación depende de la arquitectura del ordenador
IBM 360: instrucción SVC MIPS: instrucción syscall i386: int # (DOS: 21h, Linux: 80h, W2k: 2Eh)
Paso de parámetros: En registros internos del procesador En zona de memoria cuya dirección se pasa en
registros En la pila
Top Related