Definición

El Factor de bloqueo óptimo en discos es aquel que mejor cumple con el criterio de optimización fijado.

Con lo cual no decimos nada y esa es precisamente la idea. El Fb óptimo depende de qué es lo que se quiere optimizar, y este es precisamente el criterio de optimización del cual se habla. Mencionaremos dos criterios de optimización lo cual no implica que no puedan existir otros dependientes del problema en cuestión.

Criterios de optimización:

a) Minimizar el número de accesos al disco.

b) Minimizar la cantidad de bytes desperdiciados. (por archivo o por pista)

Observación: Al efectuar los cálculos encontraremos que puede haber más de un Fb que cumpla con algún criterio de optimización establecido, de todos ellos se elegirá el que "mejor" cumpla con dicho criterio, o sea de todos los que cumplen un criterio se elige el mejor de acuerdo al otro criterio. Se prioriza un criterio y dentro de ese, si se puede, se selecciona según el otro.

A) Minimizar la cantidad de accesos al disco

Hipótesis: Cada registro físico exige un acceso para ser leído o grabado.

Si hay un acceso por cada RF, entonces minimizar accesos implica minimizar la cantidad de registros físicos del disco. Como un disco se compone de n pistas, minimizar QRF es lo mismo que minimizar QRP. (Cantidad de registros físicos por pista)

1) Minimizar accesos al disco implica minimizar QRP.

Para minimizar QRP hay que lograr que la longitud del registro físico sea máxima, para ello hay que maximizar el factor de bloqueo.

Conclusión: El Factor de bloqueo que minimiza los accesos al disco es el mayor factor de bloqueo posible.

Veamos dos casos, uno en el cual no hay restricciones al tamaño del buffer en memoria y otro en el cual si.

Ejemplo a)

Datos:

LP=8927 bytes, IRG=237 bytes.

LRL=450 bytes. El buffer no restringe.

Hallar el Fb que minimice los accesos al disco.

Busco el mayor RF, =>

MaxLRF= LP - IRG (pues el buffer no restringe)

MaxLRF= 8927-237 = 8690

MaxFb = MaxLrf / LRL = 8690 / 450 = 19,31

Redondeo: Si Fb=20 => LRF=9000 y no entra en la pista => FB= 19

Re-calculo MaxLRF con Fb=19. MaxLRF= 19x450 = 8550

Rta: El Fb que minimiza el número de Accesos al disco es 19.

Analicemos (CON LRF FIJO)

ejemplo qrp

Observación: Recordar que LRF no es 8690 sino FbxLRL= 19x450= 8550

Ejercicio: Demostrar que si el buffer no restringe entonces para el mayor Fb posible QRP siempre vale 1.

Ejemplo b)

Datos:

LP=8927 bytes, IRG=237 bytes.

LRL=450 bytes. MaxBuf= 3000 bytes.

Hallar el Fb que minimice los accesos al disco.

Me fijo si el buffer restringe.

MaxLrf= LP-IRG = 8927-237 = 8690 (pero no entra en el buffer)

=> el buffer restringe

=> MaxLRF= MaxBuf => MaxLRF= 3000

Calculo MaxFb = MaxLRF / LRL = 3000 / 450 = 6,66

Redondeo: Si Fb=7 => LRF = 3150 y no entra en el buffer => Fb= 6

Re-calculo MaxLrf con Fb=6, MaxLrf= 6 x 450 = 2700

Rta: El Fb que minimiza el número de accesos al disco es 6.

Analicemos (LRF FIJO)

ejemplo qrp

Por lo tanto no es cierto que para minimizar accesos al disco QRP siempre deba ser 1.

B) Minimizar la cantidad de bytes desperdiciados

Primer caso: Bytes desperdiciados por archivo.

Para un archivo QBD=Cant de bytes desperdiciados es:

QBD = (QPxLP)-(QRLxLRL)

QPxLP mide la cantidad de bytes necesarios y QRLxLRL indica la cantidad de bytes que contienen datos.

QP = Cantidad de pistas del archivo.

FRI = Fragmentación interna, bytes desperdiciados por una mala utilización del ULTIMO registro físico. Esto ocurre solo en la última pista del archivo. En discos la FRI no es un desperdicio real pues un RF puede sobreescribirse, luego es posible agregar RLs a un RF ya grabado y de esta forma disminuir FRI. FRI en discos no sectorizados es un dato de poca relevancia.

