Está en la página 1de 9

Hice este apunte porque curse con Casas y cuando termine no sabia hacer

ningn ejercicio, y aprend de los resueltos, pero me volva loca buscando


aquellos con ej parecidos a los que tenia que hacer

Se agradecen sugerencias/comentarios a dlopezseco@hotmail.com


Agradezco por su colaboracin a Fernando Burruso (burrusof@hotmail.com)
que colaboro para terminarlo

Las definiciones son solo para entender los ejercicios, no para contestar teora

Prximamente colgare el de procesadores

Ejercicios de Disco

Los discos constan de varios platos, cada plato tiene dos cabezas de lectura/escritura
(arriba y abajo). Esto quiere decir que el plato contiene informacin de ambos lados. A
cada uno de los dos lados de los platos se lo denomina superficie. Cada plato posee
pistas, que son crculos concntricos que lo dividen. Un cilindro es el conjunto de todas
las pistas en la misma posicin de todos los platos.
Las cabezas se mueven perpendiculares a los platos, pasando de pista a pista o de
cilindro en cilindro, es indistinto. Las pistas estn divididas en sectores, que son
bloques de informacin del mismo tamao.

Cabezas
de
lectura/e
scritura

Cilindro

Lo que tarda la cabeza en pasar de cilindro a cilindro o de pista a pista se denomina


tiempo de bsqueda.
Pistas
Cabeza
l

Sentidos del movimientos


de la cabezal de
lectura/escritura

Lo que tarda en pasar de sector a sector se llama: Tiempo rotacional.

Sector 4
Sentido de rotacin
Cabeza del disco
l
Sector 2

Sector 0
Los ejercicios normalmente nos dan las r.p.m (revoluciones por minuto) a las que gira
el disco. Al dar una vuelta la cabeza pasa por sobre toda una pista.

Ej.

Un disco con:
2 platos => 4 cabezas
100 cilindros => 100 pistas/superficie
10 sectores por pista
Tiempo que tarda entre cilindros: 4 ms = Tiempo de bsqueda
Velocidad de Giro: 50 r.p.s
Pedidos: 142 - 623 (aunque nunca lo diga, estn dados en nmero de sector)

Para atender el pedido, primero la cabeza tiene que pararse en el cilindro adecuado y
despus ubicar el sector.

Calculemos el tiempo rotacional:

50 vueltas.. 1 seg (este est en r.p.s; si estuviera en r.p.m seran


60 seg)
1 vuelta..X= 0.02 seg = 20 ms

10 sectores 20 ms
1 sector.X= 2 ms

Para saber en que cilindro me encuentro debo averiguar la cantidad de sectores por
cilindro, que se calcula como:

Cantidad de cabezas * cantidad de sectores/pista = 4 * 10 = 40

Si dividimos nuestros pedidos por este nmero nos dar en que cilindro se encuentra
cada pedido:

142 / 40 = 3

623 / 40 = 15

Ahora tendramos que ver en que cabeza est el pedido, y para hacer eso dividimos el
resto de la divisin anterior por la cantidad de sectores por pista:

22 / 10 = 2
23 / 10 = 2

Para conocer el sector, usamos el resto de esta ltima divisin:

R=2
R=3
Si el ejercicio dice que los sectores estn numerados en el rango 0..99, los dejamos
como estn.

Si los sectores estn numerados en el rango 1..10, a este resto hay que sumarle 1
(porque los restos de dividir a un nmero por 10 dan de 0 a 9)

R=2+1
R=3+1

Las direcciones fsicas quedan de la siguiente manera. (elijo la numeracin de 0 a 9)

Direccin lgica Cilindro Cabeza Sector


142 3 2 2
623 15 2 3

Para calcular el tiempo que pas de un pedido al otro tengo que ver dos cosas:

En este caso, me tengo que mover 12 cilindros (|15 3|): 4 ms * 12 = 48 ms (tiempo


de cilindro a cilindro * cantidad de cilindros atravesados)

El disco mientras el cabezal va al cilindro correspondiente sigue girando y avanza


sectores.

Lo que tenemos que ver entonces es cuantos sectores se han recorrido en el lapso
que dur la traslacin de esos 12 cilindros

Tiempo de sector a sector: 2 ms. (se calcul antes) => cantidad de sectores
atravesados = 48 ms / 2 ms/sector = 24 sectores

Si estaba en el sector 2 (ver tabla anterior), ahora estara en el 26. Pero como hay 10
sectores por pista, si pasamos 24, sera como haber dado 2 vueltas enteras + 4
sectores => estamos en el sector 6.
Ahora tenemos que ir al sector 3. Como nos pasamos, para llegar al 3 hay que
completar la vuelta y movernos 3 ms.

Sector 6 al sector 0 => 2ms * 4 sectores = 8 ms


+ Sector 0 al 2 => 4 ms

12 ms

Por lo tanto, el tiempo total para cumplir el pedido es de: 48 ms + 12 ms = 60 ms + 2


ms *

* Aunque el ejercicio muchas veces no lo diga, se supone que al atender el pedido se


lee un sector. Si no hay datos acerca de cantidad de sectores a leer, tamao del
sector, etc., se toma al tiempo de lectura como lo que se tarda en recorrer un sector. El
tiempo de transferencia esta explicado ms adelante.

Sigamos con otro pedido:

Direccin lgica Cilindro Cabeza Sector


623 15 2 4*
497 12 1 7

* Nos movimos un sector

3 cilindros (|12 15|) * 4 ms = 12 ms.


