Tema 2. Procesos e hilos

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

Download "Tema 2. Procesos e hilos"

Transcripción

1 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Planificación de procesos e hilos Servicios POSIX para gestión de procesos e hilos Sistemas Operativos (-UJI) 1

2 Tema 2. Índice Procesos en Minix Estados de un proceso Implementación del descriptor de proceso Procesos en Linux Estados de un proceso Implementación del descriptor de proceso Implementación de la tabla de procesos Implementación de la lista de procesos preparados Procesos en Windows NT/2000 Objetos tipo proceso e hilo Estados de un hilo Implementación del procesos e hilos Sistemas Operativos (-UJI) 2

3 Tema 2. Índice Planificación de procesos e hilos Planificación en Minix Planificación en Linux Planificación en Windows NT/2000 Sistemas Operativos (-UJI) 3

4 Tema 2. Bibliografía J. Carretero et al. Sistemas Operativos: Una Visión Aplicada. McGraw- Hill Capítulo 3 W. Stallings. Sistemas Operativos. Prenctice-Hall Capítulos 3, 4, 9 y 10 A.S. Tanenbaum, A.S. Woodnull. Operating Systems. Design and Implementation. Prentice-Hall International, 2a. edición H. Custer. Inside Windows NT. Microsoft Press Sistemas Operativos (-UJI) 4

5 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Planificación de procesos e hilos Servicios POSIX para gestión de procesos e hilos Sistemas Operativos (-UJI) 5

6 Concepto de proceso Qué es un proceso? Instancia de un programa en ejecución, requiriendo para ello unos recursos Proceso Programa Recursos: -Procesador -Zonas de memoria -Ficheros -Dispositivos, etc. Pila Datos Código PC Otros recursos: -Ficheros abierto -Dispositivos E/S, etc. Programa: estructura pasiva Proceso: estructura activa Sistemas Operativos (-UJI) 6

7 Concepto de proceso Jerarquía de procesos: Algunos SO, como Unix, mantienen una estructura jerárquica entre procesos init Inicio Inicio Inicio Inicio Dem. Impr. Dem. Com.. Shell Editor Shell Proceso A Proceso init: PID = 1 Ancestro de todos los procesos Proceso B Proceso D Proceso C Proceso E Proceso F Otros, como Windows NT/2000 (en adelante WNT/2K), no la mantienen Sistemas Operativos (-UJI) 7

8 Concepto de proceso El proceso nulo (o la tarea ociosa): Qué ocurre cuando el procesador está ocioso? Se ejecuta el proceso nulo Qué hace el proceso nulo? Ejecuta un bucle infinito que no realiza ninguna operación útil En sistemas Unix suele tener PID=0 Objetivo: Entretener al procesador cuando no hay ninguna otra tarea Sistemas Operativos (-UJI) 8

9 Concepto de proceso Entorno del proceso: Tabla NOMBRE-VALOR que se pasa al proceso en su creación Se incluye en la pila Se establece: Por defecto Mediante mandatos del shell ( export ) Mediante API del SO ( putenv, getenv ) Ejemplo de entorno de un proceso en Unix: $env LOGNAME=castano SHELL=/bin/bash TERM=vt100 HOME=/users/icc/castano PATH=/usr/local/bin:/bin:/usr/bin:/users/castano/bin... Sistemas Operativos (-UJI) 9

10 Concepto de proceso Grupos de procesos: Los procesos forman grupos de procesos con alguna característica común Conjunto de procesos creados por el mismo padre Conjunto de procesos creados a partir de un shell Conjunto de procesos dependientes de un terminal Se pueden realizar ciertas operaciones sobre un grupo de procesos Matar todos los procesos de un grupo de procesos Envío de señales a todos los procesos de un grupo de procesos Sistemas Operativos (-UJI) 10

11 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Planificación de procesos e hilos Servicios POSIX para gestión de procesos e hilos Sistemas Operativos (-UJI) 11

12 Información del proceso Estado del procesador: Contenido de los registros del modelo de programación Imagen de memoria: Contenido de los segmentos de memoria en los que reside el código y los datos del proceso Bloque de control de proceso (BCP) Sistemas Operativos (-UJI) 12

13 Información del proceso Registros especiales Registros generales PC SP Estado Mapa de memoria del Proceso A Mapa de memoria del Proceso B Mapa de memoria del Proceso C Tablas SO Mapa de Memoria Tablas del sistema operativo Tabla de procesos BCP Proceso A BCP Proceso B BCP Proceso C - Estado (registros) - Estado (registros) - Estado (registros) - Identificación - Control - Identificación - Control - Identificación - Control - Tabla de memoria - Tabla de E/S - Tabla de ficheros Sistemas Operativos (-UJI) 13

14 Estado del procesador Formado por el contenido de todos los registros del procesador: Registros generales Contador de programa Puntero de pila Registro de estado Registros especiales Cuando un proceso está ejecutando su estado del procesador reside en los registros del computador Cuando un proceso no se está ejecutando su estado del procesador reside en el BCP Sistemas Operativos (-UJI) 14

15 Preparación del código de un proceso Problema Editor Módulo fuente A Módulo fuente B Compilador o ensamblador Módulo objeto A Módulo objeto B Montador Otros objetos Objeto ejecutable Bibliotecas del sistema Cargador Ejecutable en memoria Sistemas Operativos (-UJI) 15

16 Imagen de memoria Formada por los espacios de memoria que un proceso está autorizado a utilizar La memoria del proceso la asigna el gestor de memoria del SO Si un proceso genera una dirección que esta fuera del espacio de direcciones el HW genera una interrupción HW interna La imagen de memoria, dependiendo del computador, puede estar referida a memoria virtual o memoria física Sistemas Operativos (-UJI) 16

17 Imagen de memoria Imagen de memoria de un proceso en un sistema con memoria virtual: Registro identificador de estado de direccionamiento Memoria virtual Código RIED Memoria principal Datos Pila Tamaño Tabla de páginas Una tabla de páginas por proceso Disco Sistemas Operativos (-UJI) 17

18 Información del BCP Información de identificación: PID del proceso, PID del padre ID de usuario real (uid real) ID de grupo real (gid real) ID de usuario efectivo (uid efectivo) ID de grupo efectivo (gid efectivo) Estado del procesador Información de control del proceso: Información de planificación y estado Descripción de los segmentos de memoria del proceso Recursos asignados (ficheros abiertos,...) Comunicación entre procesos (señales,...) Punteros para estructurar los procesos en listas o colas Tabla de ficheros abiertos por el proceso Sistemas Operativos (-UJI) 18

19 Información del BCP Qué información del proceso se saca fuera del BCP? La que tiene tamaño variable Ejemplo: Tabla de páginas Razones de eficiencia La tabla de procesos se construye como una estructura estática, formada por un número de BCP del mismo tamaño La que se comparte: El BCP es de acceso restringido al proceso que lo ocupa Ejemplo: Punteros de posición de ficheros abiertos por el proceso Sistemas Operativos (-UJI) 19

20 Información del BCP Tabla de páginas: Describe la imagen de memoria del proceso Tamaño variable El BCP contiene el puntero a la tabla de páginas La compartición de memoria requiere que sea externa al BCP Punteros de posición de los ficheros: Si se asocian a la tabla de ficheros abiertos por los procesos (en el BCP) no se pueden compartir Si se asocian al i-nod se comparten siempre Se ponen en una estructura común a los procesos y se asigna uno nuevo en cada servicio open Sistemas Operativos (-UJI) 20

21 Compartir información BCP 4 Tabla de BCP 7 Tabla de BCP 23 Tabla de ficheros ficheros ficheros fd fd fd IDFF PP Tabla de ficheros del sistema El proceso con BCP7 es hijo del proceso con BCP4 Los procesos con BCP7 y BCP4 comparten punteros a los mismos ficheros El proceso con BCP23 abre uno de los ficheros compartido por los procesos con BCP7 y BCP4 IDFF = Identificativo de fichero PP = Posición puntero al fichero Sistemas Operativos (-UJI) 21

22 Tablas del SO Tabla de procesos: Tabla con los BCP de los procesos del sistema Tabla de memoria: Información sobre el uso de la memoria Tabla de E/S: Información asociada a los periféricos y a las operaciones de E/S Tabla de ficheros: Información sobre los ficheros abiertos en el sistema Sistemas Operativos (-UJI) 22

23 Tablas del SO Implementación de una cola de procesos listos: Cola de procesos listos Inicio Fin Proceso 7 Proceso 5 Proceso 3 BCP 1 BCP 2 BCP 3 Proceso 9 BCP 4 Tabla de procesos Sistemas Operativos (-UJI) 23

24 Usuarios y grupos reales y efectivos Usuarios reales y efectivos: UID ( real user identifier ): Identificativo real del usuario Usuario responsable del proceso en ejecución EUID ( effective user id. ): Identificativo efectivo del usuario Se usa para: Π Acceder a ficheros de otros usuarios Π Enviar señales a procesos Π Ejecutar programas setuid Grupos reales y efectivos: GID ( real group identifier ): EGID ( effective group identifier ) Sistemas Operativos (-UJI) 24

