sistemas operativos inf - 151cotana.informatica.edu.bo/downloads/algortimos-discos.pdf · 2018. 8....

Post on 13-Oct-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sistemas OperativosSistemas OperativosINF - 151INF 151

MODULO IV. ENTRADA Y SALIDA4 1 Algoritmos4.1 AlgoritmosContinuación…………………….

Resumen preparado por Miguel Cotaña

Algoritmos para calendarizar el brazo del discoAlgoritmos para calendarizar el brazo del disco

Consideraremos el tiempo que toma leer

Algoritmos para calendarizar el brazo del discoAlgoritmos para calendarizar el brazo del disco

o escribir un bloque de disco. El tiemporequerido está determinado por 3q pfactores:

1 Tiempo de desplazamiento (seek time:1. Tiempo de desplazamiento (seek time:el tiempo que tarda el movimiento delbrazo hasta el cilindro correcto)brazo hasta el cilindro correcto)

2. Retrazo rotacional (el tiempo quetarda el sector correcto en girar hastacolocarse bajo la cabeza)

23. Tiempo real de transferencia de datos

Si el controlador de disco aceptasolicitudes una por una y las ejecuta enese orden es decir primera que llegaese orden, es decir, primera que llega,primera que se atiende (FCFS; first-

fi t d) dcome, first-served), poco puedehacerse para optimizar el tiempo dedesplazamiento. Sin embargo, si el discoestá sometido a una carga intensa,está sometido a una carga intensa,podría utilizase otra estrategia.

3

Es muy probable que mientras el brazose está desplazando para atender unasolicitud otros procesos generen otrassolicitud, otros procesos generen otrassolicitudes de disco.M h j d d di tiMuchos manejadores de disco mantienenuna tabla, indizada por número decilindro, con todas las solicitudespendientes para cada cilindro,pendientes para cada cilindro,encadenadas en una lista enlazada

b d l t d d l t bl4

encabezada por las entradas de la tabla.

Dado este tipo de estructura de datos,podemos mejorar el algoritmo dep j gcalendarización de primera que llega,primera que se atiendeprimera que se atiende.Considerar un disco imaginario con 40cilindros. Llega una solicitud para leer unbloque en el cilindro 11.qMientras el brazo se está desplazando alcilindro 11 llegan nuevas solicitudes paracilindro 11, llegan nuevas solicitudes paralos cilindros 1, 36, 16, 34 9 y 12, en ese

5orden

Estas solicitudes se colocan en la tabla desolicitudes pendientes, con una listaenlazada distinta para cada cilindroenlazada distinta para cada cilindro.Cuando termina la solicitud actual (quepidió el cilindro 11), el controlador dedisco puede escoger cuál solicitudp gatenderá a continuación.Si usa FCFS se dirigirá ahora al cilindroSi usa FCFS, se dirigirá ahora al cilindro1, luego al 36, y así sucesivamente.Requeriría movimientos del brazo de 10,35, 20, 18, 25 y 3, para un total de 111

6

, , , y , pcilindros

DISCOS (Planificación del brazo: FCFS)¡ C l d ti i

• Ejemplo: Posición actual: cilindro 11Llegan peticiones: 1, 36, 16, 34, 9 ,12

¡ Colas de peticiones pendientes por

cilindro !

0 1 9 11 12 16 34 36X XX XX X

10

3535

201818

25

3

7¡ En total se atraviesan 111 cilindros !

Como alternativa, el controlador de,dispositivo podría atender siempre acontinuación la solicitud más cercanacontinuación la solicitud más cercana,para así minimizar el tiempo dedesplazamiento.Dadas las solicitudes del gráfico anterior,g ,la sucesión será 12, 9, 16, 1, 34 y 36,como indica el zigzagcomo indica el zigzag.

8

Con esta sucesión, los movimientos del,brazo son de 1, 3, 7, 15, 33 y 2, para untotal de 61 cilindrostotal de 61 cilindros.Este algoritmo, desplazamiento máscorto primero (SSF; Shortest SeekFirst), recorta el movimiento total del),brazo casi a la mitad, en comparacióncon FCFScon FCFS.

9

DISCOS (Planificación del brazo: SSF “Shortest Seek First”)

• • • • •

0 1 9 11 12 16 34 36

X X X X X X

0 1 9 11 12 16 34 36

posición actual(1)

(3)

(7)

(15)

( )(33)(2)

¡ En total se atraviesan 61 cilindros !

10INJUSTICIA + INANICIÓN

