Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX"

Transcripción

1 Concurrencia en UNIX / LINUX Introducción: Procesos e Hilos POSIX

2 El estándar POSIX POSIX: Interfaz de sistemas operativos portables. Basado en UNIX A pesar de que UNIX es ya de por sí estándar, había muchos sabores que impositiblitaban la transportabilidad de los programas (código fuente) Disponible en UNIX / LINUX En forma de subsistema en Windows NT / XP El estándar define: Tipos de datos Nombres de funciones Valores devueltos por las funciones Es habitual que los recursos se referencien mediante un número entero >= 0 que recibe el nombre de descriptor.

3 Creación de Procesos Concurrentes Llamada al sistema fork(). A partir de la devolución del control por parte del sistema, existen en ejecución dos imágenes de memoriabásicamente iguales: el padre y el hijo. Las diferencias entre ambos procesos son: PID s de los procesos El PID del hijo es distinto al del padre. En la llamada a fork() el sistema devuelve un 0 al proceso hijo y un valor positivo distinto de 0 (pid del hijo) al padre. Recursos compartidos entre el proceso Padre e Hijo la imagen en memoria del proceso hijo es una copia igual a la del proceso padre, pero en distinta zonas de memoria. No se comparten las variables de memoria. Los recursos que sí comparten son los dispositivos y ficheros que tuviera abiertos el proceso padre. el stdin, stdout y stderr. Esto quiere decir que la salida estándar y salida de error estándar de padre e hijo aparecerán mezcladas.

4 Fork () - 1 # include <stdio.h> main() { int pid; /************************************************ creación de un proceso concurrente con el creador *************************************************/ pid=forck (); if ((pid == -1) { printf ("error en creacion de proceso hijo\n"); exit(1); else if ( pid == 0) /* proceso hijo */ { printf ("Proceso hijo 1\n"); fflush(stdout); exit (0); /* terminacion con codigo 0 */ else /* proceso padre */ { printf ("Proceso padre\n"); fflush(stdout); wait (0); Padre

5 Fork () - 2 Proceso Padre Proceso Hijo # include <stdio.h> main() { int pid; /************************************************ creación de un proceso concurrente con el creador *************************************************/ pid=forck (); if ((pid == -1) { printf ("error en creacion de proceso hijo\n"); exit(1); else if ( pid == 0) /* proceso hijo */ { printf ("Proceso hijo 1\n"); fflush(stdout); exit (0); /* terminacion con codigo 0 */ else /* proceso padre */ { printf ("Proceso padre\n"); fflush(stdout); wait (0); # include <stdio.h> main() { int pid; /************************************************ creación de un proceso concurrente con el creador *************************************************/ pid=forck (); if ((pid == -1) { printf ("error en creacion de proceso hijo\n"); exit(1); else if ( pid == 0) /* proceso hijo */ { printf ("Proceso hijo 1\n"); fflush(stdout); exit (0); /* terminacion con codigo 0 */ else /* proceso padre */ { printf ("Proceso padre\n"); fflush(stdout); wait (0); Padre Hijo Suponemos que se pudo crear el proceso hijo (fork devuelve números no negativos) Ambos procesos continúan ejecutando la siguiente sentencia al fork().

6 Fork () - 3 Proceso Padre Proceso Hijo # include <stdio.h> main() { int pid; /************************************************ creación de un proceso concurrente con el creador *************************************************/ pid=forck (); if ((pid == -1) { printf ("error en creacion de proceso hijo\n"); exit(1); else if ( pid == 0) /* proceso hijo */ { printf ("Proceso hijo 1\n"); fflush(stdout); exit (0); /* terminacion con codigo 0 */ else /* proceso padre */ { printf ("Proceso padre\n"); fflush(stdout); wait (0); # include <stdio.h> main() { int pid; /************************************************ creación de un proceso concurrente con el creador *************************************************/ pid=forck (); if ((pid == -1) { printf ("error en creacion de proceso hijo\n"); exit(1); else if ( pid == 0) /* proceso hijo */ { printf ("Proceso hijo 1\n"); fflush(stdout); exit (0); /* terminacion con codigo 0 */ else /* proceso padre */ { printf ("Proceso padre\n"); fflush(stdout); wait (0); Padre Hijo Ambos procesos pasan a determinar el valor devuelto por fork ()

7 Fork () - 4 Proceso Padre Proceso Hijo # include <stdio.h> main() { int pid; /************************************************ creación de un proceso concurrente con el creador *************************************************/ pid=forck (); if ((pid == -1) { printf ("error en creacion de proceso hijo\n"); exit(1); else if ( pid == 0) /* proceso hijo */ { printf ("Proceso hijo 1\n"); fflush(stdout); exit (0); /* terminacion con codigo 0 */ else /* proceso padre */ { printf ("Proceso padre\n"); fflush(stdout); wait (0); # include <stdio.h> main() { int pid; /************************************************ creación de un proceso concurrente con el creador *************************************************/ pid=forck (); if ((pid == -1) { printf ("error en creacion de proceso hijo\n"); exit(1); else if ( pid == 0) /* proceso hijo */ { printf ("Proceso hijo 1\n"); fflush(stdout); exit (0); /* terminacion con codigo 0 */ else /* proceso padre */ { printf ("Proceso padre\n"); fflush(stdout); wait (0); Padre El padre ve que fork() devuelve el PID del hijo, y sigue una rama del if. Espera bloqueado (wait) a que el hijo termine. El hijo ve que fork() devuelve un 0 y sigue la otra rama del if. Hijo