25 Usuarios y grupos reales y efectivos Programas SETUID : Cuando un proceso ejecuta un programa setuid el núcleo asigna al EUID del proceso el identificativo del propietario de dicho programa y al EGID del proceso el identificativo del grupo del propietario de dicho programa Ejemplos de programas setuid : login, mount, passwd, mkdir, etc. Cambio del bit setuid para el usuario y del bit setgid para el grupo: -r-x- x- x -r--- x- x -r-x -x--- chmod 4511 (ó chmod u+s) chmod 4411 (ó chmod u+s) chmod 2510 (ó chmod g+s) -r-s--x- x -r-s--x- x -r-x- s -- Bit setuid Bit setgid Sistemas Operativos (-UJI) 25

26 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Planificación de procesos e hilos Servicios POSIX para gestión de procesos e hilos Sistemas Operativos (-UJI) 26

27 Estados de un proceso Cuando un proceso se ejecuta pasa por distintintos estados Diagrama de transición entre estados: Ejecución Exit Listo A CPU Expulsión CPU Fin E/S o llegada evento Espera por E/S o evento Bloqueado Sistemas Operativos (-UJI) 27

28 Estados de un proceso Estados suspendidos: Ejecución Exit Planificado Tiempo consumido Listo Fin E/S o llegada evento Bloqueado Recuperado del disco Expulsado al disco Expulsado al disco Memoria Espera por E/S o evento Entra al sistema Zona de intercambio Procesos por lotes en espera Listo y suspendido Fin E/S Bloqueado y suspendido Sistemas Operativos (-UJI) 28

29 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Planificación de procesos e hilos Servicios POSIX para gestión de procesos e hilos Sistemas Operativos (-UJI) 29

30 Formación de un proceso Mapa de memoria Tabla de procesos Objeto ejecutable Biblioteca sistema Ca rg a d or Imagen del proceso BCP Sistemas Operativos (-UJI) 30

31 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Planificación de procesos e hilos Servicios POSIX para gestión de procesos e hilos Sistemas Operativos (-UJI) 31

32 Concepto de hilo de ejecución Características básicas del modelo tradicional de proceso (pesado): Ejecución secuencial. Ejecución independiente. Planteamiento: Varios procesos pueden cooperar para resolver una misma tarea del SO Ejecución concurrente entre procesos Comunicación entre procesos, por ejemplo, a través de memoria. Un programa podría incluir varias actividades concurrentes Ejecución concurrente dentro de un proceso. Sistemas Operativos (-UJI) 32

33 Concepto de hilo de ejecución Qué es un hilo de ejecución? También llamado hebra, proceso ligero, flujo, subproceso o thread. Programa en ejecución que comparte la imagen de memoria y otros recursos del proceso con otros hilos. Desde el punto de vista de programación: Función cuya ejecución se puede lanzar en paralelo con otras. Un proceso puede contener uno o más hilos. Sistemas Operativos (-UJI) 33

34 Concepto de hilo de ejecución Qué es un hilo de ejecución (cont.)? Pila 1 Pila2 Hilo 1 Otros recursos: -Ficheros abierto -Dispositivos E/S, etc. Proceso Datos Código Hilo 2 PC2 PC1 Hilo: unidad de planificación Proceso: unidad de asignación de recursos Sistemas Operativos (-UJI) 34

35 Concepto de hilo de ejecución Descriptor de un proceso y de un hilo: Hilos Zonas de memoria Hilo 1 (principal) Estado, tiempo de CPU, registros de CPU, pila, etc. Espacio de direcciones Hilo 2... Hilo j Gestión de E/S Ficheros abiertos, dispositivos abiertos, etc. Otros datos Sistemas Operativos (-UJI) 35

36 Concepto de hilo de ejecución Descriptor de un proceso y de un hilo: Todos los hilos de un proceso comparten el mismo entorno de ejecución (variables globales, espacio de direcciones, ficheros abiertos, etc.). Cada hilo tiene su propio juego de registros de CPU, pila, variables locales, etc. No existe protección entre hilos: un error en un hilo puede estropear la pila de otro. Para ordenar la forma en la que los hilos acceden a datos comunes hay que emplear mecanismos de sincronización. Sistemas Operativos (-UJI) 36

37 Estados de un hilo y de un proceso Estado de un proceso con hilos: Combinación de los estados de sus hilos: Si hay un hilo en ejecución Proceso en ejecución Si no hay hilos en ejecución pero sí preparados Proceso preparado Si todos sus hilos bloqueados Proceso bloqueado Proceso Bloqueado por comunicación Bloqueado por acceso a disco Activo Hilo Sistemas Operativos (-UJI) 37

38 Paralelización usando hilos Los hilos permiten paralelizar la ejecución de una aplicación Mientras un hilo está bloqueado, otro podría ejecutarse Uso de llamadas al sistema bloqueantes por hilo Procedimiento 1 Procedimiento 2 P Espera en E/S F P Espera en E/S F Ejecución serie Procedimiento 1 P Procedimiento 2 Espera en E/S F Ejecución paralela P Espera F Procesamiento en E/S Sistemas Operativos (-UJI) 38

39 Servidor con múltiples hilos Hilo distribuidor Proceso Hilo trabajador Peticiones Hilos trabajadores: Pueden crearse a medida que se necesitan y destruirse al finalizar la tarea encomendada Pueden existir siempre y quedar libres al finalizar la tarea encomendada Más eficiente (evita el trabajo de crear y destruir hilos) Sistemas Operativos (-UJI) 39

40 Servidor con múltiples hilos Ejemplo: Servidor secuencial de ficheros Algoritmo Caché para bloques accedidos recientemente Mientras no haya que terminar { Esperar a que llegue una petición Comprobar que la petición es correcta Si (los datos no están en la caché) { Realizar operación de E/S bloqueante sobre disco } Enviar resultado } Sencillo Prestaciones pobres: permanece bloqueado Sistemas Operativos (-UJI) 40

41 Servidor con múltiples hilos Ejemplo (cont.): Servidor de ficheros con múltiples hilos Hilo distribuidor Hilo trabajador Algoritmo 1 Mientras no haya que terminar { Esperar a que llegue una petición Esperar trabajador libre } Enviar resultado } Mayor complejidad Buenas prestaciones Algoritmo 2 Mientras no haya que terminar { Esperar trabajo Comprobar que la petición es correcta Si (los datos no están en la caché) { Realizar operación de E/S bloqueante sobre disco } Enviar resultado Avisar que está libre } Sistemas Operativos (-UJI) 41

42 Concepto de multihilo Capacidad de un SO para mantener varios hilos de ejecución dentro de un mismo proceso. Mono Proce Sado res Un proceso Un hilo/proceso Ej: MS-DOS Un proceso Múltiples hilos/proceso Ej: Java Proceso Hilo Multi Proce sado res Múltiples procesos Un hilo/proceso Múltiples procesos Múltiples hilos/proceso Ej: Algunos UNIX Ej: Windows 2000, Solaris, OS/2 Técnica monohilo Técnica multihilo Sistemas Operativos (-UJI) 42

43 Implementación de hilos Dos categorías: Hilos a nivel de usuario Hilos a nivel de núcleo Sistemas Operativos (-UJI) 43

44 Hilos a nivel de usuario Gestión de hilos realizada por la aplicación a nivel de usuario mediante una biblioteca de hilos. El núcleo no es consciente de la existencia de hilos. Es posible programar cualquier aplicación como multihilo. Hilo a nivel de usuario Biblioteca de hilos Modo usuario P Proceso Modo supervisor P Sistemas Operativos (-UJI) 44

45 Hilos a nivel de usuario Ventajas frente a hilos a nivel de núcleo: No necesario acceder al núcleo para intercambio de hilos. Algoritmos de planificación ad-hoc para cada aplicación. Pueden ejecutarse en cualquier SO. Desventajas frente a hilos a nivel de núcleo: Una llamada al sistema realizada por un hilo bloquea a todos los hilos del proceso. Una aplicación multihilo no puede aprovechar las ventajas del multiprocesamiento. Ejemplo: Pthreads de POSIX. Sistemas Operativos (-UJI) 45

46 Hilos a nivel de núcleo Gestión de hilos realizada por el núcleo. Es posible programar cualquier aplicación como multihilo. Hilo a nivel de usuario Modo usuario Modo supervisor P Hilo a nivel de núcleo Proceso P Sistemas Operativos (-UJI) 46

47 Hilos a nivel de núcleo Ventajas frente a hilos a nivel de usuario: El bloqueo de un hilo no supone (necesariamente) bloquear todo el proceso. Planificación de múltiples hilos de un proceso en múltiples procesadores. Las funciones del núcleo pueden ser multihilo. Desventajas frente a hilos a nivel de usuario: El intercambio de hilos se realiza accediendo al núcleo. Ejemplos: Linux, Windows 2000, OS/2. Sistemas Operativos (-UJI) 47