Lamentablemente SSF tiene unbl S i d iproblema. Suponiendo que siguen

llegando más solicitudes mientras seestán procesando las solicitudes. Porejemplo, si después de desplazarse alejemplo, si después de desplazarse alcilindro 16 hay una nueva solicitud parael cilind o 8 esta solicit d tend áel cilindro 8, esta solicitud tendráprioridad respecto al cilindro 1. Si luegollega una solicitud para el cilindro 13, elbrazo se dirigirá al 13, no al 1.

11

brazo se dirigirá al 13, no al 1.

Si el disco está sometido a una cargad l b t d ápesada, el brazo tenderá a permanecer

en la parte media del disco casi todo eltiempo, y las solicitudes para ambosextremos tendrán que esperar hasta queextremos tendrán que esperar hasta queuna fluctuación estadística en la cargaocasione q e no ha a ning na solicit docasione que no haya ninguna solicitudcerca de la parte media.Las solicitudes alejadas de la parte mediapodrían recibir mal servicio.

12

podrían recibir mal servicio.

Se debe reducir al mínimo el tiempo derespuesta y de ser equitativos.El problema de calendarizar un elevadorEl problema de calendarizar un elevadorde un edificio es similar al de calendarizar

l b d diel brazo de un disco.Contínuamente llegan solitudes quellaman al elevador a los pisos (cilindros)al azar El ordenador que controla elal azar. El ordenador que controla elelevador podría llevar fácilmente un

i t d l d l li tregistro del orden en que los clientesoprimieron el botón de llamada y

13atenderlos FCFS, también SSF.

Pero, los elevadores utilizan un algoritmodi i ili ldistinto para conciliar las metas opuestasde eficiencia y equitatividad.El elevador continúa avanzando en lamisma dirección hasta que no hayamisma dirección hasta que no hayasolicitudes pendientes en esa dirección.E t bi d di ióEn ese momento, cambia de dirección.Este algoritmo es conocido como elalgoritmo del elevador.

14

Este algoritmo, requiere que el softwaremantenga un bit: el bit de direcciónmantenga un bit: el bit de direcciónactual, SUBE o BAJA.C d t i d t dCuando termina de atenderse unasolicitud, el controlador del disco o delelevador lee el bit. Si es SUBE, el brazo ola cabina se desplaza hasta la siguientela cabina se desplaza hasta la siguientesolicitud pendiente más alta.Si h li it d di tSi no hay solicitudes pendientes enposiciones más altas, se invierte el bit de

15dirección

Empleando las mismas 7 solicitudes delprimer gráfico suponiendo que en unprimer gráfico, suponiendo que en unprincipio que el bit de dirección era SUBE.El d ti d l ili dEl orden en que se atienden los cilindroses 12, 16, 34, 36, 9 y 1, lo cual implicamovimientos del brazo de 1, 4, 18, 2, 27y 8 para un total de 60 cilindrosy 8, para un total de 60 cilindros.En este caso el algoritmo del elevador es

j SSFun poco mejor que SSF.

16

DISCOS (Planificación del brazo: Elevador )( )

• Idea de sentido: (Sube – Baja) *

• • • • •X X X X X X

0 1 9 11 12 16 34 36

posición actualp

(1) (4)

(18)

(2)(2)

(27)

(8)

Total cilindros atravesados 60

( )

17

Total cilindros atravesados = 60

Una ligera modificación de este algoritmoque tiene menor varianza en los tiemposque tiene menor varianza en los tiemposde respuesta consiste en siempre

l l i di ió Uexplorar en la misma dirección. Una vezque se ha atendido el cilindro de númeromás alto que tenia una solicitudpendiente el brazo se dirige al cilindro dependiente, el brazo se dirige al cilindro denúmero más bajo que tenga una solicitud

di t l ti ú ié dpendiente y luego continúa moviéndosehacia arriba.

18

DISCOS (Planificación del brazo: Elevador mejorado CSCAN )

• • • • •

0 1 9 11 12 16 34 36

X X X X X X

posición actual

(1) (4)(1) (4)

(18)

(2)( )

(35)

(8)

19Total cilindros atravesados = 68

Manejo de erroresManejo de errores

ó

jj

Los defectos de fabricación introducen sectoresdefectuosos, es decir, sectores que nodevuelven de manera correcta el valor que seacaba de escribir en ellos. Si el defecto es muyypequeño, digamos en unos cuantos bits, esposible usar el sector defectuoso y tan sóloposible usar el sector defectuoso y tan sólodejar que el ECC corrija los errores en cada uso.Si el defecto es mayor no podrá disfrazarse elSi el defecto es mayor, no podrá disfrazarse elerror.

