Está en la página 1de 4

Usted est en la unidad 02: Tema 02

PROGRAMA DE INGENIERA INFORMTICA


Curso: SISTEMAS OPERATIVOS
Unidad 2:
MANEJO DE PROCESOS Y ARCHIVOS
Tiempo estimado para la Unidad:
3 semanas

CONCURRENCIA
Definiciones fundamentales:
Concurrencia: Dos procesos son concurrentes si estn activos
simultneamente.
Procesos Concurrentes Independientes: No comparte recursos
con otros procesos, no se comunica, no afecta ni es afectado por
otros procesos.
Procesos Concurrentes Cooperativos: comparte recursos y se
comunica con otros procesos.
Multiprogramacin: Tcnica de software que permite correr varios
procesos concurrentemente usando un slo CPU (pseudoconcurrencia) Hoy en da se usa ms el trmino multitasking
multithreading para designar el mismo efecto.
Multiprocesamiento: (multiprocessing): Involucra la gestin de
varios procesadores en ms de un CPU. Una mquina
multiprocesadora contiene varios CPUs, eg SMP.
2.1. Problemas de Concurrencia
En los sistemas de tiempo compartido (aquellos con varios usuarios,
procesos, tareas, trabajos que reparten el uso de CPU entre estos)
se presentan muchos problemas debido a que los procesos compiten
por los recursos del sistema. Imagine que un proceso est
escribiendo en la unidad de cinta y se le termina su turno de
ejecucin e inmediatamente despus el proceso elegido para
ejecutarse comienza a escribir sobre la misma cinta. El resultado es
una cinta cuyo contenido es un desastre de datos mezclados. As

como la cinta, existen una multitud de recursos cuyo acceso debe


ser controlado para evitar los problemas de la concurrencia.
El sistema operativo debe ofrecer mecanismos para sincronizar la
ejecucin de procesos: semforos, envo de mensajes, 'pipes', etc.
Los semforos son rutinas de software (que en su nivel ms interno
se auxilian del hardware) para lograr exclusin mutua en el uso de
recursos. Para entender este y otros mecanismos es importante
entender los problemas generales de concurrencia, los cuales se
describen enseguida.
Condiciones de Carrera o Competencia: La condicin de carrera
(race condition) ocurre cuando dos o ms procesos accedan a un
recurso compartido sin control, de manera que el resultado
combinado de este acceso depende del orden de llegada.
Ejemplo: Suponga que dos clientes de un banco realizan cada uno
una operacin en cajeros diferentes al mismo tiempo.
El usuario A quiere hacer un depsito. El B un retiro. El usuario A
comienza la transaccin y lee su saldo que es 1000. En ese
momento pierde su turno de ejecucin (y su saldo queda como 1000)
y el usuario B inicia el retiro: lee el saldo que es 1000, retira 200 y
almacena el nuevo saldo que es 800 y termina. El turno de ejecucin
regresa al usuario A el cual hace su depsito de 100, quedando
saldo = saldo + 100 = 1000 + 100 = 1100. Como se ve, el retiro se
perdi y eso le encanta al usuario A y B, pero al banquero no le
convino esta transaccin. El error pudo ser al revs, quedando el
saldo final en 800.
Postergacin o Aplazamiento Indefinido: Consiste en el hecho de
que uno o varios procesos nunca reciban el suficiente tiempo de
ejecucin para terminar su tarea.
Ejemplo: Un proceso ocupa un recurso y lo marca como 'ocupado' y
termina sin marcarlo como 'desocupado'. Si algn otro proceso pide
ese recurso, lo ver 'ocupado' y esperar indefinidamente a que se
'desocupe'.
Condicin de Espera Circular: Esto ocurre cuando dos o ms
procesos forman una cadena de espera que los involucra a todos.
Ejemplo: Suponga que el proceso A tiene asignado el recurso 'cinta'
y el proceso B tiene asignado el recurso 'disco'. En ese momento al
proceso A se le ocurre pedir el recurso 'disco' y al proceso B el
recurso 'cinta'. Ah se forma una espera circular entre esos dos
procesos que se puede evitar quitndole a la fuerza un recurso a