48 Aproximaciones combinadas Ejemplo: Solaris Creación, sincronización y planificación de hilos de una aplicación en modo usuario. Planificación de múltiples hilos de un proceso en múltiples procesadores. El bloqueo de un hilo no supone (necesariamente) bloquear todo el proceso. Sistemas Operativos (-UJI) 48

49 Aproximaciones combinadas Ejemplo: Solaris (cont.) Hilo a nivel de usuario Biblioteca de hilos Modo usuario Hilo a nivel de núcleo Modo supervisor P Proceso P P Sistemas Operativos (-UJI) 49

50 Modelos multihilo Relación de: Muchos a uno. Uno a uno. HNU:HNN M:1 Descripción Ejemplos Pthreads POSIX Muchos a muchos. 1:1 Windows 2000, OS/2 Hilo a nivel de usuario (HNU) M:N Solaris Hilo a nivel de núcleo (HNN) Sistemas Operativos (-UJI) 50

51 Concepto de hilo de ejecución Ventajas de utilizar múltiples hilos: La ejecución concurrente de hilos de un mismo proceso puede mejorar la eficiencia del sistema. Paralelismo dentro del proceso (en multiprocesadores). Las operaciones bloqueantes no paralizan al proceso (completo). Mayor eficiencia que con múltiples procesos en: Creación/eliminación de unidades de planificación. Cambio de contexto. Una buena solución para sistemas cliente/servidor. Facilidad de implementación. Sistemas Operativos (-UJI) 51

52 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Estados de un proceso Implementación del descriptor de proceso Sistemas Operativos (-UJI) 52

53 Procesos en Minix Diagrama de transición entre estados: pick_proc Listo En ejecución sched ready unready Bloqueado ready: unready: Pone el proceso en alguna de las colas de procesos listos del planificador Activa el proceso Elimina el proceso de las colas de procesos listos Suspende el proceso pick_proc: Selecciona el proceso listo a ser ejecutado por la CPU Planificador sched: Pone al final de la cola el proceso de usuario en ejecución pues éste ha agotado su quantum de CPU Sistemas Operativos (-UJI) 53

54 Procesos en Minix Descriptor de un proceso: EXTERN struct proc{ int p_reg[nr_regs]; /* process registers */ int *p_sp; /* stack pointer */ struct pc_psw p_pcpsw; /* pc and psw as pushed by interrupt*/ struct mem_map p_map[nr_segs];/* memory map */ int *p_splimit; /* lowest legal stack value */ int p_pid; /* process id passed in from MM*/ int p_flags; /* P_SLOT_FREE, SENDING, RECEIVING, */ /* or 0 if the process is runnable */ real_time user_time; /* user time in ticks */ real_time sys_time; /* sys time in ticks */ real_time child_utime; /* cumulative user time of children */ real_time child_stime; /* cumulative sys time of children */ real_time p_alarm; /* time of next alarm in ticks, or 0 */ Sistemas Operativos (-UJI) 54

55 Procesos en Minix Descriptor de un proceso (cont.): struct proc *p_callerq; /* head of list of procs wishing to send */ struct proc *p_sendlink; /* link to next proc wishing to send */ message *p_messbuf; /* pointer to message buffer */ int p_getfrom; /* from whom does process want to receive? */ stuct proc *p_nextready; /* pointer to next ready process */ int p_pending; /* bit map for pending signals */ } proc[nr_tasks+nr_procs]; Sistemas Operativos (-UJI) 55

56 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Estados de un proceso Implementación del descriptor de proceso Implementación de la tabla de procesos Implementación de la lista de procesos preparados Sistemas Operativos (-UJI) 56

57 Procesos en Linux Diagrama de transición entre estado típico. Bloqueo de un proceso: Espera a que ocurra un cierto evento Proceso bloqueado e interrumplible: Puede ser interrumpido por señales Puede desbloquearle: Una interrupción HW Liberación de un recurso por el que esperaba Una señal Proceso bloqueado e ininterrumplible: No acepta señales Puede desbloquearle: Una interrupción HW Liberación de un recurso por el que esperaba Sistemas Operativos (-UJI) 57

58 Procesos en Linux Descriptor de un proceso: Estructura task_struct del fichero include/linux/sched.h Estado del proceso: volatile long state; #define TASK_RUNNING 0 /* Proceso listo o en ejecución */ #define TASK_INTERRUPTIBLE 1 /* Proceso bloqueado interrumpible */ #define TASK_UNINTERRUPTIBLE2 /* Proceso bloquea ininterrumpible */ #define TASK_ZOMBIE 3 /* Proceso finalizado */ #define TASK_STOPPED 4 /* Proceso parado tras llegar una señal SIGSTOP*/ unsigned long flags; /* Combinación de las banderas de estado */ #define PF_STARTING 0x /* Recién creado */ #define PF_EXITING 0x /* Finalizando */ Variable current: Puntero a la estructura task_struct del proceso en ejecución Sistemas Operativos (-UJI) 58

59 Procesos en Linux Identificativos del proceso: pid_t pid; /* Identificativo del proceso */ pid_t pgrp; /* Identificativo del grupo del proceso*/ pid_t session; /* Número de sesión del proceso */ uid_t uid,euid; /* Identificativo real y efectivo del usuario */ gid_t gid,egid; /* Identificativo real y efectivo del grupo */ gid_t groups[ngroups]; /* Lista grupos a los que pertenece el proceso */ Sistemas Operativos (-UJI) 59

60 Procesos en Linux Planificación del proceso: unsigned long policy; /* Tres posibles políticas de planificación */ #define SCHED_FIFO 1 #define SCHED_RR 2 #define SCHED_OTHER 0 long counter; long priority; /* Procesos SCHED_OTHER: Tiempo de CPU por consumir */ /* Procesos RR: Valor actual del quantum de CPU (prioridad dinámica) */ /* Procesos RR: Valor inicial del quantum de CPU (prioridad estática) */ Los tiempos de CPU se miden en tics de reloj Sistemas Operativos (-UJI) 60

61 Procesos en Linux Jerarquía del proceso: struct task_struct *p_opptr; /* Original parent */ struct task_struct *p_pptr; /* Parent */ struct task_struct *p_cptr; /* Youngest child */ struct task_struct *p_ysptr; /* Younger sibling */ struct task_struct *p_osptr; /* Older sibling */ p_cptr p_pptr padre p_pptr p_pptr hijo más joven p_osptr p_ysptr hijo p_osptr p_ysptr hijo más viejo Sistemas Operativos (-UJI) 61

62 Procesos en Linux Señales del proceso: struct sigset_t signal; /* Mapa de bits de señales recibidas */ struct sigset_t blocked; /* Mapa de bits de señales bloqueadas */ struct sigset_t sigpending; /* Mapa de bits de señales no bloqueadas y pendientes */ struct signal_struct *sig; /* Manejadores de señales */ struct signal_struct { atomic_t count; struct sigaction action[nsig];/* Función que modifica el tratamiento por defecto de la señal */ }; int exit_signal; /* Número de señal que mató al proceso */ struct wait_queue *wait_chldexit;/* Lista de espera de finalización de hijos */ Sistemas Operativos (-UJI) 62

63 Procesos en Linux Monitorización del proceso: long per_cpu_utime[nr_cpu]; /* Tiempo del proceso en modo usuario */ long per_cpu_stime [NR_CPU]; /* Tiempo del proceso en modo supervisor */ long start_time; /* Tiempo de creación del proceso */ unsigned long it_real_value; /* Tiempo real */ /* Tiempos sobre temporizadores y alarmas */ unsigned long it_prof_value, /* Tiempo en ejecución o estado listo */ unsigned long it_virt_value; /* Tiempo en ejecución sin contar la ejecución de llamadas al sistema */ struct timer_list real_timer ; /* Lista de alarmas */ Temporizador vs. Alarma? Sistemas Operativos (-UJI) 63

64 Procesos en Linux Segmentos de memoria del proceso: struct mm_struct *mm; struct mm_struct {... struct vm_area_struct *mmap; struct vm_area_struct *mmap_avl; struct vm_area_struct *mmap_cache; unsigned long start_code, end_code; unsigned long start_data, end_data; unsigned long start_stack;... }; /* Dirección de inicio y fin del segmento de código */ /* Dirección de inicio y fin del segmento de datos */ /* Dirección del tope del segmento de pila de usuario */ Sistemas Operativos (-UJI) 64

65 Procesos en Linux Sistema de ficheros del proceso: struct fs_struct *fs; /* Información del sistema de ficheros */ struct files_struct *files; /* Información de ficheros abiertos por el proceso */ struct fs_struct { }; atomic_t count; /* Número de procesos que comparten esta estructura */ int umask; /* Máscara de creación de ficheros */ struct dentry * root; /* Directorio raíz del proceso */ struct dentry * pwd; /* Directorio de trabajo */ struct files_struct { }; tomic_t count; /* Num. procs que comparten estos ficheros abiertos */ fd_set * close_on_exec;/* Ficheros a cerrar ante una llamada exec */ fd_set * open_fds; /* Máscara bits de los descriptores de fichs usados */ struct file * fd_array[nr_open_default]; /* Tabla de ficheros abiertos por el proceso*/ Sistemas Operativos (-UJI) 65