20

Existe dos enfoques para manejar losbloques defectuosos:q

Ocuparse de ellos en lacontroladora ócontroladora, óHacerlo en el SO.

Con el primer enfoque, antes de que eldisco salga de la fábrica se le prueba y sedisco salga de la fábrica se le prueba y seescribe en el disco una lista de sectoresdefectuosos. Cada uno de ellos sesustituye por un sector de repuesto.

21

y p p

También pueden surgir errores durante elfuncionamiento normal después de quefuncionamiento normal después de quese ha instalado la unidad de disco. La

i lí d d f l tprimera línea de defensa al presentarseun error que el ECC no pueda manejar essimplemente reintentar la operación.Algunos errores de lectura sonAlgunos errores de lectura sontransitorios, es decir, son causados por

tí l d l b j l bpartículas de polvo bajo la cabeza ydesaparcen en el nuevo intento.

22

Si la controladora nota que estáSi la controladora nota que estáobteniendo errores repetidos en cierto

ásector, podrá cambiar a un sector derepuesto antes de que el sector quedep q qinutilizado por completo.Por lo regular es necesario utilizar elPor lo regular es necesario utilizar elmétodo de sustitución del sectord f ddefectuoso por uno de repuesto.

23

En un segundo enfoque, si lacontroladora no puede ajustar de formacontroladora no puede ajustar de formatransparente la correspondencia entre

t fí i ú d tsectores físicos y números de sectorcomo hemos visto, el SO deberá hacerloen software.Esto implica que primero deberáEsto implica que primero deberáconseguir una lista de sectoresd f t l é d l d l didefectuosos, sea leyéndola del disco otan solo probando él mismo todo el disco.

24

Si el SO se está encargando del ajuste decorrespondencia deberá asegurarse decorrespondencia deberá asegurarse deque no haya sectores defectuosos en los

hi t l li t darchivos y tampoco en la lista o mapa debits de sectores libres. Una forma dehacerlo es crear un archivo secretointegrado por todos los sectoresintegrado por todos los sectoresdefectuosos. Si este archivo no sei l i t d hi lincorpora al sistema de archivos, losusuarios no podrán leerlo

25accidentalmente

Sin embargo, todavía queda unproblema: los respaldos.Si un disco se respalda archivo porp parchivo, es importante que el programade respaldo no trate de copiar el archivode respaldo no trate de copiar el archivode bloques defectuosos. Para evitarlo, elSO tiene que ocultar dicho archivo, paraque ni siquiera un programa de respaldoq q p g ppueda hallarlo.

26

Los sectores defectuosos no son la únicafuente de errores. También puedenpresentarse errores de: desplazamientop pdel brazo causados por problemasmecánicos La controladora se mantienemecánicos. La controladora se mantieneal tanto de la posición del brazo.Para realizar un deplazamiento, lacontroladora envía una serie de pulsos alpmotor del brazo, un pulso por cilindro, afin de trasladar el brazo al nuevo cilindro

27fin de trasladar el brazo al nuevo cilindro

Una vez que el brazo llega a su destino,la controladora lee el número de cilindroreal en el preámbulo del siguiente sector.p gSi el brazo no está en el lugar correcto,se habrá presentado un error dese habrá presentado un error dedesplazamiento.Casi todas las controladoras de discoduro corrigen errores de desplazamientog pen forma automática

28

Por lo que la controladora es unaPor lo que, la controladora es unapequeña computadora especializada,

úcompleta con software, variables, búferesy, de vez en cuando, bugs (errores)y, , g ( )La recalibración de un disco produce unruido raro pero por lo demás no causaruido raro pero por lo demás no causaproblemas en condiciones normales.

29

Almacenamiento estableAlmacenamiento estable

Utiliza un par de disco idénticos en el que losbloques correspondientes colaboran para formarun bloque sin errores. En ausencia de errores,un bloque sin errores. En ausencia de errores,los bloques correspondientes en ambasunidades son iguales Es posible leer cualquieraunidades son iguales. Es posible leer cualquierade ellos y obtener el mismo resultado. Paral l t d fi 3 ilograr la meta, se define 3 operaciones:

Escrituras establesLecturas establesRecuparación después de caidas.

30

RelojesRelojesRelojesRelojes

