facultad de matemática, física y computación licenciatura

75
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

Upload: others

Post on 15-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Facultad de Matemática, Física y Computación Licenciatura

  

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

Page 2: Facultad de Matemática, Física y Computación Licenciatura

  

                                             

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

Page 3: Facultad de Matemática, Física y Computación Licenciatura

PENSAMIENTO

  

Page 4: Facultad de Matemática, Física y Computación Licenciatura

DEDICATORIA

  

Page 5: Facultad de Matemática, Física y Computación Licenciatura

AGRADECIMIENTO

  

Page 6: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 7: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 8: Facultad de Matemática, Física y Computación Licenciatura

 

  

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 

Page 9: Facultad de Matemática, Física y Computación Licenciatura

 

  

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 

 

 

 

 

Page 10: Facultad de Matemática, Física y Computación Licenciatura

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,

Page 11: Facultad de Matemática, Física y Computación Licenciatura

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 

Page 12: Facultad de Matemática, Física y Computación Licenciatura

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

Page 13: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 14: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 15: Facultad de Matemática, Física y Computación Licenciatura

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

Page 16: Facultad de Matemática, Física y Computación Licenciatura

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 

Proceso de usuarios 

Procesos Servidores 

Manipuladores de equipos 

kernel 

Modo  usuario 

Modo kernel 

Capas 

Page 17: Facultad de Matemática, Física y Computación Licenciatura

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

Page 18: Facultad de Matemática, Física y Computación Licenciatura

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

Page 19: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 20: Facultad de Matemática, Física y Computación Licenciatura

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 

Page 21: Facultad de Matemática, Física y Computación Licenciatura

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 

Page 22: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 23: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 24: Facultad de Matemática, Física y Computación Licenciatura

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

Page 25: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 26: Facultad de Matemática, Física y Computación Licenciatura

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

Page 27: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 28: Facultad de Matemática, Física y Computación Licenciatura

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

Page 29: Facultad de Matemática, Física y Computación Licenciatura

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

Page 30: Facultad de Matemática, Física y Computación Licenciatura

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

Page 31: Facultad de Matemática, Física y Computación Licenciatura

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

Page 32: Facultad de Matemática, Física y Computación Licenciatura

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

Page 33: Facultad de Matemática, Física y Computación Licenciatura

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

Page 34: Facultad de Matemática, Física y Computación Licenciatura

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

Page 35: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 36: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 37: Facultad de Matemática, Física y Computación Licenciatura

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

Page 38: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 39: Facultad de Matemática, Física y Computación Licenciatura

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:

Page 40: Facultad de Matemática, Física y Computación Licenciatura

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

Page 41: Facultad de Matemática, Física y Computación Licenciatura

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

Page 42: Facultad de Matemática, Física y Computación Licenciatura

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

Page 43: Facultad de Matemática, Física y Computación Licenciatura

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

Page 44: Facultad de Matemática, Física y Computación Licenciatura

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

Page 45: Facultad de Matemática, Física y Computación Licenciatura

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

 

Page 46: Facultad de Matemática, Física y Computación Licenciatura

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'); });

}

Page 47: Facultad de Matemática, Física y Computación Licenciatura

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

Page 48: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 49: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 50: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 51: Facultad de Matemática, Física y Computación Licenciatura

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

Page 52: Facultad de Matemática, Física y Computación Licenciatura

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 )

Page 53: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 54: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 55: Facultad de Matemática, Física y Computación Licenciatura

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

Page 56: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 57: Facultad de Matemática, Física y Computación Licenciatura

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

Page 58: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 59: Facultad de Matemática, Física y Computación Licenciatura

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

Page 60: Facultad de Matemática, Física y Computación Licenciatura

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

Page 61: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 62: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 63: Facultad de Matemática, Física y Computación Licenciatura

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

Page 64: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 65: Facultad de Matemática, Física y Computación Licenciatura

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)

Page 66: Facultad de Matemática, Física y Computación Licenciatura

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

Page 67: Facultad de Matemática, Física y Computación Licenciatura

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

Page 68: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 69: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 70: Facultad de Matemática, Física y Computación Licenciatura

CAPÍTULO 3

61  

Page 71: Facultad de Matemática, Física y Computación Licenciatura

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.

Page 72: Facultad de Matemática, Física y Computación Licenciatura

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.

 

Page 73: Facultad de Matemática, Física y Computación Licenciatura

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. 

   

Page 74: Facultad de Matemática, Física y Computación Licenciatura

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. 

Page 75: Facultad de Matemática, Física y Computación Licenciatura

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