66 Procesos en Linux Sistema de ficheros del proceso (cont.): Tabla de ficheros del proceso... 1 READ... 1 WRITE 1 READ Tabla de ficheros del sistema 1 /etc/passwd 2 /usr/castano Tabla de inodos Sistemas Operativos (-UJI) 66

67 Procesos en Linux Lista de procesos preparados: Incluye el proceso en ejecución Lista circular doblemente enlazada que comienza y finaliza con el proceso init_task (PID=0) struct task_struct *next_run; /* Siguiente proceso de esta lista */ struct task_struct *prev_run; /* Anterior proceso de esta lista */ extern struct task_struct init_task; /* Cabeza y cola de la lista */ int nr_running; /* Num. total de procesos listos */ struct task_struct *current; /* Proceso en ejecución */ procesoinit_task proceso A proceso B next_run prev_run Sistemas Operativos (-UJI) 67

68 Procesos en Linux Lista de procesos del sistema: Lista circular doblemente enlazada que comienza y finaliza con el proceso init_task struct task_struct *next_task; /* Siguiente proceso de esta lista */ struct task_struct *prev_task; /* Anterior proceso de esta lista */ extern struct task_struct init_task; /* Cabeza y cola de la lista */ procesoinit_task proceso A proceso B next_task prev_task Sistemas Operativos (-UJI) 68

69 Procesos en Linux Tabla de procesos: Vector task del fichero kernel/sched.c struct task_struct * task[nr_tasks] = {&init_task, }; struct task_struct init_task; Operaciones habituales sobre (todos los procesos de) la lista de procesos del sistema: Vector task del fichero kernel/sched.c #define for_each_task(p) \ for (p = &init_task ; (p = p->next_task)!= &init_task ; ) Sistemas Operativos (-UJI) 69

70 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Objetos tipo proceso e hilo Estados de un hilo Implementación del procesos e hilos Sistemas Operativos (-UJI) 70

71 Procesos en Windows NT/2000 Características de un proceso de Windows NT/2000: Los procesos NT se implementan como objetos y son accedidos mediante servicios de objetos Un proceso NT tiene asociados varios hilos que se ejecutan en su espacio de direccionamiento El gestor de procesos NT no mantiene ninguna relación entre los procesos que crea Sistemas Operativos (-UJI) 71

72 Procesos en Windows NT/2000 Objeto tipo proceso: Tipo del objeto Atributos del objeto PROCESO Identificativo de proceso Objeto de acceso Prioridad base Afinidad del procesador Tiempo de ejecución Puertos de comunicación Estado de finalización etc. Servicios del objeto Crear proceso Abrir proceso Pedir información del proceso Añadir información del proceso Finalizar proceso Asignar/liberar memoria virtual Leer/escribir memoria virtual etc. Sistemas Operativos (-UJI) 72

73 Procesos en Windows NT/2000 Objeto tipo proceso (cont.): Atributo ID proceso Acceso Prioridad base Descripción Valor único que identifica al proceso Objeto con información de seguridad sobre el usuario que generó el objeto Prioridad base de sus hilos Afinidad del procesador Procesadores en los que se pueden ejecutar sus hilos Límites de cuotas Tiempo de ejecución Puertos comunicación Estado de finalización Cantidad máxima de memoria paginada y no paginada, de tiempo de ejecución, etc. Tiempo total de ejecución de todos sus hilos Canal de comunicación al que enviar un mensaje si un hilo genera una excepción Motivo de la finalización del proceso Sistemas Operativos (-UJI) 73

74 Procesos en Windows NT/2000 Objeto tipo hilo: Tipo del objeto Atributos del objeto HILO Identificativo de hilo Contexto Prioridad base Prioridad dinámica Afinidad del procesador Tiempo de ejecución Puerto de terminación Estado de finalización etc. Servicios del objeto Crear hilo Abrir hilo Pedir información del hilo Añadir información del hilo Finalizar hilo Suspender/continuar hilo Guardar/cargar contexto etc. Sistemas Operativos (-UJI) 74

75 Procesos en Windows NT/2000 Objeto tipo hilo (cont.): Atributo ID hilo Contexto Prioridad dinámica Prioridad base Descripción Valor único que identifica al hilo Valores de los registros y de otros datos que definen su estado de ejecución Prioridad de ejecución en ese instante Límite inferior de la prioridad dinámica Afinidad del procesador Procesadores en los que se puede ejecutar Tiempo de ejecución Puerto de terminación Estado de finalización Tiempo de ejecución transcurrido en modo usuario y en modo supervisor Canal de comunicación al que enviar un mensaje cuando finaliza Motivo de la finalización del subproceso Sistemas Operativos (-UJI) 75

76 Procesos en Windows NT/2000 Diagrama de transición entre estados (de un hilo): Reinicializar Inicializado Finalizado Evento Listo Planificador Finalización Esperar evento Bloqueado Expulsar Ejecución Expulsar A CPU Alerta Sistemas Operativos (-UJI) 76

77 Procesos en Windows NT/2000 Algunos estados de un hilo: Alerta: Seleccionado como el siguiente hilo a ser ejecutado en un procesador dado Operación (planificación) previa a la invocación de un cambio de contexto Bloqueado: Espera a que un objeto de sincronización pase a una situación de marcado ("signaled") que indique la llegada del evento de espera Sistemas Operativos (-UJI) 77

78 Procesos en Windows NT/2000 Implementación de procesos e hilos en Windows NT/2000: Objeto de aceeso Objeto proceso Descripción del espacio virtual de direccionamiento... Tabla de objetos... Subproceso x Fichero y Sección z Sistemas Operativos (-UJI) 78

79 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Planificación de procesos e hilos Planificación en Minix Planificación en Linux Planificación en Windows NT/2000 Sistemas Operativos (-UJI) 79

80 El planificador de Minix Sistema de colas multinivel (sin realimentación) con prioridades expulsivas + TAREAS FCFS PRIORIDAD PROCESOS SERVIDOR FCFS - PROCESOS USUARIO RR Se invoca al planificador (rutina pick_proc) cuando: Se bloquea un proceso (en ejecución) con SEND o RECEIVE Tras cada interrupción Tras la finalización del cuantum de CPU de un proceso de usuario Al finalizar un proceso Sistemas Operativos (-UJI) 80

81 El planificador de Minix Implementación del planificador: rdy_head[task_q] + TAREAS FCFS rdy_head[server_q] PRIORIDAD PROCESOS SERVIDOR FCFS rdy_head[user_q] - PROCESOS USUARIO RR Sistemas Operativos (-UJI) 81

82 El planificador de Minix Implementación del planificador (cont.): PUBLIC pick_proc () { register int q;/* Cola a usar: */ /* - Cola de tareas: TASK_Q */ /* - Cola de procesos servidor: SERVER_Q */ /* - Cola de procesos de usuario: USER_Q */ } if (rdy_head [TASK_Q]!= NIL_PROC) q = TASK_Q; else if (rdy_head [SERVER_Q]!= NIL_PROC) q = SERVER_Q; else q = USER_Q; prev_proc = cur_proc; if (rdy_head [q]!= NIL_PROC) { cur_proc = rdy_head [q]; /* Someone is runable */ } else{ cur_proc = IDLE; /* No one id runable */ } Sistemas Operativos (-UJI) 82

83 Planificación en POSIX Cada política de planificación lleva asociado un rango con al menos 32 niveles de prioridad El planificador elegirá el proceso o hilo con la prioridad más alta Políticas de planificación: FIFO (FCFS) Round Robin (RR) Otra Sistemas Operativos (-UJI) 83

84 El planificador de Linux Prioridad y algoritmo de planificación de un proceso de Linux: Todo proceso del sistema tiene asociadas una prioridad una política de planificación, que puede ser: FIFO ( SCHED_FIFO ) RR ( SCHED_RR ) Otra ( SCHED_OTHER ) Se asigna política de planificación FIFO y RR a los procesos en tiempo real (procesos que tienen que reaccionar muy rápidamente a sucesos externos) Sistemas Operativos (-UJI) 84

85 El planificador de Linux Prioridad y algoritmo de planificación de un proceso de Linux (cont.): Política SCHED_OTHER : Favorece procesos interactivos Prioridad dinámica = Prioridad_base + (Estimación_CPU_restante / 2) Objetivo prioridad base: Dividir los procesos en bandas fijas de prioridad Sistemas Operativos (-UJI) 85

86 El planificador de Linux Algoritmo de planificación: Algoritmo expulsivo con prioridades (selecciona el proceso con máxima prioridad) Los procesos con planificación FIFO y RR tienen mayor prioridad Un proceso FIFO abandona la CPU cuando: Aparece otro proceso listo con mayor prioridad El proceso finaliza Un proceso RR abandona la CPU cuando: Aparece otro proceso listo con mayor prioridad El proceso finaliza Acaba su quantum de CPU y otro proceso tiene igual prioridad (y es la máxima) Sistemas Operativos (-UJI) 86

