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

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

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

Transcripción

1 Procesos e hilos Pablo San Segundo (C-206) [email protected]

2 KERNEL DEL SISTEMA OPERATIVO Al arrancar el PC siempre se carga en memoria una copia del Kernel desde disco El Kernel del sistema operativo es un programa, típicamente programado en C

3 Qué es un Proceso? Un programa en ejecución La unidad de procesamiento gestionada por el S.O.

4 Presencia en memoria y tabla BCP Registros de la CPU Contexto Entorno Identificadores de usuario y grupo Identificador de proceso Variables de entorno Usuario Sistema Control (tablas) Estado: Bloqueado, ejecución, listo Prioridad: cola de prioridades E/S: Desc. recursos,,mensajería etc. Presencia en memoria Bloque de Control de Proceso typedef struct bcp { struct bcp *siguiente; struct bcp *anterior; struct bcp *hebra int retardo; palabra marco; palabra pila; palabra marcador; int pri; int estado; struct bcp *todosenl; int mascara; k_ptrmens retenmens procnombre nombre; } bcp;

5 ESTADOS BÁSICOS DE UN PROCESO EN EJECUCIÓN Un proceso por procesador BLOQUEADO En espera de completar E/S LISTO Preparado para pasar al estado de ejecución

6 ENTORNO DEL PROCESO Definición Tabla NOMBRE-VALOR que se pasa al proceso en su creación Ubicación Imagen en Memoria: típicamente en la pila Valor Por defecto Mandatos Shell (API S.O.) SHELL echo $PATH echo $HOME SHELL PATH=/usr/bin:/home/pss/bin TERM=tty100 HOME=/home/pss PDW=/home/pss/ingsw PATH=$PATH:XXX

7 CARACTERÍSTICAS DE PROCESOS Jerarquías (familias) Procesos hijo, padre, hermano, abuelo etc.. Vida Creación Ejecución Muerte Tipo de ejecución Batch (lotes) Interactivo INI INI SES SHELL INI SES SHELL PROC 1 PROC 2

8 USUARIO Definición Persona autorizada a utilizar el sistema Autenticación User login (internamente es un número para el S.O.: i.e uid) Contraseña (password) Super-usuario (sudo, su) Derechos de administrador Grupo de usuarios Colectivo de usuarios con los mismos permisos Todo usuario ha de pertenecer a un grupo

9 FIN DE INTRODUCCIÓN

10 Clasificación de los Sistemas Operativos

11 Fundamento del multiproceso Definición Ejecución concurrente real de varios procesos con un solo procesador Bases Alternancia de los procesos en la CPU durante la fase de E/S Almacenamiento en memoria de varios procesos simultáneamente

12 Ejemplo Ejecución de proceso nulo

13 VENTAJAS DE LA MULTITAREA Funcionamiento del SO en modo interactivo de forma eficiente Aprovecha tiempos de espera de procesos durante E/S Aumenta el uso de la CPU Nuevo paradigma de programación Principio de modularidad : Un programa-varios procesos

14 GRADO DE MULTIPROGRAMACIÓN Definición Número de procesos activos en un instante de tiempo Recurso Memoria principal Sistema SIN memoria virtual

15 GRADO DE MULTIPROGRAMACIÓN Sistema CON memoria virtual

16 GRADO DE MULTIPROGRAMACIÓN Sistema CON memoria virtual RENDIMIENTO DEL PROCESADOR HIPER-PAGINACIÓN

17 FIN DE S.O. MULTITAREA

18 INFORMACIÓN DEL PROCESO EN S.O. i.e. RIED CODIGO PILA DATOS Se gestionan fuera del BCP. Por qué?

19 ESTADO DEL PROCESO : CONTEXTO Registros generales Motorola 68000: A0-A7, D0-D7 Contador de programa (PC) Siguiente instrucción a ejecutar Puntero de Pila ( Call Stack pointer ) Referencia la pila en memoria asociado a todo proceso Motorola (USP y SSP) Puntero de marco ( Frame pointer ) Registro de Estado Modo de ejecución, máscaras de interrupciones, información acerca de la última operación realizada en la ALU, etc Motorola (SR) Registros especiales Ejemplo: RIED: Registro que Identifica el Espacio de Direcciones que ocupa en memoria el proceso en ejecución

20 PROCESO EN MEMORIA Pertenece al BCP Segmentación fija Hoy en día la segmentación es variable Preasignación inicial de zona de swapping

