Tema 2. Procesos e hilos
|
|
|
- Héctor Silva Fidalgo
- hace 10 años
- Vistas:
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. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos
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
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
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
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
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
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
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.
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
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.
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
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.
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.
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 /
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
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.
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
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,
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
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
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.
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
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
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
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
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
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
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
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...
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
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
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
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
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
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
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
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
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
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á
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
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
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
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,
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
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
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
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
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
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
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
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
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)
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
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
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
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");
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
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
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
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
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
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
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
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
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)
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
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,
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
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
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
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
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?...
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
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
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
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
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
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
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
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
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
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
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
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
Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan [email protected]
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
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.
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
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
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ó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
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
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:
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
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
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
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
