You are on page 1of 8

2.

4 Concurrencia y Secuenciabilidad

Los procesos son concurrentes si existen simultaneamente. Los procesos concurrentes pueden funcionar en forma
totalmente independiente unos de otros, o pueden ser asincronos, lo cual significa que en ocasiones requieren cierta
sincronizacion o cooperacion.

Cuando dos o mas procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de
procesos. Es importante mencionar que para que dos o mas procesos sean concurrentes , es necesario que tengan alg
relacion entre ellos como puede ser la cooperacion para un determinado trabajo o el uso de informacion o recursos
compartidos, por ejemplo: en un sistema de un procesador , la multiprogramacion es una condicion necesaria pero no
suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.
Por otro lado en un sistema de varios procesos se puede presentar la concurrencia siempre y cuando las actividades
necesiten actuar entre si ya sea para utilizar informacion en comun o para cualquier otra cosa.
Existen tres formas modelos de computadora en los que se puede pueden ejecutar procesos concurrentes:
Multiprogramacion con un unico procesador.

En este modelo todos los procesos concurrentes ejecutan sobre un unico procesador. El sistema operativo se encarga
repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecucion de los mismos para dar asi u

En general la concurrencia sera aparente siempre que el numero de procesos sea mayor que el de procesadores disponibles. En e caso si existe una verdadera ejecucion simultanea de procesos.La planificacion es una funcion primor del Sistema Operativo. y tal asignacion es un problema com . En este tipo de arquitecturas tambien posible la ejecucion simultanea de los procesos sobre los distintos procesadores. con una entrada en forma de imagenes de tarjetas en cinta magnetica. Multicomputadora. empleando el metodo de paso de mensajes. Esta formada por una serie de computadoras completas con su UCP. En forma invariable. al coincidir las fases de procesamiento de distintos procesos. La asigna de procesadores fisicos a los procesos hace posible que estos realicen su trabajo. existian varios usuarios en espera de servicio y podian existir tambien trabajos para ser procesados en lote. En los sistemas de multiusuario de tiempo compartido. el algoritmo de planificacion era sencillo: solo habia que ejecutar el siguiente trabajo en la cinta. memoria principal y. Objetivos y Criterios de Planificacion En epocas pasadas de los sistemas de procesamiento por lotes.apariencia de ejecucion simultanea. el Sistema Operativo debe decidir cual de ellos debera ejecutarse primero. Una multicomputadora es una maquina de memoria distribuida. perif Cada uno de estos procesadores completo se denomina nodo. La concurrencia sera real cuando haya un proce por procesado . se planifican antes de que se utilicen. Un multiprocesador es una maquina formada por un conjunto de procesadores que comparten memoria principal. es decir. Multiprocesador. Incluso en los sistemas puros de tiempo compartido existen con frecuencia los tra colaterales. Cuando mas de un proceso es ejecutable. En es tipo de arquitecturas. los procesos concurrentes no solo pueden intercalar su ejecucion sino tambien superponerla. Los nodos se encuentran conectados y se comunican e a traves de una red de interconexion. que se combinaban con un fondo de trabajos procesados en lote algoritmo era mas complejo. En un instante dado se pueden ejecutar de forma simultanea tantos procesos como procesadores haya. si no es que todos. La mayoria de los recursos.5 Niveles. cuando haya mas de un proceso por procesador. H que tener una planificacion de los procesos que quieren ejecutarse en el sistema. que a menudo se ejecuta todo el tiempo para enviar o recibir correo noticias. en contraposicion con el multiprocesador que es de me compartida. como el sistema de correo electronico. en su caso.