Los relojes (temporizadores) sonindispensables para el funcionamiento deindispensables para el funcionamiento decualquier sistema multiprogramado(mantienen la hora del día y evitan queun proceso monopolice la CPU).un proceso monopolice la CPU).El estudio de los relojes se basa en elhardware y en el softwarehardware y en el software.

31

Hardware de relojHardware de reloj

Se construye con 3 componentes:

jj

Un cristal osciladorUn contadorUn contadorUn registro de retención

Cuando un cristal de cuarzo se corta de maneraadecuada y se monta sometido a tensión, puedehacerse que genere una señal periódica de granprecisión, por lo regular del orden de variosp , p gcientos de megahertz, dependiendo del cristalescogido

32

escogido

Utilizando circuitos electrónicos estaUtilizando circuitos electrónicos, estaseñal base puede multiplicarse por unentero pequeño para obtener frecuenciasde hasta 1000 MHz. Todo ordenadorcontiene al menos un circuito de estetipo el cual alimenta una señaltipo, el cual alimenta una señalsincronizadora a los demás circuitos de la

ámáquina

33

Los relojes programables suelen tenerLos relojes programables suelen tenervarios modos de operación:

úModo de disparo únicoModo de onda cuadrada

Cuando el contador llega a cero y causala interrupción entonces estala interrupción, entonces estainterrupciones periódicas se llaman ticsde reloj

34

Software de relojSoftware de reloj

Lo único que hace el hardware de reloj es

jj

generar interrupciones a intervalosconocidos. Todo lo demás relacionado con elconocidos. Todo lo demás relacionado con eltiempo debe efectuarse en software. Lastareas son:tareas son:

1. Mantener la hora al día2 E it j t l2. Evitar que se ejecuten los procesos

durante más tiempo del debido3. Contabilizar el consumo de CPU4. Procesar la llamada al sistema alarm

35emitida por procesos de usuario

5. Proporcionar temporizadores devigilancia a ciertas partes delg psistema

6 Realizar perfiles supervisión y6. Realizar perfiles, supervisión yrecolección de datos estadísiticos

36

La primera función del reloj mantener laLa primera función del reloj, mantener lahora del día (tiempo real). Sólo requiereincrementar un contador en cada tic delreloj. Lo único que hay que cuidar es elj q y qnúmero de bits en el contador de la horadel día Con una tasa de reloj de 60 Hzdel día. Con una tasa de reloj de 60 Hz,un contador de 32 bits se desbordará en

á ñpoco más de 2 años.

37

Para resolver este problema puedeadaptarse 3 enfoques:p q

Utilizar un contador de 64 bitsMantener la hora del día enMantener la hora del día ensegundos, no en tics.Contar en tics, pero hacerlo conrelación al momento en que se pusoq pen marcha el sistema

38

Temporizadores de SoftwareTemporizadores de Software

Casi todas las computadoras tienen un segundo

pp

reloj programable que puede ajustarse demodo que cause interrupciones con lamodo que cause interrupciones con lafrecuencia que las necesite un programa. Estetemporizador es adicional al temporizadortemporizador es adicional al temporizadorprincipal del sistema.Mi t l f i d l i t iMientras la frecuencia de las interrupciones seabaja, no habrá problema si este segundotemporizador se utiliza con fines específicospara una aplicación dada.

39

El problema surge cuando la frecuenciadel temporizador específico para laaplicación es muy altaaplicación es muy alta.Los temporizadores de software evitani t i C d l k linterrupciones. Cada vez que el kernel seejecuta por algún otro motivo, justoantes de volver al modo de usuarioexamina el reloj de tiempo real para verexamina el reloj de tiempo real para versi ha expirado un temporizador de

ft40

software

Si es así, se ejecuta el sucesocalendarizado sin necesidad de cambiaral modo del kernel porque el sistema yaal modo del kernel porque el sistema yaestá allí. Una vez efectuado el trabajo, elt i d d ft t bltemporizador de software se restablecepara que vuelva a dispararse. Lo únicoque hay que hacer es copiar el valoractual del reloj en el temporizador yactual del reloj en el temporizador ysumarle el intervalo de tiempo fuera.

41

El funcionamiento de los temporizadoresde software depende de la frecuencia conque se ingrese al kernel por otrosque se ingrese al kernel por otrosmotivos, que pueden ser:

Ll d l i tLlamadas al sistemaFallos de TLBFallos de páginaInterrupciones de E/SInterrupciones de E/SLa CPU se queda sin trabajo

42

top related