8 Identidades de padre e hijo El proceso padre sabe de forma explícita la identidad de sus procesos hijo Es el valor devuelto por fork(). El proceso hijo observa que fork() devuelve un 0 0 no es un PID válido por lo que se identifica como proceso hijo. Los procesos hijos pueden tener a su vez sus propios hijos. Se establece una jerarquía de procesos debdia a la relación padre/hijo. Funciones relacionadas: Para saber su propio PID: getpid(); Para saber el PID del padre: getppid(); Para no tener problemas, debemos incluir los prototipos que están en #include <sys/types.h> #include <unistd.h>

9 wait () Cuando en UNIX un proceso termina, hace que terminen todos sus hijos (finalización en cascada). Para hacer que el hijo sobreviva a la muerte del padre (ej uso de nohup en el shell) el proceso hijo, ya no es hijo de su padre, sino que es adoptado por el proceso init que siempre está vivo. Para hacer que el padre espere a que el hijo termine (y no muera antes que su hijo, haciendo que el hijo también muera), se debe usar la función wait (). Esta función devuelve el pid del hijo terminado. Si tiene varios hijos el mismo padre, wait() desbloquea al padre cuando CUALQUIER hijo termina. Si tenemos que esperar a que finalicen todos, habrá un wait() por cada hijo. Con la función waitpid( ) se puede esperar a la finalización de un hijo en particular (el padre conoce explícitamente los pid s de sus hijos)

10 Ejecución de distinto código: exec () Si el único procedimiento de creación de procesos visto (fork()) sólo crea clones del padre, no sería posible crear procesos que realicen tareas totalmente diferentes a las de su progenitor. Hay varias llamadas al S.O. que substituyen la imagen del código que ha heredado el hijo por otra, permitiendo ejecuciones de distintos programas en los procesos padre e hijo. Estas llamadas son: execl (camino, arg1, arg2,...) execlp( ) execle( ) execv( ) Execvp( )

11 Ejemplo de uso de exec () #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> main () { pid_t childpid; int status; if ((childpid = fork()) == -1) { perror ("Error al ejecutar fork"); exit(-1); else if (childpid == 0) { // Hijo if (execl("/bin/ls", "ls", "-l", NULL) < 0) { // nombre, argv[0], argv[1]... perror("fallo en la ejecución de ls."); exit(-1); exit(0); else if (childpid!= wait(&status)) perror("el hijo ha terminado de forma anormal."); exit(0);

12 Depuración de programas (1) Depurar un programa que crea procesos concurrentes es mucho más complicado que con procesos secuenciales. Ahora en la pantalla se mezclarán los mensajes generados por todos los procesos concurrentes, y deberá identificarse adecuadamente quién es el proceso que generó cada uno de ellos. Garantizar la causalidad en el orden de los mensajes En un principio es imposible saber el orden en que se van a ejecutar los procesos concurrentes, el orden depende de las velocidades relativas de ejecución de los procesos, de la carga del sistema, del algoritmo de planificación, y de otras circunstancias. Se utiliza la función fflush (), que tiene como misión vaciar el búffer asociado al fichero que se le pasa como único argumento. Si a cada sentencia que visualiza un mensaje (por ejemplo, usando printf o puts) la seguimos de una sentencia fflush (stdout), queda asegurado que el mensaje se imprime antes de continuar con la ejecución del resto del proceso. ATENCIÓN: la pantalla (dispositivo stdout) es un recurso compartido por todos los procesos, y su acceso en manera concurrente debe ser regulado adecuadamente, como se verá en próximas sesiones de laboratorio. IMPORTANTE: el uso de fflush () penaliza la concurrencia, y sólo debe utilizarse cuando sea estrictamente necesario, cono en el caso de una traza para depuración.

13 Depuración de programas 2 printf ( msj1 ); F(...); printf ( msj2 ); Buffer de salida El uso de buffers de E/S aumenta la eficiencia del sistema, permitiendo un mayor grado de concurrencia. Es decir, el proceso puede seguir ejecutando incluso antes de que la operación de salida se haya completado.

14 Depuración de programas 3 printf ( msj1 ); F(...); printf ( msj2 ); msj1 El buffer de salida no se descarga inmediatamente en el dispositivo (p.ej. pantalla). La escritura se hace Cuando está lleno Cuando se le indica que así lo haga A intervalos regulares de tiempo. Cuando el S.O. considera oportuno, p.ej. cuando no tiene otra tarea más importante que hacer

15 Depuración de programas 4 printf ( msj1 ); F(...); printf ( msj2 ); msj1 Error grave Posiblemente genera un fichero Core El proceso termina y el S.O. elimina todas las tareas que este proceso tenía pendientes, entre ellas las de vaciar sus buffers de salida. El mensaje msj1 no llega a imprimirse.

