Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemas Operativos Paralelos, Javier Benitez Sanchez 5° B - Coggle Diagram
Sistemas Operativos Paralelos
Lenguajes de Programación
Juegan un papel fundamental, pues el “plan” se trata de un algoritmo que está describiendo en un lenguaje, mientras que la “representación” son los datos, que también son descritos en el lenguaje
Niveles de abstracción
§ Lenguaje natural: idiomas humanos.
§ Programación declarativa: Haskell,MySQL
§ Programación imperativa: C, Java, Python.
§ Ensamblador: GAS, MASMM MIP.
§ Lenguaje máquina: instrucciones binarias de electrónica.
Un paradigma de programación es un modelo conceptual subyacente de las teorías y prácticas de la programación.Paradigmas de programación:
El Imperativo que se basa en una secuencia de estados de transformaciones.
El Orientado a Objetos que simula la interacción entre objetos
El Funcional que mapea funciones según una entrada para generar una salida
El lógico que a través de relaciones lógicas se obtienen consultas.
Modelan nuestra manera de pensar problemas y soluciones según su verificación, sostenibilidad, velocidad, comprensibilidad, sostenibilidad, y el nivel de abstracción que permiten.
Programación paralela
Realización de un mundo paralelo con simulaciones con eventos asíncronos y con gran necesidad de procesamiento y almacenamiento de gran relevancia
El procesamiento paralelo es un subcampo de la ciencia computacional que incluye ideas de teorías de la ciencia computacional, arquitectura de computadoras, lenguajes de programación, algoritmos y áreas de aplicación como gráficos computacionales e inteligencia artificial
Se utiliza tanto a nivel de software como en el diseño arquitectónico de hardware.
Modelos Computacionales
Proporciona funciones de costos del tiempo real para la ejecución de un algoritmo en los recursos de una computadora según su arquitectura además describe un sistema de computación paralelo en términos de semántica del desarrollo de lenguajes de programación o un entorno de programación
Características
§ Nivel de paralelismo explotado en la ejecución.
§ Lo implícito o explícito definido por el usuario
§ Paralelismo
§ Modos y patrones de comunicación entre unidades de computación para intercambio de información.
§ Modo de ejecución de unidades paralelas(SIMD o SPMD)
§ Mecanismos de sincronización y comunicación entre unidades paralelas.
Tipos
El modelo de RAM
describe una computadora secuencial con una memoria y un procesador accediendo a la memoria
Un modelo computacional para el procesamiento paralelo es la PRAM(máquina paralela de acceso aleatorio) el cual es una generalización del modelo de la RAM
La memoria compartida sin hilos donde existe un espacio de direcciones en común para lectura y escritura asíncrona que implementa semáforos o seguros para el control de acceso a la memoria compartida con la ventaja programación simplificada y desventajas con posibles conflictos de sincronización relacionados con la localidad de los datos
La memoria compartida con hilos por su parte utiliza flujos de procesos intercomunicados
por la memoria global y es comúnmente asociados con los sistemas operativos
La memoria distribuida con paso de mensajes se utiliza la memoria local durante la computación y el intercambio de datos es por medio de mensajes que requieren de operaciones cooperativas para cada proceso
Los datos paralelos con instrucciones de un solo flujo se utilizan en varios datos limitándose solo a la manipulación de datos no regulares y por ancho de banda de memoria
Un modelo de alto nivel que se puede construir sobre cualquier combinación de los modelos anteriores pues todas las tareas ejecutan su copia del mismo programa simultáneamente, ya sea sin hilos, paso de mensajes que además requieren una lógica para permitir la ramificación en ciertas partes del programa, con múltiples programas múltiples datos (MPMD) s
Lenguajes de programación paralela
Tratan a la computación como la evaluación de funciones matemáticas y evitan estados y datos mutables, los lenguajes funcionales se basan en el cálculo Lambda
La concurrencia es un elemento fundamental de los algoritmos junto con la selección, recursividad y la repetición, por último, es una importante abstracción para el diseño del software y comprensión de la computación.
Los procesadores de un entorno de ejecución en paralelo ejecutan un programa paralelo, de modo que en cada procesador se ejecutan uno o varios flujos de control dependiendo de la coordinación específica, estos flujos de control se denominan procesos o hilos
Procesos, hilos,tareas o eventos controladores dirigidos por un planificador en el tiempo de ejecución y durante el control del siguiente programa
Dominios:
♦ numérico
♦Simbólico
♦Uso intensivo de datos.
Para evitar problemas con múltiples subprocesos explícitos por interferencia a través de la memoria compartida que pueden resultar en estados erróneos o violaciones invariantes de objeto se utilizan:
Cerraduras
Semáforos
Variables de condición
Monitores que aseguren la exclusión mutua
Javier Benitez Sanchez 5° B