problemas basicos de comunicación

7
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA Facultad de Sistemas y Telecomunicaciones SISTEMAS OPERATIVOS Problemas Basicos De Comunicación El Algoritmo Del Banquero Diana Tigrero (1) , Andrea Vargas (2) , Wilson Mazzini (3) , Alex Acosta (4) . La Libertad Ecuador [email protected] (1) , [email protected] (2) , [email protected] (3) , [email protected] (4) . Resumen La realización de este trabajo fue con el objetivo de recolectar información sobre problemas básicos de comunicación basados mediante la solución del algoritmo del banquero propuesto por Edsger Dijkstra para resolver inconvenientes de gestión de recursos de los sistemas operativos.

Upload: alex-acosta

Post on 12-Feb-2017

189 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Problemas basicos de comunicación

UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA

Facultad de Sistemas y Telecomunicaciones

SISTEMAS OPERATIVOS

Problemas Basicos De Comunicación

El Algoritmo Del Banquero

Diana Tigrero (1), Andrea Vargas (2), Wilson Mazzini (3), Alex Acosta (4).

La Libertad – Ecuador

[email protected] (1), [email protected] (2),

[email protected] (3), [email protected] (4).

Resumen

La realización de este trabajo fue con el objetivo de recolectar información

sobre problemas básicos de comunicación basados mediante la solución del

algoritmo del banquero propuesto por Edsger Dijkstra para resolver

inconvenientes de gestión de recursos de los sistemas operativos.

Page 2: Problemas basicos de comunicación

BIOGRAFÍA EDSGER DIJKSTRA

“Nació el 11 de mayo de 1930 en

Rotterdam.” (Karen, 2011).

Estudios:

Estudio física teórica en la Universidad

de Leiden. Trabajó como investigador

para Burroughs Corporation a

principios de los años 1970. En la

Universidad de Texas en Austin

Estados Unidos, ocupó el

Schlumberger Centennial Chair in

Computer Sciences y se retiró en

2000.

Contribuciones:

En la informática está la solución del

problema del camino más corto,

también conocido como el algoritmo de

Dijkstra, la notación poloca inversa y lo

relacionado algoritmo shuting yard, the

multiprogramming system, el algoritmo

del banquero y la construcción del

semáforo para coordinar múltiples

procesadores y programas.

El algoritmo de Dijkstra es usado en la

ruta más corta primero (SPF) que es

usado en el protocolo de enrutamiento

open shortest path first (OSPF).

Desde los años 1970, el principal

interés de Dijkstra fue la verificación

formal. La opinión que prevalecía

entonces era que uno debe primero

escribir un programa y seguidamente

proporcionar una prueba matemática

de su corrección. Dijkstra objetó que

las pruebas que resultan son largas e

incómodas, y que la prueba no da

ninguna compresión de cómo se

desarrolló el programa.

Muchos de los últimos trabajos de

Dijkstra tratan sobre las maneras de

hacer fluida la argumentación

matemática.

Dijkstra murió el 6 de agosto de

2002 después de una larga lucha

contra el cáncer.

INTRODUCCIÓN

El Algoritmo del banquero, en sistemas

operativos es una forma de evitar el

interbloqueo, propuesta por primera

vez por Edsger Dijkstra. Es un

acercamiento teórico para evitar los

interbloqueos en la planificación de

recursos. Requiere conocer con

anticipación los recursos que serán

Page 3: Problemas basicos de comunicación

utilizados por todos los procesos. Esto

último generalmente no puede ser

satisfecho en la práctica.

”Este algoritmo usualmente es

explicado usando la analogía con el

funcionamiento de un banco. Los

clientes representan a los procesos,

que tienen un crédito límite, y el dinero

representa a los recursos. El banquero

es el sistema operativo.” (Alvarez

Izaguirre, 2013)

El banco confía en que no tendrá que

permitir a todos sus clientes la

utilización de todo su crédito a la vez.

El banco también asume que si un

cliente maximiza su crédito será capaz

de terminar sus negocios y devolver el

dinero a la entidad, permitiendo servir

a otros clientes.

Según (Alvarez Izaguirre, 2013) en su

blog expone que el algoritmo mantiene

al sistema en un estado seguro. Un