87 El planificador de Linux Función de planificación: void schedule (void) { int c; struct task_struct * p, * prev, * next; prev = current; cli(); /* move an exhausted RR process to be last */ if (!prev->counter && prev->policy == SCHED_RR) { prev->counter = prev->priority; move_last_runqueue(prev); } p = init_task.next_run; sti(); Deshabilitar interrupciones Habilitar interrupciones Sistemas Operativos (-UJI) 87

88 El planificador de Linux Función de planificación (cont.): /* this is the scheduler proper: */ c = -1000; next = idle_task; while (p!= &init_task) { int weight = goodness(p, prev, this_cpu); if (weight > c) c = weight, next = p; p = p->next_run; } /* if all runnable processes have "counter == 0", re-calculate counters */ if (!c) { for_each_task(p) p->counter = (p->counter >> 1) + p->priority; } if (prev!= next) { switch_to(prev,next); } return; } Cambio de proceso Sistemas Operativos (-UJI) 88

89 El planificador de Linux Función de planificación (cont.): /* This is the function that decides how desirable a process is * Return values: * -1000: never select this * 0: out of time, recalculate counters * +ve: "goodness" value (the larger, the better) * +1000: realtime process, select this. */ int goodness (struct task_struct * p, struct task_struct * prev) { int weight;... if (p->policy!= SCHED_OTHER) return p->rt_priority; Sistemas Operativos (-UJI) 89

90 El planificador de Linux Función de planificación (cont.): /* Give the process a first-approximation goodness value * according to the number of clock-ticks it has left. * Don't do any other calculations if the time slice is over */ } weight = p->counter; if (weight) { /* Give a slight advantage to the current process */ if (p == prev) weight += 1; } return weight; Sistemas Operativos (-UJI) 90

91 El planificador de Windows NT/2000 Prioridad de un hilo: Dentro del rango Depende del tipo de trabajo que esté haciendo Una cola de hilos listos por cada posible nivel de prioridad Tipos de prioridad: Prioridades en tiempo real Prioridades variables Sistemas Operativos (-UJI) 91

92 El planificador de Windows NT/2000 Prioridades en tiempo real: Prioridades más altas (rango ) Asignadas cuando el tiempo de respuesta del subproceso es crítico (operaciones de comunicaciones, tareas de tiempo real, etc.) La prioridad del hilo no cambia nunca Política RR para los hilos de un nivel de prioridad dado Sistemas Operativos (-UJI) 92

93 El planificador de Windows NT/2000 Prioridades variables: Prioridades más bajas (rango 15..0) Cola RR en cada nivel de prioridad Prioridad inicial del hilo: Prioridad del proceso + Prioridad base del hilo (-2..+2) La prioridad del hilo puede variar durante su vida No puede ser superior a 15 No puede ser inferior a la prioridad inicial El núcleo baja la prioridad (dinámica) de un hilo cada vez que finaliza su quantum de CPU asignado La prioridad (dinámica) de un hilo aumenta tras una operación de E/S Los hilos interactivos tienden a prioridades más altas dentro de la clase de prioridad variable Sistemas Operativos (-UJI) 93

94 El planificador de Windows NT/2000 Prioridades variables: Ejemplo de relación entre prioridades Prioridad base del proceso mayor encima normal normal debajo normal menor Prioridad inicial del hilo Prioridad dinámica del hilo Sistemas Operativos (-UJI) 94

95 El planificador de Windows NT/2000 Algoritmo de planificación de hilos: Esquema expulsivo con prioridades y colas multinivel realimentadas (selecciona el hilo con máxima prioridad de todas las colas)... NIVEL DE PRIORIDAD Prioridades en tiempo real Prioridades variables 0 Sistemas Operativos (-UJI) 95

96 Tema 2. Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Concepto de hilo de ejecución Procesos en Minix Procesos en Linux Procesos en Windows NT/2000 Planificación de procesos e hilos Servicios POSIX para gestión de procesos e hilos Sistemas Operativos (-UJI) 96

97 Servicios POSIX para gestión de hilos int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_destroy (pthread_attr_t *attr); int pthread_create (pthread_t *thread, const pthread_attr_t *attr, void *(*func)(void *), void *arg); int pthread_exit(void *value); int pthread_join(pthread_t thid, void **value); pthread_t pthread_self(void); Pthreads int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate); Sistemas Operativos (-UJI) 97

98 Servicios POSIX sobre atributos de hilos Creación de atributos: Sintaxis: int pthread_attr_init(pthread_attr_t *attr); Descripción: Inicia un objeto atributo de tipo pthread_attr_t con las propiedades que tendrán los hilos que se creen posteriormente Los atributos permiten especificar: tamaño de pila, prioridad, política de planificación, etc. Existen diversas llamadas para modificar los atributos Sistemas Operativos (-UJI) 98

99 Servicios POSIX sobre atributos de hilos Destrucción de atributos: Sintaxis: int pthread_attr_destroy (pthread_attr_t *attr); Descripción: Destruye el objeto atributo de tipo pthread_attr_t pasado como argumento a la misma Sistemas Operativos (-UJI) 99

100 Servicios POSIX sobre atributos de hilos Establecimiento del estado de terminación: Sintaxis: int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate); Descripción: Establece el estado de terminación de un hilo: Si "detachstate" = PTHREAD_CREATE_DETACHED El hilo se considerará como independiente El hilo liberará sus recursos cuando finalice su ejecución Si "detachstate" = PTHREAD_CREATE_JOINABLE El hilo se considerará como no independiente El hilo no liberará todos los recursos (descriptor y pila) cuando finalice su ejecución, es necesario utilizar pthread_join() Habitualmente, valor por defecto Sistemas Operativos (-UJI) 100

101 Servicios POSIX sobre gestión de hilos Creación de hilos: Sintaxis: int pthread_create (pthread_t *thread, const pthread_attr_t *attr, void *(*func)(void *), void *arg); Descripción: Crea un hilo con atributos attr que ejecuta func con argumentos arg Finalización de hilos: Sintaxis: int pthread_exit(void *value); Descripción: Finaliza la ejecución de un hilo, indicando su estado de terminación Sistemas Operativos (-UJI) 101

102 Servicios POSIX sobre gestión de hilos Suspensión de hilos: Sintaxis: int pthread_join(pthread_t thid, void **value); Descripción: Suspende la ejecución de un hilo hasta que termina el hilo con identificador thid (no necesariamente un hilo hijo) Deja el estado de terminación del hilo en la posición apuntada por value Sólo se puede solicitar este servicio sobre hilos no independientes Identificación de hilos: Sintaxis: pthread_t pthread_self(void); Descripción: Devuelve el identificador del hilo que ejecuta la llamada Sistemas Operativos (-UJI) 102

103 Servicios POSIX sobre gestión de hilos Jerarquía de hilos: Hilo 1 Hilo principal (main) pthread_create pthread_create pthread_create Hilo 4 Hilo 3 Hilo 2 No independiente pthread_exit pthread_join pthread_exit Sistemas Operativos (-UJI) 103

104 Servicios POSIX para gestión de hilos Ejemplo 1: #include <pthread.h> #include <stdio.h> void * hilo (void *cadena) { int i; for (i=0; i<10; i++) printf("hilo (%d): %d %s \n", pthread_self (),i,(char *)cadena); pthread_exit (0); } int main () { char *cadena1="hola"; char *cadena2="adios"; A partir de aquí, el hilo principal, hilo1 e hilo2 se ejecutan concurrentemente. Cualquiera puede acabar 1, 2 o último pthread_t hilo1, hilo2; pthread_create (&hilo1, NULL, hilo, (void *)cadena1); pthread_create (&hilo2, NULL, hilo, (void *)cadena2); } exit(0); Sistemas Operativos (-UJI) 104

105 Servicios POSIX para gestión de hilos Ejemplo 2: #include <pthread.h> #include <stdio.h> int cont=0; void * hilo (void *arg) { sleep(2); cont=cont+1; printf("hilo (%d): cont=%d \n", pthread_self (),cont); pthread_exit (0); } int main () { pthread_t hilo1, hilo2; Ojo a la exclución mutua! printf("hilo principal (%d): cont=%d \n",pthread_self(),cont); pthread_create (&hilo1, NULL, hilo, NULL); pthread_create (&hilo2, NULL, hilo, NULL); } pthread_join (hilo1,null); /* Punto de sincronización con hilo1 */ /* Hilo2 sigue su marcha. Puede o no haber acabado*/ pthread_join (hilo2,null); /* Punto de sincronización con hilo2 */ printf("hilo principal (%d): cont=%d \n",pthread_self(),cont); exit(0); Sistemas Operativos (-UJI) 105

