Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

SISTEMAS OPERATIVOS I

No description
by

Jose Manuel Gil Vazquez

on 6 October 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of SISTEMAS OPERATIVOS I

Para solucionar el problema de la exclusión mutua vamos a tener tres tipos de soluciones:
Soluciones software.
Soluciones hardware.
Soluciones aportadas por el Sistema Operativo

Algunos ejemplos de algoritmos clásicos de exclusión mutua son:
El algoritmo de Dekker.
El algoritmo de Peterson
1.- Exclusion Mutua
Concepto de exclusión mutua.
Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.
1.- Exclusion Mutua
SISTEMAS OPERATIVOS I
1.-Exclusion Mutua
3.-Mecanismos de Semaforizacion
Concepto de sección crítica.
-Es la parte del programa con un comienzo y un final claramente marcados que generalmente contiene la actualización de una o más variables compartidas.
-Para que una solución al problema de la exclusión mutua sea válida, se tienen que cumplir una serie de condiciones:
Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en ningún momento dos procesos dentro de sus respectivas secciones críticas.
No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.
Ningún proceso que esté fuera de su sección crítica debe interrumpir a otro para el acceso a la sección crítica.
Cuando más de un proceso desee entrar en su sección crítica, 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.
1.- Exclusion Mutua
1.- Exclusion Mutua
EXCLUSIÓN MUTUA: SOLUCIONES POR SOFTWARE

Pueden implementarse soluciones de software para los procesos concurrentes que se ejecuten en máquinas monoprocesador o multiprocesador con memoria principal compartida.

EXCLUSIÓN MUTUA: SOLUCIONES POR HARDWARE
INHABILITACIÓN DE INTERRUPCIONES