16 Depuración de programas 5 printf( msj1 ); fflush(null); F(...); printf( msj2 ); fflush (NULL); Buffer de salida

17 Depuración de programas 6 printf( msj1 ); fflush(null); F(...); printf( msj2 ); fflush (NULL); msj1 printf: el mensaje va al buffer fflush: el proceso pide al S.O. que vacíe el buffer, y no continua su ejecución hasta que el S.O. haya enviado el contenido del buffer al dispositivo. Está penalizando la concurrencia.

18 Depuración de programas 7 msj1 Pantalla printf( msj1 ); fflush(null); F(...); printf( msj2 ); fflush (NULL); Al producirse el error, el proceso termina, pero ya sabemos que el error se produjo al entrar en la función F, puesto que ha aparecido msj1 pero no msj2. Error grave

19 Hilos POSIX - 1 Permiten la ejecución concurrente de varias secuencias de instrucciones asociadas a diferentes funciones dentro de un mismo proceso Los hilos hermanos entre sí comparten la misma imagen de memoria, es decir: Código, variables de memoria globales, y los dispositivos y ficheros que tuviera abierto el padre. Los hilos hermanos no comparten: El Contador de Programa: cada hilo podrá ejecutar una sección distinta de código. Los registros de CPU. La pila en la que se crean las variables locales de las funciones a las que se va llamando después de la creación del hilo. El estado: puede haber hilos en ejecución, listos, o bloqueados en espera de un evento. Código Variables Globales PC: localiza la siguiente Instrucción a ejecutar en la función principal Reg. CPU Pila: Variables locales de la función F

20 Hilos POSIX - 2 Permiten la ejecución concurrente de varias secuencias de instrucciones asociadas a diferentes funciones dentro de un mismo proceso Los hilos hermanos entre sí comparten la misma imagen de memoria, es decir: Código, variables de memoria globales, y los dispositivos y ficheros que tuviera abierto el padre. Los hilos hermanos no comparten: El Contador de Programa: cada hilo podrá ejecutar una sección distinta de código. Los registros de CPU. La pila en la que se crean las variables locales de las funciones a las que se va llamando después de la creación del hilo. El estado: puede haber hilos en ejecución, listos, o bloqueados en espera de un evento. Hilo1: Ejecuta F() PC: localiza la siguiente Instrucción a ejecutar en la función F Reg. CPU Pila: Paráms. de llamada a la función F Variables locales de la función F Código Variables Globales Proceso padre Hilo2: Ejecuta G() PC: localiza la siguiente Instrucción a ejecutar en la función G Reg. CPU Pila: Paráms. de llamada a la función G Variables locales de la función G

21 Hilos - 3 Consumen menos memoria. Cuesta menos crearlos. Ya tienen disponible un mecanismo de comunicación entre ellos: las variables globales que son compartidas. Si bien el uso de variables globales está totalmente desaconsejado en otras circunstancias, en concurrencia a través de hilos es el método idóneo para compartir información. Cuando alguien se atreve a programar de manera concurrente con hilos, se da por supuesto que sabe programar de forma correcta, y podrá afrontar sin problemas las posibles tareas de depuración. Es más sencillo hacer un cambio de contexto entre hilos, lo que los hace ideales para la realización de tareas concurrentes cooperativas. La creación de hilos no es una tarea estándar de UNIX Hay que incluir una biblioteca de funciones específica en la línea de compilación: gcc fuente.c -lpthread

22 Funciones para Hilos POSIX Deben incluirse los ficheros de cabecera #include <stdio.h> #include <pthread.h> pthread_create(&id, NULL, función, args): crea un hilo que se asocia a la ejecución de la función que se indica en forma de puntero a función, siempre de tipo void; también se adjunta la lista de argumentos, pthread_exit( ): final de la ejecución de un hilo. Será la última sentencia ejecutada por el hilo. pthread_kill( ):detiene la ejecución del hilo especificado pthread_join( ): espera la finalización del hilo especificado. pthread_self( ): permite que un hilo se identifique a sí mismo pthread_create( ) Hilo 1 (Principal) Principal ejecuta pthread_join( ) Espera a que el hilo termine y luego sigue. Principal Hilo 2 (función F) Hilo 2 ejecuta pthread_exit( )

23 Ejemplo Creación de hilos #include <stdio.h> #include <pthread.h> int argext[2]={2,3; // Variables Globales-- Variables compartidas void *mifuncion(void *arg) { printf("soy mifuncion...\n"); printf("arg. ext. 1: %d. Arg. ext. 2: %d\n", argext[0], argext[1]); printf("trato de modificar los argumentos...\n"); argext[0] = 7; argext[1] = 8; printf("arg. ext. 1: %d. Arg. ext. 2: %d\n", argext[0], argext[1]); printf("saliendo de mifuncion...\n"); fflush(stdout); // me aseguro que el mensaje se escribe pthread_exit(null); main (){ pthread_t tid; printf("creando hilo...\n"); fflush(stdout); pthread_create(&tid, NULL, mifuncion, (void *) NULL); printf("hilo creado. Esperando su finalizacion...\n"); fflush(stdout); pthread_join(tid, NULL); printf("hilo finalizado...\n");fflush(stdout);

