Algunos resultados estadísticos sobre el acceso a los datos

Anuncio
Algunos resultados estadı́sticos sobre el acceso
a los datos en dispositivos de almacenamiento
informáticos
F. Javier Gil Chica
junio, 2010
Resumen
En este pequeño artı́culo se reúnen algunos resultados estadı́sticos
en relación con el acceso a datos informáticos. Unos dependen de la
geometrı́a que subyace a los datos (ej. discos duros divididos en pistas
y sectores) y otros son más generales.
1. Parámetros dinámicos de un disco
duro
En relación con los discos duros, introduciremos tres parámetros
dinámicos: tiempo de búsqueda, latencia rotacional y tiempo de transferencia. Un disco duro es un medio de almacenamiento popular donde
sobre la superficie de un disco de material plástico, aluminio u otro material no magnético, se deposita una capa de material ferromagnético.
Un cabezal se sitúa a una distancia variable del centro del disco. Cuando éste gira, el cabezal ((dibuja)) un cı́rculo sobre el sustrato. Este
cı́rculo se denomina ((pista)), a su vez dividida en un número de partes
iguales llamadas ((sectores)). Cuando hay más de una superficie ferromagnética (ej. un conjunto de discos montados coaxialmente) al conjunto de pistas situadas a la misma distancia del centro se le llama
((cilindro)). Nosotros supondremos que existe una sola superficie ferromagnética y un sólo cabezal. Nuestro análisis es independiente del
método fı́sico usado para grabar o leer los datos.
Se llama ((tiempo de búsqueda)), τb , al tiempo empleado por el
cabezal en desplazarse hasta la pista donde se encuentra el sector
que quiere leerse o escribirse. ((Tiempo de latencia rotacional)), τl , es
el tiempo necesario para que, una vez colocado el cabezal sobre la
1
pista correcta, el sector buscado comience a pasar bajo él. Por término
medio, el tiempo de latencia rotacional es igual al tiempo necesario
para que el disco complete media vuelta. Finalmente, el tiempo de
transferencia, τt , es el tiempo que tarda el sector en pasar bajo el
cabezal. Depende del número de sectores por pista y de la velocidad
angular de rotación del disco.
2.
Tiempos de transferencia y latencia
El tiempo de transferencia es el tiempo que invierte un sector en
pasar bajo el cabezal de lectura, pues no tiene sentido que sea preciso
hacer más de una pasada para leer un sector. Los datos contenidos en
el sector han de ser leı́dos ”al vuelo”. Si el disco gira a una velocidad
de ω rad s−1 , quiere decir que completa un número de vueltas por
segundo igual a ω/2π, o lo que es igual, que invierte en cada vuelta un
tiempo de 2π/ω. Si una pista contiene n sectores, entonces el tiempo
que se tarda en leer un sector es τt = 2π/(nω).
En los discos actuales, el número de sectores por pista no es constante, luego la expresión para el tiempo de transferencia anterior
hemos de entenderla como función de n. Si el rango de sectores por
pista se extiende desde na hasta nb , entonces el tiempo medio de transferencia es
τ̄t =
1
nb − na
Z
nb
1
2π dn
2π
nb
=
ln
ω n
ω nb − na na
na
(1)
Respecto al tiempo de latencia, es el tiempo medio que ha de esperar el cabezal hasta que el sector buscado pasa por debajo. Este
tiempo será de media, el tiempo que invierte el disco en girar media
vuelta, luego τl = π/ω. Hay medios de almacenamiento que no giran
a velocidad angular constante, sino de forma que la velocidad lineal
de los datos que pasan bajo el cabezal es constante. Consideremos 1
un disco cuyas pistas se extienden entre un radio interior a y un radio
exterior b, de forma que la velocidad lineal es constante. La velocidad
angular a una distancia r del centro del disco es entonces ω = v/r, y
el tiempo de latencia a esa distancia es τl (r) = πr/v. El tiempo medio
de latencia se calcula entonces como
τ̄l =
1
1
b−a
Z
b
a
τl (r)dr =
π
(b + a)
2v
Este problema fue propuesto en un examen de la asignatura Periféricos
2
(2)
3. Tiempo medio de búsqueda. Caso
discreto
Supongamos un disco compuesto de un gran número, N , de pistas.
Calcularemos el tiempo medio de búsqueda. Para ello introduciremos
un nuevo parámetro, τpp , que es el tiempo que tarda el cabezal en
desplazarse de una pista a otra contigua. El tiempo necesario para
que el cabezal se mueva i pistas es t(i) = iτpp . El tiempo medio que
buscamos es entonces:
τ̄ =
N
−1
X
t(i)p(i)
(3)
i=0
donde p(i) es la probabilidad de que se produzca un salto de i
pistas y el mayor salto posible es de N − 1 pistas. Supondremos que
los saltos del cabezal son aleatorios. No existe correlación entre la
posición actual del cabezal y la posición siguiente. El número total
de saltos posibles del cabezal, incluyendo el salto ((nulo)), es N 2 , y el
número de formas posibles de saltar i pistas es 2(N − i), donde el
factor 2 da cuenta de las dos direcciones en que pueden efectuarse los
saltos. Por otro lado, al ser t(0) = 0, la sumatoria se reduce a
τ̄ =
N
−1
X
iτpp
i=1
−1
2(N − i)
2τpp NX
(N i − i2 )
=
N2
N 2 i=1
(4)
Del hecho de que
N
X
1
i = N (N + 1)
2
i=1
(5)
1
i2 = N (N + 1)(2N + 1)
6
i=1
(6)
y que
se sigue que
τ̄ =
N
X
2τpp 1
1
(N − 1)N 2 − (N − 1)N (2N − 1)
N2 2
6
(7)
Cuando N 2 >> N , la expresión anterior tiende a
1
τ̄ = N τpp
(8)
3
Es decir, el tiempo medio de búsqueda es el tiempo preciso para
que el cabezal recorra un tercio del disco.
3
4. Desplazamiento medio, caso continuo
Una forma distinta de llegar al mismo resultado consiste en calcular la distancia media que recorrerá el cabezal. El cálculo puede
hacerse discreto pero, para no repetir razonamientos anteriores, razonaremos sobre el continuo. En efecto, considérese un segmento de
recta de longitud unidad y sea sobre ese segmento un punto situado a
una distancia x del origen. La distancia media del resto de puntos de
la recta a x viene dada por
η(x) =
Z
x
(x − y)dy +
0
Z
1
(y − x)dy = x2 − x +
x
1
2
(9)
Esta función no es monótona, sino que tiene un mı́nimo cuando
dη(x)
= 2x − 1 = 0
dx
(10)
de donde, cuando x = 21 , la distancia media a x es mı́nima. Ası́,
en un disco con ((poco trabajo)) es rentable después de cada operación
desplazar el cabezal al punto medio. El caso es similar al de un jugador
de tenis: entre resto y resto vuelve al centro de la pista, porque desde
allı́ la distancia media a recorrer para alcanzar el siguiente resto es
mı́nima.
La distancia media que ha de moverse el cabezal se puede calcular
entonces como la ((media de las medias)):
η̄ =
Z
1
η(x)dx =
0
Z
1
0
1
1
(x2 − x + )dx =
2
3
(11)
Como segundo ejemplo, consideremos el caso de un disco de dos
cabezales. Pongámonos en antecedentes. Los sistemas RAID son un
concepto que proviene de principios de los años 80. En aquella época,
los discos tenı́an capacidades de unas pocas decenas de megabytes,
y tiempos medios entre fallos de unas 40.000 horas. Tenı́a sentido
diseñar, sobre esta base, sistemas más capaces y fiables. Treinta años
después los discos tienen capacidades del orden del Terabyte, con tiempos medios entre fallos superiores al millón de horas. De la misma forma, se han reducido los tiempos de latencia y de búsqueda. En estas
circunstancias, tiene sentido replantear la utilidad de los RAID, y buscar algún tipo de paralelismo intra-disco. El caso más sencillo consiste
en dotar a un disco de dos o más cabezales. Supongamos un disco con
dos cabezales. Los cabezales pueden actuar cada uno sobre porciones
disjuntas del disco, o bien moverse por toda la extensión del disco.
Supondremos que la probabilidad de acceso a las distintas pistas es
4
uniforme. En el caso en que los cabezales acceden a regiones disjuntas
del disco, pongamos cada uno de ellos a la mitad del disco, supuesto
como un segmento lineal en el intervalo [0, 1], el desplazamiento medio
de cada cabezal es un tercio de un medio, es decir, un sexto. Comparemos ahora con el caso en que los dos cabezales pueden moverse en el
intervalo [0, 1]. Sea x la posición del primer cabezal e y la posición del
segundo. La única restricción es que x <= y. Cada lectura o escritura
se realiza por el cabezal más cercano. Ası́, el primer cabezal abarca
el intervalo [0, (x + y)/2) y el segundo el intervalo [(x + y)/2, 1]. El
desplazamiento medio es entonces
Z
x=1
dx
x=0
Z
y=1
y=x
dy
1−x
"Z
z=(x+y)/2
|x − z|dz +
z=0
Z
z=1
|y − z|dz
z=(x+y)/2
#
(12)
Aquı́ hemos tenido en cuenta de que las distribuciones de probabilidad para x, y y z son uniformes, por tanto las correspondientes
densidades de probabilidad son constantes. Para x y z, que varı́an
en el intervalo [0, 1], la densidad de probabilidad es la unidad. Para
y sin embargo, que varı́a entre x y 1, la densidad de probabilidad es
(1−x)−1 . Cada una de las dos últimas integrales se puede descomponer
en dos, por ejemplo:
Z
z=(x+y)/2
|x − z|dz =
z=0
Z
z=x
(x − z)dz +
z=0
Z
z=(x+y)/2
(z − x)dz (13)
z=x
el cálcuo es directo y conduce a que el desplazamiento medio es de
0,25, superior al valor 1/6 = 0,1667 que se obtendrı́a restringiendo el
movimiento de cada cabezal a un semi-intervalo.
5.
El disco duro del hombre pobre
Antes de generalizar el resultado de la sección anterior para el
caso en que el número de sectores por pista es variable de una pista
a otra, consideremos el problema llamado del ((disco duro del hombre
pobre)) 2 . Éste es un disco que tiene sólo dos pistas. Una pista A con x
sectores y una pista B con y sectores. El tiempo que invierte el cabezal
en moverse de una pista a otra es q, y la velocidad de rotación del disco
es ω. Calculemos el tiempo medio de acceso a los sectores, que incluye
tanto el tiempo de búsqueda como el tiempo de latencia rotacional.
2
Propuesto en un examen de la asignatura Periféricos de la licenciatura en Ingenierı́a Informática en la E.P.S. de la Universidad de Alicante
5
Suponemos que no existe correlación entre los sucesos ((encontrarse el
cabezal sobre una pista)) y ((recibir una petición para leer/escribir un
sector en esa pista)). El tiempo medio que buscamos es
τ=
X
p(i)t(i)
(14)
i
donde ahora i es sólo un ı́ndice que indica dos posibles sucesos. Si
A → B indica que el cabezal se encuentra en A y recibe la orden de
dirigirse a B, es claro que
τ
= p(A → A)t(A → A)
+p(A → B)t(A → B)
+p(B → B)t(B → B)
+p(B → A)t(B → A)
(15)
pero
t(A → A) = t(B → B) =
π
ω
(16)
y
t(A → B) = t(B → A) = q +
π
ω
(17)
mientras que
p(A → A) =
x
x
x+yx+y
p(A → B) = p(B → A) =
x
y
x+yx+y
(18)
(19)
y
p(B → B) =
y
y
x+yx+y
(20)
de todo lo cual se sigue
τ=
π
2xy
+
q
ω (x + y)2
(21)
(Una variación sobre este problema, propuesta un tiempo después,
pedı́a calcular τ si ocurre que el cabezal, que sufre una averı́a, se
mueve aleatoriamente entre una pista y la otra entre cada operación
y la siguiente. La respuesta no requiere cálculo alguno, sino sólo saber
qué está pasando, y es obvia: τ = ωπ + 2q )
6
6.
Número variable de sectores por pista
Seguimos considerando que N es el número de pistas (grande),
y que no existe correlación entre la posición actual del cabezal y la
posición siguiente. Sea ni el número de sectores en la pista i, de tal
manera que el número total de sectores es
ν=
X
ni
(22)
i
La probabilidad de que el cabezal se encuentre sobre la pista i es
ni
(23)
ν
y la probabilidad de que reciba una petición para la pista j es
pi =
nj
ν
La probabilidad de la transición i → j es
pj =
(24)
ni nj
ν2
operación en la que se emplea un tiempo
(25)
pij =
tij = |j − i|τpp
(26)
El tiempo medio que buscamos es entonces
τ̄ =
X
pij tij =
ij
X
j


