Documente Academic
Documente Profesional
Documente Cultură
UNIDAD II
ADMINISTRACION DE PROCESOS Y DEL PROCESADOR
Es importante tener presente que solo un proceso puede estar ejecutndose en cualquier procesador en un instante dado, pero muchos procesos pueden estar listos y esperando.
TRANSICIONES
Todos los procesos que fueron suspendidos estaban en el estado Bloqueado en el momento de la suspensin. Realmente no hara ningn bien traer de nuevo a memoria principal un proceso Bloqueado porque no esta todava listo para ejecutarse. Debe reconocerse, sin embargo, que cada proceso en estado Suspendido fue bloqueado originalmente por un suceso concreto. Cuando se produzca tal suceso, el proceso se desbloqueara y, posiblemente, estar disponible para su ejecucin.
Listo: El proceso esta en memoria principal y listo para la ejecucin. Bloqueado: El proceso esta en memoria principal esperando un suceso. Bloqueado y suspendido: El proceso esta en memoria secundaria esperando un suceso. Listo y suspendido: El proceso esta en memoria secundaria pero esta disponible para su ejecucin tan pronto como se cargue en la memoria principal.
Un hilo de ejecucin, en sistemas operativos, es similar a un proceso en que ambos representan una secuencia simple de instrucciones ejecutada en paralelo con otras secuencias. Los hilos permiten dividir un programa en dos o ms tareas que corren simultneamente, por medio de la multiprogramacin. En realidad, este mtodo permite incrementar el rendimiento de un procesador de manera considerable. En todos los sistemas de hoy en da los hilos son utilizados para simplificar la estructura de un programa que lleva a cabo diferentes funciones.
Un ejemplo de la utilizacin de hilos es tener un hilo atento a la interfaz grfica (iconos, botones, ventanas), mientras otro hilo hace una larga operacin internamente. De esta manera el programa responde ms gilmente a la interaccin con el usuario.
Varias aplicaciones: (multiprogramacin) en este caso el tiempo de procesador de una maquina es compartido dinmicamente entre varios trabajos o aplicaciones activas.
Aplicaciones estructuradas: Como ampliacin del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes (divicion de bloques ,procedimientos y funciones ) Diseo modular(un programa representado por un mdulo principal, el cual se descompone en subprogramas (submdulos), los cuales, a su vez, tambin se pueden fraccionar, y as sucesivamente) Estructura del sistema operativo: como resultado de la aplicacin de la estructuracin en el diseo del propio SO, de forma que este se implemente como un conjunto de procesos.
concurrencia:
Multiprogramacin con un CPU. El sistema operativo se encarga de repartir el CPU entre los procesos, intercalando su ejecucin para dar una apariencia de ejecucin simultnea. Multiprocesador. Mquina formada por ms de un CPU que comparten memoria principal. Multicomputadora. Es una mquina de memoria distribuida formada por una serie de computadoras, es posible la ejecucin simultnea de los procesos en los diferentes CPUs.
Exclusin Mutua es la comunicacin requerida entre dos o ms procesos que se estn ejecutando en paralelo y que necesitan a la vez el uso de un recurso no compartible. Consiste en asignar el recurso no compartible a slo uno de los procesos, mientras que los otros deben permanecer a la espera hasta que finalice la utilizacin de dicho recurso por el proceso al que se le asigno. Cuando este proceso termine, el recurso ser asignado a uno de los procesos en espera. Si un recurso tiene slo un punto de entrada, se lo denomina recurso critico.
4. Cuando ningn proceso est en su seccin crtica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilatacin. Es decir, si nadie est usando un cierto recurso, entonces se le otorga al primer proceso que lo solicite. 5. Un proceso permanece en su seccin crtica slo por un tiempo finito. Esto sirve para evitar que un proceso se quede con un recurso por mucho tiempo y para que un recurso no se quede trabado sin sentido.
La sincronizacin entre procesos es necesaria para prevenir y/o corregir errores de sincronizacin debidos al acceso concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes.
La sincronizacin entre procesos tambin permite intercambiar seales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones especficas de precedencia impuestas por el problema que se resuelve. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecucin de un proceso.
Algoritmo que utiliza un switch (MUTEX) a travs del cual se produce la sincronizacin.
Alternancia. Ligeramente mejor que el anterior, utiliza tambin una variable turno para realizar el sincronismo entre los Procesos. Algoritmo de DEKKER. Resuelve el problema mediante la solucin propuesta por DEKKER, basando su funcionamiento en una Tabla unidimensional de dos elementos lgicos (Switches).
Son los algoritmos que establecen la espera para entrar en la regin crtica bloqueando, el proceso, haciendo que deje de competir por el procesador hasta que se cumpla la condicin de desbloqueo.
compartidos. Con este sistema, cuando un proceso intente entrar en una regin crtica mientras otro est accediendo a los datos compartidos, se bloquear de igual manera que cuando un proceso accede a un recurso que est ocupado.
Un semforo S es una variable entera a la que, una vez que se le asignado un valor inicial, solo puede accederse a travs de dos operaciones atmicas estndar: espera y seal. (P y V). Operacin V: Esta operacin consiste en incrementar en uno el valor del semforo sobre el que acta. Operacin P: Bloqueo, decrementa en uno el valor del semforo sobre el que acta siempre y cuando el valor del semforo es >=0 (positivo)
TIPOS DE SEMFOROS
Monitor tipo manager Este monitor es muy similar al monitor tipo monitor, la diferencia esencial es que un proceso que es reiniciado debe abandonar el monitor, es decir no se le permite que entre al estado activo. Monitor tipo mediador Este monitor fue propuesto por C.A.R. Hoare, tiene la caracterstica de compensar las desventajas de los monitores tipo monitor y tipo managEer. Un proceso que reinicia a otros puede permanecer dentro del monitor y un proceso reiniciado tambin puede permanecer dentro del monitor.
Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o ms procesos.
Coffman, Elphick y Shoshani establecieron las cuatro condicin necesarias para que se produzca interbloqueo: 1. Condicin de exclusin mutua: los procesos reclaman control exclusivo de los recursos que piden. 2. Condicin de esperar y retener: los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales. 3. Condicin de no expropiacin: los recursos no pueden ser extrados de los procesos que los tienen hasta su completa utilizacin. 4. Condicin de espera circular: existe una cadena circular de procesos en la cual cada uno de ellos mantiene a uno o ms recursos que son requeridos por el siguiente proceso de la cadena.
Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o ms procesos. En la vida real, un ejemplo puede ser el de cuatro autos que se encuentran en una interseccin en el mismo momento. Cada uno necesita que otro se mueva para poder continuar su camino, y ninguno puede continuar. Los recursos compartidos en este caso son los cuatro cuadrantes.
La norma ms habitual en la carretera es que un coche en un cruce de cuatro caminos debe ceder el paso al coche que est a su derecha. Esta norma funciona si solo hay dos o tres coches en el cruce. Por ejemplo, si solo llegan al cruce los coches del norte y del oeste, el coche del norte esperar hasta que el del oeste pase. Sin embargo, si los cuatro coches llegan al mismo tiempo cada uno se abstendr de entrar en el cruce, provocando interbloqueo.
Las estrategias de prevencin del interbloqueo son muy conservadoras; solucionan el problema del interbloqueo limitando el acceso a los recursos e imponiendo restricciones a los procesos. En el lado opuesto, las estrategias de deteccin del interbloqueo no limitan el acceso a los recursos ni restringen las acciones de los procesos.
Peridicamente, el sistema operativo ejecuta un algoritmo que permite detectar la condicin de crculo vicioso de espera. El control del interbloqueo puede llevarse a cabo tan frecuentemente como las solicitudes de recursos o con una frecuencia menor, dependiendo de la probabilidad de que se produzca el interbloqueo
La comprobacin en cada solicitud de recurso tiene dos ventajas: Conduce a una pronta deteccin y el algoritmo es relativamente simple, puesto que est basado en cambios incremntales del estado del sistema. Por otro lado, tal frecuencia de comprobaciones consume un tiempo de procesador considerable.
2.4.3.3 Recuperacin
Una vez detectado el interbloqueo, hace falta alguna estrategia de recuperacin. Las tcnicas siguientes son posibles enfoques, enumeradas en orden creciente de sofisticacin: 1. Abandonar todos los procesos bloqueados. 2. Retroceder cada proceso interbloqueado 3. Abandonar sucesivamente los procesos bloqueados 4. Apropiarse de recursos sucesivamente
Para los puntos 3 y 4, el criterio de seleccin podra ser uno de los siguientes, consistentes en escoger el proceso con:
La menor cantidad de tiempo de procesador consumido hasta ahora El menor nmero de lneas de salida producidas hasta ahora El mayor tiempo restante estimado El menor nmero total de recursos asignados hasta ahora La prioridad ms baja
En un sistema multiprogramado, la memoria principal contiene varios procesos. Cada proceso alterna entre usar el procesador y esperar que se realice una operacin de E/S o que ocurra algn otro suceso. El procesador o los procesadores se mantienen ocupados ejecutando un proceso mientras los dems esperan. La clave de la multiprogramacin est en la planificacin.
El afn de la planificacin del procesador consiste en asignar los procesos al procesador o los procesadores para que sean ejecutados en algn momento, de forma que se cumplan objetivos del sistema tales como el tiempo de respuesta, la productividad y la eficiencia del procesador.
Niveles de planificacin
En muchos sistemas, la actividad de planificacin se divide en tres funciones independientes: planificacin a largo, medio y corto plazo. Los nombres hacen referencia a la frecuencia relativa con la que son ejecutadas estas funciones.
La planificacin a medio plazo forma parte de la funcin de intercambio. Generalmente, la decisin de cargar un proceso en memoria principal se basa en la necesidad de controlar el grado de multiprogramacin. As pues, la decisin de carga en memoria tendr en cuenta las necesidades de memoria del proceso descargado
El planificador a corto plazo, tambin conocido como despachador (dispatcher), es el de ejecucin ms frecuente y toma decisiones con un mayor detalle sobre el proceso que se ejecutar a continuacin. El planificador a corto plazo se ejecuta cuando ocurre un suceso que puede conducir a la interrupcin del proceso actual o que ofrece la oportunidad de expulsar de la ejecucin al proceso actual en favor de otro.
Criterios de Planificacin
A la hora de decidir qu algoritmo de planificacin utilizar en una situacin particular, debemos considerar las propiedades de los diversos algoritmos. Se han sugerido muchos criterios para comparar los distintos algoritmos de planificacin. Las caractersticas que se usen para realizar la comparacin pueden afectar enormemente a la determinacin de cul es el mejor algoritmo.
Utilizacin de la CPU
Deseamos mantener la CPU .tan ocupada como sea posible. Conceptualmente, la utilizacin de la CPU se define en el rango comprendido entre el 0 y el 100 por cien. En un sistema real, debe variar entre el 40 por ciento (para un sistema ligeramente cargado) y el 90 por ciento (para un sistema intensamente utilizado).
Tasa de procesamiento
Si la CPU est ocupada ejecutando procesos, entonces se estar llevando a cabo algn tipo de trabajo. Una medida de esa cantidad de trabajo es el nmero de procesos que se completan por unidad de tiempo, y dicha medida se denomina tasa de procesamiento. Para procesos de larga duracin, este valor puede ser de un proceso por hora; para transacciones cortas, puede ser de 10 procesos por segundo.
Tiempo de ejecucin
Desde el punto de vista de un proceso individual, el criterio importante es cunto tarda en ejecutarse dicho proceso. El intervalo que va desde el instante en que se ordena la ejecucin de un proceso hasta el instante en que se completa es el tiempo de ejecucin. Ese tiempo de ejecucin es la suma de los perodos que el proceso invierte en esperar para cargarse en memoria, esperar en la cola de procesos preparados, ejecutarse en la CPU y realizar las operaciones de E/S.
Tiempo de espera
El algoritmo de planificacin de la CPU no afecta a la cantidad de tiempo durante la que un proceso se ejecuta o hace una operacin de E/S; afecta slo al perodo de tiempo que un proceso invierte en esperar en la cola de procesos preparados. El tiempo de espera es la suma de los perodos invertidos en esperar en la cola de procesos preparados.
Tiempo de respuesta
En un sistema interactivo, el tiempo de ejecucin puede no ser el mejor criterio. A menudo, un proceso puede generar parte de la salida con relativa rapidez y puede continuar calculando nuevos resultados mientras que los resultados previos se envan a la salida para ponerlos a disposicin del usuario. Por tanto, otra medida es el tiempo transcurrido desde que se enva una solicitud hasta que se produce la primera respuesta.
Objetivo
El objetivo consiste en maximizar la utilizacin de la CPU y la tasa de procesamiento, y minimizar el tiempo de ejecucin, el tiempo de espera y el tiempo de respuesta. En la mayora de los casos, lo que se hace es optimizar algn tipo de valor promedio. Sin embargo, en determinadas circunstancias, resulta deseable optimizar los valores mximo y mnimo en lugar del promedio. Por ejemplo, para garantizar que todos los usuarios tengan un buen servicio, podernos tratar de minimizar el tiempo de respuesta mximo.
2.6.1. FIFO
First in, first out o FIFO (en espaol "primero en entrar, primero en salir"), es un concepto utilizado en estructuras de datos, contabilidad de costes y teora de colas. Tambin se lo llama First Come First Served o FCFS (en espaol "primero en llegar, primero en ser atendido"). FIFO se utiliza en estructuras de datos para implementar colas. La implementacin puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignacin dinmica de memoria.
2.6.2. SJF
El algoritmo SJF (Shortest-Job-First) se basa en los ciclos de vida de los procesos, los cuales transcurren en dos etapas o periodos que son: ciclos de CPU y ciclos de entrada/salida, tambin conocidos por rfagas. La palabra shortest (el ms corto) se refiere al proceso que tenga el prximo ciclo de CPU mas corto. La idea es escoger entre todos los procesos listos el que tenga su prximo ciclo de CPU ms pequeo.
Para el siguiente ejemplo se tienen 4 procesos (P1, P2,P3 y P4). A medida que estos se van incorporando a la cola de listos, se les calcula su prximo ciclo de CPU.
Para calcular el prximo ciclo de CPU se pueden emplear: mtodos estadsticos, clculos probabilsticos, entre otros.
Se toma como criterio que la cola de procesos listos est inicialmente vaca. En la figura se representa la llegada de P1 a la cola de listos con un tiempo de llegada (0,0). Luego a P1 se le calcula su CCPU (CCPU = 7) y en ese instante se comienza a ejecutar.
El proceso P1, se incorpora a la cola de listos P2, al cual se le calcula su CCPU (CCPU = 4). El CCPU de P2 es menor que el CCPU de P1, entonces P1 es desalojado y P2 toma la CPU. En este caso P1 se reincorpora a la cola de listos porque no ha terminado su ejecucin, y en ese instante se le vuelve a calcular el valor del CCPU (CCPU = 6).
El proceso P3 llega a la cola de listos y se le calcula el CCPU (CCPU = 1). El CCPU de P3 es menor que el CCPU de P2, por lo que se desaloja P2 para cederle la CPU a P3. P2 es reincorporado a la cola de listos porque no ha terminado su ejecucin CCPU y se le vuelve a calcular su CCPU (CCPU = 3).
El proceso P4 se incorpora a la cola de listos y se le calcula su CCPU (CCPU = 4). Luego P3 termina su ejecucin para cederle la CPU al prximo proceso que le corresponda segn el criterio que establece el algoritmo. Para el ejemplo le corresponde el turno a P2, luego a P4 y finalmente a P1.
2.6.3. RR
A cada proceso se le brinda un intervalo de tiempo para el uso del procesador (time quantum).
Al finalizar el tiempo, el procesador le es expropiado y vuelve al estado pronto (ready) al final de la cola. Es fcil de implementar ya que solamente es necesario una cola de procesos listos. Cuando un proceso consume su quantum es puesto al final de la cola. El quantum debe ser bastante mayor a lo que lleva realizar un cambio de contexto, sino se tendr mucho overhead. A su vez, el tiempo de quantum incide en los tiempos de retorno. Es ideal para sistemas de tiempo compartido.
Quantum = 20
Es necesario asignar un ajustado tiempo de quantum: Si es muy chico generar muchos cambios de contexto. Si es muy grande, el sistema tender a un FCFS
Si los procesos se pueden clasificar segn sus cualidades, es posible dividir la lista de procesos listos (ready queue) en varias colas (una para cada clasificacin). Los procesos son asignados permanentemente a una de las colas. Cada cola tendr su propio algoritmo de planificacin propio. Adems, se debe tener una estrategia de planificacin entre las diferentes colas. Por ejemplo, una cola tendr prioridad sobre otra.
Por ejemplo, la cola interactiva podra planificarse usando RR y FIFO. Ningn trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no estn vacas. Si algn trabajo entra en una cola de mayor prioridad, el trabajo de otras colas es interrumpido.
En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas colas. La idea es separar procesos con distintos tipos de interrupciones de la CPU. Si un trabajo consume mucho tiempo de CPU, ser movido a una cola con menor prioridad. En forma similar, si un proceso espera demasiado tiempo en una cola de baja prioridad, lo moveremos a una cola de mayor prioridad. Se diferencia con el anterior en que procesos pueden cambiar de cola (nivel).
Se basa en categorizar los procesos segn el uso de CPU (CPU-burst) que tengan. La cola de mayor prioridad ser la de los procesos I/O-bound y la de menor la de procesos con alto CPUbound. De esta forma, se garantiza que los procesos con poco uso de procesador tengan mayor prioridad, y los que consumen mucho procesador tendrn baja prioridad. Los procesos, segn el consumo de CPU que hagan, sern promovidos a una cola de mayor prioridad o rebajados a una de menor prioridad.
BIBLIOGRAFA:
sistemas operativos - 5ta edicin - abraham silberschatz & peter baer galvin sistemas operativos sttallings.
Stallings, William (1997), Sistemas Operativos, 2 edicin, EEUU, Prentice Hall. Silberschatz, A., Baer, P., y Gagne, G. (2006) Fundamentos de sistemas operativos 7 edicin, EEUU, McGraw Hill.