24 Ejercicio 1 Un programa que cree N procesos hijos, tal que todos sean "hermanos' entre sí, es decir, que todos sean hijos directos del programa principal main (). Un programa que cree N procesos hijos, tal que el proceso main () sólo puede tener un hijo, que a su vez sólo puede tener otro único proceso hijo, y así sucesivamente. P H H H H H P H1 H2 H3

25 Ejercicio 2 escribe(n) el valor de n puede ser 0, 1, 2, ó 3. La función escribirá en orden creciente números menores que 1000, uno en cada línea y con tres cifras. Los números estarán encolumnados a partir de la columna 3n. El primer número será el n, y entre un número y el siguiente hay una diferencia de 4. Escribir un programa C que lance 4 procesos concurrentes que correspondan respectivamente a la ejecución de las funciones escribe(0), escribe(1), escribe(2) y escribe(3). Con procesos pesados Con hilos. escribe(0) escribe(2) escribe(1) escribe(3)

Programación de Multitareas utilizando Hilos

Programación de Multitareas utilizando Hilos Programación de Multitareas utilizando Hilos Enero/2012 Programación de Multitareas utilizando Hilos Origen de los hilos como elementos necesarios en la programación de multitareas Multihilos en un solo

Más detalles

Funciones POSIX (I): Introducción

Funciones POSIX (I): Introducción Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria

Más detalles

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana Fundamentos de los Sistemas Operativos Tema 2. Procesos 1998-2015 José Miguel Santos Alexis Quesada Francisco Santana Contenidos del Tema 2 Qué es un proceso Estructuras de datos para gestionar procesos

Más detalles

Introducción y Gestión de Procesos

Introducción y Gestión de Procesos Introducción y Gestión de Procesos Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Llamadas al sistema Concepto Constituye el juego de instrucciones del sistema operativo

Más detalles

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof.

Más detalles

MC Hilda Castillo Zacatelco PROCESOS

MC Hilda Castillo Zacatelco PROCESOS MC Hilda Castillo Zacatelco hildacz@gmail.com PROCESOS Definición y atributos Un proceso es la instancia de un programa en ejecución. Desde el punto de vista del SO, un proceso es la entidad más pequeña

Más detalles

Sistemas Operativos Practica 1: procesos y concurrencia.

Sistemas Operativos Practica 1: procesos y concurrencia. Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una

Más detalles

Procesos e Hilos en C

Procesos e Hilos en C Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.

Más detalles

Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores

Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores Práctica 1: Intérprete de mandatos Introducción Desarrollo de un intérprete de mandatos (minishell) en UNIX/Linux en lenguaje C. Debe permitir: Ejecución de mandatos simples ls, cp, mv, rm, etc. Ejecución

Más detalles

Llamadas al Sistema para la Creación de Procesos

Llamadas al Sistema para la Creación de Procesos Llamadas al Sistema para la Creación de Procesos Transparencias realizadas por M. Curiel. Se utiliza material ya publicado en la WEB y elaborado por todos los prof. que hemos dado el curso. Llamada al

Más detalles

Tema 4: Gestión de Procesos

Tema 4: Gestión de Procesos Tema 4: Gestión de Procesos SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Marzo

Más detalles

Fundamentos de los Sistemas Operativos

Fundamentos de los Sistemas Operativos Práctica 3 : hilos! Fundamentos de los Sistemas Operativos Grado en Ingeniería Informática Rubén García Rodríguez Alexis Quesada Arencibia Eduardo Rodríguez Barrera Francisco J. Santana Pérez José Miguel

Más detalles

Biblioteca de sistema

Biblioteca de sistema * Para la realización del presente examen se aconseja un tiempo de 2 horas. Teoría 1. Explique en detalle cómo se pasa una llamada al sistema operativo. El sistema operativo se activa cuando debe responder

Más detalles

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos Boletín 4- Procesos Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5.

Más detalles

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos Boletín 4- Procesos Departamento de Lenguajes y Sistemas Indice 1. Introducción n (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5. La llamada

Más detalles

PARTE II PROGRAMACION CON THREADS EN C

PARTE II PROGRAMACION CON THREADS EN C PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.

Más detalles

Sistemas Operativos Primer Examen Parcial 13/07/15

Sistemas Operativos Primer Examen Parcial 13/07/15 Dpto. 1.- El siguiente código intenta representar la solución a la siguiente problemática: Un proceso crea un conjunto de procesos descendientes y le asigna a cada uno una tarea determinada, cada proceso

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Segunda Semana: Procesos, Procesos Padre y Procesos Hijo, familia exec() 1 Entregas

Más detalles

Bloque I: Principios de sistemas operativos

Bloque I: Principios de sistemas operativos Bloque I: Principios de sistemas operativos Tema 1. Principios básicos de los sistemas operativos Tema 2. Concurrencia Tema 3. Ficheros Tema 4. Sincronización y programación dirigida por eventos Tema 5.

Más detalles

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo) Procesos y Threads Procesos y Threads Procesos Procesos Threads Threads Concurrencia Concurrencia Ventajas Ventajas Modelos Modelos Información Información adicional () adicional () Preparado Preparado

