El ncleo del sistema operativo Rina Arauz Introduccin

  • Slides: 20
Download presentation
El núcleo del sistema operativo Rina Arauz

El núcleo del sistema operativo Rina Arauz

Introducción n Objetivo: presentar la estructura interna y funciones del núcleo de un sistema

Introducción n Objetivo: presentar la estructura interna y funciones del núcleo de un sistema operativo Corresponde al primer nivel jerárquico Suele permanecer en el almacenamiento primario porque su código se ejecuta muy frecuentemente Otros niveles Núcleo HW UNAN-Leon El núcleo del SO 2

n n Es la parte más dependiente del HW de todo el sistema operativo

n n Es la parte más dependiente del HW de todo el sistema operativo Funciones básicas del Núcleo de un S. O: Manejo de interrupciones. Se transforman generalmente en mensajes para los siguientes niveles n Conmutación del procesador entre hilos o procesos (soporte al diagrama de estados) n Mecanismos básicos de comunicación entre hilos y procesos n Carga inicial y activación de la configuración del sistema Todo ello proporcionar el entorno adecuado para la existencia de procesos. n UNAN-Leon El núcleo del SO 3

Mecanismo de interrupciones n n n n El hardware salva el contador de programa

Mecanismo de interrupciones n n n n El hardware salva el contador de programa Se carga un nuevo contador de programa Se salvan los registros Se cambia el valor del puntero de pila Se conmuta el proceso que estaba bloqueado al estado de listo El planificador elige el siguiente proceso Se cede el control a un programa ensamblador que arranca proceso elegido UNAN-Leon El núcleo del SO 4

Niveles de interrupción n Mecanismo empleado para determinar en qué orden se atienden las

Niveles de interrupción n Mecanismo empleado para determinar en qué orden se atienden las interrupciones Puede ser proporcionado por el hardware o por el software Típicamente existen 32 niveles de nivel de prioridad de interrupción (NPI) n n En UNIX se les suele conocer como Interrupt Priority Level o IPL En W 2 K se les conoce como Interrupt Request Level o IRQL UNAN-Leon El núcleo del SO 5

Diagrama de manejo de interrupciones Interrupción ¿Nuevo NPI > actual NPI? No Guardar interrupción

Diagrama de manejo de interrupciones Interrupción ¿Nuevo NPI > actual NPI? No Guardar interrupción Sí Crear un nuevo contexto Guardar el CP y lo flags NPI = nuevo NPI Llamada al manejador Bloquear Manejador de interrupción ¿Hay int. pendientes? Sí Desbloquear No Retornar UNAN-Leon El núcleo del SO 6

Niveles de interrupción en W 2 K 31 Alta Fallo de alimentación IPI Reloj

Niveles de interrupción en W 2 K 31 Alta Fallo de alimentación IPI Reloj Perfiles Dispositivo n Interrupciones HW . . . 0 UNAN-Leon Dispositivo 1 DPC/Dispatch APC Base Interrupciones SW Nivel de ejecución ordinario El núcleo del SO 7

Diagrama de estados (básico) Ejecución Desalojar Dormir Despachar Espera Listo Despertar UNAN-Leon El núcleo

Diagrama de estados (básico) Ejecución Desalojar Dormir Despachar Espera Listo Despertar UNAN-Leon El núcleo del SO 8

n n Estados básicos de un proceso: n Listo: El único recurso que necesita

n n Estados básicos de un proceso: n Listo: El único recurso que necesita el proceso para continuar es el procesador. n Ejecución: El proceso dispone del procesador. n Espera: El proceso espera por un recurso. Soporte al diagrama de estados: Conjunto de rutinas que permiten pasar por distintos estados a cada uno de los procesos. UNAN-Leon El núcleo del SO 9

Comunicación entre procesos n n Para comunicación intramáquina se emplea memoria compartida con primitivas

Comunicación entre procesos n n Para comunicación intramáquina se emplea memoria compartida con primitivas de sincronización (P y V) Para una comunicación más general se utilizan los mensajes: n n n Síncronos o bloqueantes (i. e. L 4) Asíncronos o no bloqueantes (i. e. Mach) Las interrupciones HW se transforman en mensajes a los niveles superiores UNAN-Leon El núcleo del SO 10

Ejemplo: Linux n Proporciona: n Facilidades básicas n n n Manejo de interrupciones Manejo

Ejemplo: Linux n Proporciona: n Facilidades básicas n n n Manejo de interrupciones Manejo del reloj y temporizador Manejo del estado de los procesos Planificación de procesos Manejo de señales Gestión de memoria n n n Memoria virtual Protección Memoria compartida Carga dinámica Proyección de archivos en memoria UNAN-Leon El núcleo del SO 11