En 12 ms nos movimos 6 sectores (12 ms / 2 ms). Estamos en 4 + 6 = 10, que
equivale al sector 0 (estamos en la numeracin de 0..9)
Para llegar al 7 desde el cero tardamos 7 * 2 ms = 14 ms

Total = 12 ms + 14 ms + 2 ms (nuevamente de lectura)

Tiempo de transferencia

T=b/r*N
b = cantidad de bytes a transferir
r = r.p.s. (revoluciones por segundo)
N = cantidad de bytes por pista

Algoritmos

1 Planificacin SCAN

En el algoritmo SCAN, el brazo del disco parte de un extremo del disco y se mueve hacia el
otro, atendiendo las solicitudes a medida que llega a cada cilindro, hasta llegar al otro extremo
del disco. Ah, la direccin de movimiento de la cabeza se invierte, y contina la atencin. La
cabeza barre continuamente el disco de un lado a otro.

El algoritmo SCAN tambin se conoce como algoritmo de elevador, ya que el brazo del disco
se comporta igual que el elevador de un edificio, que atiende primero todas las solicitudes para
subir y luego cambia de direccin para atender las solicitudes de abajo.
Pistas

100

Pedido

2 Planificacin C-SCAN

La planificacin SCAN circular (C-SCAN) es una variante de SCAN diseada para dar un
tiempo de espera ms uniforme. Al igual que SCAN, C-SCAN mueve la cabeza de un extremo
del disco al otro, atendiendo las solicitudes en el camino, slo que ahora, cuando la cabeza
llega al otro extremo, regresa de inmediato al principio del disco sin atender solicitudes.

En la estrategia C-SCAN, el brazo se mueve del cilindro exterior al interior, sirviendo a las
peticiones con menor tiempo de bsqueda. Cuando el brazo ha completado su recorrido hacia
adentro, salta al principio del disco y a continuacin reanuda su recorrido hacia adentro
procesando peticiones.

Pistas

100

Pedido
Para resolver los ejercicios, hay que ver si la cabeza del disco esta subiendo o
bajando, y respetar esa direccin. Se ordenan los pedidos en forma creciente desde la
posicin inicial hasta el ultimo o primer cilindro (depende de la direccin) y despus
atender el resto.

Ej: Seguimos con los datos del ej anterior, 100 pistas y 10 sectores por pista

Posicin inicial: 500 (en sectores) y ascendiendo

Pedidos: 10 642 811 800 254 798 685

Ordenando: 500 642 685 798 800 811 9XX* - 0 10 254

* Hay que llegar hasta el ltimo cilindro y para despus volver al primer cilindro, pero
no interesa el sector dentro del cilindro que quedemos

Si en el ejercicio tenemos que calcular los tiempos de atencin de los pedidos, cuando
llegamos al pedido ms alto, tendramos que calcular el tiempo que tarda hasta el
ultimo cilindro

Ej.:

Supongamos que atendimos el pedido 811 y quedamos en el cilindro 8 sector 1. Nos


tenemos que mover 1 cilindro.

En el ejercicio anterior tenamos que tardaba 4 ms para pasar entre cilindros y 2 ms


para pasar de sector a sector.

Entonces para mover un cilindro son 4 ms y en ese tiempo la cabeza se movi 2


sectores. Estaramos en el cilindro 9 sector 3 (1 + 2)

Lo importante es que, como el tiempo de retorno al cilindro 0 se considera nulo, para


calcular el siguiente pedido (10) tendramos que considerar que estamos en el cilindro
0 sector 3

3 Scan n pasos

Funciona igual que scan, pero utiliza 2 colas:

- Una de tamao n, donde guarda los pedidos que va a atender.


- Una cola de espera, donde acumula el resto de los pedidos.

Suponiendo que tengo los pedidos que llegaron en el siguiente orden: 1000 642
811 800 254 798 685 y uso scan de 3 pasos. Las colas quedarian asi:

Cola n = 1000 642 811


Cola espera = 800 254 798 685

Atenderia los pedidos de la cola n, en el siguiente orden (suponiendo que arranca del
sector 0): 642 811 1000.

Luego saca los 3 priomeros pedidos de la cola de espera, y los pasa a la cola n:

Cola n = 800 254 798


Cola espera = 685

Y atiende esos pedidos en el siguiente orden (habiamos quedado en el sector 1000) :


800 798 254

Por ultimo atiende el pedido 685.

Existe el F-Scan, que es un scan de n pasos, con n = 2.

4 Planificacin LOOK

El algoritmo look trabaja con la misma idea que Scan, con la diferencia que no va
hasta la ultima pista antes de cambiar el sentido del recorrido, sino que va hasta la
pista que tenga el ultimo pedido.

Pistas

100

Pedido

5 Planificacin C- LOOK

Pistas
Este algoritmo, como look, se mueve hasta los pedidos extremos, pero en un solo
sentido.
100

Pedido
Regla para acordarse Diferencias entre Scan, C-Scan, Look, C-Look

- Acuerdense que scan es escanear (que nivel que tengo de ingles!!!).


Piensen como funciona la lucecita de un scanner. Recorre TODO el scanner,
por mas que le pongas una hoja oficio, a4, o la horrible foto 4x4 que tenes en el
dni.
- Look es mirar, por lo tanto, cuando sube mira si hay pedidos arriba para
seguir avanzando, si no hay, cambia de sentido.. (y mira abajo cuando bajas)
- Y tambien acuerdense que los algoritmos que tiene la C, CORTAN cuando
llegan a un extremo, y vuelven a arrancar desde 0.