ACII 2do Parcial.pdf
Document Details
Uploaded by LighterTheme9174
Unpamplona
Tags
Related
- Artificial Intelligence & Data Science S.E. Operating Systems Past Paper PDF - 2019 Pattern
- Operating Systems Fundamentals PDF
- Computer Science: Chapter 3 - Operating Systems (PDF)
- OCR Computer Science A Level 1.2.1 Systems Software Notes PDF
- UNIT 5 MEMORY MANAGEMENT-1 PDF
- Operating Systems Memory Management PDF
Full Transcript
Segundo Parcial de ACII – Resumen Direccionamientos a memoria principal MP 1. ¿Para qué se utiliza la MP en un sistema informático? La memoria principal se utiliza en un sistema informático para almacenar temporalmente datos e inst...
Segundo Parcial de ACII – Resumen Direccionamientos a memoria principal MP 1. ¿Para qué se utiliza la MP en un sistema informático? La memoria principal se utiliza en un sistema informático para almacenar temporalmente datos e instrucciones que el procesador necesita acceder rápidamente para ejecutar tareas. Además, actúa como un espacio de trabajo rápido donde se cargan programas y archivos que están en uso, permitiendo un acceso eficiente a la información necesaria para el funcionamiento del software. La MP también mantiene los datos necesarios para las operaciones en curso, lo que facilita que el procesador realice sus funciones de manera ágil y eficiente. 2. ¿Qué es una memoria segmentada? ¿Qué es un segmento de MP? ¿Cómo se direcciona? ¿Cuál es el beneficio de implementarla? La memoria segmentada es una técnica de gestión de memoria donde la memoria se divide en segmentos de diferentes tamaños, cada uno puede contener un conjunto de específico de instrucciones (códigos, datos, pilas etc.). Cada segmento tiene un identificador único, lo que facilita la gestión y protección de la memoria. Un segmento de MP es una porción de memoria con un tamaño y propósito definido que puede contener tanto datos como instrucciones ejecutables y es protegido por un sistema de control de acceso. Este sistema permite a los programas acceder solo a los segmentos de memoria para los que tienen permiso, mejorando la seguridad y estabilidad del sistema. La dirección de un segmento de MP se compone de dos partes: el selector del segmento y el desplazamiento dentro del segmento. El selector del segmento se utiliza para obtener la dirección base del segmento en una tabla de segmentos, mientras que el desplazamiento se utiliza para acceder a una dirección concreta dentro del segmento. El principal beneficio de implementar la segmentación radica en la capacidad de manejar de manera eficiente diferentes tipos de datos, aumentando la protección y seguridad al aislar los segmentos. Esto permite asignar permisos de acceso específicos a cada segmento, facilitando la programación con segmentos de diferentes tamaños y protegiendo la memoria contra errores y accesos no autorizados. 3. ¿Qué es una MP paginada? ¿Para qué se utiliza? ¿Cuál es su ventaja? La memoria principal paginada es una técnica donde la memoria se divide en bloques de tamaño fijo llamados páginas. Se utiliza para gestionar la memoria de manera más eficiente, permitiendo que el espacio de direcciones físicas no contiguo sea tratado como si fuera contiguo. La principal ventaja es que evita la fragmentación externa y permite una mejor utilización de la memoria física. 4. ¿Qué especifica el direccionamiento a MP? (RAS+CAS-WE) El direccionamiento a memoria principal se especifica mediante señales de control como RAS (Row Address Strobe), CAS (Column Address Strobe) y WE (Write Enable). Estas señales ayudan a seleccionar la fila y columna correctas en una matriz de memoria para acceder o escribir datos. 5. ¿Por qué decimos que el microprocesador maneja una dirección de memoria virtual? El microprocesador maneja una dirección de memoria virtual porque utiliza un proceso de traducción de direcciones físicas a direcciones virtuales, haciendo que el acceso a la memoria sea eficiente y flexible (esquema de direccionamiento que abstrae la memoria física real, permitiendo que cada proceso vea una dirección de memoria continua y aislada). La memoria virtual permite a los programas utilizar más memoria de la disponible físicamente en el sistema y facilita la gestión de memoria y mejora la seguridad y estabilidad del sistema. 6. ¿Qué es una dirección de memoria efectiva? ¿Cómo se calcula? Una dirección de memoria efectiva es la dirección final a la que accede el procesador después de aplicar todos los cálculos de desplazamiento y segmentación. Se calcula sumando el valor del registro de segmento desplazado a la izquierda por cuatro posiciones y el desplazamiento especificado. 7. ¿Qué elementos intervienen en el direccionamiento? Describa cada uno. Registros de Propósito General: se utilizan para una variedad de propósitos dentro del procesador, como operaciones aritméticas, manipulación de datos y direccionamiento de memoria. Cada registro tiene un propósito específico pero flexible, lo que significa que pueden ser utilizados para diferentes tareas según las necesidades del programa en ejecución. AX (Acumulador): Se usa para operaciones aritméticas y también para guardar resultados temporales. BX (Base): Se emplea para direccionar la memoria, especialmente en operaciones con arreglos y estructuras de datos. CX (Contador): Se utiliza en bucles y operaciones de desplazamiento de bits. DX (Datos): Es importante en operaciones de entrada/salida y algunas operaciones aritméticas. Registros de Índice: utilizados para calcular direcciones efectivas mediante sumas de desplazamientos. IP (Apuntador de instrucción): Señala la posición de la siguiente instrucción a ejecutar. SP y BP: Utilizados para el direccionamiento del área de la pila. SI y DI: Empleados en instrucciones para manipulación de cadenas y direccionamiento indexado. Registros de estado: contienen información sobre el estado actual del procesador y se utilizan principalmente para controlar el flujo de ejecución del programa y para manejar condiciones y resultados de operaciones. Banderas de control: o DF (Dirección): Controla la dirección de los registros de índices en el manejo de cadenas. o IF (Interrupción): Habilita o deshabilita interrupciones enmascaradas. o TF (Trap): Controla la operación en modo paso a paso. Banderas de estado: o CF (Acarreo): Indica acarreo en operaciones aritméticas. o OF (Desbordamiento): Indica desbordamiento en operaciones aritméticas. o ZF (Cero): Indica resultado cero. o SF (Signo): Indica resultado negativo. o PF (Paridad): Indica número con paridad par. o AF (Acarreo auxiliar): Indica acarreo a nivel del cuarto bit. Registros de Segmento: son utilizados para la gestión de la memoria en arquitecturas de procesadores x86. Cada registro de segmento almacena la base de un segmento de memoria específico y, junto con el puntero de instrucción (IP) o los punteros de pila (SP y BP), determina la dirección física real en la que se encuentra almacenado un dato o una instrucción en la memoria. CS (Segmento de código): Contiene la dirección base del segmento de código, que almacena las instrucciones ejecutables. DS (Segmento de datos): Almacena la dirección base del segmento de datos, donde se encuentran las variables del programa. ES (Segmento extra): Se utiliza como un segmento adicional para operaciones de transferencia de memoria. SS (Segmento de pila): Contiene la dirección base del segmento de pila, donde se almacenan los datos temporales y los registros de activación de las subrutinas. 8. ¿Quién se encarga de direccionar a MP? ¿Cómo lo hace? El procesador es responsable de direccionar la memoria principal. Lo hace mediante el uso de un conjunto de registros y mecanismos de traducción de direcciones, como las tablas de páginas en sistemas paginados. Estos mecanismos convierten las direcciones virtuales generadas por los programas en direcciones físicas de la memoria. Cuando un programa se ejecuta, el procesador genera direcciones de memoria para acceder a ubicaciones específicas, utilizando un sistema de direccionamiento para traducir las direcciones generadas por el software en direcciones físicas en la memoria principal. 9. ¿Qué es un registro de propósito general? ¿Qué es un registro de dirección? El Registro de propósito general es un registro que puede utilizarse para varias operaciones dentro del procesador, como cálculos aritméticos, almacenamiento temporal de datos y direccionamiento. En cambio, un Registro de dirección es utilizado específicamente para almacenar direcciones de memoria, esencial para el direccionamiento de memoria, permitiendo al procesador acceder a ubicaciones específicas en la MP. 10. Tipos de Direccionamiento a) Ventaja Principal de Implementación b) Ejemplo en Arquitectura 80386 (x86) Direccionamiento inmediato Ventaja: Rapidez, ya que el operando está directamente en la instrucción. Ejemplo (x86): MOV AX, 5 (mueve el valor 5 al registro AX). Direccionamiento directo a registro Ventaja: Rapidez y simplicidad. Ejemplo (x86): MOV AX, BX (mueve el contenido de BX a AX). Direccionamiento directo a memoria Ventaja: Acceso directo a una posición de memoria específica. Ejemplo (x86): MOV AX, [1234h] (mueve el contenido de la dirección 1234h a AX). Direccionamiento indirecto a registro Ventaja: Flexibilidad al acceder a diferentes posiciones de memoria mediante un registro. Ejemplo (x86): MOV AX, [BX] (mueve el contenido de la dirección almacenada en BX a AX). Direccionamiento indirecto a memoria Ventaja: Permite acceder a la memoria a través de una dirección almacenada en memoria. Ejemplo: Más común en arquitecturas complejas, no es estándar en x86. Direccionamiento relativo a PC, de registro base e indexado Ventaja: Utilidad en acceso a estructuras de datos y saltos relativos. Ejemplo (x86): MOV AX, [BX+SI] (mueve el contenido de la dirección calculada como BX+SI a AX). Direccionamiento a pila Ventaja: Eficiencia en operaciones de subrutinas y almacenamiento temporal. Ejemplo (x86): PUSH AX (empuja el contenido de AX a la pila). Direccionamiento implícito Ventaja: Simplicidad en las instrucciones. Ejemplo (x86): CLC (clear carry flag, no requiere operandos explícitos). Direccionamiento de Bit Ventaja: Facilita la manipulación de datos a nivel de bit. Ejemplo: `bt AX, 1` - Prueba el bit 1 del registro AX. (No es típico en x86, más común en microcontroladores.) 11. ¿Qué es una estructura de PILA? ¿Cómo funciona? ¿Dónde se utiliza? Una estructura de pila (también conocida como "stack") es un tipo de estructura de datos que sigue el principio LIFO (Last In, First Out), donde el último elemento en entrar es el primero en salir. Se usa para gestionar las llamadas a funciones y subrutinas, permitiendo un seguimiento de las direcciones de retorno y el almacenamiento temporal de datos locales. En sistemas informáticos, la pila es esencial para el manejo de la ejecución de programas y la gestión de memoria durante las llamadas y retornos de funciones. Utiliza dos operaciones principales: `push` (apilar) y `pop` (desapilar). `push` agrega un elemento en la parte superior de la pila, y `pop` elimina el elemento superior. PARALELISMO ¿Qué es el paralelismo? El paralelismo en computación se refiere a la ejecución simultánea de múltiples procesos o threads con el objetivo de aumentar la eficiencia y el rendimiento computacional. Esto se puede lograr mediante la división de una tarea en sub- tareas más pequeñas que se pueden ejecutar al mismo tiempo en diferentes procesadores o núcleos de un procesador. ¿Qué son las arquitecturas paralelas? Las arquitecturas paralelas son diseños de hardware que permiten la ejecución simultánea de múltiples procesos. Estas arquitecturas están optimizadas para maximizar el rendimiento mediante la ejecución en paralelo de instrucciones. Las arquitecturas paralelas se clasifican en diferentes categorías según la manera en que manejan los flujos de datos y de instrucciones. ¿Cuál es el origen, motivador del cómputo paralelo? El cómputo paralelo surge de la necesidad de acelerar el procesamiento de grandes volúmenes de datos y complejas operaciones computacionales que los sistemas secuenciales no podían manejar eficientemente. La ley de Moore, que predice el incremento del número de transistores en un chip, también motiva el desarrollo de arquitecturas paralelas para aprovechar mejor el crecimiento del hardware. ¿Cuáles son los elementos a considerar en el diseño de arquitecturas paralelas? Descomposición de Tareas: Cómo dividir una tarea en sub-tareas manejables. Comunicación: Cómo las sub-tareas intercambian datos entre sí. Sincronización: Cómo coordinar la ejecución de las sub-tareas para evitar condiciones de carrera. Balanceo de Carga: Cómo distribuir el trabajo de manera equitativa entre los procesadores. Escalabilidad: Cómo la arquitectura se adapta al incremento en el número de procesadores. Modelos de comunicación en los diseños paralelos y topologías de interconexión Los modelos de comunicación en diseños paralelos incluyen: Memoria Compartida: Los procesadores comparten un espacio de memoria común. Ejemplos incluyen arquitecturas UMA (Uniform Memory Access) y NUMA (Non-Uniform Memory Access). Memoria Distribuida: Cada procesador tiene su propia memoria local y los datos se intercambian mediante una red de interconexión. Topologías de interconexión Anillo (Ring) Malla (Mesh) Hipercubo (Hypercube) Árbol (Tree) Completamente Conectado (Fully Connected) Métricas de Hardware y de Software Métricas de Hardware: Tiempo de ejecución, velocidad de reloj, ancho de banda de memoria, latencia de comunicación. Métricas de Software: Tiempo de ejecución del programa, eficiencia, escalabilidad, balanceo de carga, overhead de sincronización. Aspectos a tener en cuenta en el desempeño de las arquitecturas de computadoras paralelas 1. Eficiencia: Uso óptimo de los recursos del sistema. 2. Escalabilidad: Capacidad de aumentar el rendimiento al agregar más procesadores. 3. Balanceo de Carga: Distribución uniforme de las tareas entre los procesadores. 4. Overhead de Comunicación y Sincronización: Minimizar el tiempo gastado en comunicación y sincronización entre procesadores. Estrategias generales para producir software para computadoras paralelas Descomposición de Problemas: Dividir el problema en partes más pequeñas que se pueden ejecutar en paralelo. Identificación de Paralelismo: Identificar las partes del programa que pueden ejecutarse simultáneamente. Sincronización y Comunicación: Implementar mecanismos eficientes de sincronización y comunicación. Optimización del Balanceo de Carga: Asegurar que las tareas se distribuyan equitativamente. Taxonomía de Flynn y su relación con las computadoras paralelas SISD (Single Instruction, Single Data): Computadora secuencial. SIMD (Single Instruction, Multiple Data): Una instrucción opera sobre múltiples datos en paralelo. MISD (Multiple Instruction, Single Data): Múltiples instrucciones operan sobre un solo dato. MIMD (Multiple Instruction, Multiple Data): Múltiples instrucciones operan sobre múltiples datos simultáneamente. Aplicaciones actuales: SIMD y MIMD SIMD o Procesadores de vectores: Operan sobre arreglos de datos simultáneamente. o Arreglos de procesadores: Implementaciones modernas en GPUs. MIMD o Multiprocesadores: Sistemas con múltiples CPUs que comparten memoria. o Multicomputadoras: Sistemas con CPUs y memorias independientes que se comunican a través de una red. Modelos de consistencia de las memorias compartidas en MIMD 1. Consistencia Estricta: Las operaciones de memoria son visibles instantáneamente a todos los procesadores. 2. Consistencia Secuencial: Las operaciones de memoria de todos los procesadores son visibles en un orden secuencial. 3. Consistencia Casual: Solo las operaciones de memoria relacionadas casualmente deben ser vistas en orden por todos los procesadores. Comparación de UMA, COMA y NUMA en multiprocesadores UMA (Uniform Memory Access): Tiempo de acceso uniforme a la memoria. o Ventajas: Sencillez de diseño. o Desventajas: Problemas de escalabilidad. COMA (Cache-Only Memory Architecture): Toda la memoria es vista como un caché. o Ventajas: Buena escalabilidad. o Desventajas: Complejidad de gestión. NUMA (Non-Uniform Memory Access): Tiempos de acceso variables según la ubicación de la memoria. o Ventajas: Mejor rendimiento y escalabilidad. o Desventajas: Complejidad en la programación. Arquitecturas de Multicomputadoras: COW y MPP COW (Cluster of Workstations): Conjunto de estaciones de trabajo conectadas en red. o Ventajas: Costo relativamente bajo, uso de hardware estándar. o Desventajas: Latencia de red. MPP (Massively Parallel Processor): Sistema con muchos procesadores conectados por una red de alta velocidad. o Ventajas: Alta capacidad de procesamiento. o Desventajas: Costoso y complejo de gestionar. Software de comunicación para Multicomputadoras: PVM y MPI PVM (Parallel Virtual Machine): Software que permite a una colección de ordenadores heterogéneos ser usados como un único recurso computacional. MPI (Message Passing Interface): Estándar para comunicaciones de paso de mensajes en computación paralela. Diferencias entre PVM y MPI PVM: Más flexible, permite la integración de máquinas heterogéneas. MPI: Mejor rendimiento y estandarización. Conceptos de CLUSTER, GRID y Cloud computing Cluster: Conjunto de computadoras conectadas que trabajan juntas como un único sistema. Ejemplos: Beowulf clusters, Google clusters. GRID GRID: Infraestructura que permite compartir recursos computacionales a través de diferentes organizaciones y ubicaciones geográficas. Un GRID es una infraestructura que permite el uso compartido y coordinado de recursos computacionales, tales como potencia de procesamiento y almacenamiento de datos, a través de múltiples ubicaciones geográficas y organizaciones. El objetivo de un GRID es proporcionar una plataforma para ejecutar tareas computacionales complejas y grandes volúmenes de datos, aprovechando los recursos distribuidos. Características de HW y SW de un GRID Hardware: Nodos de Computación: Equipos con capacidad de procesamiento que ejecutan las tareas distribuidas. Almacenamiento Distribuido: Sistemas de almacenamiento repartidos geográficamente para facilitar el acceso y redundancia de datos. Redes de Alta Velocidad: Infraestructura de red robusta para la comunicación eficiente entre nodos. Software: Middleware: Software que gestiona la distribución de tareas y recursos, como Globus Toolkit. Sistemas de Gestión de Recursos: Herramientas que asignan y controlan los recursos disponibles, como schedulers y gestores de colas. Protocolos de Comunicación: Protocolos para la transferencia de datos y coordinación de tareas, como MPI (Message Passing Interface). ¿Para qué se puede utilizar un GRID? Simulaciones Científicas: Ejecución de simulaciones complejas en campos como la física, química y biología. Procesamiento de Datos: Análisis de grandes volúmenes de datos en tiempo razonable. Aplicaciones Financieras: Modelado y simulación de riesgos y mercados financieros. Renderización de Gráficos: Procesamiento de gráficos y animaciones a gran escala. ¿Qué es el SCHEDULER del GRID y qué hace cuando un nodo o terminal falla? El scheduler del GRID es un componente de software que gestiona la asignación de tareas a los recursos disponibles en la red GRID. Sus funciones incluyen: Distribución de Tareas: Asigna trabajos a los nodos de computación disponibles. Balanceo de Carga: Optimiza la distribución de trabajos para evitar la sobrecarga de nodos específicos. Monitoreo de Tareas: Supervisa el estado de las tareas en ejecución. Gestión de Fallos: Cuando un nodo o terminal falla, el scheduler reasigna las tareas a otros nodos disponibles, redistribuyendo la carga para mantener la continuidad de las operaciones. ¿La configuración debe ser estática o puede ser dinámica? ¿Por qué? La configuración puede ser dinámica. Una configuración dinámica permite al GRID adaptarse a cambios en la disponibilidad de recursos, incorporar nuevos nodos y manejar la variabilidad en las cargas de trabajo. Esto mejora la flexibilidad, la eficiencia y la robustez del sistema, permitiendo una mejor utilización de los recursos disponibles y una respuesta más rápida a las necesidades cambiantes. ¿De qué maneras puede fallar un GRID? Fallo de Nodo: Un nodo individual puede fallar debido a problemas de hardware o software. Fallo de Red: Problemas de conectividad que impiden la comunicación entre nodos. Fallo de Almacenamiento: Pérdida o corrupción de datos en los sistemas de almacenamiento. Sobrecarga: Exceso de carga en nodos específicos, causando lentitud o fallos. Errores de Configuración: Problemas derivados de configuraciones incorrectas o incompatibles. ¿Cómo es el proceso de conexión de una terminal al GRID? 1. Autenticación: La terminal debe autenticarse para acceder al GRID. 2. Descubrimiento de Recursos: La terminal consulta el middleware para identificar recursos disponibles. 3. Asignación de Tareas: El scheduler asigna tareas a la terminal según la carga y la disponibilidad. 4. Ejecución de Tareas: La terminal ejecuta las tareas asignadas, comunicándose con otros nodos según sea necesario. 5. Monitoreo y Reporte: La terminal reporta el estado de las tareas al middleware, permitiendo la gestión centralizada. ¿Qué es Globe? ¿Existe aún? ¿Está disponible? Globe es una infraestructura para la implementación de aplicaciones distribuidas a gran escala, diseñada para gestionar y operar en entornos altamente dinámicos y heterogéneos. El estado actual y la disponibilidad de Globe pueden variar; se recomienda consultar las fuentes actualizadas o sitios web oficiales para obtener información precisa sobre su disponibilidad. Ejemplos: Globus Toolkit, European Grid Infrastructure. Cloud Computing: Modelo de entrega de servicios computacionales a través de internet. Ventajas: Escalabilidad, flexibilidad, costos operativos reducidos. Empresas: Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure. Implementaciones MIDDLEWARE Middleware se refiere al software que actúa como intermediario entre diferentes sistemas o aplicaciones. Características: Facilita la comunicación y gestión de datos entre aplicaciones distribuidas. Ejemplos: CORBA (Common Object Request Broker Architecture), JBoss (Java EE Application Server). IOT Definición de IoT Internet de las Cosas (IoT) se refiere a la red de dispositivos físicos que están interconectados a través de Internet, permitiendo la recopilación y el intercambio de datos. Estos dispositivos pueden incluir desde electrodomésticos y vehículos hasta sensores industriales y sistemas de salud. Historia y Evolución Años 80 y 90: Concepto de dispositivos conectados. 2000s: Desarrollo de tecnologías de red y dispositivos embebidos. 2010s: Expansión masiva con la llegada de tecnologías como el Wi-Fi, el Bluetooth y los servicios en la nube. Actualidad: IoT se integra en múltiples sectores, desde el hogar inteligente hasta la industria 4.0 y la atención médica. Componentes de la Arquitectura de IoT Sensores y Actuadores: Sensores: Dispositivos que recopilan datos del entorno, como temperatura, humedad, movimiento, etc. Actuadores: Dispositivos que ejecutan acciones en respuesta a comandos, como motores, luces y válvulas. Ejemplos: Sensores de temperatura (DHT11), actuadores como servomotores. Dispositivos Edge: Función: Procesan datos localmente y actúan como intermediarios entre los sensores/actuadores y la nube. Importancia: Reducen la latencia y el tráfico de datos hacia la nube. Ejemplos: Raspberry Pi, gateways industriales. Gateways: Función: Recogen datos de dispositivos IoT y los envían a la nube para su procesamiento. Intermediarios: Actúan como puentes entre las redes locales de dispositivos IoT y la nube. Ejemplos: Routers IoT, dispositivos con capacidades de red múltiples. Redes y Protocolos: Protocolos Comunes: MQTT (Message Queuing Telemetry Transport), CoAP (Constrained Application Protocol), HTTP. Tecnologías de Red: Wi-Fi, Bluetooth, LoRa, Zigbee. Capas de la Arquitectura de IoT Percepción (Sensores): Captura de Datos: Recolección de información del entorno físico mediante sensores. Transporte (Redes): Comunicación de Datos: Transmisión de datos recopilados a través de redes de comunicación. Procesamiento (Nube): Análisis y Procesamiento: Análisis de grandes volúmenes de datos y toma de decisiones basada en los datos procesados. Aplicación: Interfaz y Aplicaciones: Desarrollo de aplicaciones que utilizan los datos procesados para ofrecer servicios y soluciones útiles. Plataformas y Herramientas Plataformas IoT: AWS IoT: Plataforma de Amazon para conectar dispositivos IoT y gestionar datos. Google Cloud IoT: Solución de Google para la gestión de dispositivos IoT y análisis de datos. Microsoft Azure IoT: Plataforma de Microsoft para el desarrollo, la gestión y el análisis de soluciones IoT. Hardware Común: Raspberry Pi: Microcomputadora popular para proyectos IoT. Arduino: Plataforma de hardware abierto para el desarrollo de dispositivos interactivos. ESP8266/ESP32: Módulos de microcontroladores con conectividad Wi-Fi integrados, ampliamente utilizados en proyectos IoT.