15

Click here to load reader

Ta5 sistemas operativos - para shared

  • Upload
    jraulv

  • View
    217

  • Download
    0

Embed Size (px)

DESCRIPTION

Trabajo que realicé en la UAP sobre Sistemas Operativos

Citation preview

Page 1: Ta5   sistemas operativos - para shared

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

Page 2: Ta5   sistemas operativos - para shared

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.

Page 3: Ta5   sistemas operativos - para shared

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.

Page 4: Ta5   sistemas operativos - para shared

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

Page 5: Ta5   sistemas operativos - para shared

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:

Page 6: Ta5   sistemas operativos - para shared

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

Page 7: Ta5   sistemas operativos - para shared

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

Page 8: Ta5   sistemas operativos - para shared

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.

Page 9: Ta5   sistemas operativos - para shared

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

Page 10: Ta5   sistemas operativos - para shared

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.

Page 11: Ta5   sistemas operativos - para shared

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

Page 12: Ta5   sistemas operativos - para shared

Curso: Sistemas Operativos 9

Cuando ya se especificó los datos se da clic en Crear Escenario, mostrando la

siguiente interface:

Page 13: Ta5   sistemas operativos - para shared

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:

Page 14: Ta5   sistemas operativos - para shared

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.

Page 15: Ta5   sistemas operativos - para shared

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.