Más detalles

Sistemas Operativos sesión 12: tuberías

Sistemas Operativos sesión 12: tuberías Sistemas Operativos sesión : tuberías Grado en Ingeniería Informática Universidad Carlos III de Madrid Agenda Linux Comunicación con tuberías Ejercicios Agenda Linux Comunicación con tuberías Ejercicios

Más detalles

Procesos e hilos: el downloader

Procesos e hilos: el downloader Departamento de Automática 1 / 8 Descarga de archivos con procesos en paralelo Objetivo principal: descarga de un archivo de gran tamaño de forma eficiente desde Internet Otros objetivos: Utilizar la biblioteca

Más detalles

PROCESOS. Sistemas Operativos

PROCESOS. Sistemas Operativos PROCESOS Un proceso es un programa que se encuentra en ejecución. Un proceso no sólo es una copia del programa, sino que el núcleo le añade: un segmento de texto, un segmento de datos y un segmento de

Más detalles

Función monitoreo descriptor archivo #include <sys/types.h> #include<unistd.h> #include<errno.h> extern void procesamiento_datos(char *, int); void pr

Función monitoreo descriptor archivo #include <sys/types.h> #include<unistd.h> #include<errno.h> extern void procesamiento_datos(char *, int); void pr Introducción al concepto de threads Dr.. Roberto Gómez Cárdenas DCC del ITESM-CEM rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez Función monitoreo descriptor archivo #include #include

Más detalles

ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Octubre 2015

ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Octubre 2015 2. Problema de Análisis y Diseño Orientado a Objetos (10 puntos - 20 minutos) Para el código de test adjunto, se pide. 1. Diagrama de clases de diseño (2.5 puntos). 2. Implementación en C++ de la solución

Más detalles

Sistemas Operativos Primer Recuperatorio Parcial 1

Sistemas Operativos Primer Recuperatorio Parcial 1 1.- El siguiente código intenta representar la solución a la siguiente problemática: Un proceso crea un conjunto de procesos hijos al mismo nivel y le asigna a cada uno una tarea determinada, cada proceso

Más detalles

1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8.

1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. 1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. Código Proceso Manejados por el sistema operativo Memoria independiente

Más detalles

Ejercicios sobre tuberías

Ejercicios sobre tuberías Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son

Más detalles

Sistemas Operativos. Procesos

Sistemas Operativos. Procesos Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso

Más detalles

Concepto de proceso. (c) 2006 Alexis Quesada / Francisco J. Santana 2

Concepto de proceso. (c) 2006 Alexis Quesada / Francisco J. Santana 2 Tema 3 : procesos Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Concepto de proceso Un programa

Más detalles

2. Problema de Análisis y Diseño Orientado a Objetos (4 puntos - 25 minutos)

2. Problema de Análisis y Diseño Orientado a Objetos (4 puntos - 25 minutos) APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento Electrónica, Automática e Informática Industrial ASIGNATURA: SISTEMAS

Más detalles

Prácticas de Sistemas Operativos

Prácticas de Sistemas Operativos Prácticas de Sistemas Operativos Toñi Reina, David Ruiz, Juan Antonio Álvarez, Antonio Tallón, Javier Gutiérrez, Pablo Neira, Paco Silveira, Sergio Segura y José Ángel Bernal Boletín 4: Procesos Curso

Más detalles

BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACION CONCURRENTE PARALELA Y PRACTICA 3 (PARTE 1 Y 2) HILOS POSIX NOMBRE:

Más detalles

Threads. Hilos - Lightweight process - Procesos ligeros

Threads. Hilos - Lightweight process - Procesos ligeros Threads Hilos - Lightweight process - Procesos ligeros 1 Temario Concepto y Beneficios Estructuras de implementación: Servidor- Trabajador, Equipo, Pipeline Reconocimiento: En el espacio del usuario /

Más detalles

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño? Sistemas Operativos. Grado Ingeniería Informática. TGR-2.1 Procesos. Noviembre 2014 Problemas para hacer en clase FIFO cpu C A 1. Dos procesos A y B tienen una ráfaga de CPU de 50 ms y un proceso C tiene

Más detalles

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Desarrollo de servidores concurrentes

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Desarrollo de servidores concurrentes SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS Desarrollo de servidores concurrentes Contenido 2 Servidores de peticiones. Solución basada en procesos. Solución basada en hilos bajo

Más detalles

Hilos (threads) Realizado por M. Curiel

Hilos (threads) Realizado por M. Curiel Hilos (threads) Realizado por M. Curiel Definiciones Un proceso es una entidad que posee 2 características importantes: - Recursos: un espacio de direcciones (programas, datos, pila y un PCB), archivos,

Más detalles

Introducción a Sistemas Operativos: Ficheros

Introducción a Sistemas Operativos: Ficheros Introducción a Sistemas Operativos: Ficheros Clips Fr ancisco J Ballesteros 1. Entrada/Salida Es importante saber cómo utilizar ficheros. En UNIX, es aún más importante dado que gran parte de los recursos,