106 Servicios POSIX para gestión de procesos Ejemplo 2: Código pseudo-equivalente con gestión de procesos pesados: #include <stdio.h> int main() { int estado, cont=0; Por qué? printf("padre (%d): cont=%d \n",getpid(),cont); if (fork()!= 0) { if (fork()!= 0) { wait(&estado); wait(&estado); printf("padre (%d): cont=%d \n",getpid(),cont); } else { /* HIJO 2 */ cont=cont+1; printf("hijo 2 (%d): cont=%d \n",getpid(),cont); } } else { /* HIJO 1 */ cont=cont+1; printf("hijo 1 (%d): cont=%d \n",getpid(),cont); } exit(0); } Sistemas Operativos (-UJI) 106

107 Servicios POSIX para gestión de hilos Ejemplo 3: #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <time.h> int x=0; void * fhilo1 (void *arg) void * fhilo2 (void *arg) { int i, cont; { int i, cont; for (i=0; i<3; i++) { for (i=0; i<3; i++) { cont=x+1; cont=x-1; printf ( Suma 1\n ); printf ( Resta 1\n ); sleep (random()%3); sleep (random()%3); x=cont; x=cont; } } pthread_exit (NULL); pthread_exit (NULL); } } Sistemas Operativos (-UJI) 107

108 Servicios POSIX para gestión de hilos Ejemplo 3 (cont.): main () { pthread_t hilo1, hilo2; time_t t; srandom (time(&t); printf ("Valor inicial de x: %d \n",x); pthread_create(&hilo1, NULL, fhilo1, NULL); pthread_create(&hilo2, NULL, fhilo2, NULL); } pthread_join(hilo1,null); pthread_join(hilo2,null); printf ("Valor final de x: %d \n",x); exit(0); Funcionamiento correcto? Sistemas Operativos (-UJI) 108

109 Ejercicios Ejercicio 1: Realizar un algoritmo o programa en el que, dado el número de identificación de un proceso, se obtenga el número de hijos que tiene dicho proceso y sus correspondientes números de identificación. Sistemas Operativos (-UJI) 109

110 Ejercicios Ejercicio 1 (solución): Solución I: void muetra_hijos (int pidpadre); {struct task_struct *p; int n_hijos=0; p=&init_task->next_task; while ((p->pid!=pidpadre) && (p!=&init_task)) p=p->next_task; if (p==&init_task) return (-1); if (p=p->cptr!=null) do printf ( %d \n,p-> pid); n_hijos++1; while (p=p->p_osptr!=null); printf ( El proceso %d tiene %d hijos \n,pidpadre,n_hijos); return (0); } Sistemas Operativos (-UJI) 110

111 Ejercicios Ejercicio 1 (solución): Solución : void muetra_hijos (int pidpadre); {struct task_struct *p; int n_hijos=0; p=&init_task->next_task; while ((p->pid!=pidpadre) && (p!=&init_task)) p=p->next_task; if (p==&init_task) return (-1); for each_task (p) if (p->p_pptr->pid==pidpadre) {printf ( %d \n,p->p_pptr->pid); n_hijos++1;} printf ( El proceso %d tiene %d hijos\n,pidpadre,n_hijos); return (0); } Sistemas Operativos (-UJI) 111

112 Ejercicios Ejercicio 2: Desarrollar un algoritmo o un programa que genere una salida similar a la del comando pstree en el sistema operativo Linux. void pstree2 (); {struct task_struct *p; void pstree2_rec (struct task_struct *h); { hh=h->p_cptr; while (hh!=null) {printf ( Proc padre %d. Proc hijo %d\n,h->pid,hh->pid); pstree2_rec (hh); hh=hh->p_osptr; } return (0); } p=&init_task; pstree2_rec (p); return (0); } Sistemas Operativos (-UJI) 112

113 Ejercicios Ejercicio 3: Desarrollar un algoritmo o un programa que calcule de la forma más eficiente posible el número de procesos huérfanos que hay en un sistema Linux en un instante dado. Sistemas Operativos (-UJI) 113

114 Ejercicios Ejercicio 4: Desarrollar un algoritmo o un programa en el que, dado el número de identificación de un proceso Linux, se muestre el proceso hijo preparado para ejecución (en estado listo) que lleva más tiempo ejecutándose, ya sea en modo usuario o supervisor. Sistemas Operativos (-UJI) 114

115 Ejercicios Ejercicio 5: Supongamos que, en un instante dado, la lista de procesos preparados para ejecución de un sistema operativo linux es la que aparece a continuación y que el proceso en ejecución es el proceso 3. Qué proceso pasaría a ejecución si se invoca al planificador de linux? Justificar la respuesta. counter priority counter rt_priority rt_priority Proceso init... Política planificación Prioridad dinámica Prioridad estática... Proceso 1... FIFO Proceso 2... OTHER Proceso 3... RR Proceso 4... FIFO Proceso 5... RR Proceso 6... RR Proceso 7... OTHER Proceso 8... FIFO Sistemas Operativos (-UJI) 115

116 Ejercicios Ejercicio 5 (solución): 1. El proceso 3 se mueve al final de la lista 2. La función goodness proporciona las siguientes prioridades a los procesos de la lista de procesos listos: FIFO Other FIFO RR RR Other FIFO RR Proceso P1 P2 P4 P5 P6 P7 P8 P3 Weight Tras el bucle while c=1025 y next apunta al proceso P4 Sistemas Operativos (-UJI) 116

117 Ejercicios Ejercicio 6: Qué proceso seleccionaría el planificador de linux en un instante dado en el que hay dos procesos con la máxima prioridad y uno tiene asignada la política FIFO y otro RR? Solución: El primero que se encuentre en la lista (ver ejemplo del ejercicio 5). Sistemas Operativos (-UJI) 117

118 Ejercicios Ejercicio 8: En qué variaría la política de planificación de procesos de linux si en la función schedule se sustituye la línea if (weight > c) por lo siguiente: Solución: if (weight >= c)? En este caso, ante varios procesos con máxima prioridad se seleccionaría el último de ellos que esté en la lista de procesos listos del sistema. Consecuentemente, si estos procesos con la máxima prioridad tuviesen asignada una política de planificación FIFO, dejaría que cumplirse dicha política. Y lo mismo ocurriría con la política de planificación RR. Sistemas Operativos (-UJI) 118

119 Ejercicios Ejercicio 9: Explicar cómo se cumple la política FIFO en el planificador de procesos de linux cuando varios procesos con este tipo de política tienen la máxima prioridad. Sistemas Operativos (-UJI) 119

120 Ejercicios Ejercicio 9 (solución): Veámoslo con el siguiente ejemplo: PROCESO P1 P2 P3 P4 P5 P6 P7 P8 Política FIFO RR FIFO Other Other FIFO RR FIFO Prior. Estática Prior. Dinámica Weight Tras el bucle while c=1050 y next apunta al proceso P1. Si no apareciesen más procesos listos, cuando acabe la ejecución del proceso P1 el planificador seleccionará al siguiente proceso de la lista más prioritario, esto es, P3, que entró después de P1 en la lista. Si no hubiesen aparecido más procesos listos, cuando P3 finalice el proceso más prioritario sería P8, que había entrado en la lista tras P1 y P3. Resumiendo, los tres procesos FIFO con la prioridad máxima se ejecutan en el orden en que entraron en la lista. Sistemas Operativos (-UJI) 120

121 Ejercicios Ejercicio 10: Explicar la validez del siguiente código: #include <pthread.h> #include <stdio.h> #define MAX_THREADS 10 void * imprimir (int *n) { sleep (3); printf("hilo (%d): %d \n", pthread_self (),*n); pthread_exit (0); } int main () { int num; pthread_t hilo; pthread_attr_t attr; pthread_attr_init (&attr); pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); while (1) { scanf ( %d, &num); pthread_create (&hilo, &attr, imprimir, &num); } exit(0); Sistemas Operativos (-UJI) 121

Procesos. Planificación del Procesador.

Procesos. Planificación del Procesador. Procesos. Planificación del Procesador. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos

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. Curso 2016 Procesos

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

Más detalles

Gestión de procesos DEFINICIONES DE PROCESOS

Gestión de procesos DEFINICIONES DE PROCESOS DEFINICIONES DE PROCESOS Gestión de procesos Un programa en Ejecución. Una instancia de un programa ejecutándose en un computador. La entidad que se puede asignar o ejecutar en un procesador. Una unidad

Más detalles

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 1.- INTRODUCCIÓN A LOS PROCESOS 1.1.- Concepto 1.2.- Composición y estructura 1.3.- Estados y transiciones 2.- COMUNICACIÓN ENTRE PROCESOS

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso Requerimientos Principales de un Sistema Operativo Descripción y Control de Procesos Capítulo 3 Entrelazar la ejecución de varios procesos para maximizar el uso del procesador a la vez que se mantiene

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 Procesos cooperativos. 4.4 Hilos (threads). Informática (Segovia) 1 4.1 El concepto de proceso.

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux Sistemas operativos: una visión aplicada Capítulo 11 Estudio de casos: Linux Contenido Historia de Linux Características y estructura de Linux Gestión de procesos Gestión de memoria Entrada/salida Sistema

Más detalles

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2014 Planificación Sistemas Operativos Curso 2014 Planificación Agenda Introducción. Despachador. Clases de procesos. Esquemas de planificación. Criterios de planificación. Algoritmos de planificación. FCFS. SJF. Prioridad.

Más detalles

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1 Procesos Procesos Mario Medina [email protected] El sistema operativo como administrador de procesos Controla la ejecución de procesos para optimizar criterios Asigna recursos a procesos Facilita sincronización

Más detalles

TEMA 2. GESTIÓN DE PROCESOS

TEMA 2. GESTIÓN DE PROCESOS TEMA 2. GESTIÓN DE PROCESOS 2.1. Estados y transiciones de un proceso. 2.1.1. Ciclo de vida de un proceso en UNIX. Conjunto de estados. 2.1.2. Control sobre algunas transiciones a nivel de usuario. 2.1.3.

Más detalles

Sistemas Operativos. Curso 2015 Planificación

Sistemas Operativos. Curso 2015 Planificación Sistemas Operativos Curso 2015 Planificación Agenda Introducción. Despachador. Clases de procesos. Esquemas de planificación. Criterios de planificación. Algoritmos de planificación. FCFS. SJF. Prioridad.

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

1. Sistema Operativo Unix

1. Sistema Operativo Unix 1. Sistema Operativo Unix 1.1 Introducción al S.O. Unix y su entorno 1.2 Subsistema de Archivos 1.3 Subsistema de Procesos 1.4 Políticas de Gestión de Memoria Dpto. Lenguajes y Sistemas Informáticos. Universidad

Más detalles

Procesos. Bibliografía. Threads y procesos. Definiciones

Procesos. Bibliografía. Threads y procesos. Definiciones Procesos Prof. Mariela Curiel Bibliografía A. Tanembaum & M. Van Steen. Sistemas Distribuidos. Principios y Paradigmas. 2da. Edición. Smith & Nair. The Architecture of Virtual Machines. IEEE Computer.

Más detalles

Unidad II: Administración de Procesos y del procesador

Unidad II: Administración de Procesos y del procesador Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros

Más detalles

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos 1.- Notas y criterios para los problemas de planificación NOTA GENERAL: Normalmente los enunciados no son rigurosamente completos,

Más detalles

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Planificación de Procesos Módulo 5 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Planificación de Procesos Conceptos Básicos Criterios de Planificación

Más detalles

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005 Ingeniería Superior de Informática. Curso º. Sistemas Operativos. Examen Final. TEORÍA. de Enero de 005 Nombre: DNI:. ( puntos). La TFA es la tabla que, en UNIX, guarda los punteros de posición de cada

Más detalles

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor. El soporte del sistema operativo Objetivos y funciones del sistema operativo Comodidad Hace que un computador sea más fácil de usar. Eficiencia Permite que los recursos del computador se aprovechen mejor.

Más detalles

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa Memoria Virtual Capítulo 8 Hardware y Estructuras de Control Las referencias de memoria se traducen a direcciones físicas dinámicamente en tiempo de ejecución Un proceso puede ser intercambiado hacia dentro

Más detalles

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación. EJERCICIOS DE PLANIFICACIÓN: 1) Un sistema informático posee los siguientes recursos: - una CPU - tres unidades de almacenamiento UAM1, UAM2 y UAM3. En nuestro sistema tenemos dos tipos de procesos: Tipo

