La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción al Minikernel 2

Presentaciones similares


Presentación del tema: "Introducción al Minikernel 2"— Transcripción de la presentación:

1 Introducción al Minikernel 2
Diseño de Sistemas Operativos

2 Contenido Esquema global de funcionamiento Estructura de datos Mutex

3 Llamadas al sistema (llamsis.h)
Esquema global Procesos de usuario Llamadas al sistema (llamsis.h) Minikernel Llamadas HAL (HAL.h) HAL S.O Linux Hardware

4 Estructura de datos: procesos
typedef struct BCP_t *BCPptr; typedef struct BCP_t { int id; /* ident. del proceso */ int estado; /* TERMINADO|LISTO|EJECUCION|BLOQUEADO*/ contexto_t contexto_regs; /* copia de regs. de UCP */ void * pila; /* dir. inicial de la pila */ BCPptr siguiente; /* puntero a otro BCP */ void *info_mem; /* descriptor del mapa de memoria */ } BCP; finalizar Ejecución Terminado Cambio de contexto dormir despertar Listo Bloqueado

5 Estructura de datos: procesos
/* Definicion del tipo que corresponde con la cabecera de una lista * de BCPs. Este tipo se puede usar para diversas listas (procesos * listos, procesos bloqueados, etc.). */ typedef struct{ BCP *primero; BCP *ultimo; } lista_BCPs; /* Variable global que identifica el proceso actual */ BCP * p_proc_actual=NULL; /* Variable global que representa la tabla de procesos */ BCP tabla_procs[MAX_PROC]; /* Variable global que representa la cola de procesos listos */ lista_BCPs lista_listos= {NULL, NULL};

6 Llamadas al sistema Minikernel
/* Definición del tipo que corresponde con una entrada en la tabla de llamadas al sistema. */ typedef struct{ int (*fservicio)(); } servicio; /* Prototipos de las rutinas que realizan cada llamada al sistema */ int sis_crear_proceso(); int sis_terminar_proceso(); int sis_escribir(); /* Variable global que contiene las rutinas que realizan cada llamada */ servicio tabla_servicios[NSERVICIOS]={ {sis_crear_proceso}, {sis_terminar_proceso}, {sis_escribir}};

7 Mutex


Descargar ppt "Introducción al Minikernel 2"

Presentaciones similares


Anuncios Google