Más detalles

Procesos Definición y Estados

Procesos Definición y Estados Procesos Definición y Estados Profesorado de Informática CeRP del Suroeste, Uruguay Contenidos Qué es un proceso Estructuras de datos para gestionar procesos API para trabajar con procesos Hilos (threads).

Más detalles

Un ejemplo: UNIX PROCESOS UNIX

Un ejemplo: UNIX PROCESOS UNIX PROCESOS UNIX Un ejemplo: UNIX Cada proceso sólo puede tener un flujo: el concepto proceso engloba todo Dos llamadas implicadas en la creación de procesos crear proceso cargar programa La relación de procesos

Más detalles

Programación Concurrente

Programación Concurrente Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 2. Sistema Operativo MaRTE OS Tema 4. Gestión del Tiempo Tema 5.

Más detalles

Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos.

Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos. Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos. 1.-Considerar los siguientes procesos con los tiempos de llegadas, prioridades y ráfagas de cpu. Proceso Ráfaga de CPU Prioridad Tiempo

Más detalles

Introducción y Gestión de Procesos

Introducción y Gestión de Procesos Introducción y Gestión de Procesos Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Llamadas al sistema Concepto Constituye el juego de instrucciones del sistema operativo

Más detalles

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos SISTEMAS OPERATIVOS: PROCESOS Planificación de procesos ADVERTENCIA 2 Este material es un simple guión de la clase: no son los apuntes de la asignatura. El conocimiento exclusivo de este material no garantiza

Más detalles

Redirecciones y Tuberías

Redirecciones y Tuberías Redirecciones y Tuberías Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Redirecciones Redirección de la entrada y la salida estándar Unix/Linux definen

Más detalles

Tema 4: Padre e hijo

Tema 4: Padre e hijo Tema 4: Padre e hijo Enrique Soriano Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 11 de marzo de 2010 (cc) 2010 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este

Más detalles

Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink

Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)

Más detalles

Entorno de programación de nivel 1: La librería PCAP

Entorno de programación de nivel 1: La librería PCAP Entorno de programación de nivel 1: La librería PCAP La librería libpcap nos permite capturar paquetes desde un programa C. En sistemas Windows, la librería se llama Winpcap. Para compilar cualquier programa

Más detalles

Informática Electrónica Concurrencia

Informática Electrónica Concurrencia Informática Electrónica Concurrencia DSI- EIE FCEIA 2015 Que es concurrencia? Ejecución simultánea de dos o mas aplicaciones en una única plataforma de cómputo DSI EIE - FCEIA Informática Electrónica 2

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 4, Procesos: 4.1 El concepto de proceso. 4.2 Planificación de procesos. 4.3 Operaciones con procesos. 4.4 Procesos cooperativos. 4.5 Hilos (threads). E.U. de Informática.

Más detalles

SISTEMAS OPERATIVOS:

SISTEMAS OPERATIVOS: SISTEMAS OPERATIVOS: Lección 8: Desarrollo de servidores concurrentes Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez Lobato Introducción

Más detalles

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...

Más detalles

Procesos e hilos. Pablo San Segundo (C-206)

Procesos e hilos. Pablo San Segundo (C-206) Procesos e hilos Pablo San Segundo (C-206) pablo.sansegundo@upm.es KERNEL DEL SISTEMA OPERATIVO Al arrancar el PC siempre se carga en memoria una copia del Kernel desde disco El Kernel del sistema operativo

Más detalles

Tema 3. Estructuras de control

Tema 3. Estructuras de control Tema 3. Estructuras de control 3.1. Secuencial 3.2. Selección 3.3. Repetición 2 Objetivos Objetivos del tema: Conocer y saber la utilidad de las tres estructuras de control (secuencial, alternativa y repetitiva)

Más detalles

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1 Grupos Realización Entrega/Evaluación Lunes 22 de Febrero, 1, 8, 15 de Marzo 22 de Marzo Martes 23 de Febrero, 2, 9 y 16 de Marzo 23 de Marzo Miércoles 24 de Febrero, 3, 10 y 17 de Marzo 24 de Marzo Viernes

Más detalles

SISTEMAS OPERATIVOS II Tercer curso Ingeniería Informática. Curso

SISTEMAS OPERATIVOS II Tercer curso Ingeniería Informática. Curso SISTEMAS OPERATIVOS II Tercer curso Ingeniería Informática. Curso 2008-2009 Práctica 2: Procesos en UNIX. Ejecución en esgundo plano, credenciales, prioridad, redirección. Continuar la codificación de

Más detalles

Tema 2. Procesos e hilos

Tema 2. Procesos e hilos Tema 2. SO Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Cambio de contexto Servicios POSIX para gestión de procesos Concepto de hilo de ejecución Servicios

Más detalles

Primer control de teoría

Primer control de teoría rimer control de teoría Ejercicio : reguntas cortas ( puntos) Tiempo estimado 5 min.. En un sistema actual de propósito general, las direcciones (funciones, referencias a datos, etc) que encontramos en

Más detalles

Procesos en UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale

Procesos en UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Un proceso en Unix es un programa en ejecución que tiene los siguientes atributos: Área de código, Área de datos, Área de stack,

Más detalles

Introducción a Sistemas Operativos: Concurrencia

Introducción a Sistemas Operativos: Concurrencia Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso

Más detalles

Llamadas a Sistema para procesos

Llamadas a Sistema para procesos Llamadas a Sistema para procesos SistOp 2012 Nicolás Wolovick FaMAF, Universidad Nacional de Córdoba, Argentina 5 de Septiembre de 2012 El Cajón de Arena: los procesos Comandos simples con y sin background

Más detalles

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez Lobato María Gregoria

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Tercera Semana: Comunicación entre procesos con Tuberías 1 Entregas 2 Introducción

Más detalles

T5-multithreading. Indice

T5-multithreading. Indice T5-multithreading 1.1 Indice Proceso vs. Flujos Librerías de flujos Comunicación mediante memoria compartida Condición de carrera Sección Crítica Acceso en exclusión mutua Problemas Abrazos mortales 1.2

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación

Más detalles

Procesos e hilos: cálculo de

Procesos e hilos: cálculo de Departamento de Automática 1 / 10 Índice Creación y sincronización de hilos Acceso a variables globales en exclusión mutua 2 / 10 Objetivo principal: obtener una aproximación al valor de empleando el método

Más detalles

ENTRADA/SALIDA. Relación Programa - Sistema Operativo - Hardware

ENTRADA/SALIDA. Relación Programa - Sistema Operativo - Hardware ENTRADA/SALIDA UPCO ICAI Departamento de Electrónica y Automática 1 Relación Programa - Sistema Operativo - Hardware Mi programa no maneja directamente el hardware El sistema operativo es el que maneja

Más detalles

Sistemas Operativos Primer Parcial Tema2

Sistemas Operativos Primer Parcial Tema2 Dpto. 1: Realice la gráfica de la estructura de procesos generada por el siguiente código, en la gráfica asigne PID a cada proceso. (2) int n = 4;pid_t pid; while( n!= 0){ if ( pid == 0 ) break; n--; return

Más detalles

Administración de procesos

Administración de procesos Administración de procesos Contenido: Concepto de proceso Operaciones sobre procesos Planificación de procesos Hilos (Threads) Planificación del procesador Concepto de proceso Programas y procesos: Programas

Más detalles

Sincronización de Threads

Sincronización de Threads Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)

Más detalles

Sistemas Operativos 1

Sistemas Operativos 1 Ejercicio 1. Se desea implementar una aplicación de n procesos concurrentes, donde cada proceso ejecuta una determinada tarea en forma de pipeline. Un ejemplo de esta aplicación con n=4 sería la siguiente:

Más detalles

Taller de pthreads. Sistemas Operativos. Verano de 2009