sistema se encuentra en un estado

seguro si existe un orden en que

pueden concederse las peticiones de

recursos a todos los procesos,

previniendo el interbloqueo. El

algoritmo del banquero funciona

encontrando estados de este tipo.

Los procesos piden recursos, y son

complacidos siempre y cuando el

sistema se mantenga en un estado

seguro después de la concesión. De lo

contrario, el proceso es suspendido

hasta que otro proceso libere recursos

suficientes.

Estructuras y complejidad

Se deben utilizar cuatro estructuras de

datos para implementar el algoritmo

del banquero. Estas codifican el

estado del sistema de asignación de

recursos. Sea n, el número de

procesos del sistema, m el número de

tipos de recursos. Se necesita:

Recursos (Available, disponible):

Un vectores de longitud m que

mantiene la cantidad total de

recursos, de cada tipo, que pueden

ser utilizados por los procesos. De

esta forma, Recursos[i] = k significa

que hay una cantidad total k de

recursos tipo disponibles.

Demanda (Max): Esta matriz, n x

m, guarda las cantidades máximas

de recursos de cada tipo que

pueden ser demandadas por cada

proceso. Si Max[i] [j]=k, el proceso

i, puede solicitar, como máximo k

instancias del recurso j.

Asignación (allocation): En esta

matriz, n x m, número de recursos

de cada tipo actualmente

asignados a cada proceso.

Page 4: Problemas basicos de comunicación

Asignación[i] [j] = k significa que el

proceso i tiene asignado k

unidades del recurso j.

Necesidad (need): Una matriz, n x

m, que indica la necesidad restante

de recursos de cada proceso. Si

Necesidad[i] [j] = k, entonces el

proceso i puede necesitar k

instancias del tipo de recurso j.

Observe que Necesidad[i] [j] =

Max[i] [j] - Asignación[i] [j].

En términos de complejidad, el

algoritmo del banquero es de orden O

(n2 × m), donde n es el número de

procesos y m la cantidad de recursos.

Algoritmo del banquero.

El uso de este tipo de algoritmo

permite impedir el interbloqueo, pero

supone una serie de restricciones:

Los procesos deben ser

independientes, es decir que

puedan ser ejecutados en

cualquier orden. Por lo tanto su

ejecución no debe estar forzada

por condiciones de sincronización.

Debe haber un número fijo de

recursos a utilizar y un número fijo

de procesos.

Los procesos no pueden finalizar

mientras retengan recursos.

Ventajas del algoritmo del banquero

según (Beiker, 2015):

No es necesario expulsar y

hacer retroceder procesos como

en la detección del interbloqueo.

Es menos restrictivo que la

prevención.

Desventajas (Beiker, 2015):

Se debe conocer la máxima

demanda de recursos por

anticipado.

La ejecución de los recursos no

debe estar forzada por la

sincronización.

Se tiene un número fijo de

procesos y recursos.

Los procesos no finalizan

mientras retengan recursos.

Requiere que los procesos

salden sus préstamos en un

tiempo finito.

Debilidades del Algoritmo Del

Banquero

Requiere que exista un número

fijo de recursos asignables, pero

Page 5: Problemas basicos de comunicación

generalmente no se puede

contar con que el número de

recursos se mantenga siempre

constante.

Requiere que la población de

usuarios se mantenga

constante, lo cual es

irrazonable.

Requiere que el S. O. garantice

que todas las peticiones serán

concedidas en un tiempo finito,

pero en la realidad se requieren

mayores garantías.

Requiere que los procesos

reintegren los recursos en un

tiempo finito, pero en la realidad

se requieren mayores garantías.

Requiere que los procesos

indiquen sus necesidades

máximas de recursos por

adelantado, lo cual

generalmente no ocurre.

Generalmente no es utilizado en

S. O. reales.

A continuación se presenta un

ejemplo:

Utilizando el algoritmo del banquero

resuelva el siguiente problema,

indicando el orden en que los procesos

pasan a ser estados seguros evitando

el problema del interbloqueo.

Lista de procesos: P1-P3-P4-P0 ó P2

A la derecha se tienen 5

procesos, cada uno tiene recursos de

tipo A, B y C. En la primera columna