FRS = Fragmentación del sistema, bytes desperdiciados por IRGs, esto ocurre en todas las pistas. No es realmente una "fragmentación" pero en este apunte lo vamos a considerar así para simplificar los conceptos. El concepto es análogo al de cintas.

FRE = Fragmentación Externa, bytes "desperdiciados" por pista y que no son IRGs. Bytes que "sobran" por pista. Esto ocurre por cada pista que ocupe el archivo. Debido a la FRE puede darse que habiendo muchos bytes libres en un disco no pueda grabarse un registro de un determinado archivo pues no existe ninguna pista con suficiente espacio disponible.

En cintas todos los carretes podían ser tratados de la misma forma excepto el último, en discos ocurre lo mismo, todas las pistas se pueden tratar de igual forma excepto la última pista del archivo.

Fórmulas

FRE = LP - QRP (LRF + IRG) (todas las pistas menos la última)

FRE = LP – QRPUltima (LRF + IRG) (última pista)

FRS = QRP x IRG

FRI = (QRFxFB-QRL) x LRL

Ejemplo

Sean:

LP = 19 bytes.
IRG = 2 bytes.
LRL = 3 bytes.
FB = 2.
QRL = 7.

Cálculos auxiliares:

LRF = 3x2 = 6
QRP = 19/(6+2) = 19/8 = 2
QRF = QRL/FB= 7/2 = 4

Gráficamente el archivo quedaría:

X = bytes usados.
I = bytes de IRG.

Minimizar la cantidad de bytes desperdiciados

Observemos que si el disco tuviera solo dos pistas tendríamos 6 bytes libres, pero no podríamos grabar otro registro físico del archivo ya que no entraría en ninguna de las dos pistas.

FRE= bytes desperdiciados por fragmentación externa, como puede verse son 3 bytes por cada pista.

FRE= LP - QRP (LRF + IRG ) = 19- 2x (6+2) = 19-16 = 3.

en la última pista FRE también es 3, esto se dio por simple casualidad, recordar que la última pista debe tratarse en forma particular.

FRS= bytes desperdiciados por fragmentación del sistema, como puede verse son 4 bytes por pista. Esta es la única fragmentación que implica un desperdicio verdadero de bytes.

FRS= QRP x IRG = 2x2 = 4.

FRI= fragmentación interna, como se ven son 3 bytes y solo se producen en el último RF de la última pista del archivo.

FRI= (QRFxFB-QRL)xLRL = 3

Bytes "desperdiciados" por archivo:

Entiéndanse las comillas porque no es correcto llamar desperdicio a FRS y FRE.

QBD = FRI + QP (FRS + FRE) = 3 + 2 (4+3) = 3 + 14 = 17 bytes. (nuevamente observemos que esto vale aquí porque la última pista tienen una utilización idéntica a las anteriores, en general esta fórmula vale sólo para las pistas 1..n-1 y para la pista n hay que realizar cálculos especiales.)

Segundo Caso: Bytes "desperdiciados" por pista.

Es un caso más teórico en el cual no conocemos QRL, por lo tanto no podemos calcular FRI. Luego se supone que no hay fragmentación interna. (FRI=0) Este caso también se aplica cuando QRL es variable, archivos en los cuales constantemente se agregan y quitan registros. Conviene entonces ignorar FRI y minimizar los bytes desperdiciados por pista.

Si FRI=0 => QBD = FRE + FRS (Es por pista)

%FR: Porcentaje de fragmentación por pista. Indica el porcentaje de bytes "desperdiciados" por pista.

FR

Desarrollo FRE+FRS = LP – QRP (LRF + IRG) + QRP x IRG

= LP - QRP x LRF - QRP x IRG + QRP x IRG

= LP - QRP x LRF

Discos Fr

Como minimizar %FR

Teorema: Si el tamaño del buffer no es limitante entonces el mayor Factor de bloqueo posible minimiza %FR.

La demostración escapa a este apunte.

Este teoremita es sumamente útil pues si el buffer no restringe realizando muy pocos cálculos puede obtenerse el Fb que no solo minimiza los accesos sino también los bytes desperdiciados por pista.

Si el buffer restringe entonces lo que se hace es analizar todos los factores de bloqueo factibles de acuerdo al buffer y obtener de todos ellos el que desperdicia menos bytes por pista. QRP y %FR se pueden graficar en función de FB obteniéndose resultados interesantes.

Existen otras formas de minimizar %Fr que no vamos a considerar en este apunte.

Lun, 09/10/2006 - 15:17