Más detalles

Sistemas Operativos - Funciones del sistema operativo» Cargar y ejecutar programas (procesos)» Facilitar funciones de E/S» Controlar y distribuir el acceso a los recursos» Controlar errores Componentes

Más detalles

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución Tema 8 Procesos 8.1 Aspectos básicos de los procesos 8.1.1 Concepto de proceso * Definición informal: un proceso es un programa en ejecución Un programa ejecutable es un conjunto de instrucciones y datos

Más detalles

2. Sistema Operativo Windows

2. Sistema Operativo Windows 2. Sistema Operativo Windows 2.1 Introducción al S.O. Windows NT y Windows 2000 2.2 Subsistema de Archivos 2.3 Subsistema de Procesos 2.4 Gestión de Memoria Dpto. Lenguajes Tema y 2: Sistemas 2. Sistema

Más detalles

Procesos. Lecturas recomendadas. Ejemplo: gcc. Modelo de procesamiento. Modelo de procesamiento. Jean Bacon Operating Systems (4)

Procesos. Lecturas recomendadas. Ejemplo: gcc. Modelo de procesamiento. Modelo de procesamiento. Jean Bacon Operating Systems (4) Índice Procesos Gustavo Romero 1 Definición 2 Control Arquitectura y Tecnología de Computadores 14 de febrero de 2014 3 Estado 4 IPC Gustavo Romero Procesos (1/50) Gustavo Romero Procesos (2/50) Lecturas

Más detalles

Modelo de procesamiento

Modelo de procesamiento Índice Lecturas recomendadas Procesos Gustavo Romero López Arquitectura y Tecnología de Computadores 15 de mayo de 2015 1 Definición 2 Control 3 Estado 4 IPC Jean Bacon Operating Systems (4) Abraham Silberschatz

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

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Tema 6. Gestión de la memoria

Tema 6. Gestión de la memoria Tema 6. Índice Introducción Compartición de memoria Memoria virtual Soporte en los procesadores: la MMU en Linux en Windows NT/2000 1 Tema 6. Introducción Necesidad de la gestión de la memoria Requisitos

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 5: Planificación de procesos. 5.1 Criterios y tipos de planificación. 5.2 Algoritmos de planificación. 5.3 Métodos multicolas y multiprocesadores. 5.4 Evaluación de políticas

Más detalles

Sistemas Operativos Tema 6. Planificación de procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos Tema 6. Planificación de procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana Sistemas Operativos Tema 6. Planificación de procesos 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenido Modelo del sistema y criterios de rendimiento Algoritmo FCFS Algoritmo SJF

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

Mensajes. Interbloqueo

Mensajes. Interbloqueo CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya ([email protected]) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema

Más detalles

Sistemas Operativos Práctica 4

Sistemas Operativos Práctica 4 Sistemas Operativos Práctica 4 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

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas:

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas: 1 Introducción LABORATORIO 2 En esta tarea se desea implementar un servicio sincronización de procesos a través de semáforos binarios con prioridad para el sistema operativo Linux. Para esto se deberá

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Examen de Fundamentos de sistemas distribuidos

Examen de Fundamentos de sistemas distribuidos Examen de Fundamentos de sistemas distribuidos Tiempo total: 2 horas Problema: Programa: Rendezvous con semáforos(5 puntos) Utilizando como único mecanismo de sincronización los semáforos descritos en

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Sistemas Operativos II Febrero 2009 Nombre:

Sistemas Operativos II Febrero 2009 Nombre: Sistemas Operativos II Febrero 2009 Nombre: ITIS Castellano Ejercicio 1 [1,5 puntos] El siguiente cronograma representa la ejecución de tres procesos en un sistema operativo durante 28 ticks. Inicialmente,

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:

