martes, 1 de diciembre de 2009

JInti, una simulación de sistema operativo en java

En este post quiero hablar de Sistemas Operativos, un área de interés para la comunidad informática puesto que es la base de todo lo que, sobre ella, se puede estructurar, desarrollar, implementar, programar o como se quiera decir al hecho de realizar una aplicación informática. Durante el curso de Sistemas Operativos I que se imparte en mi escuela, se desarrolla una serie de algoritmos en sistemas operativos centralizados. Estos algoritmos están orientados a la gestión de procesos; como puede mecanismos de sincronización, priorización de procesos entre muchas otras cosas.
Y es justo la priorización de procesos uno de los temas bases y que se merecen un gran estudio puesto que de los algoritmos que seleccionemos para este hecho dependará en gran medida el rendimiento del sistema operativo que se esté implementando.

Para la gestión de procesos existen muchos algoritmos. La siguiente lista es una muestra de ello:
1. Planificación a Plazo Fijo
2. Planificación Garantizada
3. Planificación del Primero en Entrar Primero en Salir (FIFO)
4. Planificación de Asignación en Rueda (RR: Round Robin)
5. Tamaño del Cuanto o Quantum
6. Planificación del Trabajo Más Corto Primero (SJF)
7. Planificación del Tiempo Restante Más Corto (SRT)
8. Planificación el Siguiente con Relación de Respuesta Máxima (HRN)
9. Planificación por Prioridad
10. Colas de Retroalimentación de Niveles Múltiples
11. Política Versus Mecanismo de Planificación
12. Planificación de Dos Niveles

Ahora otro concepto importante es la paginación de memoria, que consiste en dividir los programas en páginas(pequeños segmentos de programa). Así mismo la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.

Una vez defenidos estos conceptos básicos, paso a explicar lo que es JInti. JInti es una simulación de sistema operativo que, basado en el algoritmo FIFO (First In, First Out "primero en entrar, primero en salir") para la gestión de procesos y en el algoritmo LRU ("Menos usada recientemente" o "Least Recently Used") para la determinación de qué páginas pueden ser sacadas de memoria cuando se necesita cargar una nueva y ya no hay espacio, muestra el funcionamiento de los mencionados algoritmos con procesos semi-reales cargados por el usuario en tiempo de ejecución y de manera concurrente. No es una una simulación completa, por lo que he decido liberar el código de JInti y volverlo OpenSource para que de ese modo alguién más pueda trabajar sobre esto e ir incrementando las capacidades de este simulador. A continuación muestro un screenshot de JInti:

La descarga la puedes realizar aquí, es un proyecto que ha sido realizado usando Netbeans, solo tienes que correr el proyecto y darle clic en los iconos de las aplicaciones que ahí aparecen. Para ver el administrador de procesos solo debes presionar F1 y verás como van cambiado los procesos que acceden al procesador y cómo se va realizando la paginación de los mismos.

11 comentarios:

Anónimo dijo...

Esta genial.... ♦♦♦♦♦

El codigo es de mucha utilidad...espero poder compartir el avance que estamos realizando con mi grupo de U.... Gracias...

Rolando dijo...

Claro, sería genial que compartas tus avances, sin duda a mucha gente le será de utilidad y los motivará a que ellos también compartan los suyos.

Saludos desde Perú

Anónimo dijo...

hola me parece muy interesante, ya descargue el codigo, coloco esta pagina en favoritos, en estos momentos estoy algoritmos de paginacion, espero poder colaborar.....
ingenieroalternativo@hotmail.com

CRISTIAN RENGIFO ^_^ dijo...

Man nunca me imagine esto, si que tienes nivel, espero poder aprender mucho de ti. Felicidades!

Roger dijo...

muy buen aporte te lo agradesco buen nivel ojala publicara alguno stutoriales de lo que usaste para hacer este sistema

theinventor/programmer dijo...

Yo creo que entre todos podemos crear un proyecto envolviendo este sistema

Animos!!!!
mi blog:
http://www.ideascomunity.blogspot.com.es/

Paul Ventura dijo...

hola fijate que trate de correr tu programa pero me lanza un error cuando ejecuta la pantalla se pone gris y no me deja ver nada de nada mas sin embargo si se pueden usar los iconos de salida, pc y otros tambien el administrador o tengo que agregarle algo a mi netbeans???

Zona Madridista dijo...

yo lo probe pero solo se ejecuta una pantalla gris y sale el conteo de las horas :s no me sale la interfaz completa como tal :(...


¿Que debo hacer ?

Anónimo dijo...

Real ment me yuda bastante gracias!!! saludosss

Anónimo dijo...

donde lo descargoo D:

Rolando Palermo Rodríguez Cruz dijo...

http://sites.google.com/site/tecnologiaenperu/home/JInti.rar

Publicar un comentario