2.16. Fundamentos de Sistemas (SF)

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.

Tabla 2.16: Lista de KUs del área de Fundamentos de Sistemas.

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:

  1. 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]
  2. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. 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]
  2. Describir que el hardware, el sistema operativo, la máquina virtual y la aplicación son capas adicionales de interpretación/procesamiento [Describir]
  3. 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]
  4. 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]
  5. Identificar errores en un programa por capas usando herramientas para seguimiento de programas, ejecución paso a paso (single stepping) y depuración [Analizar]
  6. 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:

  1. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. 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]
  2. 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]
  3. 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]
  4. Describir una computadora como una máquina de estado que interpreta instrucciones de máquina [Describir]
  5. 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]
  6. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. Escribir un problema secuencial simple y una versión paralela simple del mismo programa [Escribir]
  2. 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]
  3. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. 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]
  2. Describir cómo funcionan los algoritmos comunes de asignación/planificación de recursos [Describir]
  3. Desarrollar algoritmos de planificación comunes y evaluar sus rendimientos [Crear]
  4. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. Describir el desglose de la latencia de los sistemas informáticos en términos de memoria, disco y red [Describir]
  2. Explicar la importancia de la localidad en la determinación del rendimiento del sistema [Explicar]
  3. 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:

  1. Explicar por qué es importante aislar y proteger la ejecución de programas individuales y entornos que comparten recursos subyacentes comunes [Explicar]
  2. 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]
  3. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. Explicar cómo los componentes de la arquitectura del sistema contribuyen a mejorar su rendimiento [Explicar]
  2. Explicar las circunstancias en las que una figura dada de una métrica de rendimiento del sistema es útil [Explicar]
  3. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. Describir la Ley de Amdahl y discutir sus limitaciones [Describir]
  2. 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:

  1. Aplicar herramientas de software para perfilar y medir el rendimiento del programa [Aplicar]
  2. Diseñar y conducir un experimento orientado al rendimiento de un sistema común (por ejemplo, un sistema operativo y Spark) [Diseñar]
  3. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. 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]
  2. Articular la distinción entre detectar, manejar y recuperarse de fallas y los métodos para su implementación [Articular]
  3. 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]
  4. Aplicar algoritmos simples para explotar información redundante con el propósito de corrección de datos [Aplicar]
  5. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. Describir algunos problemas comunes de seguridad del sistema y dar ejemplos [Describir]
  2. Describir algunas contramedidas contra problemas de seguridad del sistema [Describir]
  3. 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:

  1. Describir criterios comunes de diseño de sistemas [Describir]
  2. 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]
  3. 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

Aprendizaje esperado (Learning Outcomes):
Core:

  1. Describir los derechos de propiedad intelectual de los sistemas informáticos [Describir]
  2. Enumerar licencias de software representativas y comparar sus diferencias [Listar/Enumerar]
  3. Enumerar delitos informáticos representativos [Listar/Enumerar]

¿Encontraste una errata, un curso desactualizado, un enlace roto, o tienes una sugerencia? Cuéntanos.

Escanea para abrir en tu teléfono