Page 1 of 6
Programa de curso: Sistemas operativos
FACULTAD/ESCUELA DE INGENIERÍA, DISEÑO Y CIENCIAS APLICADAS
DEPARTAMENTO DE COMPUTACIÓN Y SISTEMAS INTELIGENTES
Información de la asignatura
Nombre de la asignatura Sistemas operativos
Código de la asignatura 09783 - TIC
Periodo Académico 202320
Nrc 11949
Grupo 001
Programas/Semestres SIS 07, TEL 06
Intensidad horaria 2
Intensidad Semanal 4
Créditos 3
Docente(s) Carlos Andrey Montoya Gonzalez
Introducción o presentación general del curso
Los sistemas operacionales juegan un papel fundamental en el mundo de la computación, ya que
permiten administrar los recursos de hardware de un computador (memoria, procesador, medios de
almacenamiento, etc.) y proporcionan al usuario y a los programas de aplicación una interfaz consistente
con dichos recursos, facilitando de esta manera el uso habitual y la programación del computador.
El curso está enfocado hacia el estudio de los elementos teóricos fundamentales de los sistemas
operativos. Estos elementos permiten analizar cualquier sistema operativo y su comportamiento en una
circunstancia dada.
Formación en competencias
SO-1. Solución de problemas: Identificar, formular y resolver problemas complejos de ingeniería,
mediante la aplicación de los principios de las ciencias, las matemáticas, y la ingeniería.
Objetivo general de aprendizaje
Al finalizar el curso, el estudiante estará en capacidad de desplegar aplicaciones y servicios,
considerando las características de desempeño y funcionalidad de los componentes de un sistema
operativo que se ejecute bien sea directamente sobre el hardware, o en modalidad virtualizada.
Objetivos terminales (resultados de aprendizaje)
• (OT1) Identificar las responsabilidades claves de un sistema operativo, en relación con la gestión de
los recursos de hardware y la forma como se estructuran, con el fin de ofrecer una interfaz de alto nivel al
usuario, o entre aplicaciones
• (OT2) Explicar los principios básicos, las estrategias y los algoritmos que resuelven los problemas
claves asociados con cada una de las responsabilidades de un sistema operativo
• (OT3) Describir los principales aspectos relacionados con el desempeño de un sistema operativo,
considerando los compromisos existentes entre sus componentes, el hardware subyacente y las métricas
que ofrecen garantías de servicio a los usuarios o las aplicaciones.
Page 2 of 6
Programa de curso: Sistemas operativos
• (OT4) Desplegar una aplicación o servicio, considerando las características del sistema operativo, la
estrategia de virtualización y el desempeño requerido.
• (OT5) Efectuar un análisis de causa raíz de un evento o incidente en un sistema operativo,
empleando los comandos de gestión de desempeño del mismo
Objetivos terminales - Resultados de aprendizajes
Resultado de aprendizaje de la
Resultado de aprendizaje del curso o
Competencia en formación competencia de egreso al que se
asignatura
contribuye
SO1-PI1-T Identificación y formulación
OT1 SO1-Solución de problemas
de problemas
SO1-PI1-T Identificación y formulación
OT2 SO1-Solución de problemas
de problemas
SO1-PI1-T Identificación y formulación
OT3 SO1-Solución de problemas
de problemas
SO1-PI1-T Identificación y formulación
OT4 SO1-Solución de problemas de problemas, SO1-PI2-T Solución de
problemas (Ingeniería)
SO1-PI1-T Identificación y formulación
OT5 SO1-Solución de problemas de problemas, SO1-PI2-T Solución de
problemas (Ingeniería)
Unidades de aprendizaje
Unidad 1: Introducción a los sistemas operativos
Al finalizar esta unidad, el estudiante estará en capacidad de:
• Describir la organización general de un sistema de cómputo, y el papel de las interrupciones.
• Describir los componentes de un sistema de cómputo multiprocesador moderno.
• Ilustrar la transición entre modo usuario y modo kernel.
• Identificar los servicios que provee un sistema operativo.
• Ilustrar la forma en que el sistema operativo emplea los system calls para proveer servicios.
• Comparar y contrastar estrategias para diseño de sistemas operativos: Monolítica, por capas,
microkernel, modular, híbrida.
• Ilustrar el proceso de arranque (boot) de un sistema operativo.
• Aplicar herramientas para monitorear el desempeño de un sistema operativo.
Temas:
1. Organización, arquitectura y operación de un sistema de cómputo.
2. Servicios de un sistema operativo.
3. El usuario y la interfaz del sistema operativo.
4. Servicios del sistema, system calls.
5. Estructura de un sistema operativo
6. Arranque de un sistema operativo.
Page 3 of 6
Programa de curso: Sistemas operativos
Unidad 2: Gestión de procesos
Al finalizar esta unidad, el estudiante estará en capacidad de:
• Identificar los componentes de un proceso, e ilustrar cómo se representan y planifican en un sistema
operativo.
• Describir cómo se crean y terminan los procesos en un sistema operativo.
• Describir y contrastar los mecanismos de comunicación entre procesos: Memoria compartida y
comunicación interprocesos (IPC).
• Identificar los componentes básicos de un hilo, y contrastar hilos con procesos.
• Describir los beneficios y retos significativos de diseñar procesos multi-hilo.
• Ilustrar diferentes métodos para computación con hilos: Thread pools, fork-join, grand central
dispatch.
• Describir varios algoritmos de planificación de CPU.
• Evaluar los algoritmos de planificación de CPU, basándose en los criterios de planificación.
• Describir los algoritmos de planificación empleados en los sistemas operativos Windows y Linux.
• Aplicar modelamiento y simulación para evaluar algoritmos de planificación de CPU
Temas:
1. Concepto de proceso
2. Planificación y operaciones sobre procesos
3. Comunicación interprocesos (IPC)
4. Comunicación en sistemas cliente/servidor
5. Modelos de programación con hilos (multithreading)
6. Conceptos básicos de planificación de procesos
7. Algoritmos de planificación
8. Evaluación de algoritmos
Unidad 3: Sincronización de procesos
Al finalizar esta unidad, el estudiante estará en capacidad de:
• Describir el problema de la sección crítica, e ilustrar una condición de carrera
• Ilustrar soluciones por hardware al problema de la sección crítica
• Demostrar el uso de cerrojos mutex, semáforos, monitores y variables de condición para resolver por
software el problema de la sección crítica.
• Definir las cuatro condiciones necesarias para un abrazo mortal (deadlock).
• Evaluar los cuatro métodos para prevención de abrazos mortales
Temas:
1. El problema de la sección crítica
2. Soporte por hardware a la sincronización
3. Cerrojos mutex, semáforos y monitores
4. Ejemplos de sincronización en Java
5. Caracterización de los abrazos mortales
6. Prevención y detección de abrazos mortales
7. Recuperación de abrazos mortales
Unidad 4: Gestión de memoria
Page 4 of 6
Programa de curso: Sistemas operativos
Al finalizar esta unidad, el estudiante estará en capacidad de:
• Explicar la diferencia entre una dirección lógica y una física de memoria, y el papel de la MMU en la
traducción de direcciones.
• Aplicar diferentes estrategias para asignación de memoria continua.
• Explicar la diferencia entre fragmentación interna y externa.
• Definir memoria virtual, y explicar sus beneficios.
• Explicar cómo se cargan las páginas en memoria empleando el mecanismo de paginación por
demanda.
• Aplicar los algoritmos FIFO, óptimo y LRU de reemplazo de páginas.
• Describir la forma cómo Linux y Windows 10 administran la memoria virtual.
• Evaluar algoritmos de planificación de CPU
Temas:
1. Introducción a la gestión de memoria
2. Asignación de memoria continua
3. Paginación, estructura de la tabla de páginas
4. Swapping
5. Paginación por demanda
6. Reemplazo de páginas
7. Ejemplos en sistemas operativos
Unidad 5: Gestión del almacenamiento secundario
Al finalizar esta unidad, el estudiante estará en capacidad de:
• Describir la estructura física de diversos medios de almacenamiento secundario.
• Explicar las características de desempeño de los dispositivos de almacenamiento masivo.
• Evaluar algoritmos de planificación de I/O.
• Explicar la estructura del subsistema de I/O de un sistema operativo.
• Explicar los principios, complejidad y aspectos de desempeño del hardware y software de I/O
Temas:
1. Discos duros y dispositivos de memoria no volátil: Planificación
2. Gestión de dispositivos de almacenamiento
3. RAID
4. Hardware de I/O
5. Subsistema de I/O
Unidad 6: Filesystems
Al finalizar esta unidad, el estudiante estará en capacidad de:
• Explicar la función de los filesystems
• Describir las interfaces hacia los filesystems
• Discutir características de diseño de los filesystems: Métodos de acceso, archivos compartidos,
locking, estructuras de directorios.
• Discutir algoritmos de asignación de bloques y gestión del espacio libre.
• Explorar la eficiencia y el desempeño de los filesystems.
Temas:
Page 5 of 6
Programa de curso: Sistemas operativos
1. Concepto de archivo
2. Métodos de acceso
3. Estructura de directorios
4. Protección
5. Estructura de un filesystem
6. Operaciones sobre un filesystem
7. Métodos de asignación de espacio
8. Gestión del espacio libre
9. Eficiencia y desempeño
10. Montaje de un filesystem, particiones, filesystems compartidos
Unidad 7: Virtualización
Al finalizar esta unidad, el estudiante estará en capacidad de:
• Explorar la historia y beneficios de las máquinas virtuales.
• Explicar diferentes tecnologías para virtualización.
• Describir los métodos que se emplean para implementar la virtualización.
• Identificar las características más comunes del hardware que soporta virtualización.
Temas:
1. Introducción e historia
2. Beneficios y características
3. Tipos de máquinas virtuales y su implementación
4. Componentes de virtualización y sistemas operativos
5. Ejemplos
Metodologías de aprendizajes
Cada clase parte de la base de que el estudiante ha preparado con antelación el material asignado para
la sesión. Las asignaciones de lectura están publicadas en el sitio Moodle del curso, y se enviará un
mensaje recordatorio por correo electrónico antes de cada clase.
Al principio de la clase se preguntará a los estudiantes si tienen dudas con respecto al tema preparado
para la clase, dichas dudas se consignarán en el tablero. Luego se iniciará una ronda de preguntas, con el
fin de indagar a los estudiantes acerca de lo aprendido, y tratar en lo posible de resolver las dudas
consignadas en el tablero mediante esta discusión. Si hay dificultad en algún tema en particular, el
profesor procederá a explicarlo.
En algunas clases podrá haber solución de ejercicios en grupos pequeños de trabajo, o individualmente
en el tablero, para reforzar la comprensión del tema. Ocasionalmente se solicitará a los estudiantes
preparar una exposición de un tema de interés general para la clase.
Se realizarán prácticas de laboratorio sobre temas seleccionados del curso, incluyendo programación en
BASH (Linux) y Windows PowerShell.
Actividades del estudiante
Antes de la clase
• Preparación previa, mediante el estudio del material asignado.
Durante la clase
Page 6 of 6
Programa de curso: Sistemas operativos
• Solución de ejercicios en grupos pequeños de trabajo, o individualmente en el tablero.
• Participación en las discusiones.
Después de la clase
• Solución de tareas y ejercicios para hacer en casa.
• Solución de los talleres de repaso.
Evaluación de aprendizajes
Relación con objetivos
Código Mecanismo o Porcentaje de Relación con el resultado de
terminales - resultado de
evaluación actividad evaluativa la nota final aprendizaje de la competencia de egreso
aprendizaje del curso
PARCIAL_1 PARCIAL_1 20 OT1, OT2, OT3 SO1-PI1-T
PARCIAL_2 PARCIAL_2 20 OT1, OT2, OT3, OT5 SO1-PI1-T
PARCIAL_3 PARCIAL_3 20 OT1, OT2, OT3, OT5 SO1-PI1-T, SO1-PI2-T
OT1, OT2, OT3, OT4,
TAR_QUIZ TAR_QUIZ 40 SO1-PI1-T, SO1-PI2-T
OT5
Recursos de apoyo
No es necesario comprar ningún libro para el curso. Todo el material necesario para el curso será
suministrado a través de Intu, como los materiales bibliográficos, guías de clases, videos, blogs, cursos en
línea y otros.
Algunos libros, enlaces y herramientas relevantes:
• Abraham Silberschatz, Peter Galvin, Greg Gagne. Operating System Concepts, 10th edition. Wiley,
2018 (005.43/S582o)
• Don Jones, Jeffery D. Hicks. Learn Windows PowerShell in a month of lunches. 3rd edition. Manning,
2017.
• Don Jones, Jeffery D. Hicks. Learn PowerShell scripting in a month of lunches. Manning, 2018.
• José Hernando Bahamón y Juan Manuel Madrid. Guías del sistema operativo UNIX. Disponibles en
el sitio web Moodle del curso.
Recursos de apoyo