Publicado el 25 de Junio del 2017
696 visualizaciones desde el 25 de Junio del 2017
284,6 KB
24 paginas
Creado hace 13a (25/11/2011)
SISTEMAS OPERATIVOS
PROCESOS CONCURRENTES – UNIDAD III
Mas Publicaciones | Sala de Prensa - Noticias | Testimonios | Página de Inicio
1
INDICE
Karen Suzely Sandoval Diaz
ID: UB6571SSE13056
No. Página
INTRODUCCIÓN ............................................................................................................ 3
PROCESAMIENTO PARALELO .................................................................................... 4
MULTIPROCESAMIENTO SIMETRICO .................................................................... 6
PROCESAMIENTO MASIVAMENTE PARALELO ..................................................... 7
PROCESAMIENTO PARALELO ESCALABLE .......................................................... 9
EXCLUSIÓN MUTUA ................................................................................................... 11
Cierre de exclusión mutua ........................................................................................ 12
Primitivas y uso ..................................................................................................... 13
ALGORITMO DE DEKKER .......................................................................................... 13
ALGORITMO DE PETERSON ..................................................................................... 15
Algoritmo para dos procesos .................................................................................... 15
LA SINCRONIZACIÓN ................................................................................................. 16
SEMÁFORO ................................................................................................................. 17
Operaciones ............................................................................................................. 17
Usos .......................................................................................................................... 19
Ejemplo de uso ......................................................................................................... 20
MONITOR ..................................................................................................................... 21
Componentes ........................................................................................................... 21
Exclusión mutua en un monitor ................................................................................ 21
Tipos de monitores ................................................................................................... 22
Tipo Hoare ................................................................................................................ 23
Ventajas ................................................................................................................ 23
Desventajas .......................................................................................................... 23
Tipo Mesa ................................................................................................................. 23
BIBLIOGRAFÍAS .......................................................................................................... 24
Mas Publicaciones | Sala de Prensa - Noticias | Testimonios | Página de Inicio
2
INTRODUCCIÓN
El algoritmo de Drekker es un algoritmo de programación concurrente para exclusión
mutua, que permite a dos procesos o hilos de ejecución compartir un recurso sin
conflictos. Fue uno de los primeros algoritmos de exclusión mutua inventados,
implementado por Edsger Dijkstra.
Si ambos procesos intentan acceder a la sección crítica simultáneamente, el algoritmo
elige un proceso según una variable turno. Si el otro proceso está ejecutando en su
sección crítica, deberá esperar su finalización.
En los sistemas operativos multiprogramados surge el concepto de proceso, asociado
a la ejecución de un programa. En general, un proceso es un flujo de ejecución,
representado básicamente por un contador de programa, y su contexto de ejecución,
que puede ser más o menos amplio. Así, un proceso incluye en su contexto el estado
de la pila, el estado de la memoria y el estado de la E/S, mientras que un thread típico
tiene como contexto propio poco más que la pila. En algunos sistemas es posible
determinar el contexto propio de un proceso en el momento de su creación, como
ocurre con la llamada al sistema clone() de Linux. En adelante, sin perder generalidad,
utilizaremos siempre el término proceso, independientemente de cuál sea su contexto.
Uno de los objetivos del sistema operativo es la representación de los procesos y el
soporte de los cambios de contexto entre procesos, que posibilitan la compartición del
recurso CPU. El acceso a otros recursos compartidos y la comunicaciónentre procesos
relacionados (por ejemplo, de una misma aplicación) hacen necesaria la utilización de
mecanismos de sincronización dentro del sistema operativo. Típicamente, un proceso
requiere la CPU durante un periodo de tiempo, realiza alguna operación de E/S, y
vuelve a requerir la CPU, repitiéndose este ciclo hasta la finalización del programa. El
proceso pasa por diversos estados entre los que se definen transiciones, como
representa, en su forma más sencilla, el grafo de la Figura siguiente.
Mas Publicaciones | Sala de Prensa - Noticias | Testimonios | Página de Inicio
3
Cada vez que un proceso pasa al estado preparado, está compitiendo por el recurso
CPU. Un segundo objetivo del sistema operativo multiprogramado es la planificación
del uso del (de los) recurso(s) de proceso. Los criterios que se siguen para la
planificación y las políticas que se usan se estudiarán mas adelante en el desarrollo de
la presente investigación.
PROCESAMIENTO PARALELO
Las arquitecturas paralelas tienen un notable incremento en la velocidad de
procesamiento.
Mas Publicaciones | Sala de Prensa - Noticias | Testimonios | Página de Inicio
4
• En computación, el procesamiento paralelo es la ejecución de diferentes
procesos en dos o mas procesadores al mismo tiempo, donde estos procesos
juntos resuelven un problema completamente.
• Un proceso debe entenderse como un fragmento de código en ejecución que
convive con otros fragmentos.
El procesamiento paralelo ofrece una gran ventaja en cuanto a costos. Sin embargo,
su principal beneficio,
la escalabilidad (crecer hacia arquitecturas de mayor
capacidad), puede ser difícil de alcanzar aún. Esto se debe a que conforme se añaden
procesadores, las disputas por los recursos compartidos se intensifican.
Mas Publicaciones | Sala de Prensa - Noticias | Testimonios | Página de Inicio
5
Algunos diseños diferentes de procesamiento paralelo enfrentan este problema
fundamental:
• Multiprocesamiento simétrico
• Procesamiento masivamente paralelo
• Procesamiento paralelo escalable
Cada diseño tiene sus propias ventajas y desventajas.
MULTIPROCESAMIENTO SIMETRICO
El Multiprocesamiento simétrico (symmetric multiprocessing / SMP) tiene un diseño
simple pero aún así efectivo. En SMP, múltiples procesadores comparten la memoria
RAM y el bus del sistema. Este diseño es también conocido como estrechamente
acoplado (tightly coupled), o compartiendo todo (shared everything).
Debido a que SMP comparte globalmente la memoria RAM, tiene solamente un
espacio de memoria, lo que simplifica tanto el sistema físico como la programación de
aplicaciones. Este espacio de memoria único permite que un Sistema Operativo con
Multiconexión (multithreaded operating system) distribuya las tareas entre varios
procesadores, o permite que una aplicación obtenga la memoria que necesita para
una simulación compleja. La memoria globalmente compartida también vuelve fácil la
sincronización de los datos.
SMP es uno de los diseños de procesamiento paralelo más maduro. Apareció en los
supercomputadores Cray X-MP y en sistemas similares hace década y media (en
1983).
Mas Publicaciones | Sala de Prensa - Noticias | Testimonios | Página de Inicio
6
Sin embargo, esta memoria global contribuye el problema más grande de SMP:
conforme se añaden procesadores, el tráfico en el bus de memoria se satura. Al añadir
memoria caché a cada procesador se puede reducir algo del tráfico en el bus, pero el
bus generalmente se convierte en un cuello de botella al manejarse alrededor de ocho
o más procesadores. SMP es considerada una tecnología no escalable.
PROCESAMIENTO MASIVAMENTE PARALELO
Mas Publicaciones | Sala de Prensa - Noticias | Testimonios | Página de Inicio
7
El Procesamiento masivamente paralelo (Massively parallel processing / MPP) es otro
diseño de procesamiento paralelo. Para evitar los cuellos de botella en el bus de
memoria, MPP no utiliza memoria compartida. En su lugar, distribuye la memoria RAM
entre los procesadores de modo que se semeja a una red (cada procesador con su
memoria distribuida asociada es similar a un computador dentro de una red de
procesamiento distribuido). Debido a la distribución dispersa de los recursos RAM,
esta arquitectura es también conocida como dispersamente acoplada (loosely
coupled), o compartiendo nada (shared nothing).
Para tener acceso a la memoria fuera de su propia RAM, los procesadores utilizan un
esquema de paso de mensajes análogo a los paquetes de datos en redes. Este
sistema reduce el tráfico del bus, debido a que
Comentarios de: Sistemas Operativos - Procesos concurrentes - Unidad III (0)
No hay comentarios