Está en la página 1de 14

SUBSISTEMA DE DISCO DE VARIAS PETICIONES

Para el desarrollo del presente caso de estudio se ha utilizado el software Mathematica 7.0, es un programa utilizado en reas cientficas, de ingeniera, matemticas y reas computacionales.Comnmente considerado como un sistema de lgebra computacional, Mathematica es tambin un poderoso lenguaje de programacin de propsito general. El software mencionado se ha utilizado para la realizacin de un algoritmo que implemente el anlisis de rendimiento de un subsistema de disco de varias peticiones a la vez, utilizando Teora de Colas. El estudio de las simulaciones efectuadas con el algoritmo sealado permite evaluar el comportamiento esperado de un subsistema de disco de varias peticiones a la vez cuando es sometido a distintas cargas de trabajo, es decir a conjuntos de peticiones de operaciones de acceso a los discos que configuran cantidades de trabajo distintas a ser atendidas. La posibilidad de atender varias peticiones en paralelo requiere que el subsistema de disco disponga de un nmero elevado de brazos de acceso, que adems sean independientes en sus movimientos, de tal manera que cada uno de ellos pueda atender a una peticin. Objetivo del Caso de Estudio El objetivo del presente caso consisti en la realizacin de un programa en Mathematica (Colas2pn.m) que implementara el algoritmo de anlisis de rendimiento para el caso sealado. Asimismo tambin se estableci como objetivo del caso la inclusin en el programa de la posibilidad de generar informacin detallada respecto de los clculos efectuados con las distintas simulaciones y un anlisis estadstico de los resultados logrados, como as tambin un grfico ilustrativo de los mismos, todo ello incluido en el archivo de ejecucin y de resultados (Colas2en.ma). Descripcin del Algoritmo Utilizado Al igual que en el apartado anterior, una descripcin detallada de los fundamentos tericos y de las frmulas matemticas resultantes y aplicables a este caso, puede consultarse en el Captulo Modelado Analtico en Relacin al Rendimiento, siendo especialmente pertinente el tema sobre Anlisis del Rendimiento de un

Subsistema de Disco - Caso II, cuyo planteo resumido y esquema final de frmulas aplicables se transcribe a continuacin [7, Deitel]: Caso II:

El dispositivo de disco contiene gran nmero de brazos mviles. Cada brazo puede dar servicio a una peticin de disco a la misma tasa m. Se supone que un nmero infinito de peticiones pueden recibir servicio en paralelo.

Solucin al caso II Con i peticiones siendo servidas:


La probabilidad de que una peticin en particular acabe siendo servida dentro del siguiente Dt es mDt. La probabilidad de que exactamente una peticin cualquiera acabe es imDt (buena aproximacin de primer orden). Cualquiera de las i peticiones puede terminar y provocar un cambio de estado.

El sistema se ve como un proceso de nacimiento y muerte continuo de cadena sencilla y de estados infinitos con:

bi = l con i = 0, 1, 2, ... di = 0 con i = 0. di = im con i = 1, 2, 3, ...

Ningn cliente tiene que esperar ya que se suponen infinitos servidores en paralelo. Se utilizan las relaciones: Pi+1 = (bi / di+1) Pi; i = 0, 1, 2, ... Si Pi = 1. P1 = (l / m) P0. P2 = (l / 2m) P1 = (1 / 2) (l / m)2 P0. P3 = (l / 3m) P2 = (1 / (3 . 2)) (l / m)3 P0. Pi = (1 / i!) (l / m)i P0. Si Pi = 1 = Si (1 / i!) (l / m)i P0. Sn (x n / n!) = e x . Si Pi = 1 = Si (1 / i!) (l / m)i P0 = e (l / m) P0. P0 = e-(l / m). Pi = (l / m)i [(e-(l / m)) / i!].

E(i) = Si iPi = Si i (l / m)i [(e-(l / m)) / i!] = (e-l / m) Si i (l / m)i (1 / i!) = E(i) = (e-l / m) Si (l / m) (l / m)i-1 [1 / (i - 1)!] = E(i) = (e-l / m) (l / m) Si [1 / (i - 1)!] (l / m)i-1 = E(i) = (e-l / m) (l / m) (el / m) = E(i) = (l / m). Conclusiones:

En el sistema de un solo servidor, si una peticin que llega encuentra ocupado el dispositivo de disco, debe esperar. En el sistema de servidores infinitos, las peticiones que llegan siempre entran al servicio de inmediato. En el sistema de un solo servidor: o A medida que l tiende a m la probabilidad de que el sistema se encuentre ocioso decrece rpidamente: Las peticiones que llegan esperan. o El nmero promedio de peticiones pendientes crece con rapidez. En el sistema de servidores infinitos: o El nmero promedio de peticiones pendientes tiende a 1.