En general. Criterios de planificacion Para realizar los objetivos de la planificacion. La planificacion debe realizarse de tal forma que en todo momento pueda saberse como sera su ejecucion. La computadora debe tener poca sobrecarga ya que esta afecta directamente a rendimiento final del sistema: a menor sobrecarga mayor velocidad de proceso.  Minimizacion de la sobrecarga. Esto se puede lograr disminuyendo el numero de cambios de proceso. La prioridad llegara a ser tan alta que al proceso le sera asignado el recurso que pidio. Objetivo de la Planificacion El objetivo principal de la planificacion es optimizar el rendimiento del sistema y proporcionar un buen servicio a todos lo procesos que se encuentren en el. ?la utiliz solo brevemente antes de generar una peticion de Entrada / Salida?  La limitacion de un proceso a la cpu: cuando un proceso obtiene la cpu. este debe ejecutarse mas rapidame  Evitar la postergacion indefinida. Para obtener un mayor rendimiento en el uso de los recursos y que estos este ocupados equitativamente el mayor tiempo posible. Debe dar un servicio eficiente para que todos los trabajos se realicen lo mas rapidamente posible.  Seguridad de las prioridades.manejado por el Sistema Operativo. la planificacion trata de cubrir los siguientes objetivos:  Justicia.  Maxima capacidad de ejecucion. Esto se logra aumentando la prioridad de un proceso mientras espere por un recurso. La planificacion debe ser lo mas justa posible con todos los procesos. Concepto de Planificacion La planificacion hace referencia a un conjunto de politicas y mecanismos incorporados al sistema operativo que gobiern orden en que se ejecutan los trabajos que deben ser cumplimentados por el sistema informatico. un mecanismo de planificacion debe considerar lo siguiente:  La limitacion de un proceso a las operaciones de Entrada / Salida: cuando un proceso consigue la cpu.  Equilibrio en el uso de recursos. sin favorecer a unos y perjudica otros.  Maximo numero de usuarios interactivos. ?tiende a usarla hasta que expira su tiempo?  Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben recibir inmediato servicio para .  Predecibilidad. Si un proceso tiene mayor prioridad que otro. En los sistemas de tiempo compartido se tratara de que puedan estar trabajando el mayor numero de usuarios al mismo tiempo.

 ?Que urgencia tiene una respuesta rapida?: por ejemplo.  Frecuentemente un proceso genera fallos (carencias) de pagina: o Probablemente los procesos que generan pocos fallos de pagina hayan acumulado sus “conjuntos de trabajo” en el almacenamiento principal. o Cada vez que el Sistema Operativo asume la sobrecarga para hacer ejecutar este proceso. lo cual significa lo siguiente: o A menudo los procesos apropiados deben recibir un tratamiento menos favorable. Cuanto tiempo adicional va a necesitar el proceso para terminar?: los tiempos promedio de espera pueden reducirse priorizando los procesos que requieren de un tiempo de ejecucion minimo para su terminacion. un proceso de tiempo real de un sistema de control qu supervise una refineria de combustible requiere una respuesta rapida. pero pocas veces es po conocer la cantidad de tiempo adicional que cada proceso necesita para terminar. o Los procesos que experimentan gran cantidad de fallos de pagina aun no han establecido sus conjunto trabajo. o Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo.6 Tecnicas de Administracion de Planificacion Las disciplinas de planificación pueden ser: • Expropiativas • No expropiativas Se denomina planificador al software del sistema operativo encargado de asignar los recursos de un sistema entre los procesos que los . 2.garantizar buenos tiempos de respuesta. el corto tiem de ejecucion antes de la apropiacion no justifica la sobrecarga de hacer ejecutar al proceso en primer lu  Cuanto tiempo de ejecucion real ha recibido el proceso?: un criterio considera que debe ser favorecido un proce que ha recibido muy poco tiempo de cpu. o Otro criterio indica favorecer a los procesos con una tasa alta de fallos de pagina ya que rapidamente generaran una peticion de Entrada / Salida.  La prioridad de un proceso: a mayor prioridad mejor tratamiento.  Frecuentemente un proceso ha sido apropiado por otro de mas alta prioridad. mas rapida que la respuesta requerida p proceso en lotes (batch) que debera entregarse al dia siguiente.

Siempre que haya tomar una decisión. e) Tiempo de respuesta a un evento: Se denomina así el intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción de la rutina de servicio de dicho evento. b) Rendimiento: Es una medida del número de procesos completados por unidad de tiempo. con un valor tan elevado otros aspectos importantes de medida del comportamiento del sistema pueden verse deteriorados.6. Es tremendamente ineficiente. Antes de realizar la elección de un algoritmo se debe considerar las propiedades de estos frente al criterio de diseño elegido. Por ejemplo 10 procesos por segundo. Los algoritmos (técnicas) tienen distintas propiedades según los criterios en los que se basen para su construcción. lo cual se refleja en qué tipo de procesos se puede ver favorecido frente a otro en la disputa del procesador. ya que se elimina de la media el tiempo que tarda en ejecutarse el mismo. Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que llevara más tiempo listo. El criterio de selección de un algoritmo se suele basar en la maximización o minimización de una función de los parámetros anteriores. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente. . Algunos de estos son: a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilización. Puede resultar una medida más adecuada de la eficiencia del sistema. 2. c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que completa por el sistema. Aunque puede parecer lógico intentar mantener este parámetro próximo al 100%. como por ejemplo el tiempo medio de espera. d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el procesador.solicitan. en la cual se ejecutan cada uno de los procesos hasta su finalización secuencialmente.1 Fifo FIFO: First In First Out Mecanismo de scheduling en el cual los procesos se ordenan en una fila. el planificador debe decidir cuál de los procesos que compiten por la posesión de un determinado recursos lo recibirá.

