- ES Español

- EN English

2.16. Fundamentos de Sistemas (SF)
Un sistema informático es un conjunto de infraestructuras de hardware y software sobre las cuales se construyen aplicaciones. Los sistemas informáticos se han convertido en un pilar de la vida diaria de las personas. Como tal, es esencial que los estudiantes aprendan conocimientos sobre sistemas informáticos, adquieran las habilidades para usar y diseñar estos sistemas y comprendan la lógica y los principios fundamentales en los sistemas informáticos. Esto podría equipar a los estudiantes con la competencia necesaria para una carrera relacionada con las ciencias de la computación.
En el plan de estudios de Ciencias de la Computación, el estudio de los sistemas informáticos generalmente abarca múltiples áreas de conocimiento, incluyendo, entre otros, sistemas operativos, sistemas paralelos y distribuidos, redes de comunicaciones, arquitectura y organización de computadoras, e ingeniería de software. El área de conocimiento de Fundamentos de Sistemas, como sugiere su nombre, se centra en los conceptos fundamentales y principios de diseño en sistemas informáticos que son compartidos por estos cursos dentro de sus respectivos núcleos. El objetivo de esta área de conocimiento es presentar una visión integradora de estos conceptos fundamentales y principios de diseño de una manera unificada aunque simplificada, proporcionando una base común para los diferentes mecanismos y políticas especializados apropiados para el área de dominio específica. Los conceptos fundamentales en esta área de conocimiento incluyen una visión general de los sistemas informáticos, conceptos básicos como estado y transición de estado, asignación y planificación de recursos, y así sucesivamente. Además, esta área de conocimiento introduce principios básicos de diseño para mejorar la confiabilidad, disponibilidad, eficiencia y seguridad de los sistemas informáticos.
2.16.1. SF/Componentes Hardware y Lógica (CS Core: 2 hrs) ↑ Volver arriba
Introduce los bloques de construcción y componentes básicos de una computadora, el hardware como paradigma computacional y el concepto de segmentación (pipelining).
Temas:
Core
- Bloques de construcción y componentes básicos de una computadora (compuertas, flip-flops, registros, interconexiones; ruta de datos (datapath) + control + memoria).
- Hardware como paradigma computacional: Bloques de construcción lógicos fundamentales; Expresiones lógicas, minimización, formas de suma de productos Lógica Digital y Sistemas Digitales .
- Concepto básico de segmentación (pipelining), etapas de procesamiento superpuestas Organización Funcional .
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir los bloques de construcción básicos de las computadoras y su papel en el desarrollo histórico de la arquitectura de computadoras [Describir]
- Diseñar un circuito lógico simple usando los bloques de construcción fundamentales del diseño lógico para resolver un problema simple (por ejemplo, un sumador) [Diseñar]
2.16.2. SF/Capas, Abstracciones y Escalabilidad (CS Core: 2 hrs) ↑ Volver arriba
Cubre las abstracciones de programación, la distinción entre servicios de aplicación y del sistema operativo, el concepto de escalado y la organización en capas de los sistemas informáticos.
Temas:
Core
- Abstracciones de programación, interfaces, uso de bibliotecas Programas: Distribución , Programas: Propiedades de Ejecución , Programación GPU , Programas: Mapeos de Implementación , Programas: Paralelismo Declarativo , Programas: Inicio de Actividades .
- Distinción e interacción entre servicios de aplicación y del sistema operativo, llamada a procedimiento remoto (remote procedure call) Rol y Propósito de los Sistemas Operativos .
- Concepto básico de escalado (scaling): rendimiento vs tamaño del problema.
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir cómo los sistemas informáticos se construyen de capa sobre capa, basados en la separación de preocupaciones, con interfaces bien definidas, ocultando detalles de las capas bajas a las capas más altas [Describir]
- Describir que el hardware, el sistema operativo, la máquina virtual y la aplicación son capas adicionales de interpretación/procesamiento [Describir]
- Describir los mecanismos de cómo los errores se detectan, se señalan hacia atrás y se manejan a través de las capas [Describir]
- Construir un programa simple (por ejemplo, un cliente/servidor TCP) usando métodos de capas, detección y recuperación de errores, y reflejo del estado de error a través de las capas [Crear]
- Identificar errores en un programa por capas usando herramientas para seguimiento de programas, ejecución paso a paso (single stepping) y depuración [Analizar]
- Comprender el concepto de escalado fuerte (strong) vs débil (weak), es decir, cómo el rendimiento se ve afectado por la escala del problema vs la escala de los recursos para resolver el problema. Esto puede motivarse con ejemplos simples del mundo real [Evaluar (valorar)]
2.16.3. SF/Sistemas Digitales y Lógica (CS Core: 2 hrs) ↑ Volver arriba
Cubre sistemas digitales vs analógicos, compuertas lógicas, expresiones booleanas, relojes y lógica combinacional y secuencial, como base para comprender el funcionamiento de los sistemas informáticos.
Temas:
Core
- Sistemas Digitales vs Analógicos/Discretos vs Continuos.
- Compuertas lógicas simples, expresiones lógicas, simplificación de lógica booleana.
- Relojes, Estado, Secuenciación.
- Lógica Combinacional, Lógica Secuencial, Registros, Memorias Lógica Digital y Sistemas Digitales .
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir las diferencias entre sistemas digitales y analógicos, y entre sistemas discretos y continuos. Puede dar ejemplos del mundo real de estos sistemas [Describir]
2.16.4. SF/Máquinas de Estado (CS Core: 2 hrs) ↑ Volver arriba
Introduce el concepto de estado y transición de estado, máquinas de estados finitos (FSM), y su aplicación en computadoras y protocolos de red como ejemplos de máquinas de estado.
Temas:
Core
- Estado y transición de estado (por ejemplo, estado inicial, estado final, ciclo de vida de estados) Lenguajes Formales y Autómatas .
- Máquinas de estados finitos (por ejemplo, NFA, DFA) Lenguajes Formales y Autómatas .
- Computadoras y Protocolos de Red como ejemplos de Máquinas de Estado Fundamentos de Redes y Comunicaciones .
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir las computaciones como un sistema caracterizado por un conjunto conocido de configuraciones con transiciones de una configuración única (estado) a otra (estado) [Describir]
- Describir la distinción entre sistemas cuya salida es solo una función de su entrada (sin estado - stateless) y aquellos con memoria/historial (con estado - stateful) [Describir]
- Desarrollar descripciones de máquinas de estado para soluciones de enunciados de problemas simples (por ejemplo, secuenciación de semáforos, reconocedores de patrones) [Crear]
- Describir una computadora como una máquina de estado que interpreta instrucciones de máquina [Describir]
- Explicar cómo un programa o protocolo de red también puede expresarse como una máquina de estado y que pueden existir representaciones alternativas para la misma computación [Explicar]
- Derivar el comportamiento de serie temporal de una máquina de estado a partir de su representación de máquina de estado (por ejemplo, máquina de estado de gestión de conexión TCP) [Analizar]
2.16.5. SF/Procesamiento Secuencial y Paralelo (CS Core: 2 hrs) ↑ Volver arriba
Cubre el procesamiento secuencial y paralelo, incluyendo modelos de un solo hilo y múltiples hilos a nivel de aplicación, y la evaluación del rendimiento de versiones paralelas de programas.
Temas:
Core
- Procesamiento secuencial vs paralelo. Concurrencia , Programas: Distribución , Programas: Propiedades de Ejecución , Programación GPU , Programas: Mapeos de Implementación , Programas: Paralelismo Declarativo , Programas: Inicio de Actividades .
- Procesamiento secuencial a nivel de aplicación: hilo único (single thread) Concurrencia , Programas: Distribución , Programas: Propiedades de Ejecución , Programación GPU , Programas: Mapeos de Implementación , Programas: Paralelismo Declarativo , Programas: Inicio de Actividades .
- Procesamiento paralelo simple a nivel de aplicación: a nivel de solicitud (servicios web/cliente-servidor/distribuido), hilo único por servidor, múltiples hilos con múltiples servidores, segmentación (pipelining) Concurrencia , Programas: Distribución , Programas: Propiedades de Ejecución , Programación GPU , Programas: Mapeos de Implementación , Programas: Paralelismo Declarativo , Programas: Inicio de Actividades .
Aprendizaje esperado (Learning Outcomes):
Core:
- Escribir un problema secuencial simple y una versión paralela simple del mismo programa [Escribir]
- Evaluar el rendimiento de versiones secuenciales y paralelas simples de un programa con diferentes tamaños de problema y ser capaz de describir las aceleraciones (speed-ups) logradas [Evaluar]
- Describir en una línea de tiempo de ejecución cómo los eventos y operaciones de paralelismo pueden tener lugar simultáneamente (es decir, al mismo tiempo). Explicar cómo el trabajo puede realizarse en menos tiempo transcurrido si esto puede explotarse [Describir]
2.16.6. SF/Gestión de Recursos (CS Core: 1 hr, KA Core: 1 hr) ↑ Volver arriba
Esta unidad de conocimiento cubre diferentes tipos de recursos en sistemas informáticos y algoritmos comunes de asignación y planificación de recursos.
Temas:
Core
- Diferentes tipos de recursos (por ejemplo, participación del procesador, memoria, disco, ancho de banda de red) Fundamentos de Redes y Comunicaciones , API de Sistemas de Archivos e Implementación , Gestión de Memoria , Planificación .
- Algoritmos comunes de asignación/planificación de recursos (por ejemplo, primero en llegar primero en ser servido, planificación basada en prioridad, planificación justa (fair scheduling) y planificación con desalojo (preemptive scheduling)) Planificación .
- Ventajas y desventajas de los algoritmos de planificación comunes Planificación .
Aprendizaje esperado (Learning Outcomes):
Core:
- Definir cómo los recursos finitos de computadora (por ejemplo, participación del procesador, memoria, almacenamiento y ancho de banda de red) se gestionan mediante su cuidadosa asignación a las entidades existentes [Definir]
- Describir cómo funcionan los algoritmos comunes de asignación/planificación de recursos [Describir]
- Desarrollar algoritmos de planificación comunes y evaluar sus rendimientos [Crear]
- Describir los pros y los contras de los algoritmos de planificación comunes [Describir]
2.16.7. SF/Latencia, Caché y Jerarquía de Memoria (CS Core: 2 hrs, KA Core: 2 hrs) ↑ Volver arriba
Cubre las latencias en los sistemas informáticos, la localidad espacial y temporal en las memorias caché, la coherencia de caché, y la jerarquía de memoria del procesador con su fórmula de tiempo promedio de acceso.
Temas:
Core
- Latencias en sistemas informáticos:
- Velocidad de la luz y las computadoras (un pie por nanosegundo vs relojes de un GHz) Organización Funcional
- Latencias de memoria vs disco vs memoria a través de la red Jerarquía de Memoria , Rendimiento y Eficiencia Energética enumerate
- Memorias caché y los efectos de la localidad espacial y temporal en el rendimiento en procesadores y sistemas Jerarquía de Memoria , Rendimiento y Eficiencia Energética , Gestión de Memoria .
- Memorias caché y coherencia de caché en bases de datos, sistemas operativos, sistemas distribuidos y arquitectura de computadoras Jerarquía de Memoria , Internos de DBMS , Gestión de Memoria .
- Introducción a la jerarquía de memoria del procesador Jerarquía de Memoria , Rendimiento y Eficiencia Energética .
- La fórmula del tiempo promedio de acceso a memoria Jerarquía de Memoria .
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir el desglose de la latencia de los sistemas informáticos en términos de memoria, disco y red [Describir]
- Explicar la importancia de la localidad en la determinación del rendimiento del sistema [Explicar]
- Calcular el tiempo promedio de acceso a memoria y describir las compensaciones (tradeoffs) en el rendimiento de la jerarquía de memoria en términos de capacidad, tasa de fallos/aciertos (miss/hit rate) y tiempo de acceso [Calcular]
2.16.8. SF/Virtualización y Aislamiento (CS Core: 1 hr, KA Core: 1 hr) ↑ Volver arriba
Cubre la justificación del aislamiento y la virtualización para la protección y el rendimiento predecible, los niveles de indirección mediante memoria virtual, y los métodos para implementar memoria virtual y máquinas virtuales.
Temas:
Core
- Justificación de la virtualización y el aislamiento: protección y rendimiento predecible Virtualización .
- Niveles de indirección, ilustrados por la memoria virtual para gestionar recursos de memoria física Virtualización .
- Métodos para implementar memoria virtual y máquinas virtuales Virtualización .
Aprendizaje esperado (Learning Outcomes):
Core:
- Explicar por qué es importante aislar y proteger la ejecución de programas individuales y entornos que comparten recursos subyacentes comunes [Explicar]
- Describir cómo el concepto de indirección puede crear la ilusión de una máquina dedicada y sus recursos incluso cuando se comparten físicamente entre múltiples programas y entornos [Describir]
- Evaluar el rendimiento de dos instancias de aplicación ejecutándose en máquinas virtuales separadas y determinar el efecto del aislamiento de rendimiento [Evaluar]
2.16.9. SF/Métricas y Benchmarks de Rendimiento (CS Core: 1 hr, KA Core: 1 hr) ↑ Volver arriba
Cubre las figuras de mérito de rendimiento, las cargas de trabajo y benchmarks representativos, y los métodos de recolección y análisis para la evaluación cuantitativa del rendimiento de los sistemas informáticos.
Temas:
Core
- Figuras de mérito de rendimiento Rendimiento y Eficiencia Energética , Evaluación .
- Cargas de trabajo y puntos de referencia representativos (benchmarks), y métodos de recolección y análisis de figuras de mérito de rendimiento Rendimiento y Eficiencia Energética , Evaluación .
Aprendizaje esperado (Learning Outcomes):
Core:
- Explicar cómo los componentes de la arquitectura del sistema contribuyen a mejorar su rendimiento [Explicar]
- Explicar las circunstancias en las que una figura dada de una métrica de rendimiento del sistema es útil [Explicar]
- Explicar el uso e insuficiencias de los puntos de referencia (benchmarks) como medida del rendimiento del sistema [Explicar]
2.16.10. SF/Modelos Analíticos de Rendimiento (CS Core: 1 hr, KA Core: 1 hr) ↑ Volver arriba
Cubre la ecuación CPI como herramienta de diseño, la Ley de Amdahl y sus limitaciones, el análisis de orden de magnitud (Big O), el análisis de caminos críticos del sistema y las herramientas analíticas para la evaluación cuantitativa.
Temas:
Core
- Ecuación CPI (Ciclos por Instrucción) como herramienta para comprender las compensaciones (tradeoffs) en el diseño de conjuntos de instrucciones, tuberías de procesador (pipelines) y organizaciones del sistema de memoria Rendimiento y Eficiencia Energética , Evaluación .
- Ley de Amdahl: la parte de la computación que no se puede acelerar limita el efecto de las partes que sí se pueden Rendimiento y Eficiencia Energética , Evaluación .
- Análisis de orden de magnitud (notación Big O) Notación Asintótica y Clases de Complejidad , Análisis de Complejidad: Recursión, Amortización y Cotas Ajustadas , Marco de Análisis de Complejidad , Teoría de la Complejidad Computacional .
- Análisis de caminos lentos y rápidos de un sistema Organización Funcional .
- Herramientas analíticas para guiar la evaluación cuantitativa.
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir la Ley de Amdahl y discutir sus limitaciones [Describir]
- Aplicar estudios de límite o cálculos simples para producir estimaciones de orden de magnitud para una métrica de rendimiento dada en un contexto dado [Aplicar]
2.16.11. SF/Eventos, Herramientas y Experimentación (CS Core: 1 hr, KA Core: 1 hr) ↑ Volver arriba
Cubre los eventos y su efecto en el rendimiento (detenciones, fallos de caché, fallos de página), la comprensión de sistemas por capas como plataformas de evaluación, las trampas de los microbenchmarks, y las herramientas y experimentos para medir el rendimiento del sistema.
Temas:
Core
- Eventos y su efecto en el rendimiento (por ejemplo, detenciones de instrucciones (stalls), fallos de caché, fallos de página) Organización Funcional , Gestión de Memoria .
- Comprender sistemas por capas, cargas de trabajo y plataformas, sus implicaciones para el rendimiento y los desafíos que representan para la evaluación.
- Trampas de los micro puntos de referencia (microbenchmark pitfalls).
Aprendizaje esperado (Learning Outcomes):
Core:
- Aplicar herramientas de software para perfilar y medir el rendimiento del programa [Aplicar]
- Diseñar y conducir un experimento orientado al rendimiento de un sistema común (por ejemplo, un sistema operativo y Spark) [Diseñar]
- Diseñar un experimento de rendimiento en un sistema por capas para determinar el efecto de un parámetro del sistema en el rendimiento del sistema [Diseñar]
2.16.12. SF/Confiabilidad del Sistema (CS Core: 2 hrs, KA Core: 1 hr) ↑ Volver arriba
Esta unidad de conocimiento cubre la distinción entre errores (bugs), fallas (faults) y fallos (failures); confiabilidad vs disponibilidad; y confiabilidad mediante redundancia, incluyendo verificación y reintento, codificación redundante y duplicación.
Temas:
Core
- Distinción entre errores (bugs), fallas (faults) y fallos (failures) Coordinación , Conceptos de Confiabilidad , Ingeniería de Confiabilidad .
- Confiabilidad vs disponibilidad.
- Confiabilidad mediante redundancia:
- verificación y reintento (check and retry) Soporte de Fiabilidad , Tolerancia a fallos
- codificación redundante (códigos de corrección de errores, CRC, FEC, RAID) Jerarquía de Memoria , Bases de Datos Distribuidas/Computación en la Nube , Soporte de Fiabilidad
- duplicación/reflejo (mirroring)/réplicas Bases de Datos Distribuidas/Computación en la Nube enumerate
- Otros enfoques para la confiabilidad (por ejemplo, registro por diario - journaling) Soporte de Fiabilidad , Tolerancia a fallos , Conceptos de Confiabilidad , Ingeniería de Confiabilidad .
Aprendizaje esperado (Learning Outcomes):
Core:
- Explicar la distinción entre errores de programa, errores del sistema y fallas de hardware (por ejemplo, memoria corrupta) y excepciones (por ejemplo, intento de dividir por cero) [Explicar]
- Articular la distinción entre detectar, manejar y recuperarse de fallas y los métodos para su implementación [Articular]
- Describir el papel de los códigos de corrección de errores en proporcionar técnicas de verificación y corrección de errores en memorias, almacenamiento y redes [Describir]
- Aplicar algoritmos simples para explotar información redundante con el propósito de corrección de datos [Aplicar]
- Comparar diferentes métodos de detección y corrección de errores por su sobrecarga de datos, complejidad de implementación y tiempo de ejecución relativo para codificar, detectar y corregir errores [Comparar]
2.16.13. SF/Seguridad del Sistema (CS Core: 2 hrs, KA Core: 1 hr) ↑ Volver arriba
Esta unidad de conocimiento cubre problemas comunes de seguridad del sistema y contramedidas, incluyendo criptografía y arquitectura de seguridad, así como sistemas de contramedida representativos, como sistemas de detección de intrusiones y sistemas antivirus.
Temas:
Core
- Problemas comunes de seguridad del sistema (por ejemplo, virus, ataques de denegación de servicio y escuchas - eavesdropping) Seguridad de Red , Protección y Seguridad , Diseño e Ingeniería de Controles de Seguridad , Análisis de Amenazas e Ingeniería de Seguridad , Computación Confiable e Ingeniería de Privacidad , Seguridad en IA y Hardware , Control de Acceso y Aplicaciones , Principios y Mentalidad de Seguridad .
- Contramedidas Seguridad de Red , Principios del Sistema Operativo , Protección y Seguridad :
- Criptografía Protocolos, Aplicaciones y Criptografía Avanzada , Algoritmos Criptográficos , Fundamentos de Criptografía
- Arquitectura de seguridad Diseño e Ingeniería de Controles de Seguridad , Análisis de Amenazas e Ingeniería de Seguridad , Computación Confiable e Ingeniería de Privacidad enumerate
- Sistemas de contramedida representativos:
- Sistemas de detección de intrusiones, cortafuegos (firewalls) Seguridad de Red
- Sistemas antivirus enumerate
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir algunos problemas comunes de seguridad del sistema y dar ejemplos [Describir]
- Describir algunas contramedidas contra problemas de seguridad del sistema [Describir]
- Describir sistemas de contramedida representativos [Describir]
2.16.14. SF/Diseño del Sistema (CS Core: 2 hrs, KA Core: 1 hr) ↑ Volver arriba
Esta unidad de conocimiento cubre criterios comunes de diseño de sistemas (por ejemplo, vivacidad (liveness), seguridad (safety), robustez, escalabilidad y seguridad (security)) y los diseños de sistemas representativos.
Temas:
Core
- Criterios comunes de diseño de sistemas (por ejemplo, vivacidad (liveness), seguridad (safety), robustez, escalabilidad y seguridad (security)) Evaluación .
- Diseños de sistemas representativos (por ejemplo, servidor web Apache, Spark y Linux).
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir criterios comunes de diseño de sistemas [Describir]
- Dada la funcionalidad requerida de un sistema y sus criterios de diseño clave, proporcionar un diseño de alto nivel de este sistema [Generar]
- Describir el diseño de algunos sistemas representativos [Describir]
2.16.15. SF/Sociedad, ética y la Profesión ↑ Volver arriba
Esta unidad de conocimiento cubre los derechos de propiedad intelectual de los sistemas informáticos, licencias de software comunes y delitos informáticos.
Temas:
Core
- Derechos de propiedad intelectual de los sistemas informáticos Open Source, Piratería y DRM , Derechos de PI Digital y Derechos de Autor , Fundamentos de la Propiedad Intelectual , Licencias, Plagio y Autoría .
- Licencias de software comunes Open Source, Piratería y DRM , Derechos de PI Digital y Derechos de Autor , Fundamentos de la Propiedad Intelectual , Licencias, Plagio y Autoría .
- Delitos informáticos Delitos y Ataques Informáticos , Leyes, Políticas y Responsabilidad en Seguridad .
Aprendizaje esperado (Learning Outcomes):
Core:
- Describir los derechos de propiedad intelectual de los sistemas informáticos [Describir]
- Enumerar licencias de software representativas y comparar sus diferencias [Listar/Enumerar]
- Enumerar delitos informáticos representativos [Listar/Enumerar]