Investigación de: Sincronización de Procesos Sistemas Operativos
Enviado por Dexon123 • 25 de Septiembre de 2016 • Resumen • 3.792 Palabras (16 Páginas) • 328 Visitas
Investigación de: Sincronización de Procesos
Sistemas Operativos
Prof. Hernández Silva José
Integrantes: Jorge Eduardo Baños López, Josué De La Rosa Sánchez, Raúl Damián Valerio López
Link:
https://drive.google.com/file/d/0B66yFSroQ5JVMllySi1MNVJPalU/view?usp=sharing
Instituto Tecnológico de Veracruz
INDICE
Background……………………………………………3
Critical section problem……………………………..4
Solución de Peterson…………………………………5
Hardware de Sincronización……………………….7
Mutex locks…………………………………………..8
Requisitos para la exclusión mutua………………..9
Semáforos……………………………………………..10
Problemas Clásicos de la Sincronización……………14
La solución de búfer limitado…………………………………………….14
Problemas lectores y escritores……………………16
Problemas de los filósofos cenando…………….17
Monitores……………………………………………..18
Ejemplos de sincronización…………………………….18
Background
¿Qué es el Background?
También conocido como fondo o segundo plano se utiliza para nombrar a todos aquellos procesos o rutinas de ejecución que se realizan en segundo plano. En términos comunes esto significa, que los procesos ejecutados aquí se llevan a cabo con baja prioridad. Algunos puntos a repasar son:
- Los procesos en background pueden ser ejecutados concurrentemente, aunque estos puedan ser interrumpidos en cualquier momento,.
- El acceso concurrente para compartir información puede resultar un poco inconsistente.
- Mantener la consistencia de datos requiere mecanismos para garantizar la ejecución ordenada de procesos cooperativos
Una de las ventaja que tiene el background es que utiliza menos recursos y permite un aumento de la velocidad de procesado o la ejecución de más procesos simultáneamente; teniendo en cuenta que la CPU sólo atiende un proceso a la vez, pero se multiplexa en tiempo entre las diferentes rutinas para atenderlas a todas. Suele ser utilizado por sistemas operativos multitarea (scheduling con prioridad).
CRITICAL SECTION PROBLEM
¿Qué es? Se le conoce como Sección Critica la porción de código de un programa de ordenador en la que se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un proceso o hilo en ejecución. La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período determinado de tiempo para entrar.
Se debe considerar:
- Los n procesos del sistema.
- Cada proceso tiene una sección critica segmentada por un código: Los procesos de estos pueden ir cambiando variables comunes, actualizando tablas, escribiendo archivos, etc. Cuando otro proceso está en la sección critica, ninguno otro puede estar al mismo tiempo en ésta sección.
- El problema de la sección crítica es un protocolo designado para resolver los problemas que puedan surgir.
- Cada proceso tiene que solicitar permisos para poder acceder a la sección critica en ‘’Entry Section’’, o la sección de entrada, , también debe seguir un camino de secciones hasta llegar a la sección de salida.[pic 1]
Estructura generalizada de un proceso P:
Algoritmo para un proceso P:[pic 2]
Solución a un problema de Sección Critica
Exclusión mutua: Si el proceso P, se está ejecutando en la sección crítica, entonces otro proceso no podrá ser ejecutado en dichas secciones críticas.
Progreso: Si ningún proceso se está ejecutando en la sección crítica, y existe un proceso que quiera o necesite entrar en dicha sección, entonces la selección de procesos que desean entrar a la sección critica, siguientemente, no podrán ser pospuestos.
Solución de Peterson:
- Buena descripción algorítmica para solucionar el problema.
- Dos procesos de solución
- Asume que las instrucciones de carga y almacenamiento de machine-language son atómicos, o sea que no pueden ser interrumpidos.
- Ambos procesos comparten dos variables:
int turn;
Boolean flag [2]
- La variable ‘’turn’’ indica cuyo cambio será el que entre en la sección critica
- El arreglo ‘’flag’’ se usa para indicar si un proceso está listo para entrar a la sección critica
- Probables tres Cs requeridos que son conocidos:
- Exclusiones mutuas:
Pi enters CS only if:
either flag[j] = false or turn = i
- Requerimientos del proceso satisfecho
- Requerimiento de la Espera del bounded
Algoritmo par un proceso P:[pic 3]
Hardware de sincronización
En general Podemos afirmar que cualquier solución al problema de la sección crítica requiere una herramienta muy simple un cerrojo. Las condiciones de carrera se evitan requiriendo que las regiones críticas se protejan mediante cerrojos.
El soporte hardware puede facilitar cualquier tarea de programación y mejorar la eficiencia del sistema. El problema de la sección crítica podría resolverse de forma simple en un entorno de un solo procesador si pudiéramos impedir que se produjeran interrupciones mientras se está modificando una variable compartida.
...