Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
79Activity
0 of .
Results for:
No results containing your search query
P. 1
Concurrencia de procesos

Concurrencia de procesos

Ratings:

5.0

(3)
|Views: 10,940|Likes:
Published by Pedro Domingo
Conceptos acerca de concurrencia de procesos, región critica, exclusión mutua, soluciones para garantizar la exclusión mutua, algoritmos de Dekker.
Conceptos acerca de concurrencia de procesos, región critica, exclusión mutua, soluciones para garantizar la exclusión mutua, algoritmos de Dekker.

More info:

Published by: Pedro Domingo on Mar 05, 2009
Copyright:Attribution Non-commercial Share Alike

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/19/2013

pdf

text

original

 
Concurrencia de Procesos
Dos o mas procesos, se dice que son concurrentes o paralelos, cuando se ejecutan al mismo tiempo.Esta concurrencia puede darse en un sistema con un solo procesador (pseudo paralelismo) o en unsistema multiprocesador (paralelismo real).Para que la concurrencia exista entre 2 procesos, es necesario que estos tengan algún tipo derelación. La concurrencia puede presentarse en tres contextos:1.
Varias aplicaciones:
La multiprogramación se creó para permitir que el tiempo deprocesador de la máquina fuese compartido dinámicamente entre varios trabajos oaplicaciones activas.2.
Aplicaciones estructuradas:
Como ampliación de los principios del diseño modular y laprogramación estructurada, algunas aplicaciones pueden implementarse eficazmente comoun conjunto de procesos concurrentes.3.
Estructura del sistema operativo:
Las mismas ventajas de estructuración son aplicables alos programadores de sistemas y se ha comprobado que algunos sistemas operativos estánimplementados como un conjunto de procesos.Razones para la ejecución de procesos concurrentes en un sistema:
Facilita la programación de aplicaciones al permitir que éstas se estructuren como unconjunto de procesos que cooperan entre sí para alcanzar un objetivo común.
Acelera los cálculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que sepuede hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con losdemás.
Posibilita el uso interactivo a múltiples usuarios que trabajan de forma simultánea.
Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que puedenaprovechar las fases de entrada-salida de unos procesos para realizar las fases deprocesamiento de otros.Desventajas de la concurrencia de procesos:
Inanición e interrupción de procesos
Ocurrencia de bloqueos
Que dos o mas procesos requieran el mismo recurso (No apropiativo)Tipos de procesos concurrentes:
Proceso independiente:
Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos.Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de formasimultánea en un sistema.
Procesos son cooperantes:
Son aquellos que están diseñados para trabajar conjuntamente enalguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambostipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entreellos y pueden ser de dos tipos:
Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursosfísicos o lógicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco opara modificar una base de datos.
• Interacción motivada porque los procesos se comunican y sincronizan entre sí paraalcanzar un objetivo común, Por ejemplo, un compilador que tiene varios procesos que
 
trabajan conjuntamente para obtener un solo archivo de salida.Los elementos que se deben gestionar y diseñar a causa de la concurrencia son:1.El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Estolo hace por medio de PCB’s (Bloque de Control de Procesos)2.El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entreestos recursos se incluyen:
Tiempo de procesador: Es función de la planificación.
Memoria: La mayoría de los sistemas operativos emplean esquemas de memoria virtual.
Archivos
Dispositivos de E/S3.El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contrainjerencias no intencionadas de otros procesos.4.Los resultados de un proceso deben ser independientes de la velocidad relativa a la que serealiza la ejecución con respecto a otros procesos concurrentes.
Competencia entre procesos por los recursos
Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso, esdecir, quieren acceder a un recurso al mismo tiempo. Y la ejecución de un proceso puede influir enel comportamiento de los procesos que compiten y el sistema operativo le asignará el recurso a unode ellos y el otro tendrá que esperar. Por lo que el proceso que quede esperando, se retrasará, sebloqueara y en el peor de los casos nunca se terminará con éxito.
Exclusión Mutua
La exclusión mutua consiste en asegurar que los recursos no compartidossean accedidos por un único proceso a la vez.
Región Critica
Las secciones críticas o regiones críticas son fragmentos de programa queacceden a recursos no compartidos. Si dos procesos no están nunca en sussecciones críticas al mismo tiempo, se evita que haya conflicto entre estos por el recurso.
Requisitos para la exclusión mutua:
El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones críticas yhacer cumplir la exclusión mutua. Esto es fundamental para cualquier esquema de procesoconcurrente. Cualquier servicio o capacidad que dé soporte para la exclusión mutua debe cumplirlos requisitos siguientes:1.Solo un proceso, de entre todos los que poseen secciones críticas por el mismo recurso uobjeto compartido, debe tener permiso para entrar en ella en un instante dado.2.Un proceso que se interrumpe en una sección no crítica debe hacerlo sin estorbar a los otrosprocesos.3.Un proceso no debe poder solicitar acceso a una sección crítica para después ser demoradoindefinidamente; no puede permitirse el interbloqueo o la inanición.4.Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en lasuya debe poder hacerlo sin dilación.
 
5.No se pueden hacer suposiciones sobre la velocidad relativa de los procesos o su número.6.Un proceso permanece en su sección crítica solo por un tiempo finito.
Soluciones a la exclusión mutuaSoluciones por Software:
 Una manera es dejar la responsabilidad a los procesos que deseen ejecutarconcurrentemente, de esta manera los procesos deben coordinarse unos con otros para cumplir laexclusión mutua sin ayuda alguna, aunque estas soluciones son propensas a errores y a una fuertecarga de proceso. Entre estas soluciones podemos encontrar:
Algoritmo de Dekker
Algoritmo de Peterson
Soluciones por Hardware:
Propone el uso de instrucciones de la máquina a tal efecto, estas tienen la ventaja de reducirla sobrecarga.
Soporte al Sistema Operativo:
Entre estos métodos se encuentran los semáforos, monitores, paso de mensajes, etc.
Algoritmos de Dekker
Dekker 1Problema: Sincronizacion forzada.Alternancia estrica, los procesos lentosatrazan a los rapidos.Program 1varentera: turno = 1Proceso 1repeatHace_cosas()while turno = 2 do{null;}region_critica()turno = 2hace_mas_cosas()until finDekker 2Problema: Interbloqueo. ambosprocesos entran en un mismo estado y nuncasalen.Program 2varbool: P1QE = falsebool: P2QE = falseproceso 1repeathace_cosas()P1QE = truewhile P2QE = true do{null;}region_critica()P1QE = falsehace_mas_cosas()until finDekker 3Problema: No garantiza la exclusionmutua. Ambos entran al mismo tiempo a laregion critica.program 3var

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->