Sea el siguiente programa de nombre c0p1 para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide: Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): 1 /* c0p1 origen destino 2 * Copia "origen" sobre "destino" byte a byte, 3 * haciendo

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Requerimientos principales de un sistema operativo

Requerimientos principales de un sistema operativo Descripción y control de procesos Requerimientos principales de un sistema operativo Intercalar la ejecución de varios procesos para maximizar el uso del procesador proporcionando un tiempo de respuesta

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones

Más detalles

Estructuras de Sistemas Operativos

Estructuras de Sistemas Operativos Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar

Más detalles

Unidad 2: Gestión de Memoria

Unidad 2: Gestión de Memoria Unidad 2: Gestión de Memoria Tema 3, Gestión de Memoria: 3.1 Definiciones y técnicas básicas. 3.2 Gestión de memoria contigua: Partición, fragmentación, algoritmos de ubicación... 3.3 Paginación: Estructura

Más detalles

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN.

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN. Tema 11 Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. El sistema operativo es básicamente un programa que controla los recursos del computador, proporciona servicios a

Más detalles

Examen de Arquitectura de Computadores

Examen de Arquitectura de Computadores Examen de Arquitectura de Computadores Examen del primer parcial Ingeniería de Telecomunicación 21 de febrero de 2003 El examen consta de dos partes: Normas PARTE PRIMERA (40 % de la calificación final)

Más detalles

Señal de petición de Interrupción

Señal de petición de Interrupción Consideren una tarea que require tomar caracteres desde un teclado y mostrarlos en la pantalla de un monitor. La tasa de transferencia desde un teclado a un computador está limitado por la velocidad del

Más detalles

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Práctico de Procesos, Hilos y Deadlock

Práctico de Procesos, Hilos y Deadlock Sistemas Operativos Práctico de Procesos, Hilos y Deadlock Universidad Nacional de Córdoba FaMAF Ejercicio 1.. Indique cuantas letras a imprime este programa, describiendo su funcionamiento. printf("a\n");

Más detalles

Concurrencia: Exclusión mutua y Sincronización

Concurrencia: Exclusión mutua y Sincronización Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas

Más detalles

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010 Hilos, comunicación y competencia entre procesos Dr. Alonso Ramírez Manzanares 2-Sep-2010 Implementación de procesos Se mantiene una tabla de procesos con una entrada por cada proceso: Con lo cual tenemos

Más detalles

Capítulo 4 Gestión de memoria

Capítulo 4 Gestión de memoria Sistemas operativos: una visión aplicada Capítulo 4 Gestión de memoria Contenido Objetivos del sistema de gestión de memoria Modelo de memoria de un proceso Esquemas de memoria basados en asignación contigua

Más detalles

Taller de sistemas operativos PLANIFICADOR

Taller de sistemas operativos PLANIFICADOR Taller de sistemas operativos PLANIFICADOR Agenda Introducción Clases de planificación Prioridades Timeslice Prioridad dinámica Estructuras del planificador Planificador en funcionamiento Nuevo planificador

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas. Contenido Sistema de archivos Operaciones sobre archivos Métodos de acceso a archivos Directorio Sistema de archivos por capas Espacio libre Sistema de archivos Proporciona el mecanismo para el almacenamiento

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas: Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen parcial, 11 de mayo de 2002 SOLUCIONES Calificación 1 2 3 4 5 1 (2 5 puntos)

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: INTERRUPCIONES La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: a)consultas (POLLING): Se comprueban cíclicamente,

Más detalles

ESTRUCTURAS BÁSICAS DE UN S.O.

ESTRUCTURAS BÁSICAS DE UN S.O. PROCESOS ESTRUCTURAS DE DATOS BCP PROCESOS OPERACIONES SOBRE LOS PROCESOS ESTADOS DE LOS PROCESOS PLANIFICACIÓN DE LA CPU ALGORITMOS NO APROPIATIVOS ALGORITMOS APROPIATIVOS EVALUACIÓN DE LAS POLÍTICAS

Más detalles

Hacemos que tu negocio se mueva. Plataforma de ventas. www.movilidapp.com. 2014 movilidapp

Hacemos que tu negocio se mueva. Plataforma de ventas. www.movilidapp.com. 2014 movilidapp Hacemos que tu negocio se mueva Plataforma de ventas www.movilidapp.com 2014 movilidapp NUESTRA PLATAFORMA DE VENTAS Nuestra plataforma de ventas permite gestionar la realización de pedidos de sus productos

Más detalles

Tema 2: Implementación del núcleo de un Sistema Operativo

Tema 2: Implementación del núcleo de un Sistema Operativo Tema 2: Implementación del núcleo de un Sistema Operativo 1. Sistema Operativo Unix 2. Sistema Operativo Windows (a partir de NT) Dpto. Lenguajes y Sistemas Informáticos. Universidad de Granada 1 1. Sistema

Más detalles

DESCRIPCION DEL SITEMA MASTER.

DESCRIPCION DEL SITEMA MASTER. DESCRIPCION DEL SITEMA MASTER. ESTRUCTURA. El sistema MASTER (Sistema Modular para Control Adaptativo en Tiempo Real) se ha implementado en base a un computador compatible PC-AT, dotado de una tarjeta

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV Sistemas Operativos I Tema 3 Procesos Equipo de Sistemas Operativos DISCA / DSIC UPV Introducción Existen varias razones para permitir la ejecución concurrente de procesos: Compartir recursos físicos Compartir

Más detalles

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 1. [PROCESOS] a) Considerar el siguiente código: void main() { int j=10; pid_t pid; for (int i=0; i

Más detalles

Tarea 4.2 Memoria Virtual

Tarea 4.2 Memoria Virtual 1 Tarea 4.2 1. Cuál es la diferencia entre paginación simple y paginación en memoria virtual? En memoria virtual no es necesario que todas las páginas estén en marcos de la memoria principal. Las páginas

Más detalles

CÓMO TRABAJA TU SISTEMA OPERATIVO?

CÓMO TRABAJA TU SISTEMA OPERATIVO? CÓMO TRABAJA TU SISTEMA OPERATIVO? AUTORÍA MARÍA CATALÁ CARBONERO TEMÁTICA SISTEMAS OPERATIVOS ETAPA CICLO MEDIO Y SUPERIOR DE INFORMÁTICA Resumen Los sistemas operativos nacen de la informática. Su función

Más detalles

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente: (3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores

Más detalles

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS TELEPROCESOS Y SISTEMAS DISTRIBUIDOS Semana 11 Integrantes: Cantera Salazar, Julissa A. Yalico Tello, Diana Accho Flores, Wilber En una red Trabajo en Grupo se puede compartir, o hacer disponibles a través

Más detalles

Sistemas Operativos I

Sistemas Operativos I Sistemas Operativos I Parte 3 Arnoldo Díaz Ramírez [email protected] Septiembre de 2007 Unidad 3 Planificación Planificación El planificador es un módulo del sistema operativo que asigna tiempo de

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Contenido. Sistemas de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida

Contenido. Sistemas de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida Contenido Sistemas de Categorias de los Dispositivos de En qué se diferencian los dispositivos de? Técnicas para realizar la E/S Interrupciones Interfaces involucradas en E/S Buffering Categorias de los

Más detalles

Sistemas Operativos Tema 3 Procesos

Sistemas Operativos Tema 3 Procesos Sistemas Operativos p. 1/63 Sistemas Operativos Tema 3 Procesos http://www.ditec.um.es/so Departamento de Ingenieria y Tecnologia de Computadores Universidad de Murcia Sistemas Operativos p. 2/63 Índice

Más detalles

Administración Local Soluciones

Administración Local Soluciones SISTEMA INTEGRADO DE GESTIÓN DE EXPEDIENTES MODULAR (SIGM) MANUAL DE USUARIO DE ARCHIVO PRÉSTAMOS Y CONSULTAS SIGM v3 Administración Local Soluciones Control de versiones Versión Fecha aprobación Cambio

Más detalles

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan [email protected]

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan alvaro.ospina@correo.upb.edu.co Sistemas de archivos distribuidos Alvaro Ospina Sanjuan [email protected] >Abstracción del sistema operativo para representar y organizar los recursos de almacenamiento >Se debe hacer la

Más detalles

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. Unidad de E/S 1 Unidad de E/S Indice Introducción.

Más detalles

Sistemas de Operación II

Sistemas de Operación II Sistemas de Operación II Sistemas de Archivos Distribuidos Prof. Carlos Figueira Basado en material de Yudith Cardinale (USB) Andrew Tanembaum y Marteen van Steen Contenido Introducción Requisitos Aspectos

Más detalles

SEGURIDAD Y PROTECCION DE FICHEROS

SEGURIDAD Y PROTECCION DE FICHEROS SEGURIDAD Y PROTECCION DE FICHEROS INTEGRIDAD DEL SISTEMA DE ARCHIVOS ATAQUES AL SISTEMA PRINCIPIOS DE DISEÑO DE SISTEMAS SEGUROS IDENTIFICACIÓN DE USUARIOS MECANISMOS DE PROTECCIÓN Y CONTROL INTEGRIDAD

Más detalles

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación 3.- Procesos Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor Sistema de Batch jobs Sistema

Más detalles

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas Módulos: Módulo 1 Hardware & Arquitectura de sistemas - 20 Horas Este módulo permite conocer y configurar los elementos básicos del hardware del sistema, como también otros componentes adicionales como

Más detalles

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia.

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia. PROGRAMACION CONCURRENTE I.2 Recursos para la concurrencia. J.M. Drake 1 Procesos Concurrentes Concepto de proceso. Estructura de los procesos. Estados de un proceso. Gestión de los procesos. 2 2 Plataforma

Más detalles

Capítulo 1 Introducción a la Computación

Capítulo 1 Introducción a la Computación Capítulo 1 Introducción a la Computación 1 MEMORIA PRINCIPAL (RAM) DISPOSITIVOS DE ENTRADA (Teclado, Ratón, etc) C P U DISPOSITIVOS DE SALIDA (Monitor, Impresora, etc.) ALMACENAMIENTO (Memoria Secundaria:

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador Sistemas operativos avanzados 1.3 Algoritmos de planificación del procesador Parámetros Cuando tenemos más de un proceso en condiciones de ejecutar, debemos escoger uno de entre ellos. Para escogerlo empleamos

Más detalles

Tema 4 El paradigma cliente-servidor

Tema 4 El paradigma cliente-servidor Tema 4 El paradigma cliente-servidor F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de

Más detalles

TEMA 7. GESTIÓN DE PROCESOS

TEMA 7. GESTIÓN DE PROCESOS TEMA 7. GESTIÓN DE PROCESOS 1. EL BLOQUE DE CONTROL DE PROCESOS... 1 1.1.- CAMBIO DE CONTEXTO... 2 2. ESTADO DE LOS PROCESOS... 2 2.2.- TRANSICIONES DE ESTADO... 3 2.3.- OPERACIONES SOBRE PROCESOS... 4

Más detalles