Tema_2_2
Páginas: 6 (1287 palabras)
Publicado: 10 de noviembre de 2015
PROGRAMA DE INGENIERÍA INFORMÁTICA
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 están activos
simultáneamente.
Procesos Concurrentes Independientes: No comparte recursos
con otros procesos, no se comunica, noafecta ni es afectado por
otros procesos.
Procesos Concurrentes Cooperativos: comparte recursos y se
comunica con otros procesos.
Multiprogramación: Técnica de software que permite correr varios
procesos concurrentemente usando un sólo CPU (pseudoconcurrencia) Hoy en día se usa más el término multitasking ó
multithreading para designar el mismo efecto.
Multiprocesamiento: (multiprocessing):Involucra la gestión de
varios procesadores en más de un CPU. Una máquina
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 procesoestá
escribiendo en la unidad de cinta y se le termina su turno de
ejecución e inmediatamente después 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 sistemaoperativo debe ofrecer mecanismos para sincronizar la
ejecución de procesos: semáforos, envío de mensajes, 'pipes', etc.
Los semáforos son rutinas de software (que en su nivel más interno
se auxilian del hardware) para lograr exclusión 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 condición de carrera
(race condition) ocurre cuando dos o más 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 operación en cajeros diferentes al mismo tiempo.
El usuario A quiere hacer un depósito. El B unretiro. El usuario A
comienza la transacción y lee su saldo que es 1000. En ese
momento pierde su turno de ejecución (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 ejecución
regresa al usuario A el cual hace su depósito de 100, quedando
saldo = saldo + 100 = 1000 + 100 = 1100. Como seve, el retiro se
perdió y eso le encanta al usuario A y B, pero al banquero no le
convino esta transacción. El error pudo ser al revés, quedando el
saldo final en 800.
Postergación o Aplazamiento Indefinido: Consiste en el hecho de
que uno o varios procesos nunca reciban el suficiente tiempo de
ejecución para terminar su tarea.
Ejemplo: Un proceso ocupa un recurso y lo marca como 'ocupado' ytermina sin marcarlo como 'desocupado'. Si algún otro proceso pide
ese recurso, lo verá 'ocupado' y esperará indefinidamente a que se
'desocupe'.
Condición de Espera Circular: Esto ocurre cuando dos o más
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 alproceso 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 quitándole a la fuerza un recurso a
cualquiera de los dos procesos.
Condición de No Apropiación: Esta condición no resulta
precisamente de la concurrencia, pero juega un papel importante en
este ambiente. Esta condición especifica que si...
Leer documento completo
Regístrate para leer el documento completo.