Última modificación: 2015-07-27
Resumen
Sistemas Operativos es una de las asignaturas más importantes en los planes de estudio de los programas de computación y electrónica. En vista de que el Sistema Operativo es el programa que coordina el uso eficiente de los recursos de un computador, es muy importante que los estudiantes de dichas carreras conozcan su funcionamiento. Sin embargo, el enfoque para la enseñanza de Sistemas Operativos cubre un espectro muy amplio. En un extremo está el enfoque que prepara a los estudiantes para programar parte de un sistema operativo. Este enfoque es el utilizado para preparar profesionales que, por ejemplo, desarrollan sistemas embebidos. En estos cursos con frecuencia se estudia el código fuente de algunos sistemas operativos, lo cual puede ser complejo y tedioso. En el otro extremo, está el enfoque que prepara a los estudiantes para utilizar los sistemas operativos razonablemente bien. Este es el enfoque que se usa tradicionalmente para preparar profesionales que, por ejemplo no desarrollan software o lo hacen de manera eventual. En estos cursos hay un componente grande de teoría que se complementa con unas prácticas de baja complejidad.
En este documento se presentan los resultados de un enfoque novedoso intermedio que combina las ventajas de los enfoques mencionados anteriormente. Se reporta la utilización de un simulador, desarrollado específicamente para el curso, en el cual se simulan aspectos de hardware (procesador, registros, memoria) y software (ensamblador, “loader” y “scheduler”). El estudiante dispone del código fuente del simulador, que se escribe buscando dos objetivos: (i) sencillez, para que sea fácilmente entendible para los estudiantes y (ii) extensibilidad, para que los estudiantes puedan implementar fácilmente los proyectos que se proponen.
A medida que el curso avanza, se entrega una nueva versión del simulador, en la cual se cuenta con una implementación básica del tema a cubrir. Por ejemplo, en el tema de “scheduling”, se entrega un “scheduler” básico funcionando y los estudiantes deben implementar diferentes algoritmos, obtener estadísticas del desempeño y explicar las razones de los cambios en el desempeño. En el tema de manejo de memoria, se entrega una versión del simulador que implementa un algoritmo básico de manejo de páginas y se solicita a los estudiantes que implementen diferentes algoritmos de manejo de páginas y que, de nuevo, obtengan estadísticas y expliquen los resultados. En todos los casos, los estudiantes realizan presentaciones a la clase con los resultados de sus proyectos.
En el caso de ser aceptada esta propuesta, se presentarán los resultados del primer uso de este enfoque en el curso de Sistemas Operativos de la Universidad EAFIT. Se describirán también las etapas de desarrollo del curso y se pondrá el software a disposición de otros profesores que lo deseen utilizar.
Consideramos que este enfoque, basado en que el estudiante implemente en software los conceptos de un curso, puede ser extrapolado a otras asignaturas, tanto de computación como de otras áreas de ingenierías. Pensamos que esta propuesta es promisoria y puede tener efectos importantes en la comprensión de conceptos complejos por parte de los estudiantes.