Programa Desarrollado El programa desarrollado (Colas2pn.m), codificado en Mathematica 7.0 utilizando especialmente las facilidades de clculo numrico, anlisis estadstico y graficacin, implementa el ingreso interactivo de datos para la simulacin, el clculo de los resultados detallados y finales y el despliegue y almacenamiento de El cdigo del programa desarrollado es el siguiente: (* TEORIA DE COLAS *) (* Anlisis del rendimiento de un subsistema de disco *) (* Caso 2: El subsistema de disco, que posee varios brazos mviles, puede dar servicio a una peticin mediante cada uno de ellos a la vez. *) (* Referencias y aclaraciones: mu: Tasa promedio de servicio para c/u de los brazos mviles. mu = 1/Es(s) Es(s): Tiempo de espera de servicio para un cliente. lambda: Tasa promedio de llegadas de clientes al sistema de colas. lambda = 1/Es(tau) Es(tau): Tiempo de espera entre llegadas. Es(tau) = 1/lambda mu > lambda: Restriccin para que la longitud de la cola de peticiones no crezca indefinidamente.

tau: Intervalo entre llegadas. Pn: Probabilidad de que haya n clientes en el sistema de colas en estado estable. P0: Probabilidad de que el sistema se encuentre ocioso. P0 = E^(-(lambda/mu)) Pri: Probabilidad de que hayan i peticiones pendientes. Pri = ((lambda/mu)^i)(E^(-(lambda/mu))/Factorial[i]) (i=0,1,2,3,..) Es(i): N promedio de peticiones pendientes. Es(i) = (lambda/mu) *) BeginPackage[Colas2pn] <<StatisticsLinearRegression Colas2pn::usage= Colas2pn[mu,lambda,i] Anlisis del rendimiento de un subsistema de disco que puede dar servicio a ms de una peticin a la vez. Colocar los valores mximos para mu, lambda y el nmero de peticiones pendientes. Colas2pn[inmu_,inlambda_,ini_]:= Colas2pnAux[inmu,inlambda,ini]; Colas2pnAux[inmu_,inlambda_,ini_]:= Module[{coef, Pri, Es, listacoef, listapetpend, result}, Caso2[mu_,lambda_,i_]:= If[(N[lambda/mu] >= 1.), Print[Para que la cola no crezca indefinidamente debe ser Mu mayor que Lambda.], {coef=N[lambda/mu,6], Pri=N[((lambda/mu)^i)*((E^(-(lambda/mu)))/(Factorial[i])),6], Es=N[lambda/mu,6], Print[Anlisis del rendimiento de un] Print[subsistema de disco.] Print[Resultados del Caso 2:] Print[El subsistema de disco ] Print[puede dar servicio a varias] Print[peticiones a la vez.] Print[Los valores de mu, lambda y el] Print[coeficiente son los siguientes:] Print[N[{mu,lambda,coef}]] Print[La cola no crecer] Print[indefinidamente debido a que] Print[Mu es mayor que Lambda.] Print[Las probabilidades de tener]

Print[0,1,2,3,4,...peticiones] Print[pendientes son las siguientes:] Print[N[Pri]] Print[El promedio de peticiones] Print[pendientes es el siguiente:] Print[N[Es]] Print[******************************] AppendTo[listacoef,coef] AppendTo[listapetpend,Es] AppendTo[result,{coef,Es}] } ]; Modelo2[mum_,lambdam_,im_]:= If[(N[lambdam/mum] >= 1.), Throw[Para que la cola no crezca indefinidamente debe ser Mu mayor que Lambda.], For[i=10, i<=mum, i+=10, For[j=1, j<=lambdam, j+=2, Caso2[i,j,{Range[0,im,1]}] ]; ]; ]; listacoef={}; listapetpend={}; result={}; (* Colocar los valores mximos para mu, lambda *) (* y el nmero de peticiones pendientes. *) Modelo2[inmu,inlambda,ini]; Print[ ]; Print[*****************************]; Print[******* Resmen final *******]; Print[*****************************]; Print[Lista de coeficientes lambda/mu:]; Print[listacoef ]; Print[Promedio de peticiones]; Print[pendientes para cada coeficiente:]; Print[listapetpend]; Print[Pares (coeficientes,promedio):]; Print[result]; Print[Grfico de promedio de peticiones]; Print[pendientes para cada coeficiente y]; Print[Anlisis de regresin lineal:]; ListPlot[result,PlotStyle-> {RGBColor[1,0.6,0.3],PointSize[0.023]},

AxesLabel->{Coeficientes,Esperas}, AxesOrigin->{0,0}]; Regress[result,{1,x},x, OutputList->{BestFit, BestFitCoefficients,ANOVATable, ConfidenceIntervalTable, CovarianceMatrix,CorrelationMatrix, EstimatedVariance,FitResiduals, ParameterTable,PredictedResponse, RSquared,AdjustedRSquared}] ] EndPackage[]; Codificacion en Mathematica 7.0 Para la codificacin del caso de estudio procederemos a realizar los siguiente pasos 1. 2. Ir a la opcin file que se encuentra en la barra de herramientas del programa utilizado Seleccionar la opcin new y elegir del men desplegable la opcin package(.m)

