Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Ministerio de Educación Superior
Universidad Central “Marta Abreu” de Las Villas
Facultad de Matemática, Física y Computación
Licenciatura en Ciencia de la Computación
Proyecto de Diploma
Título: Simulaciones para la enseñanza de Sistemas Operativos
Autora: Yenifer Dayana Terry López
Tutor: Dr. Mateo Gerónimo Lezcano Brito
2014
La que suscribe: Yenifer Dayana Terry López, hace constar que el trabajo titulado “Simulaciones para la enseñanza de Sistemas Operativos”, fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de los estudios de la especialidad de Ciencia de la Computación, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin la autorización de la universidad.
Firma del autor
Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según
acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que
debe tener un trabajo de esta envergadura referido a la temática señalada.
Firma del tutor Firma del jefe del
Laboratorio
Dr. Mateo G. Lezcano Brito. Dr. Mateo G. Lezcano
Brito.
Fecha
PENSAMIENTO
DEDICATORIA
AGRADECIMIENTO
RESUMEN
El presente trabajo analiza las dificultades en el aprendizaje de la asignatura Sistemas
Operativos (I, II) y el diseño e implementación de algunos mecanismos simulados
para ser agregados en el sitio SESO que es un Sistema para la Enseñanza de Sistemas
Operativos. Este sistema está constituido por un conjunto de mapas conceptuales que
permiten la navegación y la interpretación de conceptos. A esta herramienta se le
agregaron simulaciones que permiten apreciar acciones no visibles e internas al SO
facilitando su comprensión.
Se presenta un estudio de las herramientas: Macromedia Flash, los applets y el
lenguaje JavaScript viendo las ventajas y desventajas que presenta cada uno para el
problema que nos ocupa.
También se abordan los aspectos teóricos acerca de la materia objeto de estudio
(Sistemas Operativos), de la forma más abarcadora posible, aunque no todos los
conceptos fueron simulados.
Se realizaron trece simulaciones en flash referentes a los módulos: Administración de
Memoria, Planificación del Procesador y el Sistema de Archivo, insertándose en el
sitio correspondiente del mapa la simulación.
ABSTRACT
This paper analyzes the difficulties in learning the subject Operating Systems (I, II)
and the design and implementation of some mechanisms simulated to be added in the
SESO which is a system for Teaching Operating Systems site. This system consists
of a set of concept maps that allow navigation and interpretation of concepts. This
tool will be added to allow simulations appreciate not visible and internal to de OS
easier to understand actions.
Studies of the tools are presented: Macromedia Flash, applets and JavaScript
language seeing the advantages and disadvantages of each for the problem at hand.
Theoretical aspects about the subject under study (OS), the most comprehensive way
possible are also addressed, although not all concepts were simulated.
Thirteen flash simulations regarding the modules were made: Memory Management,
Planning Processor and File System, inserted into the corresponding site map
simulation.
Tabla de contenido
INTRODUCCIÓN ................................................................................................................... 1
Objetivo General: ................................................................................................................. 2
Objetivos Específicos: .......................................................................................................... 2
Estructura de la Tesis ........................................................................................................... 2
CAPÍTULO I: LA ENSEÑANZA ASISITIDA POR COMPUTADORA: LOS SISTEMAS OPERATIVOS. ........................................................................................................................ 3
I.1 La enseñanza asistida por computadoras ........................................................................ 3
I.2 Los Sistemas Operativos ................................................................................................. 4
I.3 La enseñanza de los Sistemas Operativos ..................................................................... 12
I.4 Objetivos de la asignatura Sistemas Operativos (SO) en la carrera Ciencia de la Computación. (Básica para el plan D) ............................................................................... 13
I.5 Simulación como proceso experimental ....................................................................... 14
I.6 Modelo .......................................................................................................................... 16
I.6.1 Función de los modelos ......................................................................................... 17
I.6.2 Clasificación de los modelos de simulación .......................................................... 17
I.7 Proceso de simulación .................................................................................................. 18
I.7.1 Ciclo de desarrollo de una simulación ................................................................... 18
I.7.2 Etapas del proceso de simulación .......................................................................... 19
I.8 Contexto histórico de las simulaciones ......................................................................... 20
I.8.1 Simulaciones por computadoras ............................................................................ 22
I.8.2 La simulación en la enseñanza ............................................................................... 24
I.9 Mapas Conceptuales en la enseñanza ........................................................................... 27
I.9.1Mapas Conceptuales para la enseñanza de Sistemas Operativos ............................ 28
I.10 Resumen del Capítulo ................................................................................................. 28
CAPÍTULO II: HERRAMIENTAS DE SOFTWARE PARA TRABAJAR CON SIMULACIONES. ................................................................................................................. 30
II.1 Simulaciones mediante applets: .................................................................................. 30
II.1.1 Simulación de la asignación contigua .................................................................. 31
II.2 Simulaciones en JavaScript ......................................................................................... 35
II.3 Simulaciones usando flash .......................................................................................... 38
II.4 Resumen del Capítulo.................................................................................................. 40
CAPÍTULO III: SIMULACIONES ....................................................................................... 42
III.1 Sistema de archivo ..................................................................................................... 42
Colocación enlazada ...................................................................................................... 42
Colocación indexada ...................................................................................................... 45
Colocación contigua ....................................................................................................... 46
Fragmentación externa ................................................................................................... 47
III.2 Planificación de la CPU ............................................................................................. 47
Sistema de planificación con desalojo ........................................................................... 48
Sistema de planificación sin desalojo ............................................................................ 48
Algoritmo de planificación sin desalojo FCFS .............................................................. 49
Ciclo de vida de un proceso ........................................................................................... 50
Cuando un proceso es interrumpido ............................................................................... 51
III.3 Administración de la memoria ................................................................................... 51
Sistema paginado ........................................................................................................... 51
Manejo de memoria MVT .............................................................................................. 53
III.4 Sistema Operativo ...................................................................................................... 54
Transición del modo usuario al modo kernel ................................................................. 54
Llamada al sistema fork ................................................................................................. 55
III.5 Para insertar en el SESO ............................................................................................ 56
III.6 Sitio Aprender Sistemas Operativos .......................................................................... 59
III.7 Resumen del Capítulo ................................................................................................ 60
CONCLUSIONES ................................................................................................................. 62
RECOMENDACIONES ........................................................................................................ 63
BIBLIOGRAFÍA ................................................................................................................... 64
INTRODUCCIÓN
1
INTRODUCCIÓN
El desarrollo de las Tecnologías de la Información y las Comunicaciones (TIC) y su
introducción en el proceso docente-educativo ha favorecido los métodos de
enseñanza-aprendizaje al permitir la introducción de nuevas formas de enseñanza
que se caracterizan por la innovación y la interacción permanente.
El impacto de la informatización en la sociedad está forzando a los centros de
educación, a todos los niveles, a reflexionar acerca de sus programas de estudio. El
uso de la computadora para apoyar el proceso docente-educativo ha despertado el
interés de los educadores. En la práctica, la instrucción masiva del uso de las
computadoras como medio de enseñanza se hizo realidad cuando aparecieron las
computadoras personales que permitieron una amplia difusión de los sistemas de
Enseñanza Asistida por Computadora (EAC) (Lezcano Brito 1998).
Muchos programas de estudio se caracterizan por disponer de poco tiempo para
impartir un gran volumen de información y por ese motivo es necesario incorporar
las nuevas tecnologías de la información y la comunicación con el doble propósito de
ganar en tiempo y mejorar los procesos cognitivos.
Las universidades no están ajenas a la situación descrita anteriormente y, para
hacerle frente a este desafío, adoptan medidas que permitan favorecer la formación
continua de sus alumnos. Precisamente, la gran variedad de programas de estudio, la
flexibilidad de los horarios, las posibilidades de interacción entre profesores y
estudiantes son algunos de los privilegios garantizados con la ayuda de las nuevas
técnicas de aprendizaje.
El grupo de Informática Educativa de la Facultad de Matemática, Física y
Computación (MFC) ha realizado diversas investigaciones que centran su esfuerzo
en el estudio del uso de las computadoras como medio de enseñanza en disimiles
materias. Producto de esas investigaciones se han desarrollado diferentes sistemas y
herramientas que sirven como auxiliares del proceso de enseñanza-aprendizaje. Es en
este entorno que se enmarca el presente trabajo que se traza la meta de realizar
medios simulados que ayuden a comprender conceptos claves estudiados en las
asignaturas Sistemas Operativos (I y II) de la carrera Ciencia de la Computación,
INTRODUCCIÓN
2
aunque también se pueden usar en la de Ingeniería Informática. Basado en esta meta
final, el trabajo persigue los objetivos que se delinean a continuación:
Objetivo General:
Crear medios de enseñanza que simulen el comportamiento de algunos mecanismos
internos usados por los sistemas operativos.
Objetivos Específicos:
1) Analizar los mecanismos que se deben simular.
2) Diseñar e implementar las simulaciones de los mecanismos seleccionados.
3) Publicar las simulaciones, en el Sistema para la Enseñanza de Sistemas
Operativos (SESO)1.
Estructura de la Tesis
El trabajo que se presenta está estructurado en tres capítulos.
Capítulo 1: “La enseñanza asistida por Computadoras y la enseñanza de los Sistemas
Operativos”, aborda aspectos generales de la Enseñanza Asistida de Computadoras
(EAC), particularizando en la enseñanza de los Sistemas Operativos. Las dificultades
que surgen al estudiar estos sistemas, que son inherentes a su propia complejidad, y
se analizan el uso de las simulaciones y los mapas conceptuales como medio de
enseñanza.
Capítulo 2: “Herramientas de software para trabajar con simulaciones”, hace un
estudio de diferentes herramientas para hacer simulaciones, para lo cual se toma en
cuenta las facilidades que brindan, el resultado visual, el efecto que logran en el
aprendizaje, las posibilidades de mostrar contenidos vía Web, el peso (demora
cliente-servidor) y lugar donde se ejecuta.
Capítulo 3: “Simulaciones” presenta las simulaciones realizadas y la forma en que se
insertaron en SESO.
1 http://cmap.uclv.edu.cu
CAPÍTULO 1
3
CAPÍTULO I: LA ENSEÑANZA ASISITIDA POR
COMPUTADORA: LOS SISTEMAS OPERATIVOS.
En el presente capítulo se abordan aspectos generales de la Enseñanza Asistida de
Computadoras (EAC), particularizando en la enseñanza de los Sistemas Operativos.
Se fundamentan las dificultades que surgen al estudiar estos sistemas, que son
inherentes a su propia complejidad, y se analizan el uso de las simulaciones y los
mapas conceptuales como medio de enseñanza, además de fundamentar las ventajas
que pueden aportar esas facilidades al proceso de enseñanza- aprendizaje.
I.1 La enseñanza asistida por computadoras
La EAC nació en los años 60 en los Estados Unidos, heredando directamente los
métodos de trabajo propuestos por el psicólogo norteamericano Skinner (Gosset), a
finales de los años 50, para la enseñanza programada. Su planteamiento inicial se
basaba en el neoconductismo y consistía en usar máquinas de enseñar con
encadenamiento lineal pregunta-respuesta-estímulo. Se caracterizaba por presentar
una secuencia lineal progresiva (siempre la misma) de las ideas-clave, que se suponía
que el alumno iba adquiriendo e interiorizando. En la misma época surge otro tipo de
enseñanza programada no lineal (Crowder) (Goldsman, Nance et al. 2009), en la que
el alumno no sigue un esquema idéntico al de todos los demás alumnos ya que existía
la posibilidad de seguir caminos ramificados en función de sus respuestas (Alonso
Oliva, Gutiérrez Fernández et al. 1998).
Poco tiempo después se desarrolló otra forma de usar las computadoras para la
enseñanza con un estilo muy diferente que se basaba en la concepción psicogenética
del proceso de aprendizaje. El nuevo método, desarrollado por Papert (Markowitz,
Hausner et al. 1962), Davis y otros investigadores, se apoyaba inicialmente en las
ideas de Jean Piaget (Schriber 1974) y se identifica más con el tipo de programas de
simulación, entornos abiertos de aprendizaje y otras técnicas que se acercaban más a
las ideas actuales de la EAC.
La forma inicial de utilizar las computadoras en la enseñanza, basada en el uso de
rutinas o de programas de tipo tutorial, se ha quedado estrecha y han surgido muchas
otras experiencias que han enriquecido y diversificado el panorama notablemente,
entre otras se pueden citar: las simulaciones, el procesamiento de textos en forma
CAPÍTULO 1
4
cooperada, los juegos educativos, la incorporación de inteligencia artificial a los
medios de enseñanza, los blogs y foros educativos, etc.
Los programas que se usan en la EAC pueden utilizar ejercicios y sesiones de
preguntas-respuestas para presentar un tema y verificar el avance de los estudiante,
también permiten que los individuos avancen a su propio ritmo. Las materias
tratadas son muy diversas y de distintos niveles, por ejemplo: aritmética para
principiantes, matemáticas avanzadas, ciencia, historia, estudios de informática, en
fin una amplia gama de materias.
El término EAC no es el único que se usa para referirse a esta rama del saber y se
pueden citar, entre otros: aprendizaje asistido por computadora, aprendizaje
impulsado por computadora, aprendizaje basado en computadora, formación basada
en ordenador o computadora, instrucción administrada por computadora, etc.
Existen diferentes tipos de materiales usados en la EAC y, aunque pueden existir
otras clasificaciones, se pueden mencionar las siguientes categorías:
• Rutinas (recuperación, enseñanza especial, ejercicios...)
• Tutoriales (presentación de conceptos, lecciones)
• Juegos Educativos
• Simulaciones
I.2 Los Sistemas Operativos
Un sistema operativo (SO, referido frecuentemente como OS del inglés Operating
System) es un programa o conjunto de programas que gestiona los recursos de
hardware y software para proveer servicios a otros programas y a los usuarios. El
SO ejecuta muchas de sus instrucciones en modo privilegiado para protegerse del
resto de sus usuarios (Silberschatz, Galvin et al. 1999).
Según James Peterson (Peterson and Silberschatz 1991), el Sistema Operativo es un
programa que actúa como intermediario entre el usuario y el hardware de una
computadora y su propósito es proporcionar un entorno donde el usuario pueda
ejecutar programas. En este caso el sistema operativo hace una extensión de las
funcionalidades de la máquina, permitiendo la interacción (usuario - hardware) de
forma más fácil.
CAPÍTULO 1
5
Para lograr lo anterior el sistema ofrece una interfaz de llamadas a su núcleo,
conocidas como llamadas al sistema, que está formada por una colección de
funciones básicas que permiten obtener variados servicios. Por ejemplo, es mucho
más sencillo acceder a este sistema de llamadas para obtener un servicio del sistema
(como leer o escribir archivos), que acceder directamente a instrucciones específicas
del hardware (Kifer and Smolka 2007).
Dos interfaces de llamadas al sistema bien conocidas son las Win32 API
(Application Programming Interface) para varios tipos de sistemas operativos de
Microsoft como Windows 2000/XP/Vista, y POSIX (Portable Operating System
Interface) para Unix (Silberschatz and Galvin 2012).
Abraham Silberschatz (Silberschatz, Galvin et al. 2006), considera que el sistema
operativo es un programa que reparte recursos. Un sistema de computación tiene
muchos recursos (de hardware y de software) que pueden ser necesarios para
resolver un problema: tiempo de CPU, espacio de memoria, espacio para
almacenamiento de archivos, dispositivos de E/S, entre otros. El sistema operativo
actúa como gestor de dichos recursos y los asigna a programas y usuarios específicos
según los necesiten para sus tareas.
Dado que puede haber muchas solicitudes de recursos, que tal vez no puedan
satisfacerse simultáneamente, el sistema operativo debe decidir cuáles solicitudes
atenderá asignando recursos para operar el sistema de computación de manera
eficiente y justa. Por eficiencia se entiende que los sistemas operativos deben
maximizar la utilización de los recursos cuando sea posible. Por justicia se entiende
que a los programas de usuarios se les debe conceder una asignación equivalente de
recursos durante su ejecución (Kifer and Smolka 2007).
Una definición muy común asociada a los sistemas operativos, lo describe como un
programa que se ejecuta todo el tiempo en la computadora y que debe cumplir con
los requisitos más indispensables, tales como:
• Definir y presentar una Interfaz a los usuarios.
• Compartir el hardware entre usuarios.
• Permitir que los usuarios compartan datos.
• Planificar el uso de los recursos.
CAPÍTULO 1
6
• Facilitar la entrada / salida.
• Recuperarse de los errores.
Un sistema de cómputo se puede ver como un conjunto de cuatro capas superpuestas
(figura I.1)(Lezcano Brito 2010).
• La capa inferior (capa 1) es el hardware y constituye la máquina real que se
fabrica en una determinada empresa de construcción de computadoras.
• Cuando a la computadora o máquina real se le instala un SO (capa 2), se
convierte en una extendida que ofrece mejoras significativas a la
computadora original. Las mejoras dependen del tipo de SO y, por supuesto,
de las potencialidades que brinda el hardware sobre el cual reside.
• En la tercera capa se sitúan los programas de aplicación que hacen diversas
labores a nombre de los usuarios.
• En la cuarta capa, o sea en la capa superior, están los usuarios del sistema de
cómputo, los cuales normalmente solicitan los servicios a través de los
programas de aplicación.
Figura I.1 Sistema de cómputo estructurado por capas2
La concepción de un sistema estructurado por capas permite que las capas superiores
se nutran de los servicios que brindan las inferiores, de forma que cada una se
especialice en lo que realmente tiene que hacer, sin involucrarse en detalles
complejos que son resueltos por los niveles que están debajo de ellas.
2 Tomado de Lezcano Brito, M. (2010). "Monografía Sistemas Operativos. Una vista interior."
Usuarios
Programa de aplicación
Sistema Operativo
Hardware
4
3
2
1
CAPÍTULO 1
7
Algunos tipos de SO se diseñan para ser eficientes, otros para ser fáciles de usar y
otros tratan de lograr ambas cosas estableciendo un determinado compromiso.
Los SO se organizan en módulos, los cuales tienen diferentes funciones y
responsabilidades. La versión original del SO UNIX tenía una estructura limitada
que estaba formado por dos partes separadas, el kernel y los programas de sistemas.
Esa estructura monolítica es muy difícil de mantener debido a que las partes son muy
grandes y abarcan diversas funcionalidades que deberían estar separadas.
Una solución al problema anterior es migrar algunas de las funcionalidades del
kernel de forma que se tenga un kernel pequeño, conocido como microkernel, y
adicionalmente formar capas con diferentes funcionalidades. El SO Minix, que se
concibió con fines docentes, tiene esa arquitectura (figura I.2).
Figura I.2. Estructura del SO Minix 3.03
Existen diferentes partes o módulos del SO como son: el Sistema de Archivo, el
módulo de Administración de la Memoria y el de Manipulación de procesos e hilos
que son objetivos de estudio de las asignaturas de las carreras de perfil informático.
El Sistema de Archivo está formado por dos partes perfectamente distinguibles (al
menos en funciones): Un conjunto de archivos que almacenan los datos en sí y una
estructura de directorio.
3 Lezcano Brito, M. (2010). "Monografía Sistemas Operativos. Una vista interior."
Servidor de red
Init Proceso de usuario
Proceso de usuario
Proceso de usuario
...
Planificación de procesos
Sistema de archivo
Servidor de información
...
Manipulador de disco
Manipulador TTY
Manipulador Ethernet
...
Núcleo o kernel Tareas de Tareas del reloj sistema
4
3
1
2
Proceso de usuarios
Procesos Servidores
Manipuladores de equipos
kernel
Modo usuario
Modo kernel
Capas
CAPÍTULO 1
8
Una forma típica de organizar el sistema de archivo se presenta en la figura 3 (puede
diferir de acuerdo a las particularidades del SO). En ella, el sistema se presenta como
un conjunto de capas: las capas inferiores están más cercanas al hardware y las
superiores a los usuarios, esta organización hace que se alcancen mayores niveles de
abstracción en las capas superiores, permitiendo a los usuarios aislarse de las
especificidades y complejidades asociadas a los equipos periféricos.
Figura I.3. Organización típica de un sistema de archivos4
Los sistemas de archivos varían de un SO a otro, cabe destacar los sistemas NTFS y
FAT de los SO de la familia Windows y los sistemas UFS y extX (X: 2, 3, 4) de la
familia Unix.
El módulo Administración de la memoria es una parte fundamental de cualquier
equipo de cómputo, la memoria en sí es un recurso de hardware que debe
administrarse. En dependencia de la cantidad de memoria que se disponga y de la
técnica que se use para administrarla, se pueden ejecutar más o menos procesos con
mayor o menor velocidad.
La memoria se puede ver como un gran arreglo de palabras o bytes, cada una de ellas
tiene una dirección asociada que permite referirla y usarla.
La memoria principal o básica y los registros del procesador son los únicos
elementos de almacenamiento a que la CPU tiene acceso y por eso resulta necesario
que la información, sobre la que la CPU actúa, esté en algunas de esas partes: un
registro o en memoria principal.
4 Tomado de Lezcano Brito, M. (2010). "Monografía Sistemas Operativos. Una vista interior."
Manipuladores
Sistema de archivo básico (E/S física)
Supervisor de E/S básico
Entrada salida lógica
CAPÍTULO 1
9
Aunque el desarrollo vertiginoso del hardware ha potenciado el surgimiento de
memorias más veloces y de mayor capacidad, la cantidad de memoria sigue
resultando poca para los usuarios de las computadoras (a cualquier nivel), debido a
que las aplicaciones y el propio SO, se hacen cada vez más voraces al incluir
interfaces gráficas más poderosas y otras facilidades que consumen grandes
cantidades de memoria.
Las dificultades de escasez de memoria se agudizan cuando se trabaja en un sistema
multiprogramado, ya que en ese caso se hace crucial la protección.
Debido a que han demostrado su eficacia, los sistemas actuales de administración de
la memoria datan de varios años, pero con los avances en el desarrollo del hardware,
muchas funciones, que en un principio se definían por software, han emigrado hacia
el hardware.
Existen muchas estrategias para el manejo de la memoria, entre ellas destacan el
esquema paginado y el segmentado, que persiguen el fin común de mantener la
mayor cantidad posible de procesos cargados en memoria, de forma que se puedan
ejecutar “simultáneamente” varios de ellos. Tanto el paginado como la segmentación
se basan en algoritmos que permiten escoger, entre las partes cargadas en memoria,
las que serán sustituidas por otras cuando estas últimas sean necesarias. Las partes
escogidas para ser sustituidas reciben el nombre de víctimas y el SO debe tratar de
usar algoritmos que no provoquen un tráfico excesivo de entradas y salidas de esas
partes hacia o desde la memoria. La idea de tener solo partes de un proceso cargado
en memoria y las demás partes en un equipo de almacenamiento masivo, desde el
cual se cargarán cuando se necesiten, permite extender la memoria real y se conoce
como memoria virtual.
La idea básica para detener procesos e intercambiar las tareas de forma que teniendo
una sola CPU parezca que se ejecutan varias tareas a la vez, se basa en los dos
aspectos siguientes (figura I.4):
• Cada vez que un proceso sea detenido, por cualquier motivo (se le
terminó el ciclo de CPU, hizo una petición de E/S, etc.), los valores de la
CPU se guardan en su PCB (la CPU virtual de ese proceso).
CAPÍTULO 1
10
• Cada vez que un proceso vaya a entrar en estado de ejecución, se toman
los valores de su PCB (su CPU virtual) y se carga la CPU real con ellos,
con lo cual esta última queda tal y como estaba cuando el proceso que se
va a ejecutar fue interrumpido en el pasado, o sea:
o el valor adecuado del registro contador de programa, para saber
cuál es la próxima instrucción a ejecutar,
o los valores de los registros asociados a las direcciones de memoria
del proceso, para saber en qué parte de la memoria están sus
instrucciones y datos,
o los valores de los registros asociados a las tablas de archivos
abiertos para poder continuar leyendo o escribiendo desde o hacia
ellos, etc.
La situación anterior ha obligado a establecer un control más estricto sobre los
recursos pues, al ser estos finitos y tener que compartirlos, surgen diferentes
conflictos que pueden entorpecer la idea de realizar más tareas en el mismo tiempo
físico.
En un sistema multiprogramado no se puede programar haciendo suposiciones acerca
de la velocidad de ejecución, porque no todos los procesos realizan sus acciones a
igual velocidad e incluso, en el caso que se ejecuten varias veces, cada vez no tienen
que comportarse igual.
Con el fin de lograr estos y otros objetivos el SO cuenta con un componente
denominado planificador de procesos, el cual tiene la tarea de seleccionar (entre los
procesos que están en el estado Listo) el próximo proceso al que se le asignará la
CPU.
El módulo que tiene la tarea de planificar el uso de la unidad de procesamiento
central usa diferentes algoritmos para planificar cuándo se le debe asignar esa unidad
a un proceso dado.
CAPÍTULO 1
11
Figura I.4. Cambio de CPU entre procesos5
Los procesos pueden nombrarse como procesos pesados (o procesos) y procesos
ligeros. La figura I.5 muestra la diferencia entre estos dos conceptos.
Muchos SO modernos usan el concepto de hilo, por ejemplo Solaris crea un conjunto
de hilos en el kernel para controlar las interrupciones, Linux usa un hilo del kernel
para controlar la cantidad de memoria, etc.
El soporte para hilo puede darse a nivel de usuario (hilos de usuario) o puede ser
proporcionado por el kernel (hilos de kernel). Los primeros se soportan arriba del 5 Tomado de Lezcano Brito, M. (2010). "Monografía Sistemas Operativos. Una vista interior."
Salvar estado en PCB0
• • •
Recarga estado desde el PCB1
Interrupción o llamada al sistema
Salvar estado en PCB1
• • •
Recarga estado desde el PCB0
Proceso P0
Interrupción o llamada al sistema
Sistema operativoProceso P1
Ejecución
Ejecución
Inactivo
Ejecución
Inactivo
Inactivo
CAPÍTULO 1
12
kernel y por ende este no lo apoya. Mientras los segundos los maneja directamente el
SO.
Casi todos los SO modernos incluyen soporte para hilos a nivel de kernel, por
ejemplo: Windows XP, Linux, Mac OS X, Solaris, entre otros.
Figura I.5. Modelo de proceso y de hilo6
Como puede apreciarse en esta breve descripción, de algunos de los aspectos
medulares con que lidia un SO, este programa de sistema tiene una gran complejidad,
de ahí que su estudio desde la perspectiva de un estudiante de Ciencia de la
Computación también resulta complejo. Se justifica entonces la necesidad de crear
herramientas que sirvan de complemento y de apoyo al proceso de enseñanza-
aprendizaje, de forma que se puedan estudiar sus interioridades y a la vez ayude a
suplir el insuficiente tiempo que le asignan los planes de estudio a esta materia.
I.3 La enseñanza de los Sistemas Operativos
Los Sistemas Operativos son programas de sistemas que se destacan por su
complejidad interna (Silberschatz, Galvin et al. 2009). Debido a esa complejidad,
6 Tomado de Lezcano Brito, M. (2010). "Monografía Sistemas Operativos. Una vista interior."
Hilos de Control
Código Datos Archivos
Registros
Pila
Registros
Pila
Registros
Pila
Código Datos Archivos
Registros Pila
Hilo de control
CAPÍTULO 1
13
diseñarlos y programarlos es una tarea difícil que debe ser acometida por equipos
especializados que trabajen de forma coordinada.
El estudio de los Sistemas Operativos se puede ver desde dos perspectivas. La
primera y más fácil es estudiarlos con el fin de saber usarlos eficientemente y la
segunda y más compleja es estudiar sus interioridades para poder modificarlos y
adaptarlos a necesidades propias o, aún más difícil, hacer el Sistema Operativo
partiendo desde cero o quizás, desde algún núcleo básico que, gracias a la política
del software libre, se puede obtener fácilmente (SUPERIOR 2012).
Los planes de estudio de la carrera Ciencia de la Computación, toman al Sistema
Operativo como objeto de estudio al incluir el contenido y comprensión de su
funcionamiento interno y la habilidad de poder modificar sus diferentes partes o
módulos. Esta tarea se hace extremadamente compleja debido a diferentes causas,
entre las que se han podido establecer las siguientes:
• La asignatura se caracteriza por un extenso componente teórico que debe ser
analizado para poder comprender las implementaciones que se estudien.
• No se dispone de medios adecuados que permitan apreciar el funcionamiento
de muchos de sus mecanismos, lo que hace difícil la comprensión de los
aspectos estudiados.
• El gran nivel de abstracción que necesita la comprensión de muchos de sus
mecanismos fundamentales.
• La reducción de horas que sufrió el Plan de Estudio D con relación al Plan C
y el hecho de que se mantienen los mismos objetivos.
I.4 Objetivos de la asignatura Sistemas Operativos (SO) en la carrera Ciencia de la Computación. (Básica para el plan D) La disciplina Sistemas de Computación desempeña un papel fundamental en el plan de
estudio de la carrera Ciencia de la Computación. Entre los objetos de estudio de la
disciplina se incluye la asignatura Sistemas Operativos que persigue los objetivos
generales (SUPERIOR 2012):
1. Evaluar, asimilar, adaptar y crear componentes de un sistema operativo.
CAPÍTULO 1
14
2. Asimilar las principales características de diseño e instrumentación de los
sistemas de archivos que se definen en cada uno de los SO objeto de estudio,
creando habilidades en el estudiante para reconocer los distintos sistemas de
archivos instalados en una arquitectura con un SO en concreto.
3. Profundizar en los temas de multiprogramación, consolidando los conocimientos
para crear aplicaciones en ambientes de tiempo compartido.
4. Aprender las distintas técnicas de administración de memoria RAM, así como
las estructuras de control definidas por los sistemas operativos para una utilización
eficiente de la misma.
5. Entender los mecanismos de memoria virtual y su instrumentación en los SO
objeto de estudio.
En el proceso de enseñanza de la asignatura es necesario cumplir con los objetivos
expuestos y para ello es imprescindible conocer los contenidos de: Sistema de Archivo,
Administración de Memoria y Planificación de la CPU, que son los módulos principales
de la materia de estudio.
I.5 Simulación como proceso experimental
Cuando se necesita hacer un estudio de determinado fenómeno o sistema para: poder
entender su funcionamiento, apreciar cómo se relaciona con otros componentes o
predecir variaciones en su comportamiento al producirse algunos cambios o hacer
experimentos en tiempo real; surgen dificultades que pueden hasta hacer imposible la
tarea ya sea por lo costoso, el tiempo a emplear, las implicaciones económicas o los
riesgos. Es por ello que a veces la construcción de un modelo puede ser la mejor
solución para experimentar debido a que el modelo sustituye el sistema real y lo
simplifica para hacer énfasis en el objeto de estudio abstrayendo las partes que no
son relevantes para el caso que se analiza.
El estudio en cuestión puede realizarse por procedimientos analíticos sobre el modelo
construido, normalmente a través del uso de herramientas matemáticas como la
resolución de ecuaciones y el cálculo de probabilidades. En otras circunstancias esta
resolución analítica no se puede realizar o es muy costosa por lo que sería mejor
obtener una aproximación de la solución mediante una simulación.
CAPÍTULO 1
15
Para emplear la simulación en un estudio debe planificarse una serie de
experimentos, en los cuales el diseño debe cumplir los supuestos del diseño de
experimentos, para poder obtener resultados que conduzcan a interpretaciones
significativas de las relaciones de interés.
Según López de Munain y Salas (López de Munain and Saiegg 2005), bajo estas
consideraciones se puede caracterizar la simulación como técnica experimental de
resolución de problemas.
La simulación de sistemas y situaciones del mundo real juega un importante papel en
las investigaciones científicas. En la educación se utiliza más cada día y se potencia
su uso para estudiar procesos, procedimientos y proporcionar entrenamiento de
situaciones prácticas. Sirven, además, como base de muchos juegos instructivos y de
entretenimiento en general (Magee 2006).
Aunque es posible intuir el significado del término simulación, es importante
precisarlo a fin de tener una idea más clara de su importancia y la relevancia que
tiene su utilización en la época actual. Para hablar de simulación es imprescindible
tener una noción de lo que es un sistema. Este puede definirse como un conjunto de
elementos con relaciones de interacción e interdependencia, que le confieren entidad
propia al formar un todo unificado (Chávez and Quesada).
La esencia de la simulación consiste en establecer una equivalencia entre dos
sistemas, cada uno de los cuales puede existir en realidad o ser abstracto. Si el
primero resulta más sencillo para la investigación que el segundo, es posible juzgar
sobre las propiedades del segundo sistema al observar el comportamiento del
primero. En este caso el sistema empleado para la investigación se denomina modelo
(Korshunov and Alvarez 1995).
Según R.E. Shannon: "La simulación es el proceso de diseñar un modelo de un
sistema real y llevar a término experiencias con él, con la finalidad de comprender el
comportamiento del sistema o evaluar nuevas estrategias —dentro de los límites
impuestos por un cierto criterio, o un conjunto de ellos— para el funcionamiento del
sistema"(Bonacina and Bortolato 2009).
Se podría decir que la simulación es una metodología, la cual intenta que podamos
describir cual es el comportamiento de un sistema, crear teorías que nos permitan
CAPÍTULO 1
16
explicar el comportamiento observado y predecir los efectos que pueden producir
algunos cambios en el futuro (Soler Pellicer 2007).
Existen dos términos necesarios para caracterizar las simulaciones: modelo de
simulación y proceso de simulación.
I.6 Modelo
La palabra modelo tiene tres usos diferentes: como sustantivo, como adjetivo y como
verbo. En el primer caso se refiere a un ente físico, a un sistema, que representa a
otro ente, es decir, a otro sistema. Así, como un avión en miniatura, es el modelo
de un avión real. Como adjetivo indica perfección, lo opuesto a la ausencia de esta
cualidad, un ejemplo es cuando se dice: “El Che es un modelo de hombre”. Por
último como verbo, modelar significa dar forma física a algo, por ejemplo, modelar
una maqueta (Eguíluz Pérez 2007) .
Al integrar estos significados, podemos decir que el modelo es una representación
de un sistema real. Esta representación detalla las cualidades relevantes que son
de interés para el estudio que se está llevando a cabo.
El Diccionario de la Real Academia lo define como: "ejemplar o forma que uno
se propone y sigue en la ejecución de una obra o en otra cosa. Representación
en pequeño de alguna cosa". De acuerdo al tema que trata este trabajo se considera
el concepto de modelo como "la representación formal de un sistema", pero se podría
decir que a la vez un sistema puede ser representado por una variedad (Domínguez
1990).
El modelo puede verse como un esquema, representación o abstracción de un
sistema de la vida real, que tiene el fin de proporcionar un medio para el análisis del
comportamiento de un sistema real de forma que se pueda mejorar su desempeño o si
no existe darle una estructura al nuevo sistema (Soler Pellicer 2007).
Mediante la simulación, un modelo se usa para hacer experimentos con el fin de
estudiar el comportamiento dinámico del sistema real al cual se está representando.
La simulación usando la computadora consiste en la construcción de programas que
describen el comportamiento de un sistema mediante un modelo con el cual se
pueden hacer experimentos.
CAPÍTULO 1
17
I.6.1 Función de los modelos
Los modelos pueden ser usados como herramientas para muchas cosas, tales como:
la experimentación, el entendimiento, la comunicación, la predicción, etc. También
permiten entender el comportamiento de un fenómeno, explicarlo y poder predecirlo
y tienen usos en diferentes ramas como en la ingeniería y las ciencias sociales, etc.
Un modelo de simulación puede verse como un conjunto de hipótesis acerca del
funcionamiento del sistema que se expresa en términos de relaciones matemáticas
y/o lógicas entre los elementos del sistema (Chávez and Quesada). El proceso de
simulación incluye la ejecución del modelo a través del tiempo, en general en una
computadora, para generar muestras representativas de las mediciones de su
desempeño o funcionamiento.
Dado lo complejo que es modelar la realidad, inicialmente se deben modelar las
características más importantes e ir incorporando detalles pero agregando solamente
los aspectos requeridos para cumplir con los objetivos de estudio.
I.6.2 Clasificación de los modelos de simulación
Los modelos de simulación se pueden clasificar de muchas maneras pero una de las
categorías estrictamente excluyentes son las siguientes:
Según su representación:
• Matemáticos o simbólicos: Representan un sistema en forma abstracta, en
términos de relaciones cuantitativas (fórmulas) y lógicas.
• Físicos o icónicos: Representan un sistema en cuanto a su apariencia y
funciones. Con frecuencia son versiones a escala reducida del mismo o
representaciones análogas.
Según la existencia de la incertidumbre:
• Determinísticos: Representan sistemas de los cuales se tiene total certeza de
lo que sucederá. Las variables no controlables en este modelo se conocen y
no pueden tener variaciones.
• Estocástico o Probabilísticos: Representan sistemas donde los hechos
suceden aleatoriamente y al menos una variable no controlable es incierta y
puede variar. No se puede asegurar cuáles acciones ocurren en un
CAPÍTULO 1
18
determinado instante, sólo se conoce la probabilidad de ocurrencia y su
distribución probabilística.
Según la importancia del tiempo:
• Estáticos: El tiempo no es un factor importante. El comportamiento del
sistema no varía significativamente con el tiempo.
• Dinámicos: El tiempo es un factor importante. El comportamiento del
sistema se modifica a través del tiempo.
Según la naturaleza de los eventos (Dinámicos)
• Continuos: Representan sistemas cuyos cambios de estado son graduales, es
decir, las variables de estado cambian en forma continua respecto al
tiempo.
• Discretos: Representan sistemas cuyos cambios de estado son esporádicos, es
decir, las variables de estado cambian sólo en algunos instantes de tiempo.
I.7 Proceso de simulación
Según Lunce (Lunce 2006), el proceso de simulación es la ejecución del modelo a
través del tiempo y sobre una computadora para generar muestras representativas del
comportamiento del sistema que se quiere simular.
I.7.1 Ciclo de desarrollo de una simulación
Los sistemas reales pueden ser complejos y difíciles de analizar es por ello que el
proceso de desarrollo de una simulación debe comenzar haciendo una representación
del sistema mediante un modelo que contenga las partes fundamentales, para hacer el
análisis que se le desea hacer al sistema y establecer objetivos para este modelo.
Una vez definido el modelo se debe hacer una comprobación entre el modelo
realizado y el sistema real para asegurar que la representación es correcta y poder
hacer las correcciones necesarias al modelo.
Después se diseña el modelo computacional que representa al modelo inicial que esté
acorde al que el experimentador desea, comprobando la consistencia interna del
modelo y realizando los ajustes necesarios.
CAPÍTULO 1
19
El modelo computacional obtenido es codificado en algún lenguaje de programación
o software para simulación, realizando las validaciones correspondientes.
I.7.2 Etapas del proceso de simulación
En el desarrollo de una simulación se pueden distinguir las siguientes etapas (López
de Munain and Saiegg 2005):
Formulación del problema: En esta etapa el cliente y el desarrollador deben
acordar bien el objetivo de la simulación, así como dejar detallado, lo mejor posible,
aspectos tales como: resultados que se esperan obtener, el tiempo disponible, el plan
de experimentación, tratamiento estadístico, etc. También se debe establecer si el
usuario trabajará con el simulador u obtendrá solo los resultados, y finalmente, si es
un trabajo de simulación o uno de optimización.
Definición del sistema: El sistema a simular debe estar perfectamente
definido. El cliente y el desarrollador deben acordar dónde estará la frontera del
sistema a estudiar y las interacciones con el medioambiente que serán consideradas.
Formulación del modelo: Esta etapa comienza con el desarrollo de un
modelo simple que captura los aspectos relevantes del sistema real. Los
aspectos relevantes del sistema real dependen de la formulación del problema;
para un ingeniero de seguridad los aspectos relevantes de un automóvil son
diferentes de los aspectos considerados por un ingeniero mecánico para el
mismo sistema. Este modelo simple se irá enriqueciendo como resultado de
varias iteraciones.
Colección de datos: La naturaleza y cantidad de datos necesarios están
determinadas por la formulación del problema y del modelo. Los datos pueden
ser provistos por registros históricos, experimentos de laboratorios o mediciones
realizadas en el sistema real. Los mismos deberán procesarse adecuadamente
para darles el formato exigido por el modelo.
Implementación del modelo en la computadora: El modelo se implementa
utilizando algún lenguaje de computación. Existen lenguajes específicos de
simulación que facilitan esta tarea y también, existen programas que ya
cuentan con modelos implementados para casos especiales.
Verificación: En esta etapa se comprueba que no se hayan cometidos errores
CAPÍTULO 1
20
durante la implementación del modelo. Para ello, se utilizan las herramientas de
puesta a punto provistas por el entorno de programación.
Validación: Se comprueba la exactitud del modelo desarrollado. Esto se lleva a
cabo comparando las predicciones del modelo con: mediciones realizadas en el
sistema real, datos históricos o datos de sistemas similares. Como resultado de
esta etapa puede surgir la necesidad de modificar el modelo o recolectar datos
adicionales.
Diseño de experimentos: Se deciden las características de los experimentos a
realizar: el tiempo de arranque, el tiempo de simulación y la cantidad de
simulaciones a realizar. No se debe incluir aquí la elaboración del conjunto de
alternativas a probar para seleccionar la mejor, la elaboración de esta lista y su
manejo es tarea de la optimización y no de la simulación. Debe quedar claro
cuando se formula el problema si lo que el cliente desea es un estudio de simulación
o de optimización.
Experimentación: Se realizan las simulaciones de acuerdo al diseño previo. Los
resultados obtenidos se recolectan y procesan.
Interpretación: Se analiza la sensibilidad del modelo con respecto a los parámetros
que tienen asociados la mayor incertidumbre. Si es necesario, se deberán recolectar
datos adicionales para refinar la estimación de los parámetros críticos.
Implementación: Conviene acompañar al cliente en la etapa de implementación
para evitar el mal manejo del simulador o el mal empleo de los resultados del mismo.
Documentación: Incluye la elaboración de la documentación técnica y
manuales de uso. La documentación técnica debe contar con una descripción
detallada del modelo y los datos; también, se debe incluir la evolución histórica de
las distintas etapas del desarrollo. Esta documentación será de utilidad para el
posterior perfeccionamiento del simulador.
I.8 Contexto histórico de las simulaciones
En 1777, con el planteamiento del problema “la aguja de Buffon” (Affentranger
1992), modelo matemático para ir aproximando el valor del número π a partir de
sucesivos intentos. Este modelo se basaba en una aguja de longitud determinada
CAPÍTULO 1
21
lanzado sobre un plano segmentado por líneas separadas por unidades. ¿Cuál es la
probabilidad de que la aguja cruce alguna línea? Este hecho podría considerarse
como el nacimiento de la simulación.
En 1912 Laplace mejoró y corrigió la solución de Buffon y desde ese entonces se
conoce como la solución Buffon-Laplace (Goldsman, Nance et al. 2009).
Tiempo después el estadístico William Sealy Gosset (Pearson, Gosset et al. 1990),
que trabajaba en la destilería de Arthur Guinness aplicaba sus conocimientos
estadísticos en la destilería y en su propia explotación agrícola. Gosset tenía un
especial interés en la cebada lo que lo llevó a especular que el diseño de
experimentos debería dirigirse no solo a mejorar la producción media, sino también a
desarrollar variedades de cebada cuya mayor robustez permitiese que la producción
no se viese afectada por las variedades en el suelo y el clima.
Guinness prohibió a sus trabajadores la publicación de cualquier tipo de artículo
independientemente de su contenido para evitar futuras filtraciones de información
confidencial, es por ello que Gosset usó en sus publicaciones el seudónimo
“Student”, para que Guinness no lo descubriera. Por esta razón su logro más famoso
se conoce como la “distribución t de Student”. Este hito abrió las puertas de la
simulación en el campo del proceso de control industrial basada en la
experimentación y análisis para descubrir soluciones exactas a problemas de la
industria y la ingeniería.
Dos hechos que sentaron la bases para la rápida evolución del campo de la
simulación a mediados de los 40 fueron: la construcción de las primeras
computadoras de propósito general como el ENIAC (Molero 2013) y el trabajo de
Stanislaw Ulam, John Von Neumann (Herrera 2000) y otros científicos, para usar el
método de Montecarlo en computadoras modernas y solucionar problemas de
difusión de neutrones en el diseño y desarrollo de la bomba de hidrógeno.
En 1960, Keith Douglas Tocher (Goldsman, Nance et al. 2009) desarrolló un
programa de simulación general cuya principal tarea era la de simular el
funcionamiento de una planta de producción donde las máquinas ciclaban por
estados: Ocupado, Esperando, No disponible y Fallo; de manera que las simulaciones
en los cambios de estado de las máquinas marcarán el estado definitivo de la
CAPÍTULO 1
22
producción de la planta. Este trabajo produjo además el primer libro sobre
simulación: The Art of Simulation en 1963.
Entre 1960 y 1961 se desarrolló el Sistema de Simulación de propósito general o
General Purpose Simulation System (GPSS) (Schriber 1974) para realizar
simulaciones de teleprocesos involucrando, por ejemplo: control de tráfico urbano,
gestión de llamadas telefónicas, reservas de billetes de avión, etc.
En 1963 se desarrolló SIMSCRIPT (Dimsdale and Markowitz 1964), otra tecnología
alternativa al GPSS basada en FORTRAN, más enfocada a usuarios que no tenían
porqué ser obligatoriamente expertos informáticos en RAND CORPORATION.
Complementariamente a los desarrollos llevados a cabo por RAND e IBM, el Royal
Norwegian Computing Center inició en 1961 el desarrollo del programa SIMULA
(Salas Perea and Ardanza Zulueta 1995) con ayuda de Univac. El resultado fue
SIMULA I.
En 1967 se fundó el WSC (Winter Simulation Conference), lugar donde desde
entonces y hasta ahora se archivan los lenguajes de simulación y aplicaciones
derivadas.
Entre 1970 y 1981 se desarrollaron avanzadas herramientas de modelado y de
análisis de resultados. Gracias también a los desarrollos obtenidos en la generación
de datos y a las técnicas de optimización y representación de datos, la simulación
llega a su fase de expansión donde comienza a aplicarse en múltiples campos.
Los datos de salida obtenidos de una simulación por computadora se presentaban en
una tabla o matriz, de manera que se mostraba el efecto que los múltiples cambios en
los parámetros tenían sobre los datos. El empleo del formato de matriz se debía al
uso tradicional que se hacía de la matriz en los modelos matemáticos. Sin embargo,
los psicólogos advirtieron que los seres humanos percibían mejor los cambios en el
desarrollo de las situaciones si miraban gráficos o incluso imágenes en movimiento ó
animaciones generadas a partir de dichos datos, como las que se ejecutan en las
animaciones de imágenes generadas por computadora.
I.8.1 Simulaciones por computadoras
La simulación por computadora facilita la experimentación de hipótesis de trabajo
con un modelo de la realidad. El uso de simulaciones en el ámbito educativo resulta
CAPÍTULO 1
23
muy apropiado en determinados aprendizajes. Gracias a la simulación se puede
diseñar un modelo de un sistema real para que el alumnado realice experiencias con
él con la finalidad de comprender el comportamiento del sistema o bien de evaluar
nuevas estrategias de funcionamiento. Es un intento de modelar situaciones de la
vida real por medio de un programa de computadora, lo que requiere ser estudiado
para ver cómo es que trabaja el sistema. Ya sea por cambio de variables o quizás
predicciones hechas acerca del comportamiento del sistema.
Las simulaciones pueden aplicarse para enriquecer el trabajo y contribuir a una
asimilación de conocimientos profunda, natural, comprensiva y efectiva.
No siempre es oportuno sustituir lo real por lo virtual pero en ocasiones y, sobre todo
en las fases iniciales del aprendizaje, las simulaciones pueden aportar prestaciones
interesantes, como son:
• Facilidad. Proporcionan un sistema fácil, asequible y simplificado para que el
alumno/a experimente.
• Disponibilidad. Se asegura el principio de actividad del alumno/a allí donde
existe una cantidad suficiente de computadoras y no tanto otros materiales de
laboratorio, taller, etc.
• Inmediatez. Sitúa al usuario/a rápidamente en un entorno convenientemente
preparado.
• Seguridad. El modelo garantiza una práctica segura al margen de situaciones
incómodas, riesgos o accidentes
• Ensayo y error. Se puede experimentar una misma situación un número
elevado de veces usando el método del ensayo y el error.
• Economía. Puede suponer una reducción importante de costes económicos.
• Transferencia. Facilita la transferencia de lo aprendido a situaciones reales.
• Integración. La computadora aporta otras herramientas adicionales que
contribuyen a la investigación: bloc de notas, calculadora, hoja de cálculo,
traductor de idiomas, etc.
Según (Pérez 2009) para programar las simulaciones existen diferentes herramientas
de software: los lenguajes de programación de propósito general, los lenguajes de
CAPÍTULO 1
24
simulación y los paquetes de simulación. El uso de cualquiera de ellos supone
ventajas y limitaciones con respecto al resto:
Lenguajes de programación de uso general: Entre sus ventajas se encuentra que
son conocidos por los programadores, lo que supone menor esfuerzo de aprendizaje y
están disponibles en cualquier sistema operativo, a diferencia de los lenguajes de
simulación. Algunos tienen extensiones con bibliotecas para manejar tareas que se
necesitan de manera general en la programación de simulaciones y son más
eficientes desde el punto de vista de la velocidad, portabilidad y flexibilidad, pero el
tiempo de desarrollo de las aplicaciones es más largo que en lenguajes y
herramientas específicas (Pérez 2009).
Lenguajes de simulación: El entorno de desarrollo es específico para simulaciones;
están diseñados para facilitar la tarea de programar este tipo de aplicaciones,
proporcionando, automáticamente, la mayoría de los elementos necesarios en la
programación de modelos de simulación. En general dan al usuario un conjunto de
conceptos de modelado para describir el sistema y un sistema de programación para
convertir la descripción en un programa que ejecuta la simulación, además de
proporcionar facilidades para la detección automática de errores potenciales que ya
han sido identificados. Ahorran tiempo en el desarrollo. Producen un código más
legible, modificable y menos largo, lo que minimiza la cantidad de errores.
Paquetes de simulación: proporcionan bloques de construcción ya programados que
el usuario puede seleccionar y ensamblar en el orden que necesita para formar el
modelo del sistema particular que desea construir, lo que facilita mucho esa tarea
con respecto a los lenguajes, ya que no es necesario programar. Su principal ventaja
es el ahorro de tiempo, y la desventaja es su poca flexibilidad ya que solo permiten
simular los sistemas para los que fueron definidos.
La simulación por computadora se ha convertido en una parte útil del modelado de
muchos sistemas naturales en Física, Química y Biología, y de sistemas humanos
como el económico, entre otros.
I.8.2 La simulación en la enseñanza
Una simulación que se use con propósitos instructivos se constituye en una poderosa
técnica para enseñar aspectos de determinados objetos de estudio que muchas veces
CAPÍTULO 1
25
no son visibles o que son peligrosos y por ende es arriesgado trabajar con ellos. La
simulación se basa en un modelo de un sistema o fenómeno del mundo real en el que
se han simplificado u omitido algunos elementos con el propósito de facilitar el
aprendizaje.
Las simulaciones permiten colocar al alumno en situaciones de aprendizaje que, por
restricciones económicas o físicas, son difíciles de obtener en una experiencia de
laboratorio tradicional. Este tipo de aplicaciones permite la construcción de mundos
ideales (por ejemplo, un mundo sin fricción), la aceleración o desaceleración del
tiempo para observar mejor un fenómeno, dotar a cada alumno con una réplica de la
máquina o sistema simulado, etc. Son consideradas como el tipo de software que
hace posible la aplicación de las teorías de aprendizaje centradas en el estudiante.
Alessi y Trollip (SM and SR 1991) propusieron una taxonomía para caracterizar las
simulaciones en la enseñanza. La dividen en cuatro grandes categorías: físicas, de
procedimientos, situacionales y de procesos.
• Simulaciones físicas: en este tipo de simulaciones se representa en pantalla un
objeto para que el estudiante lo utilice o aprenda sobre él. Ejemplos típicos
son: una máquina que el estudiante deba operar o algunos equipos de
laboratorios científicos que utilizará en experimentos.
• Simulaciones de procedimientos: El propósito fundamental de este tipo de
simulaciones es que el estudiante aprenda un conjunto de acciones que
constituyen un procedimiento. Muchas veces en estos procedimientos se
manipulan objetos de simulaciones físicas, por lo que estos tipos de
simulaciones están muy relacionadas.
• Simulaciones situacionales: permiten al estudiante explorar los efectos de
diferentes aproximaciones a una situación o jugar diferentes roles en ella. En
las simulaciones situacionales virtuales, el estudiante es parte integral de la
simulación tomando uno de los roles principales. Los demás roles pueden
asumirse por otros estudiantes que interactúan con el mismo programa o la
computadora, jugando el rol de una persona.
• Simulaciones de procesos: En este tipo de simulaciones generalmente el
estudiante da valores a una serie de parámetros iniciales y observa cómo
CAPÍTULO 1
26
ocurre el proceso sin intervenir o manipular. Por lo general estas son
versiones aceleradas o desaceleradas de un proceso real, o la representación
de un proceso que no se manifiesta de manera visual.
Existe consenso con respecto a las ventajas que trae a los estudiantes la introducción
de la simulación en el proceso educativo. La experiencia avala, entre otras, las
siguientes:
• La mayoría de los estudiantes encuentran la interacción con simulaciones más
motivadora y cercana a las experiencias con el mundo, el sistema o fenómeno
real, que otros tipos de software educativo.
• Lo aprendido con una simulación, generalmente puede transferirse a la
situación real más eficazmente que lo ejercitado con otros medios. De esta
manera, los estudiantes pueden aplicar mejor, a situaciones del mundo real,
las habilidades o el conocimiento adquirido al interactuar con una simulación.
• Las simulaciones bien diseñadas pueden contribuir a la eficiencia del
aprendizaje, ya que al estudiante le puede tomar menor tiempo entender una
materia cuando ha visto su contenido a través de la interacción con una
simulación.
• La simulación permite al estudiante experimentar con fenómenos que pueden
ser peligrosos, costosos o imposibles de observar en el mundo real (SM and
SR 1991).
• En una simulación se puede comprimir o dilatar el tiempo para observar, al
ritmo más conveniente, fenómenos que ocurren muy rápido o despacio
(Lunce 2006).
• Con la simulación por computadoras, el estudiante puede ensayar la
interacción con sistemas o fenómenos del mundo real en un ambiente más
barato, seguro, controlable, ético y eficiente.
• Facilitan el aprendizaje de fenómenos del mundo real mediante su
simplificación, o la omisión de fuentes de distracción, que sí están presentes
en la situación real.
CAPÍTULO 1
27
• Con las simulaciones pueden implementarse diferentes estrategias de
enseñanza. Estas son ideales para implementar aquellas centradas en el
estudiante, por ejemplo, micromundos, aprendizaje por descubrimiento,
juegos de roles, realidad virtual, simulaciones de laboratorios o laboratorios
virtuales, escenarios basados en casos, y juegos de simulación (Lunce 2006).
A pesar de todas las ventajas enumeradas, la simulación por computadoras tiene
ciertas limitaciones:
• Aunque existen paquetes de simulación especializados, el diseño y
programación de las simulaciones es más complejo y demorado que el de
otras aplicaciones de enseñanza asistida por computadoras, como tutoriales
convencionales y libros electrónicos.
• La interacción con la simulación no puede sustituir la práctica con la realidad,
solo es un entrenamiento para aprender, ensayar hipótesis y poder transferir
los conocimientos a situaciones reales. Puesto que se trata de una
simplificación, no reproduce exactamente tales condiciones en toda su
complejidad. Por otro lado, hay fenómenos que presentan gran complejidad
para ser simulados, como son las relaciones humanas.
I.9 Mapas Conceptuales en la enseñanza
Los Mapas Conceptuales constituyen una de las herramientas más utilizadas en la
gestión del aprendizaje por la posibilidad que estos ofrecen de personalizar el
aprendizaje, compartir el conocimiento y para aprender a aprender.
Novak (Novak 1991), destaca que el acto de hacer mapas conceptuales se describe
como una actividad creativa en la que el estudiante debe hacer un esfuerzo para
aclarar significados, identificando los conceptos importantes, relaciones y estructura
del contenido tratado. La creación de conocimiento requiere un alto nivel de
aprendizaje significativo, los mapas conceptuales facilitan este proceso, por lo que
resultan importantes en el aprendizaje, principalmente debido a que:
• Dan la posibilidad de hacer un proceso activo en el que el estudiante es
obligado a relacionarse con los conceptos y a que profundice en el contenido.
• Permiten organizar información, sintetizarla y presentarla gráficamente.
CAPÍTULO 1
28
• Ayudan a planificar la instrucción a la vez que sirven de auxiliar para
aprender a aprender, o sea, que enseña la materia y cómo estudiarla.
• Logran un aprendizaje interrelacionado, al no aislar los conceptos, las ideas
de los alumnos y la estructura de la disciplina.
• Favorecen la creatividad y autonomía.
• Favorecen el trabajo colaborativo.
I.9.1Mapas Conceptuales para la enseñanza de Sistemas Operativos
El grupo de Informática Educativa del Centro de estudios de Informática, ha
realizado diversos medios de enseñanza relacionados con los mapas conceptuales.
Los primeros pasos se dieron con dos sistemas que se elaboraron como parte de la
cooperación entre este grupo y la Universidad de Granma: “Mapas conceptuales para
la enseñanza de la Botánica. Una propuesta organizativa” (Linares Alvaro 2007) y
“Organización del conocimiento de la asignatura Programación II para Ingeniería
Informática basada en mapas conceptuales” (Soler Pellicer 2007).
Como parte del desarrollo de las investigaciones en este campo, se obtiene el sistema
“Mapas Conceptuales para la enseñanza de Sistema Operativo”(Garrido and
González 2009).
El sistema para la enseñanza de sistemas operativos presenta los mapas en forma
jerárquica lo que se justifica por la propia jerarquía de los conceptos que se estudian
en esa materia, o sea el estudio de los conceptos comienza por el más general hasta
llegar a otros más específicos y por eso para entender los últimos deben
comprenderse los primeros.
Los mapas del sistema SESO sirven como un repositorio de información donde se
relacionan conceptos y permiten una navegación fácil para buscar lo que se está
investigando o estudiando. La aplicación cuenta con diferentes recursos como son:
páginas HTML, multimedia y applets de java (Garrido and González 2009).
I.10 Resumen del Capítulo
El proceso de enseñanza-aprendizaje es una tarea muy compleja que necesita de
recursos y herramientas que ayuden a hacerlo más productivo. Comprender el
funcionamiento interno de los Sistemas Operativos y poder modificarlos, es uno de
los objetivos que se han trazado históricamente los planes de estudio de la carrera
CAPÍTULO 1
29
Ciencia de la Computación. Llevar a cabo esa tarea resulta sumamente difícil para
los educadores y los alumnos, de ahí la necesidad de usar nuevos medios de
enseñanza que ayuden a mejorar los niveles de comprensión y asimilación de los
contenidos.
El desarrollo alcanzado por las Tecnologías de la Información y las Comunicaciones
ha favorecido notablemente la educación mediante el desarrollo de aplicaciones
educativas. Las simulaciones pueden aprovechar todas las potencialidades de la
computadora en el proceso de enseñanza aprendizaje y la inclusión de este tipo de
recurso en el Sistema para la Enseñanza de Sistemas Operativos (SESO) permite
mejorar la calidad del proceso de enseñanza-aprendizaje que ese sistema apoya.
CAPÍTULO 2
30
CAPÍTULO II: HERRAMIENTAS DE SOFTWARE PARA
TRABAJAR CON SIMULACIONES.
En el presente capítulo se analizan diferentes herramientas para hacer simulaciones.
Se toman en cuenta las facilidades de puesta a punto de los elementos simulados, el
resultado visual, el efecto que se logra sobre el aprendizaje, las posibilidades de
mostrar las simulaciones vía Web, la demora de transferencia desde el servidor hacia
el cliente y el lugar donde se ejecutan.
II.1 Simulaciones mediante applets:
Los applets son componentes de programas que tienen que ejecutarse en el contexto
de otro programa, o sea no tienen vida propia, por ejemplo pueden ejecutarse sobre
diversos navegadores y ese hecho los hace muy atractivo para las aplicaciones de
enseñanza que usan la web.
En ellos se pueden incluir animación e interacción lo que facilita la construcción de
simulaciones de diversos fenómenos y sistemas, permitiendo la visualización, la
modificación de datos o condiciones y la obtención de resultados.
Entre sus ventajas pueden citarse las siguientes:
• Ofrecen información gráfica y permiten interactuar con los usuarios.
• Su código es independiente del sistema operativo en que se ejecute el
navegador (la máquina virtual de Java es la responsable de ejecutarlo)
• Poseen un esquema de seguridad que garantiza el no acceso a las partes
sensibles del equipo sobre el cual se ejecutan.
• Son mucho menos dependientes del navegador que los scripts.
• El lenguaje Java es más potente que Java Script y por eso se pueden hacer
simulaciones más versátiles.
• Reproducen sonidos.
• Pueden establecer conexiones con el servidor del que provienen.
Como casi siempre ocurre cuando se hacen comparaciones, los Applets de Java
también tienen desventajas relativas:
CAPÍTULO 2
31
• Suelen ser más lentos que los scripts.
• No es posible la interacción con todos los componentes de la página en que
residen ni tienen acceso a ellos(Dimsdale and Markowitz 1964).
• Las políticas de seguridad, los hace más limitados que las aplicaciones
independientes.
• No pueden cargar bibliotecas ni definir métodos nativos.
• No se les permite leer o escribir archivos en el cliente
• No es posible establecer conexiones de red desde ellos, salvo al servidor del
que provienen.
• Se le tiene vedada la facilidad de iniciar programas en la máquina donde se
están ejecutando.
• No tienen acceso a ciertas propiedades del sistema.
II.1.1 Simulación de la asignación contigua
Con el propósito de mostrar las ventajas del uso de los applets para hacer las
simulaciones se ofrecen algunos detalles del proceso de simulación de la asignación
contigua.
La asignación contigua es una de las tres formas de asignación de espacio que tienen
los sistemas de archivos, en ella los bloques de cada archivo están uno detrás del otro
y desde la tabla de directorio se especifica cuál es el primer bloque y cuántos bloques
componen cada archivo.
La parte visual de la simulación está formada por un objeto contenedor (un JPanel)
que contiene tres objetos JTable que representan: la tabla de directorio, el disco y la
tabla de espacios libres e incluye otro panel que controla los datos correspondientes
al archivo con el que se desea interactuar y dos botones (objetos de JButton) para las
funciones de insertar y eliminar archivo (figura II.1).
Al ser Java un potente lenguaje de programación, la simulación lograda puede tener
toda la funcionalidad de un programa cualquiera y facilita la interacción de los
estudiantes con el sistema, es posible: usar el botón Insertar para llamar al método
insertar de la clase ContiguaFileSystem que se encarga de poner en la tabla de
directorio el nombre del archivo, su tamaño y el clúster inicial y también permite
escoger un color para diferenciar los archivos en el disco (un recurso importante para
CAPÍTULO 2
32
la enseñanza). El applet usa la tabla de espacios libres que cuenta con dos campos
(comienzo del bloque y tamaño) y ante la petición de creación de un nuevo archivo
que tiene n bloques debe buscar el primer espacio libre de tamaño m, n<= m, ya que
se utiliza el algoritmo del primer acceso. Para eliminar un archivo se borra la entrada
de la tabla de directorio y se analizan todas las situaciones posibles con las fronteras
del espacio que se liberará:
Figura II.1 Asignación contigua
• Situación 1 (figura II.2). Se libera el espacio sombreado (2) que tiene frontera
superior con el espacio libre 1 y frontera inferior con el espacio libre 3. En este
caso es necesario poner en la tabla de espacios libres un solo espacio que
comienza en la frontera superior de 1 y termina en la frontera inferior de 3 con
un tamaño que es la suma de los tres espacios (se concatenan los espacios
libres 1, 2 y 3).
CAPÍTULO 2
33
1
//////////////////////////////////////2
3
Figura II.2. Liberar espacio con fronteras libres a ambos lados
• Situación 2 (figura II.3). Se libera el espacio sombreado (2) que tiene frontera
superior con el espacio libre 1 y frontera inferior con el espacio ocupado 3. En
este caso es necesario poner en la tabla de espacios libres un solo espacio que
comienza en la frontera superior de 1 y termina en la frontera inferior de 2 con
un tamaño que es la suma de los dos espacios (se concatenan los espacios
libres 1 y 2).
1
2
//////////////////////////////////////
3 ////////////////////////////////////
Figura II.3. Liberar espacio con frontera libre superior
• Situación 3 (figura II.4). Se libera el espacio sombreado (2) que tiene frontera
superior con el espacio ocupado 1 y frontera inferior con el espacio libre 3. En
este caso es necesario poner en la tabla de espacios libres un solo espacio que
comienza en la frontera superior de 2 y termina en la frontera inferior de 3 con
un tamaño que es la suma de los dos espacios (se concatenan los espacios
libres 2 y 3).
1////////////////////////////////////
2
//////////////////////////////////////
3
CAPÍTULO 2
34
Figura II.4. Liberar espacio con frontera libre inferior
• Situación 4 (figura II.5). Se libera el espacio sombreado (2) que tiene frontera
superior e inferior con espacios ocupados. En este caso es necesario crear en la
tabla de espacios libres un nuevo espacio.
1////////////////////////////////////
2 ////////////////////////////////////
3 ////////////////////////////////////
Figura II.5. Liberar espacio con fronteras ocupadas a ambos lados
La clase principal es Container y otra clase muy importante es ContiguaFileSystem
que es la que hace todo el trabajo y hereda de FileSystem que es una clase abstracta.
La clase encargada de llamar al Applet es ContiguaApplet que contiene los cuatro
métodos necesarios para lanzar la simulación desde el navegador y hacer las otras
acciones (figura II.6).
public class ContiguaApplet extends JApplet
{
public Container container;
public void init()
{
// TODO start asynchronous download of heavy resources
container = new Container();
add(container);
setSize(629, 529);
}
public void start() { }
public void stop() { }
public void destroy() { }
}
Figura II.6. Clase Contigua Applet
CAPÍTULO 2
35
II.2 Simulaciones en JavaScript
Java Script es un lenguaje de programación interpretado y su código, usualmente,
reside en el lado del cliente, aunque existe una versión para el lado del servidor
(Eguíluz Pérez 2007). Esta facilidad permite insertar su código en páginas web
dinámicas lo cual lo sitúa como una opción atractiva para hacer aplicaciones de
enseñanza.
El lenguaje Java Script es una herramienta adecuada para programar páginas
dinámicas incluyéndole diversos comportamientos y la mayoría de los navegadores
lo interpretan.
Entre las ventajas de JavaScript podemos situar:
• Fácil de aprender, rápido y potente: Es ideal para agregar funciones páginas
Web, es un lenguaje muy potente y de alto nivel. No necesita una fase de
compilación como Java o C y el explorador no tiene que cargar ninguna
máquina virtual para ejecutar su código.
• Usabilidad: Es el lenguaje de programación que más se utiliza en la Web, hay
muchas páginas Web hechas que incorporan elementos que lo usan. La
mayoría de los navegadores lo admiten.
• Reducción de la carga del servidor: Esta es una de las principales razones por
la que los desarrolladores Web han adoptado JavaScript ya que se puede
hacer cargo de gran parte de las funciones del cliente que antes eran
responsabilidad del servidor y es posible validar los elementos antes de que el
usuario se los envíe al servidor reduciendo la cantidad de transacciones que
se efectúan a través de http y las posibilidades de que se genere un error
durante la inserción de datos. También puede leer y escribir cookies.
El lenguaje Java Script dispone de la biblioteca jQuery la cual ofrece un conjunto de
facilidades que ayuda a interactuar con documentos HTML, manejar eventos y
desarrollar animaciones. Este último aspecto muy útil para los objetivos del presente
trabajo.
Por otra parte la técnica de desarrollo web AJAX (Asynchronous JavaScript + XML)
(Eguíluz Pérez 2007), permite crear aplicaciones interactivas que se ejecutan en
el cliente (el navegador del usuario) manteniendo una comunicación asíncrona con el
CAPÍTULO 2
36
servidor en segundo plano, lo que permite realizar cambios en las páginas sin
necesidad de recargarlas.
Las tecnologías que conforman AJAX (II.7): XHTML, CSS, DOM, XML, XSLT,
JSON, XMLHttpRequest y el JavaScript que las une, dan una gran versatilidad a las
aplicaciones.
Figura II.7 Tecnologías agrupadas bajo el concepto de AJAX7
Una vez que se tienen incluidas las bibliotecas jQuery, jQuery-ui y CSS se pueden
crear clases CSS con componentes que ayudan a que la página tengan diversas
funcionalidades, por ejemplo, el código siguiente permite crear un estilo (definido en
el head de la página web) para después crear un elemento de la clase cajaG que usa
un identificador <div id="procesos" class="cajasG"></div>. El efecto logrado se
puede apreciar en la figura II.8.
.cajasG
{
float:left;
margin-right:200px;
background-color:silver;
height: 200px;
padding: 4px;
width: 150px;
} 7 Tomado de Eguíluz Pérez, J. (2007). "Introducción a AJAX."
CAPÍTULO 2
37
Figura II.8 Como se ve un elemento de la clase cajaG.
Se pueden definir todos los estilos que se deseen e incluirle otros componentes, la
figura II.9 muestra un ejemplo.
Figura II.9 Un elemento de la clase cajaG con otros componentes dentro.
Para las aplicaciones educativas, es muy útil el recurso de animación que brinda la
función animate de la biblioteca jQuery a la cual se le pasa la posición hacia donde
se va a mover el elemento y el tiempo que se debe demorar, todo lo cual se aprecia
en el código siguiente que mueve el elemento a la posición ({left : '380', top:'25'}
con demora 500.
function job1()
{
$('#texto1').animate({left : '380', top:'25'}, 500, function() { console.log('arriba'); });
}
CAPÍTULO 2
38
En el siguiente código se hace uso de un botón que activa la función click que ordena
ejecutar las funcionespara mandar a ejecutarse las funciones creadas anteriormente.
$('#boton').click(
function(e)
{
job1();
setInterval(job2,'2000');
setInterval(job3,'4000');
setInterval(job4,'6000');
setInterval(job5,'8000');
setInterval(job6,'10000');
}
);
Basta con ver estas simples explicaciones para que los programadores se percaten de
lo fácil e intuitivo que resulta trabajar con el lenguaje Java Script y por eso se
constituye en un buen candidato para hacer aplicaciones educativas que usan la
simulación como medio de enseñanza activo.
II.3 Simulaciones usando flash
Adobe Flash Professional es una aplicación de creación y manipulación de gráficos
vectoriales con posibilidades de manejo de código mediante el lenguaje Action
Script. La herramienta Flash es en sí una especie de estudio de animación en el que
se realiza una filmación sobre diferentes fotogramas.
Algunas de las tareas que se pueden hacer con Flash y que sirven a los propósitos de
la enseñanza asistida por computadoras son las siguientes:
• Realizar animaciones de procesos que se desean estudiar.
• Incluir archivos de sonidos con tecnologías modernas.
• Permitir la interactividad con las páginas.
• Obtener aplicaciones independientes para incluir en soportes externos sin
necesidad de usar una red (muy útil para las limitaciones de Cuba en ese
aspecto).
CAPÍTULO 2
39
• Conectar con bases de datos que contienen el estado del aprendizaje del
estudiante.
• Conectarse con otras tecnologías.
La calidad que se logra en las películas de Flash se basa en el empleo de gráficos
vectoriales también conocidos como gráficos orientados a objetos que son más
simples que los gráficos de mapas de bits, ya que en ellos las imágenes se almacenan
y representan por medio de trazos geométricos controlados por cálculos y fórmulas
matemáticas, tomando algunos puntos de la imagen como referencia para construir el
resto (Goldsman, Nance et al. 2009) y pueden mostrar imágenes basadas en líneas y
curvas que tienen colores y posiciones. Es importante destacar que cuando se
modifica un archivo de este tipo sólo alteran las propiedades de las líneas sin afectar
la calidad de la imagen.
Por otra parte los mapas de bits representan imágenes por medio de puntos (píxeles)
de diferente color organizados en una cuadrícula de determinado tamaño y por eso
cuando se altera un archivo de este tipo la imagen pierda su calidad.
En este trabajo se simula un sistema multiprogramado, para lo cual fue necesario
crear seis capas:
• Una capa, llamada principal, contiene una imagen estática (no será
modificada) que muestra un cilindro para representar un disco duro y una
tabla que representa a la memoria.
• Tres capas para mostrar que hay tres procesos en el disco (cada capa
representa un proceso), debido a que se desea simular el movimiento del
proceso desde el disco hacia la memoria y flash no permite que en una misma
capa dos objetos distintos puedan realizar acciones de movimiento.
• Una capa para el botón Reproducir y otra para el botón Detener con el
objetivo de que el estudiante realice las acciones de iniciar y detener la
simulación.
En estas dos últimas capas los objetos deben ser de tipo botón para que se puedan
programar las acciones y en este caso el código Action Script en ambos casos es
similar el único cambio es la acción play de una y el stop del otro.
CAPÍTULO 2
40
on (release)
{
play();
}
Otro elemento que hay que tener en cuenta es que flash ejecuta la simulación
cíclicamente es por esa razón que se debe dar una acción (stop) en el primer
fotograma de cualquier capa excepto en las capas que contengan objetos de tipo
botón si no ocurrirá un error.
La figura II.10 muestra una imagen de la simulación lograda en la cual se usaron 60
fotogramas, para mostrar la carga de procesos en memoria en un sistema
multiprogramado que usa estrategia de multiprogramación con una cantidad variable
de tareas (Multiprogramming with a Variable Task-MVT). Para iniciar la simulación
basta con oprimir el botón Reproducir que inicia el movimiento de la tareas (las
capas) desde el disco hacia el espacio de memoria destinado a los procesos de
usuarios.
Figura II.10 Simulación de un sistema multiprogramado
II.4 Resumen del Capítulo
Es totalmente erróneo afirmar que un lenguaje de programación es mejor que otro,
no obstante cuando se tiene la tarea de realizar una aplicación debe elegirse alguno y
tiene que justificarse esa decisión.
CAPÍTULO 2
41
Todo lenguaje tiene ventajas y desventajas pero es innegable que para determinadas
tareas unos son mejores que otros.
En esta apretada síntesis se han presentado tres lenguajes que pudieran utilizarse para
realizar aplicaciones con fines docentes:
• Los applets, al ser una herramienta que se ofrece desde el lenguaje Java
ofrecen toda la gama de facilidades de ese lenguaje: buenos gráficos, potente
manejo de excepciones, interacción con los usuarios, etc., a pesar de eso no
todos los navegadores los soportan y aún en los casos que sí lo hacen es
necesario hacer algunos ajustes para que las aplicaciones se vean de igual
forma en todos.
• Java Script, permite crear soluciones Web que regularmente residen del lado
del cliente (sería mejor que estuvieran del lado del servidor), pero la calidad
de los gráficos con fines docentes no compiten con los otros dos casos
analizados.
• Flash, no cumple la política de usar tecnologías de software libre que se ha
trazado el laboratorio de Informática Educativa pero es una herramienta
poderosa para hacer simulaciones de una forma rápida y con aspecto atractivo
para los estudiantes. En el grupo se han desarrollado varias aplicaciones de
enseñanza de la Química que usan esa herramienta y los resultados han sido
destacados.
Basado en este estudio la mayoría de las simulaciones que se han elaborado en
este trabajo usan esta última herramienta y las que no se han hecho con ella sólo
se han realizado con el propósito de establecer comparaciones que estén avaladas
por la práctica.
CAPÍTULO 3
42
CAPÍTULO III: SIMULACIONES
Teniendo en cuenta la caracterización de la Tecnología Educativa y las deficiencias
que más afectan el aprendizaje de sistemas operativos, se proponen simulaciones que
faciliten el estudio de la asignatura. Para ello se utiliza la herramienta Adobe Flash
para la creación de simulaciones de procesos que, en general, no son visibles y se
hacen difíciles de entender y explicar.
En el presente capítulo se ofrece una perspectiva de las simulaciones realizadas, se
explica su inserción en el sistema.
III.1 Sistema de archivo
Los sistemas de archivos pueden ser de colocación: contigua, enlazada o indexada.
Esas tres formas de asignar el espacio en disco se simulan en este trabajo y se
insertan, en el lugar correspondiente, dentro del sistema SESO.
Colocación enlazada
El espacio en disco que usa un archivo en los sistemas de archivo de colocación
enlazada se puede ver como una lista enlazada que posee un nodo inicial al cual se
apunta desde la tabla de directorio.
Cada bloque del disco posee dos campos: el primero contiene los datos que
pertenecen al archivo en sí y el segundo es un índice al siguiente bloque.
La simulación del sistema muestra una tabla que representa el directorio del soporte
de información (un disco, una memoria flash, etc.). La tabla tiene tres campos:
• Nombre de los archivos.
• Bloque inicial del archivo.
• Bloque final del archivo.
Los campos que se incluyen son los imprescindibles aun cuando un sistema de
archivo en particular puede contener otros campos que no son relevantes para
comprender como se almacena un archivo en un disco formateado con este tipo de
sistema.
La representación del disco contiene 20 cuadrados (comenzando desde el 0 hasta el
19) divididos en dos para representar los bloques (se suponen que son de 512 bytes).
CAPÍTULO 3
43
Como control de espacio libre se usa una matriz unidimensional con 20 casillas para
mostrar si un bloque está ocupado (con 1) o si está vacío (con 0).
La simulación emplea diferentes capas para cada uno de estos elementos y dos
botones: Insertar y Eliminar para la inserción y eliminación de archivos.
La capa más importante es la capa acciones que contiene el código Action Script
necesario para la ejecución de la simulación. Para esto es necesario primeramente
nombrar cada uno de los objetos que serán modificados en la línea del tiempo, como
los botones, los cuadros de textos, en este caso fue necesario en el primer fotograma
de esta capa, inicializar las variable c e inicio con 0 ya que en este lenguaje de
programación no se tiene que definir explícitamente una variable de forma que
contenga un número, una cadena u otro tipo de datos. Flash determina el tipo de
datos de una variable cuando se asigna un valor a la misma.
Para la creación del código referente a la acción insertar es necesario hacer un if para
poder mostrar la coloración de los bloques que conforman un archivo (se le da
colores distintos a los bloques que conforman un archivo para diferenciar uno de otro
para que sea más fácil de entender la simulación) porque se crean los fotogramas
necesarios para este acción y en el caso que se inserte la cantidad convenida se llama
al fotograma donde empieza la acción y al final de esta se agrega un fotograma vacío
para la acción stop(), se copian los datos que se entraron por parámetro en las tablas
correspondientes.
c=0;
inicio=0;
insertar_btn.onRelease = function() {
if(c==0)
{
c++;
gotoAndPlay("paso1");
arch = txtNombre.text;
txtarchivo1.text = arch;
tam= txtTamaño.text;
//bloque1_mc.setStyle("backgroundColor", "0xF0F0F0");
if (tam% 512 ==0 )
CAPÍTULO 3
44
txtfin1.text = tam/512 - 1;
else
txtfin1.text= (tam- (tam%512))/512;
txtinicio1.text = inicio;
inicio =Number(txtfin1.text) + 1;
txt1.text = 1;
txt2.text = 1;
}
Para el proceso de eliminación solo hay que dirigirse al fotograma donde comienza la
acción y realizar los pasos de actualización de cada tabla relacionada con el archivo
eliminado.
eliminar_btn.onRelease = function() {
gotoAndStop("paso4");
inicio = txtinicio2.text;
txtarchivo2.text=txtarchivo3.text;
txtinicio2.text=txtinicio3.text;
txtfin2.text=txtfin3.text;
txtinicio3.text= "";
txtfin3.text= "";
txtarchivo3.text="";
txt3.text = 0;
txt4.text = 0;
txt5.text = 0;
txt6.text = 0;
}
La figura III.1 muestra la imagen de la simulación, en ese momento no se ha creado
ningún archivo y por eso todos los bloques del disco están vacíos lo cual se refleja en
el mapa de bits que controla el espacio libre.
CAPÍTULO 3
45
Figura III.1 Simulación de la asignación enlazada
Colocación indexada
Los sistemas de archivo de colocación indexada se caracterizan porque cada archivo
posee un bloque especial, denominado bloque de índices, desde el cual se apunta a
los restantes bloques.
La simulación de esta asignación es muy parecida a la explicada anteriormente y
solo debe destacarse el uso de los colores para diferenciar los archivos y los bloques
de índices, además de que solo el campo nombre de la tabla de directorio permanece
igual ya que el segundo campo es un puntero al bloque de índices y el tercero
especifica el tamaño del archivo.
También se usó el mapa de bits para controlar el espacio libre y los botones Insertar
y Eliminar con las acciones muy parecidas a la explicada anteriormente.
La figura III.2 muestra la imagen de la simulación.
CAPÍTULO 3
46
Figura III.2 Simulación de la asignación indexada
Colocación contigua
Los sistemas de archivo de colocación contigua asignan a cada archivo un conjunto
de bloques que tienen que estar uno detrás del otro, de ahí su nombre.
La simulación es muy similar a la anterior y se detalló, como ejemplo del uso de los
applets en el capítulo II. La figura III.3 muestra una imagen de la simulación.
Figura III.3 Simulación de la asignación contigua
CAPÍTULO 3
47
Fragmentación externa
La colocación contigua tiene como desventajas principal la fragmentación externa y
se presenta cuando existen espacios libres que no pueden asignarse por no estar
contiguos.
El disco contiene 5 trabajos mostrados de diferentes colores y tamaños para lograr
mejor visualización y la memoria inicialmente vacía porque no se ha cargado ningún
trabajo, solo está ocupado el espacio reservado del SO que va desde 0 hasta 256.
Cada job se creó en capas separadas para poder simular el movimiento. También se
introdujeron dos objetos de tipo botón, estáticos para reproducir la simulación o en el
caso necesario detenerlo para después continuar donde se quedó. La figura III.4
muestra una imagen de la simulación.
Figura III.4 Simulación de la fragmentación externa
III.2 Planificación de la CPU
Para la planificación de la CPU es necesario el uso de técnicas y algoritmos. Esta
planificación gobierna el orden en que se ejecutan los procesos. Su principal objetivo
es la optimización del rendimiento del sistema y esto se logra con la disminución de
los tiempos de espera por parte de los procesos y un buen aprovechamiento de la
CPU.
Una de las temáticas difícil y compleja referente a este módulo son los algoritmos de
planificación los cuales pueden ser con desalojo o sin desalojo.
CAPÍTULO 3
48
Sistema de planificación con desalojo
En este tipo de sistema es permitido desalojar un proceso que ocupa la CPU aunque
no haya terminado.
En este caso tenemos la cola de procesos listo, cuando un nuevo proceso llega pasa a
la cola de listos para esperar que el planificador lo mande al despachador que es
quien le asigna la CPU.
El proceso puede abandonar la CPU por tres razones: porque se le acabó el tiempo
(desalojo), porque terminó de ejecutarse o porque se bloqueó por la espera de algún
evento de entrada/salida. En el caso de ser desalojado debe volver a la cola y esperar
su turno otra vez.
Se crearon seis cuadrados para representar los procesos, tienen diferentes colores
para lograr un mejor entendimiento de lo que se está explicando.
Para dar idea que la CPU estaba trabajando se empleó un clip de película para
mostrar una pequeña luz. La figura III.5 muestra una imagen de la simulación.
Figura III.5 Sistema de planificación con desalojo
Sistema de planificación sin desalojo
En un sistema de planificación sin desalojo una vez que el proceso ocupa la CPU no
la abandona hasta que termina o voluntariamente por la espera de algún evento de
entrada salida, este al igual que el ejemplo anterior cuenta con una cola de procesos
CAPÍTULO 3
49
listos, una cola de procesos bloqueados y la CPU. Al igual que el ejemplo anterior se
crearon cuadrados de diferentes colores para mostrar diferentes procesos. La figura
III.6 muestra la simulación.
Figura III.6 Sistema de planificación sin desalojo
Algoritmo de planificación sin desalojo FCFS
El algoritmo FCFS (First Come First Server) es el algoritmo de planificación sin
desalojo más simple, en este caso el primer proceso que haga la solicitud será el que
ocupe la CPU y no la abandona hasta que termine.
La simulación del algoritmo muestra una tabla que contiene el nombre de los
procesos, la hora de llegada y el tiempo de servicio, en el sistema no existe una tabla
así pero para el aprendizaje se recogen los datos en un para que le sea más fácil de
entender a los estudiantes. Cuenta con una línea recta para representar el tiempo de
CPU y cuanto se demora cada proceso ejecutándose.
CAPÍTULO 3
50
Figura III.7 Algoritmo FCFS
Ciclo de vida de un proceso
La vida de un proceso pasa por diferentes estados que describen, de cierta forma, la
actividad que están realizando en cada instante de tiempo. Estos estados se pueden
definir como: nuevo, listo, corriendo, esperando y terminado.
La figura III.8 muestra la simulación de estos estados representados por rectángulos
y por detrás del estado corriendo un clip de película para simular que está
trabajando. El ciclo comienza con la llegada de un nuevo proceso y seguido pasa a la
cola de procesos listos. De la cola de de procesos listos este pasa a ejecutarse desde
donde puede pasar al estado esperando, por la ocurrencia de algún evento de E/S y
una vez que termine la espera pasa de nuevo a la cola de procesos listos o terminar.
Figura III.8 Ciclo de vida de un proceso
CAPÍTULO 3
51
Cuando un proceso es interrumpido
Cuando ocurre una interrupción la información del estado del proceso debe ser
salvada para que después de eso el proceso continúe su ejecución sin problema.
La simulación que se muestra en la figura III.9 muestra dos procesos (P0 y P1) y el
sistema operativo para ver la secuencia de acciones que realiza el SO cuando un
proceso es interrumpido.
Se creó una capa principal para los textos estáticos y a medida que se avanza en la
línea del tiempo se van insertando los demás objetos para simular el ciclo.
Figura III.9 Cuando un proceso es interrumpido
III.3 Administración de la memoria
El Sistema de Administración de Memoria se encarga de administrar la Memoria
como su nombre indica. La Memoria se clasifica como Física o Lógica. Dicho
sistema se agrupa en dos sistemas: Sistemas de Colocación Contigua (MVT y MFT)
y Sistemas de Colocación no Contigua (paginado, segmentado, paginado segmentado
y segmentado paginado).
Sistema paginado
Los esquemas de memoria paginados, dividen la memoria física en unidades de igual
longitud que se denominan marcos de páginas o frames y el espacio que necesita
CAPÍTULO 3
52
cada proceso (memoria lógica), lo divide en unidades de esa misma longitud que se
denominan páginas. El objetivo es que cualquier página, de cualquier proceso, quepa
en cualquier marco de página.
En un momento dado, la memoria física puede estar ocupada con páginas de
diferentes procesos, mientras que algunos marcos de páginas están disponibles para
su uso. El sistema operativo mantiene una lista de los marcos de páginas libres y una
estructura de datos, denominada tabla de página, para saber dónde están las páginas
de cada proceso.
Las páginas de un proceso pueden estar de forma dispersa en la memoria física (este
esquema de memoria no exige que los procesos estén totalmente cargados en
memoria ni contiguos).
La simulación que se muestra en la figura III.10 permite apreciar una instantánea de
la memoria del sistema en un momento que existen 5 frames libres y también se
aprecia un proceso que tiene 4 páginas. Para que el proceso se ejecute, es necesario
cargarlo en memoria, pero sus páginas se cargarán solo cuando se necesiten (se
conoce como paginado puro). Cada vez que se cargue una página, el SO actualizará
la lista de frames libres y la tabla de página.
Para representar al nuevo proceso se dibujó un cilindro con cuatro rectángulos para
simular las páginas de este. Dos rectángulos, uno para la lista de frames libres y otro
para la tabla de páginas del proceso. Para la memoria se empleó una matriz
unidimensional con pequeños rectángulos para representar los frames coloreados
indistintamente de azul los ocupados y en rojo los que están libres.
CAPÍTULO 3
53
Figura III.10 Sistema paginado
Manejo de memoria MVT
La memoria principal es un componente fundamental de cualquier computadora, para
que un programa pueda ejecutarse es necesario cargarlo (total o parcialmente) en la
memoria.
Los sistemas operativos monoprogramados sólo ejecutan sus propios componentes
más un proceso de usuario y por eso solo es necesario tener cargado en memoria al
sistema operativo y al proceso que se está ejecutando.
Los sistemas operativos multiprogramados son capaces de ejecutar varios procesos
"a la vez" y para lograrlo es necesario compartir la memoria entre esos procesos.
La figura III.11 muestra en su parte izquierda un disco (en este contexto se le
denomina memoria externa) sobre el cual residen tres programas (job o trabajos
según la denominación antigua).
En su parte derecha se esquematiza la memoria física de una computadora hipotética
que tiene 1024 bytes de memoria. El sistema operativo ocupa una parte de esa
memoria (en este caso desde la dirección 0 hasta la 256), esa zona de memoria no
está disponible para los procesos de usuarios.
CAPÍTULO 3
54
El esquema que se simula es el usado por los sistemas operativos que tienen como
premisa que los trabajos se tienen que cargar totalmente en memoria y de forma
contigua.
Figura III.11 Manejo de memoria MVT
III.4 Sistema Operativo
Los sistemas operativos son grandes y complejos, por ese motivo se programan como
piezas separadas de software (módulos) que tienen funciones específicas. Las partes
interactúan entre sí para lograr alcanzar el objetivo común: hacer más fácil el uso de
los recursos del sistema y mejorar la eficiencia con que se usan.
Transición del modo usuario al modo kernel
La mayoría de los procesadores modernos permiten varios modos de operación (al
menos dos) y el SO aprovecha esa oportunidad para distinguir entre dos modos:
• Modo Usuario.
• Modo Kernel (también se conocen como modo sistema y modo supervisor).
Los procesos de usuario actúan siempre en modo usuario y cuando necesitan hacer
operaciones que sólo las puede hacer el SO (se denominan operaciones
privilegiadas), se la solicitan a este último.
La secuencia general que sigue el SO cuando se le solicita este servicio es la
siguiente:
• Un proceso, que está ejecutando en modo usuario, le solicita al SO que haga
algo a nombre de él. En el segmento de código que se simula es una solicitud
CAPÍTULO 3
55
para que el SO cree un nuevo proceso que sea hijo del proceso actual. Se hace
usando la llamada al sistema fork() que solo la puede ejecutar el SO.
• Cuando el proceso actual llega a la sentencia fork(), el SO toma el control,
cambia el procesador a modo protegido y ejecuta el código del fork() que está
dentro de su kernel figura III.12.
• Una vez que el SO termine de ejecutar el fork(), le envía los resultados al
proceso solicitante, cambia el procesador a modo usuario y le devuelve el
control al proceso que solicitó el servicio.
• El proceso solicitante continúa su ejecución.
En una capa por separado se puso el objeto flecha para que a medida que se va
ejecutando el código de ejemplo la flecha va indicando el cambio de modo.
Al proceder de esta manera el SO garantiza la protección, debido a que si un proceso
solicita una acción que no le está permitida no la realizará.
Figura III.12 Transición del modo usuario al modo kernel
Llamada al sistema fork
La llamada al sistema fork (), crea un nuevo proceso que es una copia exacta del
proceso que la ejecuta. El nuevo proceso se denomina proceso hijo y el que lo crea
recibe el nombre de proceso padre.
CAPÍTULO 3
56
Una vez que se crea el nuevo proceso (el hijo) ambos procesos continúan su
ejecución de forma separada. El hijo hereda del padre una copia de las variables y los
descriptores de archivos. Es importante destacar que las variables del proceso hijo
son copias de las variables del padre (no se refieren físicamente a la misma variable),
por ese motivo si se modifica una variable en uno de los procesos no se modifica la
variable homónima en el otro (tienen el mismo nombre pero están en zonas de
memoria distintas).
Los valores retornado por la llamada al sistema fork() son los siguientes:
• -1, si se produce algún error.
• 0, en el código del proceso hijo.
El número de identificación del proceso hijo (Process Id entification-PID) en el
código del padre. La llamada al sistema exit(), hace que finalice el proceso que la
llame y cierra todos los descriptores de archivo abiertos por ese proceso.
La llamada al sistema wait() provoca que el padre espere por uno de sus hijos (el
primero que termine).
Figura III.13 Llamada al sistema fork
III.5 Para insertar en el SESO
Para el proceso de inserción de las simulaciones en el SESO se resaltan los siguientes
pasos:
• Cargar la herramienta cliente CmapTools y seleccionar Shared Cmaps in
Places (figura III.14)
CAPÍTULO 3
57
Figura III.14 Inicialización de la herramienta CmapTools
• Seleccionar All Paces (figura III.15) y navegar hasta el sitio deseado (UCLV
en este caso) (figura III.16)
Figura III.15 Opciones de My Places
CAPÍTULO 3
58
Figura III.16 Mapa UCLV
• Ir hasta los recursos del mapa con el que se trabaja (SO en este caso) (figura
III.17)
Figura III.17 Recursos del mapa
CAPÍTULO 3
59
• Tomar la dirección web correspondiente de las páginas que se hayan
publicado anteriormente, ejemplo si es parte del planificador sería:
http://cmap.uclv.edu.cu:8001/SO/scheduler/
Y después, con el uso de WinScp (herramienta para la transferencia de
archivos desde un host local hasta uno remoto), completarla con la dirección
donde se encuentran las páginas que contienen las simulaciones en
/var/www/html/SO/scheduler/desalojo/desalojo.html y le agregamos a partir
de desalojo/desalojo.html
Ya todo está listo para poner el url adecuado en el nodo correspondiente del
mapa. Todo este trabajo es necesario debido a que las páginas son manejadas
por el servidor web Apache y los recursos en sí residen en –var- ya que
CmapTools por defecto instala el servidor tomcat pero para el manejo de las
páginas web no funciona bien pues no soporta ccs y para su embellecimiento
es fundamental su uso.
III.6 Sitio Aprender Sistemas Operativos
Con el uso de la herramienta Dreamweaver (herramienta para la creación de sitios
web), se creó el sitio Aprender Sistemas Operativos que contiene todas las
simulaciones que fueron insertadas en el SESO para que el estudiante tenga la
posibilidad de obtener las simulaciones sin tener que entrar al SESO, además para
entrar al sitio de mapas conceptuales es necesario estar conectado a la red y teniendo
el sitio no es necesario estar conectados a la red para poder ver y estudiar los
contenidos que se encuentran simulados.
CAPÍTULO 3
60
III.7 Resumen del Capítulo
Dada la complejidad del contenido que se imparte en las asignaturas Sistemas
Operativos I y II, se presentan dificultades que obstaculizan su aprendizaje, lo que
fundamentalmente se debe al nivel de abstracción que tienen sus conceptos y
algoritmos. De modo que, enseñarlo también resulta una tarea difícil si no se cuenta
con los medios adecuados.
Por ello se propone la realización e inserción de simulaciones en el SESO, lo cual
será de gran ayuda en el proceso docente-educativo de esta disciplina, usando para
ello la herramienta flash, lo cual le agregará un nuevo funcionamiento útil que ayude
a la enseñanza. También se propone una aplicación que cuenta con todas las
simulaciones usando para ello la herramienta Dreamweaver, para hacer sitios web.
El SESO contiene trece nuevas simulaciones relacionadas con los contenidos de la
asignatura Sistemas Operativos II que está muy estrechamente relacionada con
Sistemas Operativos I. Se mencionan detalladamente cómo se realizaron y además
como se pueden insertar en el sitio.
CAPÍTULO 3
61
CONCLUSIONES
62
CONCLUSIONES
El presente trabajo consiste en la realización de medios simulados de algunos
mecanismos internos usados por los sistemas operativos para insertarlos en el sitio
SESO que organiza los contenidos referentes a dicha materia, apoyando el proceso
de enseñanza aprendizaje. Se logró simular los contenidos más difíciles de
comprender por los estudiantes, estudiar diferentes herramientas para ver cuál era la
más adecuada para las simulaciones y también, se logró exitosamente publicarlas
todas en el sitio.
RECOMENDACIONES
63
RECOMENDACIONES
Cuando se elabora una herramienta para el proceso de enseñanza, el trabajo no se
puede dar por terminado, es por ese motivo que se recomienda:
• Adicionar nuevas simulaciones al SESO para que continúe creciendo su
funcionalidad.
• Validar la herramienta con la inclusión de las nuevas simulaciones desde el
punto de vista educativo para obtener la efectividad de la misma.
BIBLIOGRAFÍA
64
BIBLIOGRAFÍA
Affentranger, F. (1992). "Aproximación aleatoria de cuerpos convexos." Publ. Mat. Barc 36: 85‐109.
Alonso Oliva, J. L., D. Gutiérrez Fernández, et al. (1998). "EL MUNDO DE LA ENSEÑANZA ASISTIDA POR ORDENADOR en Educación Primaria."
Bonacina, M. and G. Bortolato (2009). "Uso del ordenador en la simulación de procesos." Métodos y errores.(Citado 15 mar 2009) Disponible en: http://www. fceia. unr. edu. ar/fceia1/publicaciones/numero7/articulo1.
Chávez, M. S. L. E. R. and C. M. R. Quesada "La simulación computarizada como herramienta didáctica de amplias posibilidades."
Dimsdale, B. and H. M. Markowitz (1964). "A Description of the SIMSCRIPT Language." IBM Systems Journal 3(1): 57‐67.
Domínguez, E. J. L. (1990). "Elementos de simulación. Sistemas y modelos." Cuadernos de ciencias económicas y empresariales. Papeles de trabajo(8): 1.
Eguíluz Pérez, J. (2007). "Introducción a AJAX."
Eguíluz Pérez, J. (2007). Introducción a JavaScript.
Garrido, D. and L. González (2009). Mapas Conceptuales para la enseñanza de Sistemas Operativos Universidad Central “Marta Abreu” de Las Villas
Goldsman, D., R. E. Nance, et al. (2009). A brief history of simulation. Winter Simulation Conference, Winter Simulation Conference.
Gosset, W. S. "William Sealy Gosset."
Herrera, A. M. M. (2000). "Números aleatorios Historia, teoría y aplicaciones." Ingeniería y Desarrollo(008): 49‐69.
Kifer, M. and S. Smolka (2007). Introduction to operating system design and implementation: the OSP 2 approach, Springer.
BIBLIOGRAFÍA
65
Korshunov, Y. M. and R. L. Alvarez (1995). Fundamentos matemáticos de la cibernética, Mir.
Lezcano Brito, M. G. (1998). Ambientes de aprendizaje por descubrimiento para la disciplina Inteligencia Artificial, UNIVERSIDAD CENTRAL DE LAS VILLAS.
Lezcano Brito, M. (2010). "Monografía Sistemas Operativos. Una vista interior."
Linares Alvaro, M. J. (2007). "Mapas conceptuales para la enseñanza de la Botánica. Una propuesta organizativa.".
López de Munain, C. and C. A. Saiegg (2005). "Uso de la Simulación como estrategia de mejora en el proceso de enseñanza‐aprendizaje en las universidades. Una aplicación para la carrera de informática.".
Lunce, L. (2006). "Simulations: Bringing the benefits of situated learning to the traditional classroom." Journal of Applied Educational Technology.
Magee, M. (2006). "State of the Field Review." Simulation in education. Final report. Calgary, Canadá: Alberta Online Learning Consortium.
Markowitz, H. M., J. Hausner, et al. (1962). "Simscript."
Molero, X. (2013). "ENIAC: una máquina y un tiempo por redescubrir." Actas de las XIX Jenui. Castellón 10(12).
Novak, J. D. (1991). "AYUDAR A LOS ALUMNOS A APRENDER CÓMO APRENDER." Enseñanza de las Ciencias 9(3): 215‐228.
Pearson, E. S., W. S. Gosset, et al. (1990). Student: a statistical biography of William Sealy Gosset, Oxford University Press, USA.
Pérez, J. (2009). "Técnicas de medición, modelado y simulación.".
Peterson, J. L. and A. Silberschatz (1991). Sistemas operativos: conceptos fundamentales, Reverté.
Salas Perea, R. S. and P. Ardanza Zulueta (1995). "La simulación como método de enseñanza y aprendizaje." Educación Médica Superior 9(1): 3‐4.
Schriber, T. J. (1974). Simulation using GPSS, DTIC Document.
BIBLIOGRAFÍA
66
Silberschatz, A. and P. B. Galvin (2012). Operating System Concepts.
Silberschatz, A., P. B. Galvin, et al. (1999). Sistemas operativos, Addison Wesley Longman.
Silberschatz, A., P. B. Galvin, et al. (2009). Operating system concepts, J. Wiley & Sons.
Silberschatz, A., P. B. Galvin, et al. (2006). Fundamentos de sistemas operativos, McGraw‐Hill.
SM, A. and T. SR (1991). "Computer Based Instruction: Methods and Development."
Soler Pellicer, Y. (2007). "Organización del conocimiento de la asignatura Programación II para Ingeniería Informática basada en mapas conceptuales.".
SUPERIOR, M. D. E. (2012). "Plan de Estudios D para la carrera Ciencia de la Computación.".