cualquiera de los dos procesos.


Condicin de No Apropiacin: Esta condicin no resulta
precisamente de la concurrencia, pero juega un papel importante en
este ambiente. Esta condicin especifica que si un proceso tiene
asignado un recurso, dicho recurso no puede arrebatrsele por
ningn motivo, y estar disponible hasta que el proceso lo 'suelte' por
su voluntad.
Condicin de Espera Ocupada: Esta condicin consiste en que un
proceso pide un recurso que ya est asignado a otro proceso y la
condicin de no apropiacin se debe cumplir. Entonces el proceso
estar gastando el resto de su tiempo (time slice) verificando si el
recurso fue liberado. Es decir, desperdicia su tiempo de ejecucin en
esperar. La solucin ms comn a este problema consiste en que el
sistema operativo se d cuenta de esta situacin y mande a una cola
de espera al proceso, otorgndole inmediatamente el turno de
ejecucin a otro proceso.
Condicin de Exclusin Mutua: Cuando un proceso usa un recurso
del sistema realiza una serie de operaciones sobre el recurso y
despus lo deja de usar. A la seccin de cdigo que usa ese recurso
se le llama 'regin crtica'. La condicin de exclusin mutua establece
que solamente se permite a un proceso estar dentro de la misma
regin crtica. Esto es, que en cualquier momento solamente un
proceso puede usar un recurso a la vez. Para lograr la exclusin
mutua se ideo tambin el concepto de 'regin crtica'. Para lograr la
exclusin mutua generalmente se usan algunas tcnicas para lograr
entrar a la regin crtica: semforos, monitores, el algoritmo de
Dekker y Peterson, los 'candados'. Para ver una descripcin de estos
algoritmos consulte [Deitel93] [Tan92]. Y el siguiente trabajo de
pregrado.
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/
MonogSO/CONCEM02.htm , escrbelo en tu navegador.
Condicin de Ocupar y Esperar un Recurso: Consiste en que un
proceso pide un recurso y se le asigna. Antes de soltarlo, pide otro
recurso que otro proceso ya tiene asignado.
Los problemas descritos son todos importantes para el sistema
operativo, ya que este debe ser capaz de prevenir o corregirlos. Tal
vez el problema ms serio que se puede presentar en un ambiente
de concurrencia es el 'abrazo mortal', tambin llamado 'trabazn' y
en ingls deadlock. El deadlock es una condicin que ningn sistema
o conjunto de procesos quisiera exhibir, ya que consiste en que se
presentan al mismo tiempo cuatro condiciones necesarias: La
condicin de no apropiacin, la condicin de espera circular, la

condicin de exclusin mutua y la condicin de ocupar y esperar un


recurso. Ante esto, si el deadlock involucra a todos los procesos del
sistema, el sistema ya no podr hacer algo productivo. Si el deadlock
involucra algunos procesos, stos quedarn congelados para
siempre. En el rea de la informtica, el problema del deadlock ha
provocado y producido una serie de estudios y tcnicas muy tiles,
ya que ste puede surgir en una sola mquina o como consecuencia
de compartir recursos en una red.
2.2. ASIGNACION DE PROCESOS
La asignacin puede ser ESTATICA o DINAMICA.
Si se asigna un proceso a un procesador de forma permanente,
desde su activacin hasta su terminacin, entonces debe
mantenerse una cola a corto plazo dedicada para cada procesador
.Una ventaja de este mtodo es que puede existir una sobrecarga
menor en la funcin de planificacin por que la asignacin al
procesador se realiza una sola vez y para siempre
Una desventaja de la asignacin esttica es que un procesador
puede estar desocupado, con cola vaca, mientras que otro
procesador tiene trabajos pendientes. Para prevenir esta situacin,
se puede usar una cola comn. Todos los procesos van a una cola
global y son ejecutados en
cualquier procesador que este
disponible. De este modo, durante la vida de un proceso, este se
puede ejecutar en diferentes procesadores en momentos diferentes y
la informacin de contexto de todos los procesos se encuentra
disponible para todos los procesadores y, por lo tanto el coste de la
planificacin de un proceso ser independiente de la identidad del
procesador en el que fue planificado.