Introducción al Minikernel 2

Slides:



Advertisements
Presentaciones similares
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Advertisements

Listas enlazadas c++ Prof. Franklin Cedeño.
Programación I Teoría IV
Programación, Algoritmos y Estructuras de Datos
Tipos de Datos Básicos y Estructurados
Sistemas Operativos Unidad II Procesos.
Modelo de procesos de dos estados
Punteros Universidad Nacional Mayor de San Marcos
Diseño de sistemas operativos Tema 2 Gestión de procesos
Tratamiento de listas en Java
1.3 Programación modular. Subprogramas.
Funcionamiento, programación
Comunicación entre procesos en Linux
Teoría de lenguajes y compiladores
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Estructuras de Datos Punteros y algo más.
Herramientas para el acceso directo a memoria en C++
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones en lenguaje C
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
Estructuras dinámicas de datos, TAD Lista, parte 2
COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 6: Clases y Abstracción de Datos Índice del capítulo 6.1 Introducción 6.2 Estructuras 6.3 Clases.
Tema 9 Estructuras.
Sistemas Operativos Procesos.
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Hilos - Lightweight process - Procesos ligeros
Archivos.
Estructuras.
Introducción al Minikernel
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Descomposición Modular. Funciones
Administración de Memoria Memoria Virtual
Unidad VI Registros (estructuras, uniones y enumeraciones)
Programación I Técnico Universitario en Web Dpto. de Informática FCFMyN - UNSL -11-
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Informática Ingeniería en Electrónica y Automática Industrial
Estructuras con punteros: Nodos y Listas. Fichas ordenas en orden alfabético y por otro criterio, usando hilos : hilo de inicio : hilo de ficha : hilo.
Concepto de proceso Sebastián Sánchez Prieto. Procesos 2  S2P, OGP & IGT Definición de proceso Un proceso es un programa en ejecución Componentes:
Introducción a los Sistemas Operativos
Manejo de Punteros y objetos en memoria dinámica en C++
Unidad II Introducción a la programación en C++
Informática Ingeniería en Electrónica y Automática Industrial
Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas.
Memoria estática versus dinámica con Estructuras
Programación en C para electrónicos
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Administrador de procesos
Unidad 4: LISTAS.
Memoria dinámica con Estructuras. Memoria dinámica ¿Qué hacer cuando las variables declaradas son insuficientes o cuando no se conoce anticipadamente.
Programación Procedural y Recursiva en C++
Punteros Recomendado: 1. Nivelación Funciones
Sistemas Operativos Unidad III Procesos.
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
INSTITUTO TECNOLOGICO DE APIZACO
Por Luis Esteban Monsalve Martínez
Unidad 2 Estructuras ESCUELA DE COMPUTACIÓN.
COMPUTACIÓN I TEMA 9. Constructor de tipos: struct Definición de nuevos tipos: typedef. Arreglos de estructuras Prof. Mireya Morales.
Estructuras con punteros: Nodos y Listas. Un programa C.
Ayudantia 3: Pilas- Colas
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
6. Clases y Métodos..  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases.
Por ejemplo: void funcion1(int a, int b=0, int c= 1); void funcion2(int a=1, int b, int c); int funcion1(int a, int b=0, int c=1);... funcion1(12, 10);
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Transcripción de la presentación:

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

Contenido Esquema global de funcionamiento Estructura de datos Mutex

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

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

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};

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}};

Mutex