de asignados está la cantidad de

recursos que el proceso ha obtenido a

lo largo de un tiempo; en la segunda

columna de Máximo Necesario, están

los recursos que tiene que obtener de

cada tipo para comenzar a ser

ejecutado. Por ejemplo, el P0 no ha

obtenido ningún recurso del tipo A,

sólo 1 del tipo B y ninguno del tipo C, y

necesita para ejecutarse haber

conseguido 7 del A, 5 del B y 3 del C.

En la última columna se tienen los

recursos disponibles que da el

sistema, los que se pueden utilizar con

todos los procesos. Hay 3 del A, 3 del

B y 2 del C.

El algoritmo del banquero trata de

asegurar qué proceso tiene un “estado

seguro” es decir, se requiere alcanzar.

el máximo requerido entre los que

estén en Asignados y los que se

encuentren en Disponibles.

Ejemplo: El proceso 0 no está en

estado seguro. Si se suman Asignados

+ Disponibles para cada uno de los

Page 6: Problemas basicos de comunicación

recursos A, B y C, realmente no se

alcanzan los Máximos Requeridos.

Entonces se va al proceso 1 y se trata

de hacer lo mismo, sumar Asignados +

Disponibles. Allí sí se tiene un

ESTADO SEGURO, A con 5, B con 3 y

C con 2, y como se alcanza a llenar los

Máximos, ese proceso se ejecuta.

Una vez que el proceso se ejecutó,

entonces se procede a SUMAR los

recursos asignados del proceso

anterior a los disponibles. Hay que

recordar que el proceso al terminar de

ejecutarse libera todos sus recursos,

por lo tanto pasan tanto los de tipo A,

B y C a sumarse con los disponibles 3-

3-2 y se tendrán nuevos

DISPONIBLES que repartir, siendo

ahora éstos 5-3-2.

Con estos se pasa al proceso P2 y así

sucesivamente.

Imagen de comprobación del algoritmo del banquero en modo seguro.

Page 7: Problemas basicos de comunicación

Conclusión

Comprender como funciona el

algoritmo del Banquero, como

trabaja el CPU al momento de

realizar una serie de procesos

que el usuario requiere.

El algoritmo del banquero en

ciertas condiciones (exclusión

mutua y recursos limitados)

puede ser de gran utilidad, en

condiciones donde las

desventajas de este algoritmo

pasen desapercibidas o sean

minimizadas, el proceso de

asignación de recursos seria

óptimo.

El algoritmo del banquero

detecta posibles interbloqueos a

través del algoritmo de

seguridad que utiliza.

Bibliografía A. S. Tanenbaum. (1996). Sistemas Operativos

(2da ed.). MÉXICO: Prentice Hall

Hispanoamericana.

Alvarez Izaguirre, C. (2 de Maerzo de 2013).

Algoritmo del Banquero. Recuperado

el 11 de Noviembre de 2015, de

http://carlosrobertoalvarezizaguirre.bl

ogspot.com/2013/03/algoritmo-del-

banquero.html

Beiker, J. (28 de Abril de 2015). Prezi.

Recuperado el 11 de Noviembre de

2015, de

https://prezi.com/gd0vhrhxcege/algor

itmo-del-banquero/

Deitel, H. M. (1993). Sistemas Operativos (2da

ed.). BOSTON: Addison-Wesley.

JIMENEZ BARRAGAN, A. (11 de Octubre de

2012). SISTEMAS OPERATIVOS.

Recuperado el 11 de Noviembre de

2015, de http://sistemas-

operativos.blogspot.mx/2012/10/algo

ritmo-del-banquero.html

Milenkovic M. (1994). Sistemas Operativos:

Conceptos y Diseño (2da ed.).

MADRID: McGraw-Hill.

Sánchez Torrubia, G., & Lozano Terrazas, V.

(s.f.). Algoritmo de Dijkstra: Un

Tutorial Interactivo. Recuperado el 11

de Noviembre de 2015, de

http://bioinfo.uib.es/~joemiro/aenui/

procJenui/ProcWeb/actas2001/saalg2

23.pdf

Stallings, W. (1993). Computer Organization

and Architecture (3era ed.). NEW

YORK: Macmillan.