En una máquina monoprocesador, la ejecución de procesos concurrentes no puede superponerse; los procesos solo pueden intercalarse. Es más, un proceso continuará ejecutándose hasta que solicite un servicio el sistema operativo o hasta que sea interrumpido. Por lo tanto, para garantizar la exclusión mutua, es suficiente con impedir que un proceso sea interrumpido. Esta capacidad puede ofrecerse en forma de primitivas definidas por el núcleo del sistema para habilitar o inhabilitar las interrupciones.
1.- Exclusion Mutua
REQUISITOS PARA LA EXCLUSIÓN MUTUA
Sólo un proceso, de todos los que poseen secciones críticas por el mismo recurso compartido, debe tener permiso para entrar en ella en un momento dado.
Un proceso que se interrumpe en una sección no crítica debe hacerlo sin interferir con los otros procesos.
Un proceso no debe poder solicitar acceso a una sección crítica para después ser demorado indefinidamente, no puede permitirse el interbloqueo o la inanición.
Si ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin demora.
No se debe suponer sobre la velocidad relativa de los procesos o el número de procesadores.
Un proceso permanece en su sección crítica por un tiempo finito.
Una manera de satisfacer los requisitos de exclusión mutua es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente. Tanto si son programas del sistema como de aplicación, los procesos deben coordinarse unos con otros para cumplir la exclusión mutua, sin ayuda del lenguaje de programación o del sistema operativo. Estos métodos se conocen como soluciones por software.
Las diversas soluciones hardware al problema de la seccion critica, basadas en las instrucciones TestAndSet () y Swap (), son complicadas de utilizar por los programadores de aplicaciones. Para superar esta dificultad, podemos usar una herramienta de sincronizacion denominada semaforo.
Un semaforo S es una variable entera a la que, dejando aparte la inicializacion, solo se accede mediante dos operaciones atomicas estandar: wait () y signal (). Originalmente, la operacion wait () se denominaba P (del termino holandes proberen, probar); mientras que signal( ) denominaba originalmente V (verhogen, incrementar).
3.- Mecanismos de Semaforizacion
La definicion de wait () es la que sigue:
wait (S) {
while S <= 0
;??? // no-op
S--;
}
La definicion de signal () es:
signal(S) {
S++;
}
Todas las modificaciones del valor entero del semaforo en las operaciones wait () y signal () deben ejecutarse de forma indivisible. Es decir, cuando un proceso modifica el valor del semaforo, ningun otro proceso puede modificar simultaneamente el valor de dicho semaforo. Ademas, en el caso de wait(), la prueba del valor entero de S (S <- 0), y su posible modificacion (S - -) tambien se deben ejecutar sin interrupcion.
3.- Mecanismos de Semaforizacion
Utilizacion
Los sistemas operativos diferencian a menudo entre semaforos contadores y semaforos binarios. El valor de un semaforo contador puede variar en un dominio no restringido, mientras que el valor de un semaforo binario solo puede ser 0 01. En algunos sistemas, los semaforos binarios se conocen como cerrojos mutex, ya que son cerrojos que proporcionan exclusion mutua.
Los semaforos contadores se pueden usar para controlar el acceso a un determinado recurso formado por un numero finito de instancias. El semaforo se inicializa con el numero de recursos disponibles. Cada proceso que desee usar un recurso ejecuta una operacion wait () en el semaforo (decrementando la cuenta). Cuando un proceso libera un recurso, ejecuta una operacion signal()(incrementando la cuenta). Cuando la cuenta del semaforo llega a 0, todos los recursos estaran en uso. Despues, los procesos que deseen usar un recurso se bloquearan hasta que la cuenta sea mayor que 0.
3.- Mecanismos de Semaforizacion
Implementacion
La principal desventaja de la definicion de semaforo dada aqui es que requiere una espera activa. Mientras un proceso esta en su seccion critica, cualquier otro proceso que intente entrar en su seccion critica debe ejecutar continuamente un bucle en el codigo de entrada. Este bucle continuo plantea claramente un problema en un sistema real de multiprogramacion, donde una sola CPU se comparte entre muchos procesos.
Los cambios de contexto pueden llevar un tiempo considerable. Por tanto, cuando se espera que lo-s cerrojos se mantengan durante un periodo de tiempo corto, los cerrojos mediante bucle sin fin pueden resultar utiles; por eso se emplean a menudo en los sistemas multiprocesador, donde una hebra puede "ejecutar un bucle" sobre un procesador mientras otra hebra ejecuta su seccion critica en otro procesador).
3.- Mecanismos de Semaforizacion
El aspecto critico de los semaforos es que se deben ejecutar atomicamente: tenemos que garantizar que dos procesos no puedan ejecutar al mismo tiempo sendas operaciones waitO y signal () sobre el mismo semaforo. Se trata de un problema de seccion critica. En un entorno de un solo procesador (es decir, en el que solo exista una CPU), podemos solucionar el problema de forma sencilla inhibiendo las interrupciones durante el tiempo en que se ejecutan las operaciones wait () y signal (). Este esquema funciona adecuadamente en un entorno de un solo procesador porque, una vez que se inhiben las interrupciones, las instrucciones de los diferentes procesos no pueden intercalarse: solo se ejecuta el proceso actual hasta que se reactivan las interrupciones y el planificador puede tomar de nuevo el control.

3.- Mecanismos de Semaforizacion
Interbloqueos e inanicion
La implementacion de un semaforo con una cola de espera puede dar lugar a una situacion en la que dos o mas procesos esten esperando indefinidamente a que se produzca un suceso que solo puede producirse como consecuencia de las operaciones efectuadas por otro de los procesos en espera. El suceso en cuestion es la ejecucion de una operacion signal (). Cuando se llega a un estado asi, se dice que estos procesos se han interbloqueado.


Para qué me sirve esta en la vida real
Pues para resolver algoritmos de manera eficiente y evitar que varios caminos se crucen entre sí, o a su vez dar espacio y prioridad para que este se ejecute.
Porque semáforo o semáforizacion
Porque es un ejemplo claro de hilos de programación en la ida diaria
3.- Mecanismos de Semaforizacion
INSTITUTO TECNOLOGICO DE TIJUANA

ITICS
SISTEMAS OPERATIVOS I

GIL VAZQUEZ JOSE MANUEL
GUTIERREZ SOLORIO JHONATAN OMAR
GOMEZ HERNANDEZ DAVID JONATHAN
RODRIGUEZ FLORES CESAR RAFAEL

Equipo #1
Full transcript