Taller de pthreads. Sistemas Operativos. Verano de 2009 Verano de 2009 Menú del día Hoy veremos: Introducción a pthreads Creación de threads Variables mutex Variables de condición Tutoriales de HPC Lawrence Livermore National Laboratory (http://www.llnl.gov)

Más detalles

Llamadas al sistema básicas de control de procesos

Llamadas al sistema básicas de control de procesos Actividad 7 (v. 16046) Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos lsi.vc.ehu.es/pablogn Llamadas al sistema básicas de control de procesos Observa, analiza y prueba los programas:

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos Sistemas operativos: una visión aplicada Capítulo 3 Procesos Contenido Procesos Multitarea Información del proceso Formación de un proceso Estados del proceso Procesos ligeros Planificación Señales y excepciones

Más detalles

Realizar el ejercicio anterior utilizando Punteros

Realizar el ejercicio anterior utilizando Punteros PUNTEROS Y ARRAYS En C existe una relación entre punteros y arrays tal que cualquier operación que se pueda realizar mediante la indexación de un arrays, se puede realizar también con punteros. Para clarificar

Más detalles

Bloque I: Principios de sistemas operativos

Bloque I: Principios de sistemas operativos Bloque I: Principios de sistemas operativos Tema 1. Principios básicos de los sistemas operativos Tema 2. Concurrencia Tema 3. Ficheros Tema 4. Sincronización y programación dirigida por eventos Tema 5.

Más detalles

Procesos e hilos y señales en C de GNU/Linux

Procesos e hilos y señales en C de GNU/Linux Emilio José Calvo Carrasco Procesos e hilos y señales en C de GNU/Linux 1 de 12 Procesos e hilos y señales en C de GNU/Linux En este pequeño tutorial vamos a ver cómo se gestionan múltiples procesos y

Más detalles

Sistemas Operativos. Prólogo

Sistemas Operativos. Prólogo Prólogo Las presentes notas son recopilaciones de diferentes libros básicos que se recomiendan a los estudiantes de nivel licenciatura para la materia de Sistemas Operativos, así como artículos, y manuales

Más detalles

Nombre alumno: Ventajas: Inconvenientes:

Nombre alumno: Ventajas: Inconvenientes: Preguntas cortas (justifica todas las respuestas) (2 puntos) 1. Define qué es la buffer cache, qué tipo de información encontramos y cuál es su objetivo 2. Explica qué ventajas e inconvenientes tendría

Más detalles

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña Sistemas Operativos Pedro Cabalar Depto. de Computación Universidade da Coruña TEMA III. PROCESOS. P. Cabalar Sistemas( Operativos Depto. de Computación Universidade Tema da Coruña III. Procesos ) 1 /

Más detalles

Funciones en lenguaje C

Funciones en lenguaje C Funciones en lenguaje C Funciones Definición: Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad del programa. Criterios para crearlas: Se usa la estrategia

Más detalles

Tema 2. Administración de procesos

Tema 2. Administración de procesos Sistemas Operativos Tema 2. Administración de procesos Objetivo: El alumno identificará los tipos de procesos y sus estados. Describirá las diferentes técnicas de comunicación y sincronización de procesos

Más detalles

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia

Más detalles

Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana Sistemas Operativos Tema 5. Procesos 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Concepto de proceso Estructuras de datos: BCP y colas de procesos Niveles de planificación

Más detalles

Programación I Teoría : Entrada/Salida - Archivos.

Programación I Teoría : Entrada/Salida - Archivos. Programación I Teoría : Entrada/Salida - Archivos http://proguno.unsl.edu.ar proguno@unsl.edu.ar Entrada/Salida Interacción del programa con su ambiente para leer (entrada) y escribir (salida) datos. 2

Más detalles

Sistemas Operativos I Práctica 1. Técnica de procesos múltiples El intérprete de comandos. Diana Rosario Pérez Marín Febrero 2007 EPS-UAM

Sistemas Operativos I Práctica 1. Técnica de procesos múltiples El intérprete de comandos. Diana Rosario Pérez Marín Febrero 2007 EPS-UAM Sistemas Operativos I Práctica 1 Técnica de procesos múltiples El intérprete de comandos Diana Rosario Pérez Marín Febrero 2007 EPS-UAM Introducción La página web de la asignatura es www.ii.uam.es/~so1

Más detalles

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 4: Programación con hilos OBJETIVOS DE LA PRÁCTICA...2 ANTES DE EMPEZAR......2 PARTE 1: HOLA MUNDO CONCURRENTE...3

Más detalles

Nº Mat. Calificación APELLIDOS NOMBRE. CURSO 4º GRUPO Octubre 2014 ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES

Nº Mat. Calificación APELLIDOS NOMBRE. CURSO 4º GRUPO Octubre 2014 ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES 2. Problema de Análisis y Diseño Orientado a Objetos (10 puntos - 30 minutos) Se pretende realizar un simulador de cuadripolos eléctricos pasivos. Estas redes sólo están formadas por la combinación de

Más detalles

Taller de Sistemas Operativos. Procesos 2012

Taller de Sistemas Operativos. Procesos 2012 Taller de Sistemas Operativos Procesos 2012 Agenda Introducción PCB (task_struct) Agrupaciones de procesos Estado de un proceso Cambio de proceso (task switch) Creación y destrucción de un proceso Threads

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5314 Sistemas Operativos PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA Comunicación entre procesos Tuberías DURACIÓN (HORA)

Más detalles

PRACTICA # 3 PROCESOS (CONTINUACION)

PRACTICA # 3 PROCESOS (CONTINUACION) PRACTICA # 3 PROCESOS (CONTINUACION) 1. OBJETIVO Aprender cómo manipular procesos por medio de las funciones wait() y kill(); además del uso de señales del sistema Linux. 2. INTRODUCCIÓN Estados de un

Más detalles

Sucesos asíncronos. dit. dit. Juan Antonio de la Puente DIT/UPM UPM UPM

Sucesos asíncronos. dit. dit. Juan Antonio de la Puente DIT/UPM UPM UPM dit dit UPM UPM Sucesos asíncronos Juan Antonio de la Puente DIT/UPM Transparencias basadas en el capítulo 10del libro de A. Burns y A. Wellings Real Time Systems and Programming Languages, 3ª edición

Más detalles

Programación Concurente y Tiempo Real. Tercera Edición

Programación Concurente y Tiempo Real. Tercera Edición Programación Concurente y Tiempo Real Tercera Edición Programación Concurrente y Tiempo Real Tercera Edición David Vallejo Fernández Carlos González Morcillo Javier A. Albusac Jiménez Título: Programación

Más detalles

Para C un chero no es más que una porción de almacenamiento

Para C un chero no es más que una porción de almacenamiento Ficheros en C Para C un chero no es más que una porción de almacenamiento de memoria. C representa un chero como una estructura, de hecho el chero stdio.h contiene la dención de un chero como si fuese

Más detalles

Nombre alumno: Ventajas: La ventaja es que desaparecería la fragmentación interna ya que podríamos ajustar los bloques al tamaño que necesitemos.

Nombre alumno: Ventajas: La ventaja es que desaparecería la fragmentación interna ya que podríamos ajustar los bloques al tamaño que necesitemos. Preguntas cortas (justifica todas las respuestas) (2 puntos) 1. Define qué es la buffer cache, qué tipo de información encontramos y cuál es su objetivo La buffer cache es una cache de bloques de disco.

Más detalles