3.

Nos mostrara la siguiente pantalla

4.

En la pantalla mostrada anteriormente se codificara el caso de estudio ingresando el nombre dentrol cdigo en este caso denominado colas2pntal como se muestra de la siguiente forma:

5.

Para la compilacin del cdigo se debe presiona la tecla enter o el botn Run Package ubicado al lado derecho de la imagen mostrada

6.

7.

Una vez empaquetado el cdigo lo cerramos y abrimos la otra opcin Ir a la opcin file que se encuentra en la barra de herramientas del programa utilizado Seleccionar la opcin new y elegir del men desplegable la opcin Notebook(.nb)

8. Digitamos el nombre con que empaquetamos el cdigo Colas2pn y colocamos los valores mximos para mu, lambda y el nmero de peticiones pendientes dentro del corchete.

9. Presionamos la tecla enter del bloque numrico del teclado.

10. Los resultados detallados de las ejecuciones se muestran paso a paso en pantalla y pueden ser grabados en el mismo archivo de datos y ejecuciones, que en este caso ha sido el archivo. El cdigo digitado es el siguiente: Colas2pn[20,10,3] Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {10., 1., 0.1} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.904837, 0.0904837, 0.00452419, 0.000150806}} El promedio de peticiones pendientes es el siguiente: 0.1 ****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {10., 3., 0.3} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.740818, 0.222245, 0.0333368, 0.00333368}} El promedio de peticiones pendientes es el siguiente: 0.3 ****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {10., 5., 0.5} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes:

{{0.606531, 0.303265, 0.0758163, 0.0126361}} El promedio de peticiones pendientes es el siguiente: 0.5 ****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {10., 7., 0.7} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.496585, 0.34761, 0.121663, 0.0283881}} El promedio de peticiones pendientes es el siguiente: 0.7 ****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {10., 9., 0.9} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.40657, 0.365913, 0.164661, 0.0493982}} El promedio de peticiones pendientes es el siguiente: 0.9 ****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {20., 1., 0.05} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.951229, 0.0475615, 0.00118904, 0.0000198173}} El promedio de peticiones pendientes es el siguiente: 0.05

****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {20., 3., 0.15} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.860708, 0.129106, 0.00968296, 0.000484148}} El promedio de peticiones pendientes es el siguiente: 0.15 ****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {20., 5., 0.25} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.778801, 0.1947, 0.0243375, 0.00202813}} El promedio de peticiones pendientes es el siguiente: 0.25 ****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2: El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {20., 7., 0.35} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.704688, 0.246641, 0.0431621, 0.00503558}} El promedio de peticiones pendientes es el siguiente: 0.35 ****************************** Anlisis del rendimiento de un subsistema de disco. Resultados del Caso 2:

El subsistema de disco puede dar servicio a varias peticiones a la vez. Los valores de mu, lambda y el coeficiente son los siguientes: {20., 9., 0.45} La cola no crecer indefinidamente debido a que Mu es mayor que Lambda. Las probabilidades de tener 0,1,2,3,4,...peticiones pendientes son las siguientes: {{0.637628, 0.286933, 0.0645599, 0.00968398}} El promedio de peticiones pendientes es el siguiente: 0.45 ****************************** ***************************** ******* Resmen final ******* ***************************** Lista de coeficientes lambda/mu: {0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45} Promedio de peticiones pendientes para cada coeficiente: {0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45} Pares (coeficientes,promedio): {{0.1, 0.1}, {0.3, 0.3}, {0.5, 0.5}, {0.7, 0.7}, {0.9, 0.9}, {0.05, 0.05}, {0.15, 0.15}, {0.25, 0.25}, {0.35, 0.35}, {0.45, 0.45}} Grfico de promedio de peticiones pendientes para cada coeficiente y Anlisis de regresin lineal: {StatisticsLinearRegressionBestFit -> -2.37982 10-17 + 1. x, StatisticsLinearRegressionBestFitCoefficients -> {-2.37982 10-17 , 1.}}

Resultados y Conclusiones La utilizacin de Mathematica 7.0 para la resolucin del problema planteado ha resultado muy satisfactoria, destacndose las facilidades y potencia del producto. Los resultados obtenidos ratifican, como era de esperarse, las previsiones tericas en cuanto a las diferencias en tiempos en cola de espera en disco de las distintas peticiones, segn las distintas cargas de trabajo simuladas. La modalidad implementada de mostrar los resultados paso a paso por pantalla permite observar el comportamiento del algoritmo y facilita la comprensin de su funcionamiento. Como era de esperarse, se observa que en todos los casos, la forma de la curva de los grficos obtenidos es similar, aprecindose un muy buen ajuste de los valores obtenidos (y graficados) a una recta. Asimismo se observa un leve impacto en los tiempos de espera ante incrementos de la carga de trabajo, expresada segn los coeficientes considerados, obtenindose que el nmero promedio de peticiones pendientes.

También podría gustarte