Академический Документы
Профессиональный Документы
Культура Документы
b.
c.
d.
b.
Condiciones de Competencia
Es una situacin en la que dos o ms procesos intentan realizar alguna operacin
(Lectura-Escritura) en ciertos datos compartidos (In, Out) y el resultado final
depende de quin ejecuta qu y en qu momento.
Cualquier solucin que se utilice para resolver este problema debe cumplir los tres
requisitos siguientes:
Exclusin mutua: si un proceso est ejecutando cdigo de la seccin
crtica, ningn otro proceso lo podr hacer.
Progreso: si ningn proceso est ejecutando dentro de la seccin crtica, la
decisin de qu proceso entra en la seccin se har sobre los procesos que
desean entrar. Los procesos que no quieren entrar no pueden formar parte
de esta decisin. Adems, esta decisin debe realizarse en tiempo finito.
Espera acotada: debe haber un lmite en el nmero de veces que se
permite que los dems procesos entren a ejecutar cdigo de la seccin
crtica despus de que un proceso haya efectuado una solicitud de entrada
y antes de que se conceda la suya.
Principios de Concurrencia
En un sistema multiprogramado con un nico procesador, los procesos se
intercalan en el tiempo aparentando una ejecucin simultnea. Aunque no se logra
un procesamiento paralelo y produce una sobrecarga en los intercambios de
Sincronizacin:
Es un conjunto de protocolos y mecanismos utilizados para preservar la integridad
y consistencia del sistema, cuando varios procesos concurrentes comparten
recursos que son reutilizables en serie (slo pueden ser utilizados por un proceso
a la vez). Su estado y operacin pueden resultar corruptos si son manipulados
concurrentemente y sin sincronizacin por ms de un proceso.
Algoritmo de Dekker (exclusin mutua solucin por software).
Ultima Version:
return cierto;
}
else
{
return falso;
}
}
Semforos
Para solucionar problemas de procesos concurentes, se diseo un S.O. como un
conjunto de procesos secuenciales, eficiente y fiables para dar soporte a la
cooperacin. Los procesos de usuario podran utilizar estos mecanismos si el
procesador y el S.O. los hacan disponible.
El principio fundamental es el siguiente, 20+ procesos pueden cooperar por medio
de simples seales, de manera que se pueda obligar a un proceso a detener en
una posicin determinada hasta que reciba una seal especfica. Para la
sealizacin se usan variables especiales llamadas semforos "S", los procesos
ejecutan las primitivas wait(s) si la seal aun no se transmiti, el proceso se
suspende hasta que tiene lugar la transmisin.
A los semforos se los contemplan como variables que tienen un N entero sobre
el que se definen las siguientes operaciones:
a. un semforo puede iniciarse con un valor negativo
b. la operacin wait disminuye el valor del semforo. Si el valor no es positivo
el proceso que ejecuta wait se bloquea.
c. las operaciones signal incrementa el N del semforo. Si el valor es positivo
se desbloquea el proceso bloqueado por una operacin wait.
Estos mecanismo pueden ser utilizados para disear semforos en el caso de que
el sistema no proporcione este tipo de mecanismos.
Un contador de eventos se representa como una variable entera E cuyo valor
inicial ser 0, y sobre la que slo se podrn realizar las siguientes operaciones:
advance(E): se utiliza para indicar la aparicin de sucesos que
el diseador haya asociado al contador E. Cada vez que se
ejecuta esta funcin, E se incrementar.
Read(E): lee el valor del contador de eventos E. Si el nmero
ledo es positivo, indicar el nmero de sucesos que se han
producido en el sistema.
Await(E, v): espera a que el contador de eventos E haya
alcanzado el valor v. El proceso que llama a la funcin
permanecer bloqueado hasta que se hayan producido v
ms sucesos del tipo asociado al contador.
Cabe destacar que tanto await como read son concurrentes con advance, ya que
la operacin de esta ltima influye en el comportamiento de las otras dos.
Monitores
Es un tipo de procedimientos, variables y estructuras de datos que se agrupan en
un tipo de modulo especial. Tienen una propiedad importante: solo un proceso
puede estar activo en un monitor en un instante de tiempo.
Los monitores proveen un nuevo tipo de variables de condicin con dos
operaciones que operan sobre el (solo se usan dentro del procedimiento de el
monitor).
Wait -> wait(a) : produce que el proceso que ejecuta la instruccin sea
interrumpido y removido de la cola de ready hasta que otro proceso lo habilite
ejecutando la instruccin signal( )con la misma variable de condicin.
Signal -> signal(a) : Habilita la ejecucin de algn proceso en espera por la
ejecucin de la instruccin wait con la misma variable de condicin.
Paso de Mensajes
Son una solucin del sistema operativo que nos permitirn la sincronizacin de
procesos y la comunicacin entre ambos.
Es una cadena de texto transmitida de un proceso que enva el mensaje a un
receptor (proceso receptor). Un mensaje puede tener cdigo, texto, datos,
Suelen tener dos partes:
- Cabecera (obligatoria): IdProcesoEmisor, IdProcesoReceptor, Tipo, Longitud
- Cuerpo (optativo): Informacin adicional
Tenemos dos tipos de rdenes para gestionar mensajes (para enviar y recibir):
- Enviar: send (destino, mensaje)
- Recibir: receive (origen, mensaje)
*Direccionamiento.
a) Directo. Se especifican emisor y receptor de forma explcita.
P enva a Q:
- P: send (Q, mensaje)
- Q: receive (Q, mensaje)
b) Implcito: El emisor especifica quien es el receptor, pero el receptor no
especifica quin es el emisor.
c) Indirecto. En este direccionamiento los mensajes no se envan directamente al
receptor, sino que se envan a una estructura de datos denominada buzn o
mailbox. Una gran ventaja de esto es que podemos enviar a cualquier buzn
cualquier mensaje. Los mensajes no tienen que ir dirigidos especficamente a un
proceso.
En este tercer caso la relacin puede ser (1-1) (un proceso enva a un solo buzn).
Tambin puede haber (n-1) donde varios procesos envan mensajes a un solo
buzn o (1-n) donde un proceso enva mensajes a muchos buzones. Este ltimo
caso vale para cuando quiero comunicar una informacin a muchos procesos.
* Propiedad de los buzones.
Tenemos dos casos:
- El proceso es el propietario. El buzn existe mientras existe el proceso y slo
el propietario puede leer datos del buzn
Proceso B
wait(P);
wait(Q);
wait(Q);
wait(P);
....
....
signal(P);
signal(Q);
signal(Q);
signal(P);
Proceso B
1 wait(P);
2 wait(Q);
3 wait(Q);
4 wait(P);
Condiciones
Si se presentan simultneamente las cuatro siguientes condiciones el sistema est
en interbloqueo.
1. EXCLUSION MUTUA: Por lo menos un proceso que tenga otorgado un
recurso en forma exclusiva.
2. USO Y ESPERA: Debe existir al menos un proceso que est haciendo
uso de un recurso y que est esperando por otros recursos asignados a
otros procesos.
3. NO INTERRUPCION: Los recursos no pueden ser retirados al proceso.
Si un proceso hace uso de un recurso no le podr ser retirado hasta que
voluntariamente el proceso lo libere.
4. ESPERA CIRCULAR: Debe existir un conjunto de procesos {P1.....Pn}
tal que P1 espera por un recurso utilizado por P2,......,Pn espera por un
recurso utilizado por P1.
Deteccin
Algoritmos de Deteccin de interbloqueo
1.
Cuando hay una nica ocurrencia de cada recurso. (variante del grafo de
"wait for graph"). Consiste en reducir el grafo, retirando las aristas que van de
recursos a procesos y de procesos a recursos, colocando nuevas aristas que
reflejan la situacin de espera entre procesos. Si el grafo reducido tiene ciclos
el sistema est en interbloqueo. Orden de operaciones = n^2 , n = cantidad
de aristas.
2.
Procedure detecta_deadlock
var Disponible:array[1..n] of integer //# de recursos
Usados:array[1..n] of integer
Solicitados:array[1..n] of integer
Finalizado:array[1..n] of boolean
Begin
Work:=Disponibles;
For i:=1..n do if(usados[i]0) then finish[i]:=false
Else finish[i]:=true;
While(encontrar_indice_i = true) do
{
Work:=work + usados[i];
Finish[i]:=true;
}
If ((finish[i] = false) para algun i), 1in then El sistema esta en
interbloqueo.
End
No puede ser anulada porque existen recursos que deben ser usados en
modalidad exclusiva.
2.
La alternativa sera hacer que todos los procesos solicitaran todos los
recursos que habrn de utilizar antes de utilizarlos al momento de su
ejecucin lo cual sera muy ineficiente.
3.
4.
Recuperacin
a. Cancelacin de todos los procesos involucrados. Esto resuelve la situacin
de Deadlock pero tiene un costo muy alto de reprocesamiento.
b. Cancelacion de un proceso por vez hasta resolver la situacin de Deadlock.
La ventaja de esto es que el costo de reprosesamiento de la informacin es
menor pero cada vez que se cancela un proceso debe ejecutarse el
algoritmo de deteccin de deadlock. Los criterios para elegir el candidato a
ser cancelado son: por prioridad, por tiempo de uso de CPU, por cantidad
de recursos utilizados y por cuantos recursos adicionales habr de utilizar.
c. Obtencin de recursos (resourse Preemption). El sistema operativo
selecciona un proceso y le quita los recursos otorgados. Los criterios para
seleccionar el candidato son los mismos que para la cancelacin. El
proceso seleccionado se le quitan los recursos y se le lleva a un estado
consistente (Rollback).
Inanicin
Planificacin
La planificacin es el proceso por el cual el sistema operativo selecciona que
proceso ejecutar. La seleccin del proceso se basa en alguno de los algoritmos de
planificacin que se describen ms abajo.
Objetivos de la planificacin
Los objetivos de la planificacin de proceso son:
Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por
lotes para obtener sus resultados
Concurrencia
La concurrencia comprende un gran nmero de cuestiones de diseo, incluida
la comunicacin entre procesos, comparticin y competencia por los recursos,
sincronizacin de la ejecucin de varios procesos y asignacin del tiempo de
procesador a los procesos. Se ver que estas cuestiones no solo surgen en
entornos de multiprocesadores y proceso distribuido, sino incluso en sistemas
multiprogramados con un solo procesador.
La concurrencia puede presentarse en tres contextos diferentes:
Mltiples aplicaciones: la multiprogramacin se cre para permitir que el
tiempo de procesador de la mquina fuese compartido dinmicamente entre varias
aplicaciones activas.
la
programacin
estructurada,
algunas
aplicaciones
pueden
Clasificacin
Las cuatro categoras definidas por Flynn (1972) se basan en el nmero de
instrucciones concurrentes y en los flujos de datos disponibles en la arquitectura:
Granularidad
La granularidad se define como el nmero de elementos de proceso que
componen un computador paralelo.
Una granularidad fina consiste en el empleo de muchos elementos de proceso
de poca potencia. En este caso, el grado de paralelismo es mximo. Los
computadores de grano fino exigen tcnicas de programacin y algoritmos que
potencien el paralelismo.
Una mquina de grano grueso consta de pocos elementos procesadores, pero de
alta potencia cada uno.
planificacin de procesos
La planificacin de procesos en un sistema multiprocesador presenta dos
componentes:
Planificacin temporal, que define la poltica de planificacin en cada
procesador individual, exactamente igual que si de un monoprocesador se
tratase, salvo por el hecho de que en los multiprocesadores es menos
relevante para el rendimiento la poltica que se elija, y tanto menos cuanto
ms procesadores. En la planificacin temporal se decide qu procesos se
ejecutan.
Planificacin espacial, que define cmo se asignan los procesadores a los
diferentes procesos. En la planificacin espacial se decide en qu
procesadores se ejecutan los procesos.
planificacin de hilos.
Un hilo de ejecucin o thread , en sistemas operativos, es una caracterstica que
permite a una aplicacin realizar varias tareas concurrentemente. Los distintos
hilos de ejecucin comparten una serie de recursos tales como el espacio
de memoria, los archivos abiertos, situacin de autenticacin, etc.
Esta tcnica permite simplificar el diseo de una aplicacin que debe llevar a cabo
distintas funciones simultneamente.
Los hilos de ejecucin que comparten los mismos recursos, sumados a estos
recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos
de ejecucin de un mismo proceso compartan los recursos hace que cualquiera de
estos hilos pueda modificar stos.
Los sistemas operativos generalmente implementan hilos de dos maneras:
UNIVERSIDAD DE CARABOBO
FACULTAD DE CIENCIAS Y TECNOLOGIA
DEPARTAMENTO DE COMPUTACION
SISTEMAS OPERATIVOS
INTEGRANTES:
Gerardo Carrillo C.I: 16895077
Iregui Hembert C.I: 21.151.213
Palacios Luis
C.I: 18.781.981
C.I: 19.020.820
SECCION: 01