21 TABLAS DEL SISTEMA OPERATIVO Tabla de procesos (BCP) Información exclusiva de cada proceso que no se puede COMPARTIR y cuyo tamaño no varía durante la ejecución de cada proceso (IMPLEMENTACIÓN) Tabla de Memoria (alias paginado) Información para la gestión de memoria Tabla de Entrada / Salida Información relativa a periféricos y a las operaciones E/S Tabla de Ficheros Información sobre los ficheros utilizados por los procesos

22 Ejemplo Tabla de Ficheros Doble direccionamiento Puntero de posición COMPARTEN LECTURA Y ESCRITURA EN FICHERO TABLA DE FICHEROS

23 EJEMPLO: INFORMACIÓN EN EL BCP TREEPS (LINUX)

24 FIN DE PRESENCIA EN MEMORIA DE UN PROCESO

25 NACIMIENTO DE UN PROCESO Linker Transmisión de ficheros al Motorola A imagen en memoria e.g. kernel.lib/dll

26 FORMACIÓN DE UN PROCESO SE ACTUALIZA LA PRIMERA VEZ Y EN CADA CAMBIO DE CONTEXTO Tablas S.O. COPIA DE LAS BIBLIOTECAS DEL SISTEMA EN LA IMAGEN DE MEMORIA (kernel.lib) EL EJECUTABLE NO CONTIENE A LAS BIBLIOTECAS DEL SISTEMA

27 FIN DE FORMACIÓN DE UN PROCESO

28 SERVICIOS DE GESTIÓN DE PROCESOS Identificación de procesos Entorno de un proceso Creación de procesos Cambio de imagen de un proceso Espera a la terminación de un proceso Finalización de la ejecución de un proceso Información adicional

29 SERVICIO POSIX: fork Definición pid_t fork (void) : Crea un proceso hijo clonando al padre. Copia no exacta (i.e. señales)

30 SERVICIO POSIX: fork Librerías #include <sys/types.h> Retorno Identificador de proceso padre 0 hijo -1 si error Descripción Crea un proceso hijo que ejecuta el mismo programa que el padre Se heredan los descriptores (i.e. archivos) Se desactivan las alarmas pendientes Depende de la distribución

31 SERVICIO POSIX: exec Definición Cambia el programa del proceso Los descriptores abiertos se mantienen

32 EJEMPLO: Servicio fork #include <sys/types.h> #include <iostream> int main() { pid_t pid; pid=fork(); if (pid= = -1) cout<< Error <<endl; else if (pid == 0) { cout<< Proceso hijo <<endl; } else{ cout<< Proceso padre <<endl; } return 0; }

33 SERVICIO POSIX: exec Declaraciones int execl (const char* path, const char* arg, ) int execlp(const char* file, const char* arg, ) int execvp(const char* file, const char* arg[]) Retorno -1 si error o NO RETORNA Descripción El mismo proceso ejecuta otro programa Los descriptores abiertos permanecen abiertos Las señales toman la acción por defecto Ultimo parámetro NULL #include <unistd.h>

34 EJEMPLO: Servicio execl #include <sys/types.h> #include <unistd.h> #include <iostream> int main() { pid_t pid; if ((pid = fork()) = = -1) cout<< Error <<endl; else if (pid == 0) { if(execl ("/bin/ls, ls", -l, NULL)){ cout<< Error al lanzar la tarea <<endl; } } int status; wait(&satus); return 0; }

35 EJEMPLO: Servicio execv #include <sys/types.h> #include <unistd.h> #include <iostream> int main() { pid_t pid; char * arg[3]; arg[0]= gedit ; arg[1]= test.cpp ;arg[2]=null; if ((pid = fork()) = = -1) cout<< Error <<endl; else if (pid == 0) { if(execvp (arg[0], arg)){ cout<< Error al lanzar la tarea <<endl; } } int status; wait(&satus); return 0; }

36 SERVICIO POSIX: int exit (int status) Definición Termina un proceso, devolviendo el parámetro status al proceso padre Declaración void exit (int status) EXIT_SUCCESS, EXIT_FAILURE Argumento Código de retorno al proceso padre Descripción Finaliza la ejecución del proceso Cierra todos los descriptores Se liberan todos los recursos #include <stdlib.h>