X ni nj
i<j
ν2
(j − i)τpp +
X ni nj
i>j
ν2

(i − j)τpp  (27)
El resultado analı́tico que obtengamos dependerá de la forma de la
función ni . Puesto que la longitud de las pistas (que enumeramos correlativamente desde el interior al exterior del disco) crece linealmente
con el radio, supondremos que
ni = a + bi
(28)
ni nj = a2 + b2 ij + ab(i + j)
(29)
de donde
el álgebra es engorrosa, pero podemos usar algún programa de
cálculo simbólico para ayudarnos en los cálculos. Obtenemos ası́ una
expresión polinómica en N . Quedándonos con la potencia más alta
tenemos finalmente:
7
τ̄ =
7.
τpp b2 3
N
ν2 4
(30)
Matriz bidimensional de datos
Desde hace años se encuentran en desarrollo tecnologı́as alternativas a los discos duros. Una de ellas acude a un soporte bidimensional estático para los datos (una matriz de bits) sobre los que un
conjunto grande de micro-cabezales efectúan las operaciones de lectura y escritura. En 2005, IBM presentó una versión operativa de su
proyecto Milpiés y en la misma lı́nea Nanochip Inc. pretende mostrar
sus primeros chips de 100 GB escalables a 1 TB a lo largo de 2009.
Las dos ventajas principales son a) que el sustrato para los datos es
estático: no es preciso mantenerlo en rotación y por tanto consumiendo
energı́a, lo que, aparte de ahorrar ésta, elimina el tiempo de latencia.
Esto los hace adecuados para la informática móvil. b) que las operaciones de lectura/escritura se realizan en paralelo, con lo cual es más
fácil incrementar el ancho de banda.
Si se dispone de una matriz de cabezales sobre el sustrato donde se
encuentran almacenados los datos (polı́mero en el caso de IBM), cada
cabezal individualmente accede a un área que supondremos rectangular 3 .
Consideremos un sustrato cuadrado de lado 1 sobre el que se desplaza un cabezal. Si el desplazamiento del cabezal desde una posición
dada a una de coordenadas (x, y) se efectúa en dos movimiento independientes, uno en el eje x y otro en el eje y, entonces es aplicable
a cada uno de ellos el resultado encontrado anteriormente para el caso continuo monodimensional, del que sabemos que el desplazamiento
medio es de 1/3. Por tanto, si p y q son las velocidades de desplazamiento del cabezal a lo largo de cada eje, el tiempo medio de acceso a
los datos será
1
τ̃ =
3
1 1
+
p q
3
(31)
El dispositivo de IBM es un sustrato cuadrado sobre el que se desplaza una matriz de
nanoagujas
8
8.
Almacenamiento jerárquico
8.1.
Dos niveles
Es un hecho que la cantidad de datos que desean almacenarse es
siempre mayor o igual que el espacio de almacenamiento disponible.
Normalmente, se desea poder recuperar datos en el menor tiempo
posible, pero, al mismo tiempo, mantener lo más bajo posible el coste
del sistema. Una solución consiste en colocar en un medio de almacenamiento rápido los datos a los que se accede con más frecuencia, y
en un medio más lento, pero menos costoso, aquellos datos que con
menor probabilidad necesitarán ser recuperados. La cuestión que se
plantea en este apartado es la de encontrar la distribución que asegura el equilibrio óptimo entre dos necesidades contrapuestas: velocidad
de acceso y coste reducido.
Imaginemos que se producen datos a un ritmo medio constante, y
que es preciso mantenerlos almacenados durante un periodo de tiempo
dado antes de desecharlos. De forma arbitraria, asignaremos el valor
1 a este periodo de tiempo, y de la misma forma asignaremos el valor de 1 al tiempo medio de acceso y coste del primer medio. En un
primer cálculo, supondremos la existencia de dos medios distintos,
estando caracterizado el segundo de ellos por un tiempo medio de acceso t > 1 y un coste c < 1. Evidentemente, la distribución óptima
de los datos dependerá de la probabilidad de acceso a los datos según
su antigüedad. Ası́, si esta probabilidad decrece rápidamente con el
tiempo tiene sentido mantener en el primer medio una pequeña cantidad de datos, y pasar el resto al segundo medio. A la inversa, si
esta probabilidad decrece lentamente tiene sentido mantener mayor
cantidad de datos en el primer medio, puesto que será relativamente
probable tener que acceder a los mismos. Un modelo plausible para
la distribución de probabilidad de acceso a los datos en función de su
antigüedad es:
p(x) = p(0) [1 − xn ]
(32)
para cada 0 ≤ x ≤ 1. Aquı́, n es un entero mayor o igual que la
unidad, y p(0), la densidad de probabilidad para x = 0, que viene
dada por la condición de normalización:
Z
1
p(x)dx = 1
(33)
0
de donde se sigue:
p(0) = 1 +
9
1
n
(34)
Nuestro objetivo es minimizar el tiempo medio de acceso sin penalizar el precio del sistema. Sea T el tiempo medio de acceso, y C el
coste total. Asignemos arbitrariamente la unidad tanto para el tiempo
de acceso como el coste del primer medio, y sean c y t el coste y tiempo
medio de acceso para el segundo medio. Finalmente, sea 0 ≤ z ≤ 1
el intervalo de tiempo durante el cual los datos generados suponemos
que a ritmo constante son almacenados en el primer medio, antes de
ser traspasados al segundo.
T =
Z
z
p(x)dx + t
0
Z
1
p(x)dx
(35)
z
Se ve enseguida que, salvo términos constantes:
"
n+1
z n+1
T =
)
(1 − t)(z −
n
n+1
#
(36)
Y de la misma forma:
C = z + c(1 − z)
(37)
Ahora, queremos minimizar la cantidad:
J = T + αC
(38)
donde α es un factor de peso. Siguiendo el procedimiento habitual,
de:
∂J
=0
∂z
(39)
encontramos:
n α(c − 1)
z = 1−
n + 1 (1 − t)
1
n
(40)
que conduce a la condición adicional para α:
0≤α≤
8.2.
n+11−t
n c−1
(41)
Múltiples niveles
Supongamos la partición del intervalo (0, 1) mediante un conjunto
de valores intermedios τi , supuesto que τi > τi−1 . Mantenemos las
suposiciones previas respecto a la probabilidad de acceso a datos de
antigüedad x. Cada uno de los intervalos de tiempo puede almacenar
una cierta cantidad de información, que es proporcional al tamaño del
intervalo. Sean ti y ci los tiempos de acceso y coste por megaocteto
10
en el intervalo (τi−1 , τi ) 4 . La probabilidad total de acceso en este
intervalo viene dada por:
pi =
Z
τi
p(0) (1 − xn ) dx
(42)
τi−1
El tiempo medio de acceso viene dado por:
X
pi ti
(43)
γci (τi − τi−1 )
(44)
T =
i
y el coste total del sistema por:
C=
X
i
Donde γ es una constante de proporcionalidad que convierte de
unidades de tiempo a megaoctetos, suponiendo un ritmo constante en
la producción de datos.
Queremos minimizar J = T + βC, y esto se consigue eligiendo un
conjunto de τj para el cual:
∂J
=0
∂τj
(45)
β es una constante que abarca tanto γ como el factor de peso
deseado para C frente de T . Operando:
n+1
(tj − tj+1 )(1 − τjn ) + β(cj − cj+1 ) = 0
n
Definiendo:
(46)
∆tj
= tj+1 − tj
(47)
∆cj
= cj+1 − cj
(48)
obtenemos finalmente:
τj =
n ∆cj
1+β
n + 1 ∆tj
!1
n
(49)
Por supuesto, para cada j debe haber un τj > τj−1 que conduzca
a:
∆cj−1
∆cj
>
∆tj
∆tj−1
4
(50)
Se sobreentiende: en el medio de almacenamiento en que se almacenan los datos con
antigüedad entre τi−1 y τi
11
8.3.
Dos ejemplos
Considérese un disco Ultra Wide SCSI con interfaz de fibra óptica
como un primer medio, y un disco ATA como el segundo medio. n se
obtiene de forma experimental, y suponemos que vale n = 2. Aproximadamente, t = 2 y c = 0,5, queqconduce al máximo permisible para
α de 3. Para estos valores, τ1 = 23 .
Como un segundo ejemplo, considérese un disco ATA como el
primer medio y una cinta DAT como el segundo. Para la cinta, aproximadamente, c = 0,6 y t = 10, con un valor máximo de α = 33.
Manteniendo el valor n = 2 se obtiene τ1 ≃ 0,15
La discusión anterior, si bien retiene su interés teórico, es preciso
reconocer que en la práctica queda obsoleta, debido al constante incremento de velocidad en las unidades de disco, al tiempo que aumenta
su capacidad y disminuye el precio por MB.
9.
Tamaño óptimo del bloque
Hemos dicho que la superficie de los discos se divide en pistas,
y que cada pista se divide en un número de partes iguales llamadas
((sectores)). Nuestros cálculos han supuesto que las operaciones de lectura/escritura no están correlacionadas, de forma que la probabilidad
que tiene el cabezal de ir a una pista j es independiente de la pista
actual i. Esto puede ser una buena aproximación cuando se efectúan
muchas lecturas independientes de archivos pequeños. En otros casos,
por ejemplo cuando se efectúan copias de seguridad, se accede a datos
bien localizados en una zona del disco, ya que el propio sistema de
archivos se ocupa de mantener baja la fragmentación. En ese caso, las
lecturas/escrituras son esencialmente secuenciales. Además, los sectores tienen un tamaño pequeño (durante décadas 512 bytes), por lo
que se agrupan en unidades de mayor tamaño llamadas ((bloques)), con
tamaños tı́picos que varı́an entre los 4k y los 64k.
Comparemos los dos tipos de operaciones: aleatoria y secuencial,
en relación con el tamaño del bloque. Si el bloque es muy pequeño
y las lecturas son secuenciales, este pequeño tamaño no tiene impacto en la velocidad de acceso a los datos: una vez desplazado el
cabezal, encontrará los datos de forma contigüa, si bien repartidos en
un número grande de bloques. Por contra, si el tamaño del bloque
es grande (imaginémoslo muy grande), esto tiene un impacto negativo sobre el rendimiento en lecturas aleatorias, pues cada bloque contendrá muchos sectores, pero será preciso leer cada bloque completo
para extraer una pequeña parte de los datos que contiene, y en una
secuencia de lecturas aleatorias será preciso volver varias veces, con el
12
consiguiente desplazamiento del cabezal, a bloques que ya se leyeron
antes, pero buscando ahora porciones de datos diferentes.
Puesto que en los sistemas reales se usan tanto accesos aleatorios
como secuenciales, demostraremos que existe un tamaño óptimo para
el bloque que depende de la fracción de accesos aleatorios al sistema
en relación al número total de accesos.
Consideremos la lectura de n bloques secuenciales sobre una unidad
de disco. El tiempo invertido es:
τs = τb + τl + nτt
(51)
Sin embargo, si los bloques se encuentran distribuidos aleatoriamente sobre el disco, el tiempo invertido en su lectura será:
τa = n(τb + τl + τt )
(52)
y vemos que, cuando n se hace muy grande, la relación entre ambos
tiempos tiende a:
τs
τt
=
τa
τb + τl + τt
(53)
Imaginemos una base de datos compuesta de P registros, de los
cuales una fracción de ellos es actualizada cada dı́a. Supongamos que,
al final del dı́a, se hace una copia de seguridad, que supone una lectura secuencial de todos los registros. Si α es la fracción de registros
modificados, suponiendo que esos registros están distribuidos aleatoriamente, el tiempo que se invierte en modificarlos es
αP (τb + τl + τt )
(54)
Cuando se quiere hacer la lectura secuencial para la copia de seguridad, el tiempo invertido es
PS
τb
Q
(55)
donde S es el número de bytes por cada registro y Q es el tamaño
de cada bloque, de forma que P S/Q es el número de bloques. Justifiquemos la ecuación anterior. Cuando el tamaño del registro es muy
pequeño en comparación con el tamaño del bloque, basta mover el
cabezal al inicio del bloque para leer todos los registros contenidos en
él. Ası́, el cabezal deberá invertir τb tantas veces como bloques ocupen
los datos. Aquı́ no presuponemos que todos los bloque son contiguos,
sino que queremos leerlos secuencialmente, lo que es una cosa distinta. Si el tamaño del registro es superior al tamaño del bloque y los
bloques no son contiguos, la fórmula anterior sigue siendo correcta.
13
Finalmente, si el tamaño del registro es superior al del bloque y los
bloques ocupados por un registro son contiguos, la expresión anterior sobre-estima el tiempo. En cualquier caso, esto no es más que un
modelo, y como tal discutible.
El tiempo total invertido entre las actualizaciones aleatorias y la
copia de seguridad es la suma de ambas. Ahora bien, el tiempo de
transferencia es proporcional al tamaño del bloque, de forma que τt =
βQ, ası́ que el tiempo total invertido es una función de Q:
T (Q) =
PS
τb + αP (τb + τl + τt )
Q
(56)
Esta función tiene un mı́nimo que se alcanza cuando
PS
dT
= αβP − 2 τb = 0
dQ
Q
(57)
de donde se sigue que el tamaño óptimo para el bloque es
Q=
10.
s
Sτb
αβ
(58)
Efecto de la localidad de los datos
El efecto de ((localidad)) consiste en que, desde la posición actual
del cabezal, la probabilidad de acceder a los datos que se encuentran
más cerca es mayor. Es la forma común en que operan las unidades
de disco. Un sistema de archivos puede contener decenas de miles de
ellos, de los cuales en una sesión son usados una fracción muy pequeña,
tı́picamente inferior al 1 %. En estas condiciones, el cabezal trabaja
sobre zonas definidas del disco, y es de esperar que el tiempo medio
de búsqueda se reduzca.
Para modelar este comportamiento buscamos una función densidad de probabilidad p(z). Normalizando a 1 el tamaño del disco, esta
densidad ha de cumplir dos condiciones: a) que sea máxima cuando
z = 0 y la condición de normalización
Z
1
p(z)dz = 1
(59)
0
Una función que cumple estas caracterı́sticas es una del tipo
p(z) = (n + 1)(1 − z)n
(60)
con n >= 1. En estas condiciones, la distancia media que recorre
el cabezal se expresa como:
14
η̃ =
Z
0
1 Z x
p(x − y)(x − y)dy +
0
Z
1
p(y − x)(y − x)dy dx
x
(61)
En nuestro modelo, ésta es una función de n. El cálculo es directo,
y proporciona: η̃(n = 4) = 0,238, η̃(n = 6) = 0,194, η̃(n = 8) = 0,164.
A medida que aumenta n, se incrementa la pendiente de p(z) en z = 0,
es decir, disminuye más rápidamente la probabilidad de acceder a los
datos colindantes a la posición actual del cabezal. Por consiguiente, se
reduce el desplazamiento medio del cabezal. Ası́, para el caso n = 6
el tiempo medio de búsqueda es 0,194N τpp , un 58 % inferior al valor
que obtuvimos sin tener en cuenta la localidad.
11.
NOS y tiempo medio de espera
Imaginemos una situación en que un disco recibe una gran cantidad
de peticiones de lectura/escritura por unidad de tiempo. Si el ritmo
media de llegada de peticiones supera al ritmo medio al que el disco
puede atenderlas, la teorı́a elemental de colas prevé que el buffer donde
se almacenen las peticiones pendientes quedará rápidamente saturado.
A partir de ese momento, las peticiones serán rechazadas. Para ver que
esto es ası́, consideremos un disco sometido a una carga moderada y
continua de trabajo, de tal forma que la cola de peticiones pendientes
alternativamente aumentará y disminuirá. A lo largo de un periodo de
tiempo significativamente largo (en relación con el tiempo medio entre
peticiones), es obvio que se producirán, por término medio, tantos
incrementos como disminuciones en el número de peticiones en cola.
Si no fuese ası́, la cola tenderı́a a crecer sin lı́mite, o tenderı́a a estar
vacı́a. Podemos identificar el estado de la cola simplemente con el
número de peticiones pendientes que contiene. Llamemos λ al número
medio de peticiones por unidad de tiempo que llegan a la cola, y µ
al número medio de peticiones por unidad de tiempo servidas por el
disco. Puesto que la cola, a largo plazo, se encuentra en equilibrio (es
decir, no tiende ni a quedar vacı́a ni a crecer sin lı́mite) por término
medio el número de transiciones desde el estado n al n + 1 (habı́a n
elementos en la cola y llega una nueva petición) será igual al número de
transiciones entre el estado n + 1 y el estado n (habı́a n + 1 peticiones
pendientes y el disco ha atendido a una de ellas). Llamemos pj a la
probabilidad de que la cola se encuentre en el estado j. Razonando
sobre el número de transiciones 0 → 1 y 1 → 0 podemos escribir que
λp(0) = µp(1)
15
(62)
y sucesivamente para los estados (1, 2), (2, 3), etc. lo que conduce
al sistema de ecuaciones
λp(0) = µp(1)
λp(1) = µp(2)
λp(2) = µp(3)
... = ...
λp(j) = µp(j + 1)
... = ...
(63)
De la primera:
p(1) =
λ
p(0)
µ
(64)
de la segunda:
p(2) =
2
λ
µ
p(0)
(65)
p(j) =
j
p(0)
(66)
y en general
λ
µ
La probabilidad p(0) se obtiene de la condición de normalización
X
p(j) = 1
(67)
j
Si consideramos por simplicidad que la cola puede tener longitud
infinita, y llamando r = λ/µ:
p(0)
∞
X
rj = p(0)
j=0
1
=1
1−r
(68)
de donde
p(0) = (1 − r)
(69)
p(j) = (1 − r)rj
(70)
y finalmente
Esto permite calcular el tamaño medio de la cola:
16
Ñ =
∞
X
jp(j) = (1 − r)
∞
X
jrj =
j=0
j=0
r
1−r
(71)
Contra lo que pudiese parecer, cuando los ritmos medios de llegada
y salida son iguales, r = 1, la longitud media de la cola tiende a ∞.
Pero precisamente cuando hay un gran número de peticiones en
cola es cuando el disco está sirviendolas a su velocidad máxima, pues
no tiene intervalos de inactividad. Es por eso que distinguimos entre
el ((número de operaciones por segundo)) y el tiempo medio de espera.
Pudiera parecer que si el número medio de operaciones por segundo,
NOS, es muy alto, será muy bajo el tiempo de espera, y viceversa. La
relación es justamente la contraria, como hemos demostrado.
Otra forma de ver el problema es centrándonos en uno de los algoritmos de movimiento del cabezal cuando el disco se encuentra cargado
de trabajo. Si hay muchas peticiones, siempre habrá alguna cercana a
la posición actual del cabezal. Si esto es ası́, lo más rápido será atender
a la petición más cercana. Entonces, el disco sirve peticiones a su mayor velocidad. Pero como el cabezal tiende a quedarse siempre cerca de
su posición inicial, las peticiones para las pistas alejadas tendrán que
esperar mucho, y ası́ se hará inaceptablemente grande el tiempo medio
de espera. Trataremos este problema en la sección siguiente, pero antes
ilustraremos los conceptos introducidos sobre colas en equilibrio con
un par de casos particulares.
Sea el caso en que el ritmo de servicio crece con el número de
clientes. Por ejemplo, esto puede modelar un sistema de discos que
sirven peticiones en paralelo. Supongamos que el ritmo de servicio
es (1 + k)µ0 . Llamando r = λ/µ0 y planteando las ecuaciones del
equilibrio de la cola, se encuentra enseguida que
rk
p(0)
(k + 1)!
(72)
p(k) = 1
(73)
∞
rk
rk+1
p(0) X
=1=
(k + 1)!
r k=0 (k + 1)!
k=0
(74)
p(k) =
De
∞
X
k=0
se sigue que
p(0)
∞
X
Pero la última sumatoria es er − 1, de donde
p(0) =
r
er − 1
17
(75)
A partir de aquı́ podemos calcular el número medio de clientes en
cola:
N=
∞
X
kp(k) = p(0)
k=0
Sabiendo que
krk
(k + 1)!
k=0
∞
X
rk
er − 1
=
(k + 1)!
r
k=0
∞
X
(76)
(77)
derivando respecto a r ambos miembros de la ecuación anterior y
multiplicando y dividiendo por r2 se encuentra la sumatoria buscada
sin dificultad, y finalmente
rer
−1
(78)
er − 1
Tomemos un ejemplo adicional. Lo llamaremos ”cola con botón
de pánico”. Es una cola normal, con ritmo medio de llegada λ y ritmo medio de servicio µ, pero con una particularidad: cuando la cola
está llena, y eso sucede cuando hay exactamente X clientes, la llegada
de un nuevo cliente provoca el descarte de ese nuevo cliente y de todos
los demás, con lo que la cola queda vacı́a. Las ecuaciones de equilibrio
para una cola ası́ son
N=
λp(0) = µp(1) + λp(X)
λp(1) = µp(2)
λp(2) = µp(3)
... = ...
λp(X − 1) = µp(X)
(79)
Tomando desde la segunda en adelante, escribiendo las probabilidades sucesivas en función de p(1) tenemos que, en particular,
p(X) = rX−1 p(1), donde r = λ/µ. Sustituyendo esta expresión para
p(X) en la primera, despejamos p(1) en función de p(0), e igualmente
para las siguientes, teniendo que, en general:
rk
p(0)
(80)
1 + rX
que es válida para k > 0. Del hecho de que la suma de todas las
probabilidades es la unidad:
p(k) =
"
X
X
rk
p(0) 1 +
1 + rX
k=1
18
#
=1
(81)
De aquı́ se sigue
"
r 1 − rX
p(0) = 1 +
1 − r 1 + rX
#−1
(82)
y de aquı́, simplificando:
p(k) =
(1 − r)rk
1 + rX − 2rX+1
(83)
Véase que cuando X → ∞, p(k) → (1 − r)rk , de acuerdo con el
resultado anterior para colas ilimitadas. Por otro lado, el denominador
es una constante que depende sólo del tamaño de la cola, para r dado, ası́ que el número medio de elementos en la cola coincide con el
obtenido anteriormente, dividido por 1 + rX − 2rX+1 :
N=
r
(1 − r)(1 + rX − 2rX+1 )
(84)
Esta expresión no es válida para cualquier r, sino que lo es sólo en
el intervalo en que N < X.
12.
Nueva visita a SCAN
En la búsqueda de un equilibrio entre el NOS y el tiempo medio de
espera, uno de los primeros algoritmos propuestos es SCAN. Consiste
simplemente en recorrer el disco desde un extremo al otro, atendiendo
todas las peticiones que se encuentren en el camino. Esto presupone
que después de cada petición atendida la cola es ordenada, de manera
que se atienda a la petición dirigida a la posición más cercana a la
actual del cabezal, en la dirección de su movimiento. Una variante de
este algoritmo tiene en cuenta que, una vez que el cabezal ha llegado
a un extremo del disco, no tiene sentido volver inmediatamente sobre
sus pasos, pues lo hará sobre una porción de disco que acaba de ser
((barrida)) y donde es poco probable que haya nuevas peticiones que
atender. Entonces, esta variante, llamada C-SCAN, propone saltar de
nuevo al principio del disco, que fue la zona visitada hace más tiempo
y donde por tanto es más probable que haya peticiones esperando.
Otro refinamiento consiste en no mover el cabezal entre los bordes
fı́sicos (interior y exterior) del disco, sino entre la petición más interna
y la más externa.
Calcularemos del NOS y el tiempo medio de espera cuando un disco
cargado aplica SCAN. Conceptualmente, el problema es similar al de
una máquina quitanieves. La máquina se coloca en el km. 0 mientras
nieva uniformemente en todo el recorrido. La máquina comienza a
19
moverse. Mientras llega al km. 1 se ha acumulado una cierta cantidad
de nieve. Este extra de nieve ralentiza en cierta medida a la máquina,
que de esta forma tarda un poco más de tiempo en recorrer el segundo
km. El tercer km. lo recorrerá entonces a ritmo ligeramente más lento,
y ası́ sucesivamente.
De la misma forma el cabezal, cuando encuentra una petición en
su recorrido ha de esperar τl para servirla. En ese intervalo se ha incrementado la cantidad de peticiones sobre la fracción de disco restante,
lo que le obligará a gastar más tiempo en servirlas, durante el cual se
acumularán más peticiones en el tramo restante, y ası́ sucesivamente.
Haremos un razonamiento discreto que después llevaremos al lı́mite.
Dividimos el segmento de recta de longitud 1 en N intervalos de longitud x = 1/N . Suponemos un ritmo constante de llegada de peticiones, de tal forma que la densidad de peticiones crece linealmente
con el tiempo: ρ = ρ0 +λt. En el primer intervalo, el cabezal encuentra
por término medio n1 = xρ0 peticiones, luego invierte en atenderlas
t1 = τl n1 . Al inicio del segundo intervalo, la densidad se ha incrementado a ρ2 = ρ0 + λt1 , y en ese intervalo el cabezal encuentra n1 = xρ1
peticiones que le llevan un tiempo t2 = τl n2 . Al inicio del tercer intervalo, la densidad es ρ3 = ρ0 + λ(t1 + t2 ), el número de peticiones
promedio en él es de n3 = xρ3 y el tiempo invertido en leerlas es
t3 = τl n3 . Si se desarrolla analı́ticamente el razonamiento, pronto se
hace evidente que
k
X
λτl
λτl
nk =
ρ0
k
j=1
j
k!
j!(k − j)!
(85)
k
(86)
La suma de esta serie es
λτl
λτl
nk = 1 +
ρ0
k
−1
Haciendo k → ∞ la suma tiende a
n=
ρ0 λτl
e −1
λτl
(87)
siempre que sea ρ0 6= 0. En caso contrario, nuestro modelo no tiene
sentido, o tendrı́amos que corregirlo admitiendo que aún cuando no se
produzca ninguna lectura en un intervalo, éste se recorre en un tiempo
finito. Podemos razonar de la misma forma con el tiempo transcurrido,
y comprobar cómo, tras k intervalos, se ha consumido un tiempo que
viene dado por
λ
λτl
tk = 1 +
ρ0
k
20
k
−1
(88)
Si tomamos el lı́mite aquı́ también vemos que el tiempo medio de
lectura es
t
= τl
(89)
n
lo cual es lógico: el cabezal no puede leer más rápido de lo que gira
el disco. El número medio de operaciones por unidad de tiempo es
1/τl . Sin embargo, una petición que se encuentre al extremo del disco
ha de esperar un tiempo
n
X
ti
(90)
i
Cuando n se hace muy grande, se pueden despreciar los primeros
términos de la sumatoria y empezar a contar a partir de uno tal que
él y términos sucesivos sean aproximadamente iguales a
ρ0 λτl
e −1
(91)
λ
El tiempo de espera es entonces aproximadamente nt, que crece
sin lı́mite cuando lo hace n. Esto ilustra analı́ticamente la diferencia
entre el NOS y el tiempo medio de espera.
t=
13. Distribuciones binomial y de Poisson
Desde el punto de vista del procesador, cuyo ciclo es del orden
de un nanosegundo, los eventos hardware son muy raros. El estudio
probabilı́stico de sucesos raros de los cuales sin embargo se conoce
su ocurrencia media (es el caso del estudio de las colas hecho antes)
nos lleva a la distribución de Poisson, que nos dice la probabilidad de
que, en un intervalo dado, se produzca un número de sucesos (p. ej.
llegada en un segundo de un número de paquetes por la interfaz de red,
siendo conocido el ritmo medio de llegada). A su vez, la distribución
de Poisson se obtiene como lı́mite de la distribución binomial. Ası́ que
expondremos ésta en primer lugar y después haremos el paso al lı́mite.
La distribución binomial da la probabilidad de que en una serie de
experimentos binarios (cuyo resultado sólo ser uno entre dos posibilidades) se produzca un número determinado de éxitos (entendiendo
por éxito que se produzca uno de los resultados, y no el otro). Supongamos entonces una secuencia de 3 lanzamiento de moneda al aire. p
es la probabilidad de que salga cruz, y lo consideramos ”éxito” y q
es la probabilidad de que salga cara. Representaremos por un 1 un
21
éxito (cruz) y por un 0 un fracaso (cara). En una secuencia El éxito
puede alcanzar en las tres secuencias 100, 010 y 001. La probabilidad
de la primera secuencia es pqq = pq 2 ; la probabilidad de la segunda
secuencia es qpq = pq 2 y la probabilidad de la tercera es qqp = pq 2 .
Por tanto, la probabilidad de tener un éxito es 3pq 2 . En general, si
tenemos una serie de n experimentos, el número de formas en que
pueden obtener r éxitos es
n!
(n − r)!r!
(92)
y la probabilidad de obtenerlos es entonces
P (r|n) =
n!
pr (1 − p)n−r
(n − r)!r!
(93)
ya que si el experimento sólo admite dos resultados, entonces q =
1 − p.
Pasemos ahora a describir la distribución de Poisson. Citando la
bibliografı́a:
La distribución de Poisson a menudo servirá como una distribución de probabilidad apropiada para variables aleatorias tales como el número de llamadas telefónicas recibidas
por una central telefónica durante un periodo de tiempo
fijo, el número de partı́culas atómicas emitidas por una
fuente radiactiva que golpean un cierto blanco durante un
periodo de tiempo fijo o el número de defectos en una longitud especı́fica de una cinta magnética de grabación. 5
Y también, añadimos nosotros, la probabilidad de que un número
determinado de clientes ingresen en una cola en un intervalo de tiempo
especificado, conocido el número medio de clientes que ingresan por
unidad de tiempo.
Veamos cómo la distribución de Poisson se obtiene como un caso
lı́mite de la distribución binomial. Si llamamos λ al número medio de
éxitos en la secuencia de n experimentos, entonces
p = λ/n
(94)
λ = np
(95)
o lo que es igual
de donde podemos poner
5
morris de groot, Probabilidad y Estadı́stica, p. 241; Addison-Wesley Iberoamericana, segunda edición, 1988
22
λr n(n − 1)(n − 2)...(n − r + 1)
λ
P (r|n) = r
1−
n
r!
n
n λ
1−
n
−r
(96)
Ahora, hagamos el lı́mite cuando n → ∞, de tal forma que se
mantenga λ = np. Vemos que
lı́m
n→∞
n(n − 1)(n − 2)...(n − r + 1)
=1
nr
(97)
y que
lı́m
n→∞
λ
1−
n
−r
=1
(98)
= e−λ
(99)
mientras que
lı́m
n→∞
λ
1−
n
n
y queda entonces que
λr −λ
e
(100)
n→∞
r!
Como aplicación, consideremos el siguiente problema: una determinada clase de cinta magnética contiene de media tres errores por
cada 1000 metros. ¿Cual es la probabilidad de que una unidad de 1200
metros esté libre de errores?
El número medio de errores por cada 1200 metros es 3∗1200/1000 =
3,6, por tanto la probabilidad buscada es
lı́m P (r|n) =
3,60 −3,6
e
= 0,027
(101)
0!
Como segundo ejemplo, consideremos una cola con ritmo medio de
llegada λ y ritmo medio de servicio µ. ¿Cual es la probabilidad de que
en el intervalo 1/µ (que es el intervalo medio que emplea el servidor
en atender a un cliente) se presenten dos clientes en la cola? En el
intervalo 1/µ llegan de media σ = λ/µ clientes. La probabilidad de
que lleguen dos clientes es entonces
σ 2 −σ
e
2!
23
(102)
Descargar