Escolar Documentos
Profissional Documentos
Cultura Documentos
243x159 1
Procesos y subprocesos
Manejo de procesos
585x395 3
Parte 1
Procesos
UNIVERSIDAD DE CUENCA
Procesos
A un servidor Web le llegan peticiones, verifica si la pgina est en cach, sino la busca en disco. Mientras esto se realiza, le llegan muchas ms peticiones Se necesita una forma de modelar y controlar esta concurrencia. Los proceso e hilos ayudan en esta tarea En computadoras de escritorio tambin se realizan tareas concurrentemente En cualquier sistema de multiprogramacin, la CPU conmuta de proceso a otro en d i dcimas o centsimas i d de milisegundos. ili d L La CPU ejecuta j un solo l proceso a l la vez.
UNIVERSIDAD DE CUENCA
El modelo de procesos
Todo el software ejecutable en la computadora se organiza en varios procesos secuenciales Un proceso es una instancia de un programa, incluye los valores del contador de programa, registros y variables Cada proceso tiene su propia CPU virtual (En la realidad es la CPU conmutada) La conmutacin rpida de proceso a proceso se denomina multiprogramacin
UNIVERSIDAD DE CUENCA
El modelo de procesos
La velocidad de conmutacin no es la misma entre procesos debido a la naturaleza del proceso (Entrada/salida, clculos, accesos a memoria, etc) Existe un solo contador fsico. Cuando se ejecuta cada proceso se carga su contador lgico en el contador fsico
UNIVERSIDAD DE CUENCA
Una persona va a cocinar una torta, tiene la receta y la cocina bien equipada. La receta es el programa: un algoritmo La persona es el CPU Los ingredientes son los datos de entrada El pastel es la salida El proceso es la actividad de leer la receta, usar los ingredientes y hornear el pastel A mitad i dd del l proceso su hij hijo entra a l la cocina i yl le di dice que una abeja b j l lo pic. i L La persona registra el punto actual en la receta (estado del proceso), saca un libro de primeros auxilios y lo lee. Luego de ocuparse de esto, la persona regresa a la receta del pastel Un proceso es una actividad de cierto tipo: tiene un programa, una entrada, una salida y un estado
UNIVERSIDAD DE CUENCA
Creacin de un proceso
Existen cuatro eventos que provocan la creacin de procesos: 1. El arranque del sistema: procesos en segundo plano (demonios) 2. La ejecucin, desde un proceso, de una llamada al sistema para la creacin de procesos 3. Una peticin de usuario para crear un proceso 4 El i 4. inicio i i d de un trabajo b j por l lotes
Los procesos que corren en background se los conoce como demonios o servicios En Unix y Windows, cuando se crea un proceso, el padre y el hijo tienen su propio espacio de direcciones
UNIVERSIDAD DE CUENCA
Creacin de un proceso
En Unix solo hay una llamada al sistema para crear procesos: fork Esta llamada crea un clon exacto del proceso que la ejecut Luego el proceso hijo ejecuta la llamada al sistema: execve para cambiar su imagen de memoria y ejecutar un nuevo programa En windows una sola llamada a una funcin de Win32: CreateProcess, maneja la creacin de procesos y carga el programa correcto en el nuevo proceso
UNIVERSIDAD DE CUENCA
Terminacin de procesos
Un proceso puede terminar debido a las siguientes condiciones: 1. Salida normal (voluntaria) 2. Salida por error (voluntaria) 3. Error fatal (involuntaria) 4. Eliminado por otro proceso (involuntaria)
UNIVERSIDAD DE CUENCA
Jerarquas de procesos
En algunos sistemas un proceso padre y un proceso hijo continan asociados. Un proceso hijo puede crear ms procesos hijo, formando de esta manera una jerarqua En Unix, un proceso, sus hijos y sus descendientes forman un grupo de procesos Cuando un usuario enva una seal por el teclado teclado, esta se enva a todos los miembros del grupo de procesos asociado al teclado (los proceso activos que se crearon en la ventana) Windows Wi d no tiene i un concepto d de j jerarqua d de procesos, todos d l los procesos son iguales.
UNIVERSIDAD DE CUENCA
Estados de un proceso
A menudo los procesos necesita interactuar unos con otros. Un proceso puede generar una cierta entrada para otro proceso Se pueden tener 3 estados de un proceso: 1. En ejecucin (el que est usando la CPU en ese instante) 1 2. Listo (ejecutable, se detuvo temporalmente para que se ejecute otro proceso) 3. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento)
UNIVERSIDAD DE CUENCA
Para implementar el modelo de procesos el SO mantiene una tabla llamada tabla de procesos (una entrada por cada proceso) Esta entrada contiene informacin importante del proceso: contador de programa, apuntador de pila, asignacin de memoria, estado de archivos abiertos, informacin de contabilidad y planificacin
UNIVERSIDAD DE CUENCA
UNIVERSIDAD DE CUENCA
Con cada clase de E/S hay una ubicacin asociada a la cual se llama vector de interrupcin. Esta ubicacin contiene la direccin del procedimiento del servicio de interrupciones Todas las interrupciones empiezan por guardar los registros en la entrada de la tabla de procesos para el proceso actual
UNIVERSIDAD DE CUENCA
Modelacin de la multiprogramacin
Un proceso gasta una fraccin p de su tiempo esperando a que se complete una operacin de E/S. Con n proccesos en memoria a la vez, la probabilidad de que todos los n procesos estn esperando la E/S es pn El uso de la CPU se obtiene mediante la frmula UsoCPU = 1 pn
UNIVERSIDAD DE CUENCA
585x395 3
Parte 2
Hilos
UNIVERSIDAD DE CUENCA
Uso de hilos
A los hilos se los conoce como miniprocesos, procesos dentro de otros procesos La razn principal para tener hilos es que en muchas aplicaciones se desarrollan varias actividades a la vez Se tiene la habilidad de que los hilos que se ejecutan paralelamente paralelamente, comparten un espacio de direcciones y los datos entre ellas (lo opuesto a los procesos que no comparten ni espacio de direcciones ni datos) Los hil L hilos son procesos li ligeros, son ms f fciles il d de crear y d destruir. i C Corren d de 10 a 100 veces ms rpido que un proceso Los hilos son tiles en sistemas con varios procesadores, debido a que es posible el paralelismo
UNIVERSIDAD DE CUENCA
Ejemplos de hilos
UNIVERSIDAD DE CUENCA
El hilo tiene: un contador del programa, registros de variables de trabajo, pila de historial de ejecucin, conjunto de valores para cada procedimiento al que se haya llamado pero no hay respondido todava Lo que agregan los hilos al modelo de procesos es permitir que se lleven a acabo ejecuciones en el mismo entorno del proceso El trmino multihilamiento describe la situacin de permitir la ejecucin de varios hilos dentro del mismo proceso
UNIVERSIDAD DE CUENCA
Los hilos comparten las mismas variables globales. Cada hilo puede acceder a cada direccin de memoria dentro del espacio de direcciones del proceso, un hilo puede leer, escribir o borrar la pila de otro hilo No hay proteccin entre los hilos Un usuario dueo de un proceso crea varios hilos para que cooperen, no para que peleen Comparten:
UNIVERSIDAD DE CUENCA
Si un hilo abre un archivo, este es visible y utilizable por los dems hilos, es decir, los dems hilos pueden escribir y leer contenido en ese archivo Un hilo puede en estar en uno de varios estados: ejecucin, bloqueado, listo o terminado Cada hilo tiene su propia pila. Esto debido a que cada hilo llama a distintos procedimientos y por ende, tiene un historial de ejecucin diferente.
UNIVERSIDAD DE CUENCA
Hilos en POSIX
Para que sea posible escribir programas con hilos porttiles, el IEEE ha definido un estndar para los hilos conocido como 1003.1c el paquete de hilos se conoce como Pthreads. La mayora de sistemas UNIX acepta este paquete El estndar define ms de 60 llamadas a funciones Cada hilo tiene un identificador, un conjunto de registros y un conjunto de atributos que son almacenados en una estructuar
UNIVERSIDAD DE CUENCA
585x395 3
Parte 3
IPC
UNIVERSIDAD DE CUENCA
Con frecuencia los procesos necesitan comunicarse entre ellos Existen varias cuestiones a ser respondidas: Como un proceso pasa informacin a otro? Como hacer que dos o ms proceso no se interpongan? Como lograr una secuencia de procesamiento correcto, cuando existen varios procesos dependientes?
UNIVERSIDAD DE CUENCA
Condicin de carrera
En algunos sistemas, los procesos que trabajan en conjunto pueden compartir cierto espacio de almacenamiento en el que pueden leer y escribir datos Ejemplo: spooler de impresin Cuando un proceso desea imprimir un archivo, introduce el nombre del archivo en un directorio de spooler. spooler El demonio de impresin comprueba en forma peridica si hay archivos que deban imprimirse Condiciones donde 2 o ms procesos estn leyendo o escribiendo algunos datos compartidos y el resultado final depende de quin ejecuta, se conocen como condiciones de carrera
UNIVERSIDAD DE CUENCA
Regiones crticas
Se debe buscar prohibir que ms de un proceso lea y escriba los datos compartidos al mismo tiempo (Exclusin mutua) Una regin crtica es la memoria compartida entre procesos. Se debe ordenar las cosas para que dos procesos nunca estn en sus regiones crticas al mismo tiempo Se necesitan cumplir con cuatro condiciones: 1 N 1. No puede d h haber b d dos procesos d de manera simultnea i l d dentro d de sus regiones i crticas 2. No pueden hacerse suposiciones acerca de las velocidades o el nmero de CPU (ejecucin no determinista) 3. Ningn proceso que se ejecute fuera de su regin crtica puede bloquear otros procesos 4. Ningn proceso puede esperar para siempre para entrar a su regin crtica
UNIVERSIDAD DE CUENCA
UNIVERSIDAD DE CUENCA
A continuacin se analizarn varias proposiciones para lograr la exclusin mutua, de manera que mientras un proceso est ocupada actualizando la memoria compartida en su regin crtica, ningn otro proceso puede entrar a su regin crtica y ocasionar problemas
UNIVERSIDAD DE CUENCA
Deshabilitando interrupciones
en un sistema con un solo procesador, la solucin ms simple es hacer que cada proceso deshabilite todas las interrupciones justo despus de entrar a su regi crtica y las rehabilite justo despus de salir No pueden ocurrir interrupciones de reloj (la CPU conmuta de un proceso a otro solo como resultado de una interrupcin del reloj) Con las interrupciones deshabilitadas no existir conmutacin P bl Problemas: - Que un proceso deshabilite las interrupciones y no las devuelva - En un sistema multiprocesador, solo se deshabilitar un ncleo, los dems seguirn activos
UNIVERSIDAD DE CUENCA
Deshabilitando interrupciones
Este acercamiento est dejndose de usar debido al creciente nmero de chips multincleo que se encuentran hasta en PCs de bajo rendimiento
UNIVERSIDAD DE CUENCA
Variables de candado
Esta es una solucin de software Por ejemplo se puede tener una variable (candado) que inicialmente es 0. cuando un proceso desea entrar a su regin crtica primero evala el candado. Si el candado es 0, el proceso fija en 1 y entra a la regin crtica. Si el candado ya es 1, slo espera hasta que el canado se haga 0 Un 0 significa que ningn proceso est en su regin crtica y un 1 significa que el proceso debe esperar hasta que el candado se haga 0 Est solucin no funciona si es que se produce una condicin de carrera
UNIVERSIDAD DE CUENCA
Dos procesos comparten un buffer comn de tamao fijo. El productor coloca informacin en el buffer y el consumidor lee esta informacin del buffer El problema se da cuando el productor desea colocar un nuevo elemento en el buffer, pero este ya se encuentra lleno. El productor se duerme (desactiva) y se despierte cuando el consumidor haya ledo algn dato del buffer y existan espacio Se debe tener una variable contador para el nmero de elementos en el buffer actuales Cada uno de los procesos comprueba si el otro se debe despertar
UNIVERSIDAD DE CUENCA
Semforos
E. W. Dijkstra sugiri el uso de una variable entera para contar el nmero de seales de despertar, guardadas para un uso futuro (semforo) Un semforo tiene un valor de 0 cuando no se guardaron seales de despertar o algn valor positivo si estuvieran pendientes una o ms seales de despertar Tiene 2 operaciones down y up (sleep y wakeup). La operacin down verifica si el semforo es mayor a 0, de ser as disminuye el valor del semforo. La operacin L i up i incrementa el l valor l d del l semforo. f Si uno o ms procesos estaban b esperando esa seal, el sistema selecciona uno de ellos al azar y permite que complete su operacin down
UNIVERSIDAD DE CUENCA
Los semforos resuelven el problema de prdida de seales de despertar. Lo normal es implementar up y down como llamadas al sistema, en donde el sistema operativo deshabilita brevemente todas las interrupciones, mientras evala el semforo
UNIVERSIDAD DE CUENCA
Mutexes
Son usados cuando no se necesita la habilidad del semforo de contar Es una variable que puede estar en uno de los dos estados: abierto (desbloqueado) o cerrado (bloqueado) Cuando un hilo necesita acceso a una regin crtica Si el mutex est actualmente abierto, el hilo llamador puede entrar a la regin crtica Si el mutex est cerrado, el hilo que hizo la llamada se bloquea hasta que el hilo que est en la regin crtica termine
UNIVERSIDAD DE CUENCA
Monitores
Son abstracciones de mayor nivel Es una coleccin de procedimientos, variables y estructuras de datos que se agrupan en un tipo especial de mdulo o paquete Los procesos pueden llamar a los procedimientos en un monitor cuando lo deseen deseen, pero no pueden acceder a sus estructuras de datos desde procedimientos fuera del monitor S l puede Solo d h haber b un solo l proceso activo i en un monitor i en cualquier l i i instante
UNIVERSIDAD DE CUENCA
Planificacin
Cuando varios procesos o hilos compiten por el procesador, hay que decidir cul proceso se va a ejecutar a continuacin La parte del SO que realiza esta operacin se llama planificador de procesos y el algoritmo que utiliza se lo conoce como algoritmo de planificacin En los antiguos sistemas en batch, el algoritmo de planificacin era muy simple, ejecutaba el siguiente trabajo en la cinta magntica
UNIVERSIDAD DE CUENCA
Este mtodo de comunicacin entre procesos utiliza dos primitivas (send y receive) que son llamadas al sistema en vez de construcciones del lenguaje send(destino, &mensaje) receive(origen, &mensaje)
UNIVERSIDAD DE CUENCA
585x395 3
Parte 4
Pl ifi Planificacin i
UNIVERSIDAD DE CUENCA
Planificacin
Cuando varios procesos estn en estado listo y solo hay una CPU, hay que decidir cual proceso de va a ejecutar a continuacin La parte del SO que realiza esta tarea se llama planificador de procesos y el algoritmo que usa se lo conoce como algoritmo de planificacin En las primeras pocas de la programacin donde imperaban los trabajos por lotes, el algoritmo era simple, se ejecutaban los procesos en orden Con l C la multiprogramacin li i este algoritmo l i se volvi l i mas complejo. l j Al Algunos mainframes todava usan ambas tcnicas. Deciden si el trabajo es parte de un procesamiento por lotes o de una sesin interactiva
UNIVERSIDAD DE CUENCA
Planificacin
Al tratarse de procesos en una computadora personal, el planificador no se complica demasiado. Los procesadores actuales tienen capacidad de cmputo suficiente para servir las peticiones con velocidad Este panorama cambia con los procesos en sistemas de servidor. El SO debe escoger entre los procesos de usuario y procesos locales que son clave para el sistema operativo
UNIVERSIDAD DE CUENCA
Comportamiento de procesos
El proceso a usa ms CPU que E/S El proceso b usa ms E/S que CPU Los procesos tienden ms hacia un escenario b debido a que los procesadores se desarrollan ms rpido que los discos duros
UNIVERSIDAD DE CUENCA
1. Cuando se crea un nuevo proceso. Se debe elegir cual de los 2 procesos, el padre o el hijo deben ser ejecutados. Ambos procesos estn en estado listo 2. Cuando un proceso termina. Ese proceso ya no se debe ejecutar (por que ya no existe). Se debe elegir otro proceso. De no haber otro proceso, se ejecuta uno inactivo suministrado por el sistema inactivo 3. Cuando un proceso de bloquea por esperar una operacin de E/S, un semforo, etc. 4. Cuando ocurre una interrupcin de E/S. Esto podra hacer que un proceso que estuvo esperando una operacin de E/S despierte y necesite ser ejecutado
UNIVERSIDAD DE CUENCA
Algoritmos de planificacin
Los algoritmos de planificacin se dividen en 2 categoras: 1. No apropiativos: este algoritmo selecciona un proceso para ejecutarlo y despus slo deja que se ejecute hasta que el mismo de bloquea o hasta que libera la CPU de forma voluntaria 2. Apropiativos: selecciona un proceso y deja que se ejecute por un mximo de tiempo fijo. Si sigue en ejecucin al final del intervalo de tiempo, se suspende y el planificador selecciona otro proceso para ejecutarlo. Es necesario que ocurra una interrupcin i i d de reloj l j al l fi final ld del li intervalo l
UNIVERSIDAD DE CUENCA
Lo que el planificador debe optimizar no es lo mismo en todos los sistemas operativos. 1. Procesamiento por lotes Nminas, inventarios Nminas inventarios, cuentas por cobrar cobrar, cuentas por pagar pagar, clculos de inters inters. Aqu son aceptables los algoritmos no apropiativos 2. Interactivo Son aceptables los algoritmos apropiativos para que un proceso no acapare toda la CPU y niegue el servicio a los dems
UNIVERSIDAD DE CUENCA
4. De tiempo real A veces la apropiacin es no es necesaria por que los procesos saben que no se pueden ejecutar durante periodos extensos. Realizan su trabajo y se bloquean con Rapidez. La diferencia con un sistema interactivo es que los sistemas en tiempo Real ejecutan programas destinados para ampliar la aplicacin en cuestin
UNIVERSIDAD DE CUENCA
Para todos los sistemas: Equidad: otorgar a cada proceso una parte justa de la CPU Aplicacin de polticas: verificar que se cumplan Balance: mantener ocupadas todas las partes del sistema Para los sistemas de procesamiento por lotes: Rendimiento: maximizar el nmero de trabajos por hora Ti Tiempo d retorno: minimizar de i i i el l tiempo i entre l la entrega y l la terminacin i i Utilizacin de la CPU: Mantener ocupada la CPU todo el tiempo
UNIVERSIDAD DE CUENCA
Para sistemas interactivos: Tiempo de respuesta: responder a las peticiones con rapidez Proporcionabilidad: cumplir las expectativas de los usuarios Para sistemas de tiempo real: Cumplir con los plazos: evitar perder datos Predictabilidad: evitar la degradacin de la calidad en los sistemas multimedia
UNIVERSIDAD DE CUENCA
Primero en entrar, primero en ser atendido: La CPU se asigna a los procesos en el orden en el que la solicitan. Hay una sola cola de procesos listos Un trabajo no se interrumpo an y si se ha ejecutado demasiado tiempo Cuando un trabajo se bloquea, vuelve al estado listo E fcil Es f il d de comprender, d programar y equitativo i i Tiene una importante desventaja. Es un algoritmo muy lento si se tienen muchas operaciones de E/S en el proceso
UNIVERSIDAD DE CUENCA
El trabajo ms corto primero: Asume que los tiempos de ejecucin se conocen de antemano. Cuando hay varios trabajos de igual importancia esperando a ser iniciados en la cola de entrada, el planificador selecciona el trabajo ms corto primero
UNIVERSIDAD DE CUENCA
El menor tiempo restante a continuacin: Es una versin apropiativa del algoritmo tipo del trabajo ms corto primero. El planificador siempre selecciona el proceso cuyo tiempo restante de ejecuin sea le ms corto Se debe conocer el tiempo de ejecucin de antemano. Cuando llega un nuevo trabajo, su tiempo total se compara con el tiempo restante del proceso actual. Si el nuevo trabajo necesita menos tiempo para terminar que el proceso actual, ste se suspende d y el l nuevo trabajo b j se i inicia i i
UNIVERSIDAD DE CUENCA
Planificacin por turno circular A cada proceso se le asigna un intervalo de tiempo, conocido como quntum, durante el cual se le permite ejecutarse. Si el proceso se sigue ejecutando al final del quntum, la CPU es apropiada para drsela a otro proceso. Si el proceso se bloquea o termina antes de que haya transcurrido el tiempo tiempo, la conmutacin de la CPU se realiza cuando el proceso se bloquea
UNIVERSIDAD DE CUENCA
Planificacin por turno circular Para conmutar un proceso se requiere cierta cantidad de tiempo por asuntos de administracin. Guardar y cargar registros como mapas de memoria, actualizar varias tablas y listas, vaciar y recargar la memoria cach, etc. El tiempo del quntum es un tiempo desperdiciado. Ejemplo: el tiempo administrativo es de 1 ms, el tiempo del quantum es de 4 ms. Como resultado el 20% del tiempo del CPU es desperdiciado Una mejora podra ser aumentar el tiempo del quantum. Esto podra generar si se tienen muchos procesos en espera, que para que un proceso se ejecute tenga que esperar mucho tiempo
UNIVERSIDAD DE CUENCA
Planificacin por prioridad El algoritmo anterior supone que todos los procesos tienen igual prioridad. Mediante este algoritmo, a cada proceso se le asigna una prioridad y el proceso ejecutable con la prioridad ms alta es el que puede ejecutar Para evitar que los procesos con alta prioridd se ejecuten de manera indefinida, el planificador puede reducir la prioridad del proceso actual ene ejecucin en cada pulso del reloj (interrupcin de reloj). Esta prioridad ir disminuyendo hasta que exista i otro proceso con prioridad i id d mayor y se realizar li una conmutacin i Tambin se podra asignar un valor de quantum mximo
UNIVERSIDAD DE CUENCA
Mltiples colas Se establecen colases de prioridades. Los procesos en la clase ms alta se ejecutaban durante un quntum. Los proceso en la siguiente clase ms alta se ejecutaban por dos quntums. Los procesos en la siguiente clase se ejecutaban por cuatro quntums y as sucesivamente. sucesivamente Cada vez que un proceso utilizaba todos los quntums que tena asignados, se mova una clase hacia abajo en la jerarqua
UNIVERSIDAD DE CUENCA
El proceso ms corto a continuacin Los procesos interactivos siguen el patrn de esperar un comando, ejecutarlo, esperar un comando, ejecutarlo, etc. Si se considera la ejecucin de un comando como un trabajo separado, se podra minimizar el tiempo de erspuesta total mediante la ejecucin dems corto primero primero. Se debe averiguar cul de los proceso actuales ejecutables es el ms corto
UNIVERSIDAD DE CUENCA
Planificacin por sorteo Al idea es dar a los proceso boletos de lotera para diversos recursos del sistema (como tiempo en la CPU). Cada vez que hay que tomar una decisin de planificacin, se selecciona un boleto de lotera al azar y el proceso que tiene ese boleto obtiene el recurso recurso. Cuando se aplica a al planificacin e la CPU CPU, el sistema podra realizar un sorteo 50 veces por segundo y cada ganador obtendra 20 ms de tempo en la CPU L procesos i Los importantes pueden d recibir ibi b boletos l extra Los procesos cooperativos pueden intercambiar sus boletos
UNIVERSIDAD DE CUENCA
Planificacin por partes equitativas Algunos sistemas toman en consideracin quin es el propietario de un proceso antes de planificarlo. A cada usuario se le asigna cierta fraccin de la CPU y el planificador selecciona procesos de tal forma que se cumpla con este modelo. Si dos usuarios se les prometi 50% del tiempo e la CPU para cada uno uno, eso es lo que obtendrn
UNIVERSIDAD DE CUENCA
El tiempo desempea un papel esencial. Uno o ms dispositivos fsicos externos a la computadora generan estmulo y la computadora debe reaccionar de manera apropiada a ellos dentro de cierta cantidad de tiempo Ejemplo: la computadora en un reproductor de msica recibe los bits a medida que provienen de la unidad y debe convertirlos en msica msica, en un tiempo pequeo pequeo. Otros ejemplos: sistemas de monitoreo en cuidados intensivos, pilotos autmticos Estos sistemas se categorizan como de tiempo real duro (los tiempos lmite son absolutos b l y se d deben b cumplir) li ) y d de tiempo i real l suave ( (no es conveniente i f fallar ll en un tiempo lmite pero es tolerable)
UNIVERSIDAD DE CUENCA
Cuando un proceso genera varios procesos hijo, este puede saber cual de todos estos es ms importante, pero los mecanismos anteriores no La solucin a este problema es separar el mecanismo de planificacin de la poltica de planificacin Los mecanismos de planificacin estn parametrizados de cierta forma El proceso padre puede usar una llamada al sistema para modificar las prioridades d sus hij de hijos El mecanismo est en el kernel pero la poltica se establece mediante un proceso de usuario
UNIVERSIDAD DE CUENCA
Planificacin de hilos
UNIVERSIDAD DE CUENCA