Click here to load reader
Upload
jraulv
View
217
Download
0
Embed Size (px)
DESCRIPTION
Trabajo que realicé en la UAP sobre Sistemas Operativos
Citation preview
TRABAJO ACADEMICO
2012- I
Asignatura: SISTEMAS OPERATIVOS
Docente: Ing. Luis Manuel SigüeñasSiadén
Ciclo del curso: V MODULO II
Datos del Alumno:
Apellidos y Nombres:
Código
UDED:
Indicaciones
FECHA DE ENVIO:
HASTA EL DOMINGO 29 DE ENERO DEL 2012
FORMA DE ENVIO:
Comprimir el archivo original de su trabajo académico en WINZIP y publicarloen el CAMPUS VIRTUAL, mediante la opción:
TAMAÑO DEL ARCHIVO:
Capacidad Máxima del archivo comprimido: 4 MB
Recomendaciones
1. Recuerde verificar la correcta publicación de su Trabajo Académico en el Campus Virtual. Revisar la opción:
2. No se aceptará el Trabajo Académico después del domingo 05 de febrero del 2012.
3. Las actividades que se encuentran en el libro servirán para su autoaprendizaje mas no para la calificación, por lo que no deberán ser remitidas. Usted sólo deberá realizar y remitir obligatoriamente el Trabajo Académico que adjuntamos aquí.
4. Recuerde: NO DEBE COPIAR DEL INTERNET, el Internet es únicamente una fuente de consulta. Los trabajos copias de internet serán calificados con “00” (cero).
U N I V E R S I D A DA L A SP E R U A N A S
Dirección Universitaria de Educación a Distancia Escuela Académico Profesional de Ingeniería de Sistemas e
Informática
Guía del
Trabajo Académico
Estimado alumno:
El presente trabajo académico tiene por finalidad medir los
logros alcanzados en el desarrollo del curso.
Para el examen parcial usted debe haber logrado
desarrollar hasta la pregunta Nº 02y para el examen final
debe haber desarrollado el trabajo completo.
Criterios de evaluación del trabajo académico:
1 Presentación adecuada del trabajo
Considera la evaluación de la redacción, ortografía, y
presentación del trabajo en este formato.
2 Investigación bibliográfica.
Considera la consulta de libros virtuales, a través de la
Biblioteca virtual DUED UAP, entre otras fuentes.
3
Situación problemática, casos práctico, ejercicios, etc.
Considera el análisis de casos o la solución de situaciones
problematizadoras por parte del alumno.
4
Otros contenidos considerando los niveles cognitivos de orden superior.
Trabajo Académico
1. Elegir uno de los temas del listado adjunto y crear un documento de texto
explicando detalladamente su funcionalidad, casos en los que un sistema
operativo utiliza y a su vez las ventajas y desventajas de su aplicación. Se debe
suponer distintos casos que puedan presentarse. (4 puntos)
2. Haciendo uso del lenguaje de programación de su preferencia, desarrollar una
interfaz que permita simular el funcionamiento del tema elegido. Identificar la
forma y método de entrada de datos. Sustentar la estructura de datos a utilizar
propuesta. (3 puntos)
3. Desarrollo del proceso principal del tema elegido. Análisis de la secuencia de
actividades. Validación de los supuestos definidos en el punto 1. Funcionalidad de
cada actividad. (7 puntos)
4. Generación de resultados. Cálculo de tiempos promedio y estadísticas generadas
de acuerdo al tema elegido. (4 puntos)
5. Establecer conclusiones y recomendaciones de la aplicación propuesta. (2 puntos)
TEMAS A ESCOGER:
Bloqueo mutuo.
Inanición.
Los filósofos comensales.
Semáforos.
Algoritmos de planificación de trabajos (uno de ellos)
o FIFO.
o SRT.
o SJF.
o Round Robin.
o Colas Múltiples.
Asignación de memoria particionada:
o Mejor Ajuste.
o Primer Ajuste.
o Peor Ajuste.
Compactación de memoria.
Planificación de discos:
o FIFO
o SCAN o C-SCAN
o LOOK o C-LOOK
PRESENTACIÓN:
La presentación parcial del trabajo académico (semana 04) se realizará compartiendo
el escritorio del alumno escuchando la explicación del avance.
Para la presentación final del trabajo académico, se debe publicar un archivo
comprimido conteniendo:
Archivos que permiten ejecutar el aplicativo.
Archivo en Word en el que se explique el desarrollo completo del trabajo
académico. Capturar pantallas del aplicativo.
FUENTES DE AYUDA:
Libro SISTEMAS OPERATIVOS. DUED.
Todos los temas propuestos tienen su explicación en diferentes direcciones
electrónicas.
Curso: Sistemas Operativos 1
U N I V E R S I D A DA L A S P E R U A N A S
Dirección Universitaria de Educación a Distancia
Escuela Profesional de Ingeniería de Sistemas e Informática
ADMINISTRACIÓN DE LOS PROCESOS
“BLOQUEO MUTUO”
AUTOR
VARGAS VERA, Jorge Raúl
ASIGNATURA
SISTEMAS OPERATIVOS
CICLO
V
2012
Curso: Sistemas Operativos 2
TRABAJO ACADÉMICO
1. Elegir uno de los temas del listado adjunto y crear un documento de texto
explicando detalladamente su funcionalidad, casos en los que un sistema
operativo utiliza y a su vez las ventajas y desventajas de su aplicación. Se
debe suponer distintos casos que puedan presentarse.
BLOQUEO MUTUO
Uno de los problemas que se presenta a menudo en nuestros ordenadores es el bloqueo mutuo.
El bloqueo mutuo consiste en que muchos procesos compiten por relativamente pocos recursos
y el sistema no es capaz de atender a todos los procesos en el sistema. Una carencia de
sincronización de los procesos puede dar como resultado dos condiciones extremas: el
bloqueo mutuo y la inanición.
El bloqueo mutuo, anteriormente conocido con la frase más descriptiva de abrazo mortal es un
enredo a nivel del sistema de solicitudes de recursos que se inicia cuando 2 o más trabajos se
ponen en espera, cada uno aguardando que quede disponible un recurso vital.
El problema se genera cuando cuándo los recursos están ocupados por otros procesos y éstos
no los liberan, y siguen ejecutándose porque están a la espera de otros recursos que están
asignados a otros procesos. Como no se pueden asignar los recursos porque están ocupados
todos los trabajos se detienen. Si el sistema se detiene (cuelga), entonces el bloqueo es total.
El ejemplo más usado es el de un caso de congestionamiento de tráfico. Para ello mostramos el
siguiente gráfico:
Curso: Sistemas Operativos 3
Interpretando el gráfico, no existe una solución simple e inmediata para el bloqueo mutuo, nadie
puede avanzar mientras alguien no se quite del camino, pero esto no puede suceder mientras
alguien no avance o retroceda toda una línea.
Un bloqueo mutuo por lo general ocurre cuando recursos insustituibles que no se pueden
compartir, se asignan a trabajos que terminarán por requerir otros recursos incompartible e
insustituibles; esto es; recursos bloqueados por otros trabajos.
Existen 7 casos de bloqueos mutuos:
Caso 1: Bloqueos mutuos en solicitudes de archivos.
Ocurre cuando las tareas solicitan y conservan archivos durante su ejecución, puede
ocurrir un bloqueo mutuo. Qué quiere decir, que las tareas mantienen el uso de un
archivo y no lo sueltan hasta que termine su proceso, aunque a mitad de ello tengan que
abrir otro archivo, sin haber soltado el primero, entonces otro proceso no puede hacer uso
del primer archivo, ahí se produce un bloqueo mutuo.
Caso 2: Bloqueos mutuos en bases de datos.
También puede ocurrir bloqueo mutuo si dos procesos acceden y bloquean registros de
una base de datos. Este bloqueo ocurre cuando una parte de un sistema solicita
información de una tabla, al solicitar automáticamente se bloquea la base para proteger
los datos, pero no lo suelta instantáneamente debido que para validar la información
Curso: Sistemas Operativos 4
necesita verificar otra tabla, al existir otro usuario de una red que solicita información a la
base, ésta se encuentra bloqueada por el primer proceso.
El bloqueo puede efectuarse en tres niveles: En toda la base de datos, en una subsección
de la base de datos o en el registro individual hasta que el proceso termine.
Caso 3: Bloqueos mutuos en la asignación de dispositivos dedicados.
El uso de dispositivos dedicados también puede generar un bloqueo mutuo. ¿Cómo así?.
Por ejemplo un proceso puede solicitar el uso de cintas magnéticas para copiar archivos a
otra cinta magnética, en el momento otro proceso solicita la cinta magnética, como ya
está asignado el recurso, entonces ahí se produce un bloqueo mutuo.
Caso 4: Bloqueos mutuos en la asignación de múltiples procesos.
Los bloqueos mutuos no solo ocurren cuando se compite por un dispositivo dedicado,
también ocurre cuando un proceso compite por un recurso que se encuentra asignado a
otro proceso, por ejemplo: Se pueden tener varios procesos y varios recursos, en este
sentido un proceso puede solicitar un recurso y luego otro proceso puede solicitar ese
mismo recurso, al estar asignado al primer recurso se produce un bloqueo mutuo.
Caso 5: Bloqueos mutuos en operaciones simultáneas en línea
Este es un problema clásico de bloqueo mutuo que se suele presentar dentro de un
sistema que comparte un periférico dedicado (impresora), antes la impresora era
dedicada, ahora con todos los trabajos en red la impresora es un dispositivo compartido.
El bloqueo mutuo en este caso se produce cuando varios usuarios de una red envían
documentos al mismo tiempo al servicio de impresión.
Cómo la impresora sólo libera los trabajos al recibir todo el trabajo, entonces los otros
trabajos de impresión tienen que esperar a que todo el documento haya sido cargado
para proceder a liberar la impresora.
Caso 6: Bloqueos al compartir discos
Los discos están diseñados para ser compartidos. Sin controles que regulen el uso de la
unidad de disco, los procesos que solicitan su servicio podrían enviar comandos
conflictivos y bloquear el sistema. ¿Cómo así? Por ejemplo un primer proceso puede
solicitar grabar una información en el cilindro 40 del disco, una vez que el proceso es
atendido se libera el recurso quedando libre mientras el mecanismo mueve el brazo hacia
Curso: Sistemas Operativos 5
el cilindro 40, en ese momento un segundo proceso solicita grabar información en el
cilindro 250 del disco, al estar el recurso libre solicita el proceso, en ese momento se da
cuenta que el brazo está dirigiéndose al cilindro 40 ordenándole dirigirse al 250 y
liberando el recurso, como el proceso 1 encuentra nuevamente que el recurso está libre
vuelve a solicitar el trabajo, moviendo nuevamente el brazo al cilindro 40 y liberando el
recurso. El proceso 2 vuelve a encontrar libre el recurso y vuelve a solicitar la grabación
de su información en el cilindro 250, repitiéndose todo el ciclo nuevamente, ahí se realiza
el bloqueo mutuo ya que ninguno de los dos procesos completa su operación.
Caso 7: Bloqueos mutuos en una Red
Una red congestiona o que se ha llenado su buffer de entrada/salida se puede bloquear
totalmente si no tiene protocolos para controlar el flujo de mensajes a través de la red.
En cada uno de los casos para que se realizara el bloqueo mutuo comprendió la interacción de
varios procesos y recursos a la vez, pero la ocurrencia de 4 condiciones precedió cada bloqueo
mutuo: exclusión mutua, retención del recurso, no apropiatividad y espera circular.
Exclusión mutua: Es el acto por el cual un proceso tiene acceso a un recurso dedicado.
Retención del recurso: Cuando un proceso usa un recurso y no lo suelta para que otro proceso
pueda usarlo.
No apropiatividad: Es cuando un proceso usa un recurso y no lo suelta temporalmente para
que lo use otro y luego pueda concluir con su operación
Espera circular: Esta última condición es consecuencia de las 3 anteriores, donde cada proceso
está inmerso en la espera de que el otro proceso libere el recurso, por lo que, por lo menos uno
será capaz de continuar y llegar al final.
Estrategias para el manejo de bloqueos
El orden impredecible de solicitudes y liberaciones hacen difícil diseñar una política preventiva a
toda prueba, por lo que los sistemas operativos se han visto obligados a utilizar una de las
siguientes estrategias:
a) Impedir que ocurra alguna de las cuatro condiciones arriba mencionada (prevención)
Para impedir un bloqueo mutuo, el sistema operativo debe eliminar una de las cuatro
condiciones necesarias arriba descritas, lo cual sería un poco difícil porque no es posible
suprimir la misma condición de todos los procesos.
Curso: Sistemas Operativos 6
La exclusión mutua es necesaria en cualquier sistema de cómputo porque algunos recursos
deben ser asignados exclusivamente a un usuario a la vez.
La retención de recursos podría evitarse obligando a cada trabajo a solicitar en el momento
de su creación todos los recursos que necesitará, por lo cual, los dispositivos quedaría
ociosos porque se asignarían a un proceso así no lo necesitara.
La no apropiatividad podría evitarse permitiendo que el sistema operativo desasigne
recursos de los trabajos.
En cuanto a la espera circular se puede obviar si el sistema impide la formación de un
círculo, para lo cual tendría que crear un esquema de ordenamiento jerarquerizado de los
recursos, lo cual evitaría un bloqueo mutuo.
b) Evitar el bloqueo si se hace probable
Incluso si el sistema operativo no puede eliminar una de las condiciones de un bloqueo
mutuo, puede evitar uno, si conoce por anticipado la secuencia de solicitudes.
Para ello tiene que hacer uso del algoritmo del banquero el cual opera de la siguiente
manera:
A ninguno de los clientes se concederá un préstamo que exceda el capital total del
banco.
A todos los clientes se dará el límite de crédito máximo al abrir una cuenta.
A ningún cliente se permitirá que pida prestado más allá de su límite.
La suma de todos los préstamos no excederá el capital total del banco.
En la práctica el algoritmo del banquero funciona de la siguiente manera: (expresado en
miles de dólares)
Supongamos que el banco tiene un fondo de 10 y 3 clientes, cuyos límites máximos de
crédito son 4, 5 y 8 respectivamente. Se tiene también que al cliente 2 y 3 se les otorgó un
préstamo de 2 y 4 respectivamente (total prestado 6, total disponible 4), lo que se conoce
como estado seguro, porque el banco tiene todavía suficiente dinero para satisfacer las
solicitudes de los todos sus clientes.
Cliente Cantidad del
Préstamo Crédito Máximo Crédito Restante
C1 0 4 4
C2 2 5 3
C3 4 8 4
Total prestado: 6 Fondo total de capital: 10
Curso: Sistemas Operativos 7
Luego de algunas semanas, los clientes han realizado las siguientes operaciones: el cliente
1 solicita un crédito por 2, el cliente 2 solicita una ampliación de su crédito a 3, quedando
como estado final lo siguiente: Total prestado: 9, fondo total 10, a lo que se llama estado
inseguro debido a que el banco ya está al tope de su capital.
Cliente Cantidad del
Préstamo Crédito Máximo Crédito Restante
C1 2 4 2
C2 3 5 2
C3 4 8 4
Total prestado: 9 Fondo total de capital: 10
Se llama estado inseguro debido a que el banco sólo tiene disponibilidad de 1, en tanto que,
los clientes todavía pueden solicitar préstamos por 8, y si presta 1 quedará totalmente
bloqueado, para lo cual si algún cliente solicita un préstamo, el banco lo pondrá en espera
hasta que algunos de los otros clientes paguen el total de su deuda o amorticen una parte
de tal forma que el banco puede tener nuevamente liquides.
Por lo tanto el sistema operativo debe estar seguro de nunca atender una solicitud que
convierta un estado seguro en inseguro.
c) Detectarlo cuando ocurre y recuperarse del mismo con gracia.
Para detectar circularidad es necesario correr un algoritmo siempre que sea apropiado.
Dicho algoritmo funciona de la siguiente manera:
Encuentre un proceso que esté utilizando un recurso y que no esté en espera de
uno. Este proceso se puede eliminar y los recursos pueden regresar a lista de
espera.
Encuentre un proceso que nada más espere clases de recursos que no estén
asignados por completo.
Vuelva al paso uno y continúe la iteración hasta eliminar todas las líneas que
conecten recursos con procesos.
Si quedan procesos unidos a recursos indicará que existe un bloqueo mutuo.
Curso: Sistemas Operativos 8
2. Haciendo uso del lenguaje de programación de su preferencia, desarrollar
una interfaz que permita simular el funcionamiento del tema elegido.
Identificar la forma y método de entrada de datos. Sustentar la estructura
de datos a utilizar propuesta. (3 puntos)
El tema elegido es el de Bloqueo mutuo, para tal efecto, con la ayuda del
Lenguaje de Programación PowerBuilder se logró desarrollar la aplicación
solicitada mostrándose la siguiente interface:
1) Al ejecutarse la aplicación nos muestra la siguiente pantalla, donde nos
solicita los procesos y los recursos con los que se van a trabajar, la
cantidad de procesos y recursos máximos son de 5
Curso: Sistemas Operativos 9
Cuando ya se especificó los datos se da clic en Crear Escenario, mostrando la
siguiente interface:
Curso: Sistemas Operativos 10
3. Desarrollo del proceso principal del tema elegido. Análisis de la
secuencia de actividades. Validación de los supuestos definidos en el
punto 1. Funcionalidad de cada actividad. (7 puntos)
Análisis de la Secuencia de Actividades:
El presente aplicativo funciona de la siguiente manera:
Una vez creado el escenario de la forma arriba mencionado, aparecen en el
formulario los procesos identificados con las letra P1, P2, P3, P4 y P5 los
cuales tienen a sus lados un ComboBox en el cual puede seleccionar que
recurso va a solicitar, cabe mencionar que al momento de crear el escenario,
ya están definidos la cantidad de recursos que se pueden seleccionar, y, no se
puede solicitar un recurso que no está creado, y, al otro lado aparece un
Cuadro de Texto en el cual aparecerá el nombre del recurso que ha sido
seleccionado, los recursos están identificados con las letras R1, R2, R3, R4 y
R5.
Una vez asignado un recurso a un proceso aparece una línea que indica la
asignación y también se activa un check box en la parte superior, si se desea
liberar simplemente se le da un clic al checkbox y el recurso es liberado.
Validaciones:
Curso: Sistemas Operativos 11
Las validaciones son sencillas, primero se solicitan los recursos, los recursos
se asignan a algún proceso que haya solicitado el recurso, si el recurso está
libre es asignado al proceso, luego el recurso se bloquea para que no pueda
asignarse a otro proceso.
4. Generación de resultados. Cálculo de tiempos promedio y estadísticas
generadas de acuerdo al tema elegido. (4 puntos)
En el tema elegido (Bloqueo mutuo) el sistema no refiere tiempos promedios,
pero si muestra un listado de todas las operaciones asignadas, de tal forma
que se pueda explicar la secuencia realizada.
5. Establecer conclusiones y recomendaciones de la aplicación propuesta.
(2 puntos)
Conclusiones:
a) Se logró crear un aplicativo sencillo y fácil de utilizar para poder
demostrar los casos en que se puedan realizar los Bloqueos Mutuos.
b) El bloqueo mutuo es un algoritmo muy interesante y fácil de explicar
con el cual podemos ilustrar a todas las personas las formas en que
pueden producirse los eventos comúnmente conocidos como COLGAR,
término muy aplicado cuando vemos que nuestro computador ya no
puede realizar ninguna operación y tenemos que finalizar de otras
maneras los procesos iniciados.
c) También se puede indicar las maneras en que los recursos del
computador se pueden asignar a los diferentes procesos, ya sea la
asignación de impresora, disco, memoria, lectora, cámara, audio, etc, a
cada programa según sea necesario.
Recomendaciones:
a) Teniendo un poco más de práctica en el tema se podría realizar un
algoritmo y aplicación de mejor resultado para poder explicar de una
mejor manera el tema.
Curso: Sistemas Operativos 12
b) El manejo del Lenguaje de Programación PowerBuilder también es
limitado, por lo que se recomienda el uso de otro lenguaje, ya sea Java
o Visual Basic.Net.
c) Con un poco más de tiempo en lo referente a las sesiones de clases y
la explicación de los métodos se pudo haber realizado otro tipo de
algoritmo o aplicación que demuestre otras operaciones realizadas en
el computador, ya sean, manejo de disco, de memoria, de procesador,
etc.