3 y 3 ms.unne. lo que en algunas aplicaciones supone un despilfarro de la memoria. es decir.edu. La ventaja que presenta este algoritmo sobre el algoritmo FIFO es que minimiza el tiempo de finalización promedio. primero en ser servido). Comportándose como una cola circular. htm 2. FIFO FULL (LLENO)/EMPTY (VACIO) En el hardware FIFO se usa para propósitos de sincronización. el número máximo no está declarado sino que se hace un uso dinámico de la memoria. primero en salir). . es la gestión de descargas de una aplicación p2p. junio 20). Es decir. First Out (primero en entrar. Uno de los usos de las colas es la exploración “en anchura” de un árbol de búsqueda. El sistema debe reservar el tamaño de memoria necesario para acoger todos los datos.FIFO es el acrónimo inglés de First In. Guarda analogía con las personas que esperan en una cola y van siendo atendidas en el orden en que llegaron. R2 y R3. Puntero de Lectura/Registro de Dirección de Lectura 2. Puntero de Escritura/Registro de Dirección de Escritura Miguel Satiner (2004. que la primera persona que entra es la primera persona que sale. El proceso al que pertenece la ráfaga R1 es la que lleva más tiempo ejecutable.ar/depar/areas/informatica/SistemasOperativos/SO3. éste elige la ráfaga de menor duración.2 Sjf Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción. Es un método utilizado en estructuras de datos. Otro uso típico de las colas. • SJF F = (3 + 6 + 30) / 3 = 13 ms. acrónimo inglés de First Come First Served ( primero en llegar. adaptándose al tamaño necesario en cada momento en función de los elementos que hay en la cola. Recuperado 27 de Octubre de 2008 de http://exa. Tiene dos punteros: 1. Su característica es que cuando se activa el planificador. sus tiempos de ejecución respectivos son 24. contabilidad de costes y teoría de colas. como puede verse en el siguiente ejemplo: Supongamos que en un momento dado existen tres ráfagas listos R1. Un sinónimo de FIFO es FCFS. Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecución de los procesos. Sin embargo. introduce una noción de prioridad entre ráfagas. por tanto. sólo es útil para entornos batch. sea cual sea el número de elementos usados.informática sistemas operativos. seguido del proceso al que pertenece R2 y del de R3. si se usan punteros.6.

tipo de trabajo). Si el proceso agota su quantum de tiempo. 4. La idea es separar procesos con distintos tipos de interrupciones de la CPU. basándose en alguna propiedad del mismo (requerimientos de memoria. Por ejemplo. teniendo cada cola su propio algoritmo. Se asignan en forma permanente los trabajos a una cola.4 QuevesMultilevel Un algoritmo de planificación multinivel particiona la cola de listos en colas separadas.6. . se elige a otro proceso para ocupar la CPU. generalmente. la cola interactiva podría planificarse usando RR y la batch FIFO. si un proceso espera demasiado tiempo en una cola de baja prioridad.6. El round robín es muy fácil de implementar. será movido a una cola con menor prioridad.3 Rr Cada proceso tiene asignado un intervalo de tiempo de ejecución. Un método de determinación de cuando mover un trabajo a una cola de menor prioridad. Si un trabajo consume mucho tiempo de CPU. Si algún trabajo entra en una cola de mayor prioridad. Todo lo que necesita el planificador es mantener una lista de los procesos listos.6. El tipo de algoritmo de planificación de cada cola. 3. el trabajo de otras colas es interrumpido.2. lo moveremos a una cola de mayor prioridad. 2. Ningún trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no están vacías. llamado quantum o cuanto. Si el proceso se bloquea o termina antes de agotar su quantum también se alterna el uso de la CPU. En forma similar. En general un planificador de este tipo esta definido por los siguientes parámetros: 1. 2.5 MultiLevel Feedback Queves En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas colas. 2. Un método de determinación de cuando mover un trabajo a una cola de mayor prioridad. El número de colas.

Un método de determinación de a qué cola se enviará un trabajo cuando necesita servicio.5. .