Anda di halaman 1dari 6

1.

SECCIN CRITICA
Definicin:
Es un conjunto de instrucciones que acceden a un dato que es compartido
para al menos otro proceso del sistema, de forma que al menos uno de ellos
puede modificar la variable.
Es la parte del programa con un comienzo y un final claramente marcados
que generalmente contiene la actualizacin de una o ms variables
compartidas.
Cmo evitamos las condiciones de carrera? La clave para evitar problemas
aqu y en muchas otras situaciones en las que se involucran la memoria
compartida, los archivos compartidos y todo lo dems compartido es buscar
alguna manera de prohibir que ms de un proceso lea y escriba los datos
compartidos al mismo tiempo. Dicho en otras palabras, lo que necesitamos
es exclusin mutua, cierta forma de asegurar que si un proceso est
utilizando una variable o archivo compartido, los dems procesos se
excluirn de hacer lo mismo. La dificultad antes mencionada ocurri debido
a que el proceso B empez a utilizar una de las variables compartidas antes
de que el proceso A terminara con ella. La eleccin de operaciones
primitivas apropiadas para lograr la exclusin mutua es una cuestin de
diseo importante en cualquier sistema operativo y un tema que
analizaremos con mayor detalle en las siguientes secciones.
El problema de evitar las condiciones de carrera tambin se puede formular
de una manera abstracta. Parte del tiempo, un proceso est ocupado
realizando clculos internos y otras cosas que no producen condiciones de
carrera. Sin embargo, algunas veces un proceso tiene que acceder a la
memoria compartida o a archivos compartidos, o hacer otras cosas crticas
que pueden producir carreras. Esa parte del programa en la que se accede a
la memoria compartida se conoce como regin crtica o seccin crtica. Si
pudiramos ordenar las cosas de manera que dos procesos nunca
estuvieran en sus regiones crticas al mismo tiempo, podramos evitar las
carreras.

Aunque este requerimiento evita las condiciones de carrera, no es suficiente


para que los procesos en paralelo cooperen de la manera correcta y
eficiente al utilizar datos compartidos.

(wikipedia, 2014)

Condiciones para tener una buena solucin:

No puede haber dos procesos de manera simultnea dentro de sus


regiones crticas.

No pueden hacerse suposiciones acerca de las velocidades o el


nmero de CPUS.

Ningn proceso que se ejecute fuera de su regin crtica puede


bloquear otros procesos.

Ningn proceso tiene que esperar para siempre para entrar a su


