Академический Документы
Профессиональный Документы
Культура Документы
Introducción ................................................................................................................. 1
Desarrollo .................................................................................................................... 1
Ningún proceso tiene que esperar para siempre para entrar a su región crítica. . 4
Planificación.......................................................................................................... 4
Hipersubprocesamiento ........................................................................................ 6
Conclusión ............................................................................................................... 8
Bibliografía .................................................................................................................. 8
1
Introducción
Desarrollo
Con frecuencia, los procesos necesitan comunicarse con otros procesos. Por ejemplo,
en una canalización del Shell, la salida del primer proceso se debe pasar al segundo
proceso y así sucesivamente. Por ende, existe una necesidad de comunicación entre
procesos, de preferencia en una forma bien estructurada sin utilizar interrupciones.
Condiciones de carrera
Regiones críticas
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 demás compartido
es buscar alguna manera de prohibir que más de un proceso lea y escriba los datos
compartidos al mismo tiempo. Dicho en otras palabras, lo que necesitamos es exclusión
mutua, cierta forma de asegurar que, si un proceso está utilizando una variable o archivo
compartido, los demás procesos se excluirán de hacer lo mismo.
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. Necesitamos cumplir con cuatro condiciones para tener una buena solución:
Ningún proceso tiene que esperar para siempre para entrar a su región crítica.
Planificación
Una cuestión clave relacionada con la planificación es saber cuándo tomar decisiones
de planificación. Resulta ser que hay una variedad de situaciones en las que se necesita
la planificación. En primer lugar, cuando se crea un nuevo proceso se debe tomar una
decisión en cuanto a si se debe ejecutar el proceso padre o el proceso hijo. Como ambos
procesos se encuentran en el estado listo, es una decisión normal de programación y
puede ejecutar cualquiera; es decir, el programador de procesos puede elegir ejecutar de
manera legítima, ya sea el padre o el hijo.
La CPU fue un gran avance tecnológico debido a la velocidad en la que podía ejecutar
instrucciones y realizar cálculos. Pero, aunque el procesador podría realizar millones de
operaciones por segundo, sólo podían realizar una operación por vez, hasta que los
procesadores de varios núcleos y de hiper subprocesamiento llegaron. Estos
procesadores pueden realizar varios procesos a la vez.
Núcleo simple
Este tipo de procesador más básico presenta una unidad de control y una unidad lógica
aritmética (ALU). La unidad de control realiza operaciones y ejecuta instrucciones
mientras que el ALU realiza los cálculos matemáticos. Un procesador de un solo núcleo
también contiene caché, que es una pequeña cantidad de memoria rápida incorporada
en el procesador. El caché no se considera parte del núcleo de procesamiento.
Doble núcleo
Los procesadores de doble núcleo tienen los componentes de dos núcleos separados
ubicados en el mismo chip. Así que una CPU de dos núcleos contiene dos núcleos de
6
Otros multi-núcleos
Hipersubprocesamiento
Memoria compartida
Es un sistema de cómputo en el que dos o más CPU comparten todo el acceso a una
RAM común. Un programa que se ejecuta en cualquiera de las CPU ve un espacio normal
de direcciones virtuales (por lo general paginadas). La única propiedad inusual que tiene
7
este sistema es que la CPU puede escribir cierto valor en una palabra de memoria y
después puede volver a leer esa palabra y obtener un valor distinto (tal vez porque otra
CPU lo cambió). Si se organiza en forma correcta, esta propiedad forma la base de la
comunicación entre procesadores: una CPU escribe ciertos datos en la memoria y otra
lee esos datos.
Memoria distribuida
Cada nodo tiene rápido acceso a su propia memoria y acceso a la memoria de otros
nodos mediante una red de comunicaciones, habitualmente una red de comunicaciones
de alta velocidad.
Los datos son intercambiados entre los nodos como mensajes a través de la red. Una
red de ordenadores, especialmente si disponen de una interconexión de alta velocidad,
puede ser vista como un multicomputador de memoria distribuida y como tal ser utilizada
para resolver problemas mediante computación paralela.
Conclusión
Como logramos notar estos enfoques se están desarrollando de una forma
maravillosa, pues la arquitectura paralela ya es una realidad en nuestros días, ahora el
reto se presenta a los programadores que deseen enfocarse al paradigma del cómputo
paralelo pues ahora la necesidad recae en tener unos buenos programadores de
computadoras paralelas y como logramos ver ya es posible, pues contamos con algunos
cuantos lenguajes paralelos, así como con sus compiladores, las herramientas están
frente a nosotros, sólo hace falta echar mano de ellas para realizar más cosas.
Bibliografía
Francisco Almeida, Domingo Giménez, José Miguel Mantas, and Antonio M. Vidal.
Introducción a la programación paralela. Paraninfo Cengage Learning, 2008.
https://www.ecured.cu/Proceso_inform%C3%A1tico
https://norbertomn.files.wordpress.com/2013/09/sistemas-operativos-modernos.pdf
https://techlandia.com/tipos-nucleos-procesador-lista_316143/
http://itcv-arquitectura-de-computadoras.blogspot.mx/2014/11/44-sistemas-de-
memoria-distribuida.htm