Linux: continuación n Sistema de archivos n n n Manejadores de dispositivo (drivers) n

Linux: continuación n Sistema de archivos n n n Manejadores de dispositivo (drivers) n n n Modo carácter Modo bloque Comunicación entre procesos n n n n Archivos, directorios Bloqueo de archivos Mecanismos de journaling VFS Señales Tuberías Colas de mensajes Semáforos Memoria compartida Sockets (TCP/IP) Subsistema de red n Pilas de protocolos (IPv 4, IPv 6, IPX, etc. ) UNAN-Leon El núcleo del SO 12

Llamadas al sistema n n n Son el mecanismo controlado de acceso por parte

Llamadas al sistema n n n Son el mecanismo controlado de acceso por parte de los procesos a los recursos del S. O. Método: a través de una instrucción máquina específica Al ejecutarse esta instrucción toma el control el S. O. (MP) Modo usuario Modo núcleo switch N { case 0: . . . case 1: syscall N … . . . case N: } UNAN-Leon El núcleo del SO 13

n Procedimientos o funciones que ofrece el sistema a un proceso de usuario para

n Procedimientos o funciones que ofrece el sistema a un proceso de usuario para acceder a determinados servicios propios del SSOO, es decir, servicios que se deben ejecutar en modo kernel o supervisor. UNAN-Leon El núcleo del SO 14

Llamadas al sistema n Tanto su número como su tipo depende del sistema operativo

Llamadas al sistema n Tanto su número como su tipo depende del sistema operativo n n n Amoeba: sólo una llamada al sistema (RPC) WNT: ni se sabe (su interfaz no es pública) Tipos de llamada n n n n 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 Comunicaciones en red Funciones de tiempo Manipulación de la interfaz gráfica UNAN-Leon El núcleo del SO 15

Ejemplo de llamadas n Manipulación de archivos Archivo Interfaz de usuario UNAN-Leon Archivo Interfaz

Ejemplo de llamadas n Manipulación de archivos Archivo Interfaz de usuario UNAN-Leon Archivo Interfaz del sistema El núcleo del SO 16

Operaciones (archivos) n int open (const char *pathname, int flags, mode_t mode); n int

Operaciones (archivos) n int open (const char *pathname, int flags, mode_t mode); n int close (int fd) n int creat (const char *pathname, mode_t mode) n int unlink (const char *pathname); n ssize_t read (int fd, void *buf, size_t count); n ssize_t write (int fd, const void *buf, size_t count); n off_t lseek (int fildes, off_t offset, int whence); n int rename (const char *oldpath, const char *newpath); UNAN-Leon El núcleo del SO 17

Ejemplo: open() n n n n Buscar el archivo en el directorio Comprobar que

Ejemplo: open() n n n n Buscar el archivo en el directorio Comprobar que el proceso que hace la llamada tiene los privilegios necesarios Comprobar si la operación es coherente Identificar el dispositivo y obtener la dirección física Conseguir espacio si fuera necesario Crear el descriptor de archivo Devolver un código al programa que lo ha llamado En caso de que se produzca un error, el código de retorno de open() es – 1 y errno contiene el número de error UNAN-Leon El núcleo del SO 18

Operaciones (procesos y tiempo) n n n n n pid_t fork (void); int execve

Operaciones (procesos y tiempo) n n n n n pid_t fork (void); int execve (const char *file, char *const argv[ ], char *const envp[ ]); void exit (int status); pid_t getpid (void); pid_t wait (int *status); int nanosleep (const struct timespec *req, struct timespec *rem); int gettimeofday (struct timeval *tv, struct timezone *tz); int getitimer (int which, struct itimerval *value); int setitimer (int which, const struct itimerval *value, struct itimerval *ovalue); UNAN-Leon El núcleo del SO 19

Investigar… n n n Carga inicial y activación de la configuración del sistema Investigar…

Investigar… n n n Carga inicial y activación de la configuración del sistema Investigar… http: //1984. lsi. us. es/wikissoo/index. php/Modelos_de_Dise%C 3%B 1 o_de _Sistemas_Operativos n n n Modelos de Diseño de Sistemas Operativos. Los cuatro tipos de núcleos: monolíticos , micronúcleos, híbridos, exonúcleos. Presente este trabajo mediante 2 un esquemas o dibujos, en una sola pagina. UNAN-Leon El núcleo del SO 20