regin crtica. (http://sistemasoperativos, s.f.)

Clave para evitar problemas de archivos


compartidos:
Buscar alguna manera de prohibir que ms de un proceso lea y
escriba los datos compartidos al mismo tiempo.
Por lo que necesitamos la EXCLUSIN MUTUA, el cual asegurar
que si un proceso est utilizando un archivo compartido los dems se
excluyan de hacer lo mismo.

2.

Exclusin mutua
Consiste en que un solo proceso excluye temporalmente a todos los
dems para usar un recurso compartido de forma que garantice la
integridad del sistema. (https://es.wikipedia.org, 2016)

Solucin al Problema de La Exclusin Mutua.


Para que una solucin al problema de la exclusin mutua sea vlida,
se tienen que cumplir una serie de condiciones:

Hay que garantizar la exclusin mutua entre los diferentes

procesos a la hora de acceder al recurso compartido. No puede


haber en ningn momento dos procesos dentro de sus respectivas
secciones crticas.
No se deben hacer suposiciones en cuanto a la velocidad

relativa de los procesos en conflicto.


Ningn proceso que est fuera de su seccin crtica debe

interrumpir a otro para el acceso a la seccin crtica.


Cuando ms de un proceso desee entrar en su seccin crtica,

se le debe conceder la entrada en un tiempo finito, es decir, que


nunca se le tendr esperando en un bucle que no tenga final.

Exclusin Mutua con espera ocupada


DESHABILITANDO INTERRUPCIONES: En un sistema con un solo
procesador, la solucin ms simple es hacer que cada proceso
deshabilite todas las interrupciones justo despus de entrar a su regin
crtica y las rehabilite justo despus de salir. Con las interrupciones
deshabilitadas, no pueden ocurrir interrupciones de reloj. Despus de
todo, la CPU slo se conmuta de un proceso a otro como resultado de
una interrupcin del reloj o de otro tipo, y con las interrupciones
desactivadas la CPU no se conmutar a otro proceso.
Por ende, una vez que un proceso ha deshabilitado las interrupciones,
puede examinar y actualizar la memoria compartida sin temor de que
algn otro proceso intervenga. La posibilidad de lograr la exclusin
mutua al deshabilitar las interrupciones (incluso dentro del kernel) est
disminuyendo da con da debido al creciente nmero de chips
multincleo que se encuentran hasta en las Pcs de bajo rendimiento. Ya
es comn que haya dos ncleos, cuatro y dentro de poco habr 8, 16.
En

un

multincleo(es

decir,

sistema

con

multiprocesadores)

al

deshabilitar las interrupciones de una CPU no se evita que las dems


CPUs interfieran con las operaciones que la primera CPU est
realizando, requiriendo sistemas ms sofisticados.

VARIABLES DE CANDADO:
Es una solucin de software. Considere tener una sola variable
compartida (de candado), que al principio es 0. Cuando un proceso
desea entrar a su regin crtica primero evala el candado. Si este
candado es 0, el proceso lo fija en 1 y entra a la regin crtica. Si el
candado ya es 1 solo espera hasta que el candado se haga 0. Por ende,
un 0 significa que ningn proceso est en su regin crtica y un 1
significa que algn proceso est en su regin crtica.
ALTERNANCIA ESTRICTA:
La variable entera TURNO (que al principio es 0) lleva la cuenta acerca
de qu proceso le toca entrar a su regin crtica y examinar o actualizar
la memoria compartida. Al principio el proceso 0 inspecciona TURNO,
descubre que es 0 y entra a su regin crtica.
El proceso 1 tambin descubre que es 0 y por lo tanto se queda en un
ciclo estrecho, evaluando TURNO en forma continua para ver cundo se
convierte en 1. A la seccin de evaluar en forma continua una
variable hasta que aparezca cierto valor se le conoce como ESPERA
OCUPADA.
Por lo general se debe evitar, ya que desperdicia tiempo de la CPU. La
espera ocupada solo se utiliza cuando hay una expectativa razonable
de que la espera ser corta. A un candado que utiliza la espera
ocupada se le conoce como CANDADO DE GIRO.
SOLUCIN DE PETERSON:
Este algoritmo consiste de dos procedimientos escritos en ANSI C, lo
cual significa que deben suministrar prototipos para todas las funciones
definidas y utilizadas. Antes de utilizar las variables compartidas (es
decir, antes de entrar a su regin crtica), cada proceso llama a
entrar_region con su propio nmero de proceso (0 o 1) como
parmetro.

Esta llamada har que espere, si es necesario, hasta que sea seguro
entrar. Una vez que haya terminado con las variables compartidas, el
proceso llama a salir_region para indicar que ha terminado y permitir
que los dems procesos entren, si as lo desea.

LA INSTRUCCIN TSL:
Para computadoras diseadas para soportar multiprocesadores.
Instruccin: Test and Set Lock o TSL REGISTRO CANDADO (Evaluar y
fijar el candado) que funciona de la siguiente manera. Lee el contenido
de la palabra de memoria candado y lo guarda en el registro RX, y
despus almacena un valor distinto de cero en la direccin de memoria
candado.
Se garantiza que las operaciones de leer la palabra y almacenar un
valor en ella sern indivisibles; ningn otro procesador puede acceder a
la palabra de memoria sino hasta que termine la instruccin.

(lcsistemasoperativos.wordpress, 2016)

Bibliografa
http://sistemasoperativos. (s.f.). Obtenido de http://sistemasoperativos:
http://sistemasoperativos.angelfire.com/html/2.4.1.html
https://es.wikipedia.org. (2016 de Marzo de 2016). Obtenido de
https://es.wikipedia.org: https://es.wikipedia.org/wiki/Exclusi
%C3%B3n_mutua_(inform%C3%A1tica)
lcsistemasoperativos.wordpress. (03 de Febrero de 2016). Obtenido de
lcsistemasoperativos.wordpress:
https://lcsistemasoperativos.wordpress.com/tag/espera-ocupada/
wikipedia. (14 de Diciembre de 2014). Obtenido de wikipedia:
https://es.wikipedia.org/wiki/Secci%C3%B3n_cr%C3%ADtica