Publicado el 25 de Agosto del 2017
871 visualizaciones desde el 25 de Agosto del 2017
3,0 MB
188 paginas
Creado hace 14a (10/12/2009)
Universidad Nacional del Nordeste
Facultad de Ciencias Exactas, Naturales y Agrimensura
Trabajo Final de Aplicación
“Desarrollo de un Entorno de Aprendizaje de Sistemas Operativos”
Laura Cristina Gonzalez - L.U.: 30.470
Prof. Coordinador: Agr. Castor Herrmann
Prof. Orientador: Mgter. David Luis la Red Martínez
Licenciatura en Sistemas
Corrientes - Argentina
2009
A mi Familia, Amigos y Compañeros
Prefacio
Una de las muchas y muy variadas posibles aplicaciones de la P.O.O. (programación
orientada a objetos) está en el desarrollo de algoritmos que implementen estrategias de
administración de recursos por parte del Sistema Operativo.
Como parte de las estrategias antes mencionadas, podemos considerar las de adminis-
tración o asignación del procesador, es decir aquéllas según las cuales los S. O. seleccionan
a cuál de los procesos listos para ser ejecutados en ejecución concurrente, le asignarán el
procesador en un momento dado, es decir, a qué proceso darán la posibilidad de utilizar
la CPU para ejecutar sus propias instrucciones; a esta decisión también se la conoce como
despacho del proceso.
El concepto central de cualquier Sistema Operativo es el de proceso: una abstracción
de un programa en ejecución también llamada tarea.
En sistemas de multiprogramación la CPU alterna de programa en programa, en
un esquema de seudoparalelismo, es decir que la cpu ejecuta en cierto instante un solo
programa, intercambiando muy rápidamente entre uno y otro.
El paralelismo real de hardware se da en las siguientes situaciones:
• En ejecución de instrucciones de programa con más de un procesador de instrucciones
en uso simultáneamente.
• Con la superposición de ejecución de instrucciones de programa con la ejecución de
una o más operaciones de entrada / salida.
El objetivo es aumentar el paralelismo en la ejecución.
El modelo de procesos posee las siguientes características:
• Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios
procesos secuenciales o procesos.
• Un proceso incluye al programa en ejecución y a los valores activos del contador,
registros y variables del mismo.
• Conceptualmente cada proceso tiene su propia CPU virtual.
• Si la CPU alterna entre los procesos, la velocidad a la que ejecuta un proceso no
será uniforme.
• Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada, salida
y estado.
• Un solo procesador puede ser compartido entre varios procesos con cierto algoritmo
de planificación, el cual determina cuándo detener el trabajo en un proceso y dar
servicio a otro distinto.
En cuanto a las jerarquías de procesos es necesario señalar que los Sistemas Opera-
tivos deben disponer de una forma de crear y destruir procesos cuando se requiera durante
la operación, teniendo además presente que los procesos pueden generar procesos hijos
mediante llamadas al Sistema Operativo, pudiendo darse ejecución en paralelo.
Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:
vi
• Cada proceso es una entidad independiente pero frecuentemente debe interactuar
con otros procesos.
• Los procesos pueden bloquearse en su ejecución porque:
— Desde el punto de vista lógico no puede continuar porque espera datos que aún
no están disponibles.
— El Sistema Operativo asignó la CPU a otro proceso.
Los estados que puede tener un proceso son 3:
• En ejecución: utiliza la CPU en el instante dado.
• Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso.
• Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.
Son posibles cuatro transiciones entre estos estados.
Estados de Procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias
las circunstancias que pueden hacer que el mismo cambie de estado.
Debido a ello se puede establecer una Lista de Listos para los procesos listos y una
Lista de Bloqueados para los bloqueados.
La Lista de Listos se mantiene en orden prioritario y la Lista de Bloqueados está
desordenada, ya que los procesos se desbloquean en el orden en que tienen lugar los
eventos que están esperando.
Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado en
la última parte de la Lista de Listos.
La asignación de la CPU al primer proceso de la Lista de Listos se denomina Despacho,
que es ejecutado por una entidad del Sistema Operativo llamada Despachador.
El Bloqueo es la única transición de estado iniciada por el propio proceso del usuario,
puesto que las otras transiciones son iniciadas por entidades ajenas al proceso.
Los sistemas que administran los procesos deben poder crear, destruir, suspender,
reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.
La creación de un proceso significa:
• Dar nombre al proceso.
• Insertar un proceso en la lista del sistema de procesos conocidos.
• Determinar la prioridad inicial del proceso.
• Crear el bloque de control del proceso.
• Asignar los recursos iniciales del proceso.
Un proceso puede crear un nuevo proceso, en cuyo caso el proceso creador se denomina
proceso padre y el proceso creado proceso hijo y se obtiene una estructura jerárquica de
procesos.
La destrucción de un proceso implica:
vii
• Borrarlo del sistema.
• Devolver sus recursos al sistema.
• Purgarlo de todas las listas o tablas del sistema.
• Borrar su bloque de control de procesos.
Un proceso suspendido no puede proseguir hasta que otro proceso lo reanude.
Reanudar (reactivar) un proceso implica reiniciarlo en el punto donde fue suspendido.
La destrucción de un proceso puede o no significar la destrucción de los procesos hijos,
según el Sistema Operativo.
Generalmente se denomina Tabla de Procesos al conjunto de información de control
sobre los distintos procesos.
Una interrupción es un evento que altera la secuencia en que el procesador ejecuta las
instrucciones; es un hecho generado por el hardware del computador.
Cuando ocurre una interrupción, el Sistema Operativo:
• Obtiene el control.
• Salva el estado del proceso interrumpido, generalmente en su bloque de control de
procesos.
• Analiza la interrupción.
• Transfiere el control a la rutina apropiada para la manipulación de la interrupción.
Una interrupción puede ser iniciada por un proceso en estado de ejecución o por un
evento que puede o no estar relacionado con un proceso en ejecución.
Generalmente las interrupciones se pueden clasificar en los siguientes tipos:
• SVC (llamada al supervisor): es una petición generada por el usuario para un servicio
particular del sistema.
• Entrada/Salida: son iniciadas por el hardware de Entrada / Salida.
• Externas: son causadas por distintos eventos, por ejemplo, expiración de un cuanto
en un reloj de interrupción o recepción de una señal de otro procesador en un sistema
multiprocesador.
• De reinicio: ocurren al presionar la tecla de reinicio o cuando llega una instrucción
de reinicio de otro procesador en un sistema multiprocesador.
• De verificación de programa: son causadas por errores producidos durante la ejecu-
ción de procesos.
Concurrencia e Hilos con Java
Los hilos o procesos ligeros son una parte de código o miniprograma que puede ser
ejecutada independientemente, de forma que una aplicación o un applet puede tener varios
viii
hilos ejecutándose simultáneamente y efectuando distintas tareas; estos hilos se encuentran
dentro de un programa y son parte de él.
Los hilos, a veces también llamados contextos de ejecución, pueden ser utilizados para
la implementación de algoritmos paralelos o procesos concurrentes, sin ser necesario dis-
poner de equipos con estructura de multiprocesador. En el caso de un solo procesador,
los procesos ligeros incorporan mecanismos para compartirlo, estableciéndose prioridades
entre ellos y también facilidades de sincronización, cuando es necesario.
Objetivos logrados
Se han alcanzado los objetivos planteados para el presente trabajo:
• Desarrollo de una página Web empleando para la confeccion de la misma software
Dreamweaver .
• Desarrollo de Applets empleandoel lenguaje Java y el Netbeans IDe 6.7.1.
Etapas de desarrollo
Se ha efectuado una amplia recopilación bibliográfica específica a los temas pertinentes
a la tarea planificada y a los productos de software que se emplearon para la concreción
del trabajo final.
Se ha desarrollado el aplicativo con la utilización del lenguaje Java, versión jdk1.5.0-15.
En el marco de la herramienta Dreamweaver CS3 se desarrollaron la página web del
aplicativo utilizadando páginas HTML.
En el marco de la herramienta Netbeans IDE 6.7.1 se desarrollaron los Applets utili-
zadandos en la página web del aplicativo.
Generacion del ejecutable del Sistema desarrollado por el Profesor Orientador Mgter.
David Luis la Red Martinez, Concurrencia e Hilos en java
Una vez finalizada la etapa de desarrollo se realizaron las siguientes actividades:
• Montar la página web en un servidor.
• Testear el buen funcionamiento de la página y de los algoritmos desarrollados.
Finalizada la aplicación se realizó la grabación en DVD de todo el material corres-
pondiente al trabajo final: una versión de la aplicación, otra referente al libro en formato
LaTex y el PDF generado. También se incluyó los instaladores de los productos utilizados
para el desarrollo, es decir Netbeans IDE 6.7.1, Dreamweaver CS3,java 6.0 update 11.
• Organización del Informe Final
El trabajo final de aplicación comprende un informe final impreso y un DVD además
de un resúmen y de un resúmen extendido. El informe final está organizado en capítulos
los que se indican a continuación:
Introducción: Es un breve marco teórico sobre los Sistemas operativos:
• Conceptos S.O., estructuras S.O., tendencias S.O.
• Definiciones de procesos, estados y planificacion de procesos, niveles de planificacion,
etc.
ix
Java: Se presentan los principales aspectos y características referidas al lenguaje.
Comentarios de: Desarrollo de un Entorno de Aprendizaje de Sistemas Operativos (0)
No hay comentarios