37 SERVICIO POSIX: wait #include <sys/wait.h> Definición Espera la terminación de un proceso hijo CUALQUIERA Declaración pid_t wait (int* status) pid_t waitpid (int pid, int* status, int options) Retorno WUNTRACED WNOHANG Identificador del proceso hijo, -1 si error Descripción Permite a un proceso padre esperar hasta que termine un proceso hijo Devuelve el estado del proceso hijo al terminar Macros para analizar el estado: WIFEXITED, WEXITSTATUS WIFSIGNALED, WTERMSIG, etc

38 EJEMPLO : Servicio wait con MACROS int main() { int status; pid_t pid; pid= fork(); if(pid==0){ execlp( gedit, main.cpp, NULL); exit(exit_success); } wait(&status) ; if(wifexited(status)){ if(wexitsatus(status)==exit_success){ cout<< OK <<endl; }else if(wexitsatus(status)==exit_failure)){ cout<< ERROR <<endl; } } cout<<"proceso padre terminado"<<endl; exit(exit_success); } Capturar el error

39 EJEMPLO : Servicio wait multiproceso int main() { int status; pid_t pid; for(int i=0; i<10; i++){ pid= fork(); if(pid==0){ cout<<"hilo: "<<i<<endl; exit(exit_success); } } //Espera a todos los hijos while ( wait(&status)!=-1 ){;} cout<<"proceso padre terminado"<<endl; exit(exit_success); }

40 EJEMPLO: waitpid int main(void) { int status; pid_t pid; pid= fork(); if(pid==0){ sleep(5); cout<<"proceso hijo terminado"<<endl; exit (EXIT_SUCCESS); } pid_t endid= waitpid(pid,&status, WNOHANG); //no bloqueante if(endid==pid){ cout<<"status del hijo diposnible"<<endl; } else{ cout<<"padre termina sin conocer el status del hjo"<<endl; } exit (EXIT_SUCCESS); }

41 Caso de uso típico de exec /fork /wait Padre e hijo comparten recursos

42 EVOLUCIÓN DE PROCESOS: ZOMBIES El hijo muere antes de la ejecución de un servicio wait( ) del padre Hijo: Proceso ZOMBIE BCP de B sigue existiendo

43 EJEMPLO: Zombies int main(void) { pid_t pid; pid= fork(); switch(pid){ case -1: cout<<"error al creado proceso duplicado"<<endl; exit(exit_failure); break; case 0: sleep(1); cout<<"proceso hijo terminado"<<endl; exit(exit_success); break; } cout<< hijo terminará sin wait del padre: ZOMBIE!"<<endl; sleep(30); int status; wait(&status); exit(exit_sucess); }

44 EJEMPLO: JERARQUÍAS DE PROCESOS #include <sys/types.h> #include <sys/wait.h> int main (int argc, char** argv ) { int i, valor; pid_t pid_1, pid_2; i=atoi(argv[1]); pid_1=fork(); while(i>0){ pid_2=fork(); if(pid_2!=0) { wait(&valor) break; } i=i-1; } return 0; } Ejecución desde Terminal <Nombre Ejecutable> 3 JERARQUÍA DE PROCESOS? A) Figura B) Sin Bloque

45 Ejercicio: Procesos distribuidos (I) Impleméntese un proceso que lance la tarea de leer un grafo en formato DIMACS de un fichero de texto y devuelva su grado en pantalla. El proceso principal debe esperar a la terminación de dicha tarea e indicar si se ha resuelto correctamente.

46 FIN DE SERVICIOS POSIX PARA PROCESOS

47 ESTADOS DE UN PROCESO Planificador Corto Plazo SWAPPING

48 PLANIFICACIÓN DE PROCESOS Planificador (Planner): Programa del S.O. que determina que proceso tiene que ejecutarse. Activador (Dispatcher) : Programa del SO que carga el programa seleccionado por el planificador en memoria Formas de planificar del S.O: Largo plazo: Decidir que procesos batch entran a ejecutarse Medio plazo: Añadir procesos a RAM Finalización del estado de suspendido. Sistemas con swapping. CORTO PLAZO: DECIDIR QUÉ PROCESO TOMA EL CONTROL DE LA CPU

49 NOCIONES BÁSICAS DEL CORTO PLAZO Tipos de planificación Sin expulsión: El proceso conserva la CPU mientras lo desee Con expulsión: El S.O. quita la CPU al proceso cada cierto tiempo. Colas de procesos Por prioridad (niveles) Por tipo Lotes Interactivo

50 OBJETIVOS DE LA PLANIFICACIÓN Reparto de la CPU equitativo Eficiencia (optimizar uso CPU) Mejorar el tiempo de respuesta Modo interactivo Modo lotes Cumplir plazos de ejecución en sistemas de tiempo real INCOMPATIBILIDAD DE OBJETIVOS! Windows NT Server Windows 7 Home Edition

51 COLAS DE PROCESOS EJEMPLO BATCH

52 Implementación de colas de procesos Implementación con punteros a otros BCP Acceso eficiente COLAS DE PRIORIDAD

53 ALGORITMOS DE PLANIFICACIÓN CÍCLICA (Round Robin) Asignación de CPU rotatoria Se asigna un tiempo máximo a todos los procesos (time slot ) Los procesos se organizan en una cola circular Un proceso que excede su slot se expulsa y se coloca al final de la cola SISTEMAS DE TIEMPO REPARTO COMPARTIDO por UID en vez de por TIEMPO de PROCESAMIENTO

54 ALGORITMOS DE PLANIFICACIÓN (II) FIFO ( first in-first out ) Los procesos se organizan según una cola clásica. Entran por el final y esperan su turno. Política de planificación SIN EXPULSIÓN El proceso en ejecución sólo será expulsado cuando él mismo realiza una llamada bloqueante al sistema (i.e. E/S) Problema: INANICIÓN Se suele combinar con política de prioridades (i.e. POSIX) PROCESAMIENTO POR LOTES

55 ALGORITMOS DE PLANIFICACIÓN (III) Prioridades Fijas: Problema de inanición (p. ej. RTOS) Variables (aumentan con envejecimiento) El trabajo más corto primero Aplicación en sistemas Batch Menor tiempo de respuesta Penaliza las tareas largas Dificultad en conocer a priori las tareas de mayor duración. Aleatorio

56 ALGORITMOS DE PLANIFICACIÓN RT (IV) Definición Sistemas de Tiempo Real (RTOS) Sistemas donde los procesos deben ejecutarse en instantes predeterminados Tipos de RTS Requisitos blandos / duros Ejecución a plazo fijo / periódico EJEMPLOS QNX RTLinux VxWorks Windows CE Prioridad 2h:30m:10s Reloj de tiempo / 2h:30m:15s 2h:30m:10s 2h:30m:20s REQUISITOS DUROS: En ningún caso de puede rebasar La CAPACIDAD el tiempo de DE reloj PROCESAMIENTO asociado al proceso NO es especialmente alta PREPROCESAMIENTO PREDECIBLE: Sin caches, sin paginación, sin predicción de saltos

57 PLANIFICACIÓN EN POSIX Prioridad Absoluta (RT) (0)-normal (>0)-RT Dinámica POSIX 19 a -20 (mayor número menor prioridad) El planificador siempre elige aquellos procesos con mayor prioridad Políticas de planificación FIFO (procesamiento por lotes) Cíclica (modo interactivo) Otra

58 Ejercicio: Procesos distribuidos (I) Algunos servicios POSIX para prioridad dinámica int setpriotiy (PRIO_PROCESS, int pid, int niceval) RETURN VALUE: -1 ERROR, 0 OK int getpriority (PRIO_PROCESS, int pid) Escriba un programa en C para POSIX que lance dos tareas P1 y P2 que compartanescrituraenunficherodetexto log.txt. Modifique la prioridad de P1 y P2 y compruebe como afecta a la salida. #include <sys/wait.h>

59 Solución int main(void) { pid_t pid, pid2; ofstream f("log.txt", ios::app); pid=fork(); if(pid==0){ //fichero compartido sleep(1); cout<<"proc 1: "<<getpriority(prio_process,pid)<<endl; // escribir en fichero exit(exit_success); } pid2=fork(); if(pid2==0){ sleep(1); cout<<"proc 2: "<<getpriority(prio_process,pid)<<endl; // escribir en fichero exit(exit_success); } setpriority(prio_process,pid,19); setpriority(prio_process,pid2,0); int status; while(wait(&status)!=-1) continue; f.close(); execlp("gedit", "gedit", "log.txt", NULL); exit (EXIT_SUCCESS); } //opcional

60 PLANIFICACIÓN WINDOWS NT

61 FIN DE POLÍTICAS DE PLANIFICACIÓN

62 THREAD (Proceso ligero) Definición Un thread es un proceso que comparte un espacio en memoria con otros threads. Estructura de un proceso en WIN NT Si termina el hilo principal mueren el resto de hilos! COMPARTEN MEMORIA

63 Paralelización con procesos ligeros

64 PROGRAMACIÓN CON THREADS Un thread es equiparable a una función que se ejecuta en PARALELO con otras funciones (threads) Programación con hilos Elevada dificultad Al escribir código es fundamental tener en cuenta un PARALELISMO REAL (aun cuando se tenga un solo procesador) Imaginar LLAMADAS DISTINTAS AL MISMO CÓDIGO Comunicación entre hilos Variables compartidas en memoria Descriptores de recursos compartidos, Elementos de sincronización compartidos etc. Aumenta la velocidad de ejecución de tareas con E/S

65 APLICACIÓN: DISEÑO DE SERVIDORES Tres arquitecturas de servidor

66 GESTIÓN DE PROCESOS LIGEROS JOINING es uno de los mecanismos de sincronización de hilos

67 SERVICIOS POSIX PARA PROCESOS LIGEROS (I) int pthread_create (pthread_t*, const pthread_attr_t*, void* (*func)(void*), void* arg ) Crea un proceso ligero que ejecuta func con argumentos arg y atributos attr Atributos (modificables mediante servicios) Tamaño de la pila Prioridad, Política de planificación etc. RETURN VALUE: 0-OK o ERRNUM void pthread_exit (void* value) Finaliza la ejecución e indica el estado de terminación pthread_t pthread_self (void) COMPARATIVA CON EXIT PARA PROCESOS? Devuelve el identificador del thread que realiza la llamada

68 SERVICIOS POSIX PARA PROCESOS LIGEROS (II) int pthread_join (pthread_t tid, void ** value_ptr) Suspende la ejecución de un thread JOINABLE hasta que termina el thread (a no ser que haya terminado) Devuelve el estado de terminación del thread en value_ptr según devuelto por pthread_exit o PTHREAD_CANCELED. RETURN VALUE: 0-OK int pthread_detach (pthread_t pid) Convierte un hilo en DETACHED en tiempo de ejecución RETURN VALUE: 0-OK #include <pthread.h> Linkar con pthread

69 Ejemplos: Hilos-Creación void* sumar_thread (void*) { int a=5; int b=8; cout<< la suma del hilo es: <<a+b<<endl; phtread_exit(null); } int main(void) { pthread_t thid; pthread_create(&thid, NULL, sumar_thread, NULL); if(pthread_join(thid,null)){ //0-OK cout<< Hilo joinable no terminado adecuadamente <<endl; } exit(exit_success); }

70 Ejemplos: Hilos-Paso de parámetros void* sumar_thread (void*param) { ssumandos* p=(ssumandos*) param; cout<< la suma del hilo es: <<p a +p b<<endl; phtread_exit(null); } struct ssumandos {int a; int b;} ; int main(void) { ssumandos sum; sum.a=10; sum.b=20; pthread_t thid; pthread_create(&thid, NULL, sumar_thread, &sum); pthread_join(thid,null); exit(exit_success); }

71 Ejemplos: Hilos-Comunicación (I) void* sumar_thread (void*param) { ssumandos* p=(ssumandos*) param; p a=8; p b=10; // modifica variable en bloque invocante phtread_exit(null); } struct ssumandos {int a; int b;} ; int main(void) { ssumandos sum; sum.a=10; sum.b=20; pthread_t thid; pthread_create(&thid, NULL, sumar_thread, &sum); pthread_join(thid,null); cout<< Los valores nuevo son: <<sum.a< : <<sum.b<<endl; exit(exit_success); }

72 Ejemplos: Hilos-Comunicación (II) void* sumar_thread (void*param) { ssumandos* p=(ssumandos*) param; ssumandos* pret=new ssumandos; pret->a=p a*2; pret->b=p b*2; //mod. de valores phtread_exit(pret); } struct ssumandos {int a; int b;} ; int main(void) { ssumandos sum; sum.a=10; sum.b=20; pthread_t thid; pthread_create(&thid, NULL, sumar_thread, &sum); void* ret_thread; pthread_join (thid, &ret_thread); ssumandos ret; ret.a=((ssumandos*) ret_thread) a; ret.b=((ssumandos*) ret_thread) b; cout<< Los valores devueltos son: <<ret.a< : <<ret.b<<endl; exit(exit_success); }

73 Ejemplos: Hilos-Comunicación (III) void* sumar_thread (void*param) { ssumandos* p=(ssumandos*) param; suma=p a + p b; phtread_exit(null); } struct ssumandos {int a; int b;} ; int suma=0; //variable compartida en memoria int main(void) { ssumandos sum; sum.a=10; sum.b=20; pthread_t thid; pthread_create(&thid, NULL, sumar_thread, &sum); pthread_join(null); cout<< La suma es: <<suma<<endl; exit(exit_success); }

74 Ejemplos: Hilos-DETACHED void* sumar_thread (void*param) { sleep(10); cout<< hilo terminado <<endl; phtread_exit(null); } int main(void) { pthread_t thid; pthread_create(&thid, NULL, sumar_thread, NULL); pthread_detach (thid); pthread_join(null); cout<< hilo principal terminado <<endl; exit(exit_success); }

75 SERVICIOS POSIX PARA PROCESOS LIGEROS (III) int pthread_attr_init (pthread_attr_t* attr) Inicializa la estructura de atributos de un thread a sus valores por defecto previstos por el S.O. RETURN VALUE: 0-OK Por defecto int pthread_attr_setdetachstate (pthread_attr_t* attr, int detachstate) Establece la forma de terminar de un proceso ligero Si detachstate = PTHREAD_CREATE_DETACHED el proceso ligero libera sus recursos cuando finalice su ejecución Si detachstate = PTHREAD_CREATE_JOINABLE no se liberan los recursos. Hay que utilizar pthread_join( ) En el caso general los hilos deberían ser generados como joinable (recomendado en el standard de POSIX) RETURN VALUE: 0-OK

76 SERVICIOS POSIX PARA PROCESOS LIGEROS (IV) int pthread_attr_setschedpolicy(pthread_attr_t* attr, int schedpol) Establece la política de planificación de un proceso ligero Tiene que tener la proiedad de PTHREAD_EXPLICIT_SCHED Si schedpol = SCHED_FIFO: política FIFO Si schedpol = SCHED_RR : política ROUND ROBIN int pthread_attr_setinheritsched (pthread_attr_t* attr, int inheritsched) Por defecto Establece la política de planificación en relación con el padre Si inheritsched = PTHREAD_EXPLICIT_SCHED se permite que tenga una política de planificación diferente a la del padre Si inheritsched = PTHREAD_INHERIT_SCHED se hereda la política de planificación del padre Por defecto

77 EJEMPLO JERARQUÍA DE THREADS (I) LIBRERÍA THREAD ATRIBUTOS

78 EJEMPLO THREADS (II) PASO DE PARÁMETROS? ATRIBUTO DETACHED ESPERA A TERMINACIÓN DE HIJOS

79 FIN DE SERVICIOS POSIX PARA HILOS

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

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

MC Hilda Castillo Zacatelco PROCESOS

MC Hilda Castillo Zacatelco PROCESOS MC Hilda Castillo Zacatelco [email protected] 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: 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

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 [email protected] Estructuras de datos (Prof.

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

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

Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX Concurrencia en UNIX / LINUX Introducción: Procesos e Hilos POSIX 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

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

Hilos Secciones Stallings:

Hilos Secciones Stallings: Capítulo 4 Hilos Secciones Stallings: 4.1 4.3 Contenido Procesos e hilos. Hilos a nivel de núcleo y a nivel de usuario. Multiprocesador simétrico (SMP). Micronúcleos. 1 Proceso Unidad de propiedad de los

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

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

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

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 Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante [email protected] 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

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

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

SISTEMAS OPERATIVOS: PROCESOS. Hilos y Procesos

SISTEMAS OPERATIVOS: PROCESOS. Hilos y Procesos SISTEMAS OPERATIVOS: PROCESOS Hilos y 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 que

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

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

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 [email protected] http://homepage.cem.itesm.mx/rogomez Función monitoreo descriptor archivo #include #include

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

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

SISTEMAS OPERATIVOS INTRODUCCIÓN. Pedro de Miguel Anasagast

SISTEMAS OPERATIVOS INTRODUCCIÓN. Pedro de Miguel Anasagast SISTEMAS OPERATIVOS INTRODUCCIÓN Pedro de Miguel Anasagast INTRODUCCIÓN AL SISTEMA OPERATIVO MÁQUINA DESNUDA Máquina desnuda: Término que se aplica a un computador carente de sistema operativo. El término

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

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 PROCESOS. Pedro de Miguel Anasagast

SISTEMAS OPERATIVOS PROCESOS. Pedro de Miguel Anasagast SISTEMAS OPERATIVOS PROCESOS Pedro de Miguel Anasagast ÍNDICE Conceptos generales de procesos Multitarea Servidores y demonios Servicios UNIX de gestión de procesos Señales y temporizadores Servicios UNIX

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

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

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

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos. Contenido 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

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

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

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

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

Conceptos de Planificación

Conceptos de Planificación Conceptos de Planificación Conceptos de Planificación Planificación Planificación de Procesos de Procesos Algoritmos Algoritmos Estructura Estructura Propiedades Propiedades Tipos Tipos Evaluación Evaluación

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

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

Convivencia Gestión de Procesos

Convivencia Gestión de Procesos Convivencia Gestión de Procesos Dra. Carolina Mañoso Dpto. Informática y Automática.UNED Índice: Procesos Introducción a los procesos Estados de los procesos Listas de procesos El planificador de procesos

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

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

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

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

Estándares POSIX. Estándares base

Estándares POSIX. Estándares base Estándares POSIX Estándares base. ntaxis y semántica con diversos aspectos del sistema operativo No especifica la implementación La mayoría basados en el lenguaje C Interfaces en diferentes lenguajes Los

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

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

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

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

Tema 1: Programación Multiproceso. Curso

Tema 1: Programación Multiproceso. Curso Tema 1: Programación Multiproceso. Curso 2012-2013 1 Patricia Hurtado Sayas Índice de contenidos: 1. Elementos funcionales de un SI. Repaso. 2. Concepto de Proceso o Tarea. 1. PCB, Bloque de Control de

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

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

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

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

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. 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

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

Programación Concurrente Recopilación de teoría referente a la materia

Programación Concurrente Recopilación de teoría referente a la materia UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, 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

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

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

Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador (extracto de las transparencias del libro)

Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador (extracto de las transparencias del libro) Sistemas operativos 2ª edición Capítulo 4 Planificación del procesador (extracto de las transparencias del libro) Contenido Introducción Caracterización de los procesos Objetivos de la planificación Algoritmos

Más detalles

Sistemas operativos, 2ª edición

Sistemas operativos, 2ª edición Sistemas operativos 2ª edición Capítulo 4 Planificación del procesador (extracto de las transparencias del libro) Contenido Introducción Caracterización de los procesos Objetivos de la planificación Algoritmos

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

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

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] 1 Índice General Conceptos sobre ordenadores Concepto

Más detalles

Cilk. Un entorno de programación paralela. Tomás Muñoz Rodríguez < > 17 de noviembre de 2011

Cilk. Un entorno de programación paralela. Tomás Muñoz Rodríguez < > 17 de noviembre de 2011 Un entorno de programación paralela Tomás Muñoz Rodríguez < [email protected] > 17 de noviembre de 2011 Profesor: Domingo Jiménez Cánovas Asignatura: Metodología de la Programación Paralela Facultad de

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos Sistemas operativos: una visión aplicada Capítulo 5 Comunicación y sincronización de procesos Sistema multiprogramado con un una CPU Proceso A Proceso B Proceso C Tiempo Sistemas operativos: una visión

Más detalles

Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos

Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos Hilos Módulo 4 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Hilos Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos

Más detalles

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Procesos 1 / 31 Concepto de proceso Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Un proceso es un programa en ejecución Una instancia de un programa corriendo en un

Más detalles

HILOS POSIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Enero marzo 2011

HILOS POSIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Enero marzo 2011 HILOS POSIX LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Enero marzo 2011 Librería #include HILOS POSIX Función que se comportará como hilo: void * mihilo(void *arg)

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

Tema II. Descripción y control de procesos. UNED Manuel Fernández Barcell. Blog:

Tema II. Descripción y control de procesos. UNED Manuel Fernández Barcell.   Blog: Tema II Descripción y control de procesos UNED Manuel Fernández Barcell http://www.mfbarcell.es Blog: http://prof.mfbarcell.es 2.2.1 CONCEPTO DE PROCESO Un programa es un archivo ejecutable que está en

Más detalles

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos

Más detalles