Vista previa del material en texto
Sistemas OperativosSistemas Operativos INF - 151INF 151 MODULO IV. ENTRADA Y SALIDA 4 1 Algoritmos4.1 Algoritmos Continuació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 tiempo requerido está determinado por 3q p factores: 1 Tiempo de desplazamiento (seek time:1. Tiempo de desplazamiento (seek time: el tiempo que tarda el movimiento del brazo hasta el cilindro correcto)brazo hasta el cilindro correcto) 2. Retrazo rotacional (el tiempo que tarda el sector correcto en girar hasta colocarse bajo la cabeza) 23. Tiempo real de transferencia de datos Si el controlador de disco acepta solicitudes una por una y las ejecuta en ese 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 puede hacerse para optimizar el tiempo de desplazamiento. Sin embargo, si el disco está sometido a una carga intensa,está sometido a una carga intensa, podría utilizase otra estrategia. 3 Es muy probable que mientras el brazo se está desplazando para atender una solicitud otros procesos generen otrassolicitud, otros procesos generen otras solicitudes de disco. M h j d d di tiMuchos manejadores de disco mantienen una tabla, indizada por número de cilindro, con todas las solicitudes pendientes para cada cilindro,pendientes para cada cilindro, encadenadas en una lista enlazada b d l t d d l t bl 4 encabezada por las entradas de la tabla. Dado este tipo de estructura de datos, podemos mejorar el algoritmo dep j g calendarización de primera que llega, primera que se atiendeprimera que se atiende. Considerar un disco imaginario con 40 cilindros. Llega una solicitud para leer un bloque en el cilindro 11.q Mientras el brazo se está desplazando al cilindro 11 llegan nuevas solicitudes paracilindro 11, llegan nuevas solicitudes para los cilindros 1, 36, 16, 34 9 y 12, en ese 5orden Estas solicitudes se colocan en la tabla de solicitudes pendientes, con una lista enlazada distinta para cada cilindroenlazada distinta para cada cilindro. Cuando termina la solicitud actual (que pidió el cilindro 11), el controlador de disco puede escoger cuál solicitudp g atenderá a continuación. Si usa FCFS se dirigirá ahora al cilindroSi usa FCFS, se dirigirá ahora al cilindro 1, 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 , p cilindros DISCOS (Planificación del brazo: FCFS) ¡ C l d ti i • Ejemplo: Posición actual: cilindro 11 Llegan peticiones: 1, 36, 16, 34, 9 ,12 ¡ Colas de peticiones pendientes por cilindro ! 0 1 9 11 12 16 34 36 X XX XX X 10 3535 20 1818 25 3 7¡ En total se atraviesan 111 cilindros ! Como alternativa, el controlador de, dispositivo podría atender siempre a continuación la solicitud más cercanacontinuación la solicitud más cercana, para así minimizar el tiempo de desplazamiento. 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 un total de 61 cilindrostotal de 61 cilindros. Este algoritmo, desplazamiento más corto primero (SSF; Shortest Seek First), recorta el movimiento total del), brazo casi a la mitad, en comparación con 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 un bl S i d iproblema. Suponiendo que siguen llegando más solicitudes mientras se están procesando las solicitudes. Por ejemplo, si después de desplazarse alejemplo, si después de desplazarse al cilindro 16 hay una nueva solicitud para el cilind o 8 esta solicit d tend áel cilindro 8, esta solicitud tendrá prioridad respecto al cilindro 1. Si luego llega una solicitud para el cilindro 13, el brazo se dirigirá al 13, no al 1. 11 brazo se dirigirá al 13, no al 1. Si el disco está sometido a una carga d l b t d ápesada, el brazo tenderá a permanecer en la parte media del disco casi todo el tiempo, y las solicitudes para ambos extremos tendrán que esperar hasta queextremos tendrán que esperar hasta que una fluctuación estadística en la carga ocasione q e no ha a ning na solicit docasione que no haya ninguna solicitud cerca de la parte media. Las solicitudes alejadas de la parte media podrían recibir mal servicio. 12 podrían recibir mal servicio. Se debe reducir al mínimo el tiempo de respuesta y de ser equitativos. El problema de calendarizar un elevadorEl problema de calendarizar un elevador de un edificio es similar al de calendarizar l b d diel brazo de un disco. Contínuamente llegan solitudes que llaman al elevador a los pisos (cilindros) al azar El ordenador que controla elal azar. El ordenador que controla el elevador podría llevar fácilmente un i t d l d l li tregistro del orden en que los clientes oprimieron el botón de llamada y 13atenderlos FCFS, también SSF. Pero, los elevadores utilizan un algoritmo di i ili ldistinto para conciliar las metas opuestas de eficiencia y equitatividad. El elevador continúa avanzando en la misma dirección hasta que no hayamisma dirección hasta que no haya solicitudes pendientes en esa dirección. E t bi d di ióEn ese momento, cambia de dirección. Este algoritmo es conocido como el algoritmo del elevador. 14 Este algoritmo, requiere que el software mantenga un bit: el bit de direcciónmantenga un bit: el bit de dirección actual, SUBE o BAJA. C d t i d t dCuando termina de atenderse una solicitud, el controlador del disco o del elevador lee el bit. Si es SUBE, el brazo o la cabina se desplaza hasta la siguientela cabina se desplaza hasta la siguiente solicitud pendiente más alta. Si h li it d di tSi no hay solicitudes pendientes en posiciones más altas, se invierte el bit de 15dirección Empleando las mismas 7 solicitudes del primer gráfico suponiendo que en unprimer gráfico, suponiendo que en un principio que el bit de dirección era SUBE. El d ti d l ili dEl orden en que se atienden los cilindros es 12, 16, 34, 36, 9 y 1, lo cual implica movimientos del brazo de 1, 4, 18, 2, 27 y 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 algoritmo que tiene menor varianza en los tiemposque tiene menor varianza en los tiempos de respuesta consiste en siempre l l i di ió Uexplorar en la misma dirección. Una vez que se ha atendido el cilindro de número más alto que tenia una solicitud pendiente el brazo se dirige al cilindro dependiente, el brazo se dirige al cilindro de número más bajo que tenga una solicitud di t l ti ú ié dpendiente y luego continúa moviéndose hacia 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ónintroducen sectores defectuosos, es decir, sectores que no devuelven de manera correcta el valor que se acaba de escribir en ellos. Si el defecto es muyy pequeño, digamos en unos cuantos bits, es posible usar el sector defectuoso y tan sóloposible usar el sector defectuoso y tan sólo dejar 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 el error. 20 Existe dos enfoques para manejar los bloques defectuosos:q Ocuparse de ellos en la controladora ócontroladora, ó Hacerlo en el SO. Con el primer enfoque, antes de que el disco salga de la fábrica se le prueba y sedisco salga de la fábrica se le prueba y se escribe en el disco una lista de sectores defectuosos. Cada uno de ellos se sustituye por un sector de repuesto. 21 y p p También pueden surgir errores durante el funcionamiento normal después de quefuncionamiento normal después de que se ha instalado la unidad de disco. La i lí d d f l tprimera línea de defensa al presentarse un error que el ECC no pueda manejar es simplemente reintentar la operación. Algunos errores de lectura sonAlgunos errores de lectura son transitorios, es decir, son causados por tí l d l b j l bpartículas de polvo bajo la cabeza y desaparcen 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 de repuesto antes de que el sector quedep q q inutilizado por completo. Por lo regular es necesario utilizar elPor lo regular es necesario utilizar el método de sustitución del sector d f ddefectuoso por uno de repuesto. 23 En un segundo enfoque, si la controladora no puede ajustar de formacontroladora no puede ajustar de forma transparente la correspondencia entre t fí i ú d tsectores físicos y números de sector como hemos visto, el SO deberá hacerlo en software. Esto implica que primero deberáEsto implica que primero deberá conseguir una lista de sectores d f t l é d l d l didefectuosos, sea leyéndola del disco o tan solo probando él mismo todo el disco. 24 Si el SO se está encargando del ajuste de correspondencia deberá asegurarse decorrespondencia deberá asegurarse de que no haya sectores defectuosos en los hi t l li t darchivos y tampoco en la lista o mapa de bits de sectores libres. Una forma de hacerlo es crear un archivo secreto integrado por todos los sectoresintegrado por todos los sectores defectuosos. Si este archivo no se i l i t d hi lincorpora al sistema de archivos, los usuarios no podrán leerlo 25accidentalmente Sin embargo, todavía queda un problema: los respaldos. Si un disco se respalda archivo porp p archivo, es importante que el programa de respaldo no trate de copiar el archivode respaldo no trate de copiar el archivo de bloques defectuosos. Para evitarlo, el SO tiene que ocultar dicho archivo, para que ni siquiera un programa de respaldoq q p g p pueda hallarlo. 26 Los sectores defectuosos no son la única fuente de errores. También pueden presentarse errores de: desplazamientop p del brazo causados por problemas mecánicos La controladora se mantienemecánicos. La controladora se mantiene al tanto de la posición del brazo. Para realizar un deplazamiento, la controladora envía una serie de pulsos alp motor del brazo, un pulso por cilindro, a fin de trasladar el brazo al nuevo cilindro 27 fin de trasladar el brazo al nuevo cilindro Una vez que el brazo llega a su destino, la controladora lee el número de cilindro real en el preámbulo del siguiente sector.p g Si el brazo no está en el lugar correcto, se habrá presentado un error dese habrá presentado un error de desplazamiento. Casi todas las controladoras de disco duro corrigen errores de desplazamientog p en forma automática 28 Por lo que la controladora es unaPor lo que, la controladora es una pequeña computadora especializada, úcompleta con software, variables, búferes y, de vez en cuando, bugs (errores)y, , g ( ) La recalibración de un disco produce un ruido raro pero por lo demás no causaruido raro pero por lo demás no causa problemas en condiciones normales. 29 Almacenamiento estableAlmacenamiento estable Utiliza un par de disco idénticos en el que los bloques correspondientes colaboran para formar un bloque sin errores. En ausencia de errores,un bloque sin errores. En ausencia de errores, los bloques correspondientes en ambas unidades son iguales Es posible leer cualquieraunidades son iguales. Es posible leer cualquiera de ellos y obtener el mismo resultado. Para l l t d fi 3 ilograr la meta, se define 3 operaciones: Escrituras estables Lecturas estables Recuparación después de caidas. 30 RelojesRelojesRelojesRelojes Los relojes (temporizadores) son indispensables para el funcionamiento deindispensables para el funcionamiento de cualquier sistema multiprogramado (mantienen la hora del día y evitan que un proceso monopolice la CPU).un proceso monopolice la CPU). El estudio de los relojes se basa en el hardware y en el softwarehardware y en el software. 31 Hardware de relojHardware de reloj Se construye con 3 componentes: jj Un cristal oscilador Un contadorUn contador Un registro de retención Cuando un cristal de cuarzo se corta de manera adecuada y se monta sometido a tensión, puede hacerse que genere una señal periódica de gran precisión, por lo regular del orden de variosp , p g cientos de megahertz, dependiendo del cristal escogido 32 escogido Utilizando circuitos electrónicos estaUtilizando circuitos electrónicos, esta señal base puede multiplicarse por un entero pequeño para obtener frecuencias de hasta 1000 MHz. Todo ordenador contiene al menos un circuito de este tipo el cual alimenta una señaltipo, el cual alimenta una señal sincronizadora a los demás circuitos de la ámáquina 33 Los relojes programables suelen tenerLos relojes programables suelen tener varios modos de operación: úModo de disparo único Modo de onda cuadrada Cuando el contador llega a cero y causa la interrupción entonces estala interrupción, entonces esta interrupciones periódicas se llaman tics de reloj 34 Software de relojSoftware de reloj Lo único que hace el hardware de reloj es jj generar interrupciones a intervalos conocidos. Todo lo demás relacionado con elconocidos. Todo lo demás relacionado con el tiempo debe efectuarse en software. Las tareas son:tareas son: 1. Mantener la hora al día 2 E it j t l2. Evitar que se ejecuten los procesos durante más tiempo del debido 3. Contabilizar el consumo de CPU 4. Procesar la llamada al sistema alarm 35emitida por procesos de usuario 5. Proporcionar temporizadores de vigilancia a ciertas partes delg p sistema 6 Realizar perfiles supervisión y6. Realizar perfiles, supervisión y recolección de datos estadísiticos 36 La primera función del reloj mantener laLa primera función del reloj, mantener la hora del día (tiempo real). Sólo requiere incrementar un contador en cada tic del reloj. Lo único que hay que cuidar es elj q y q número de bits en el contador de la hora del 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 puede adaptarse 3 enfoques:p q Utilizar un contador de 64 bits Mantener la hora del día enMantener la hora del día en segundos, no en tics. Contar en tics, pero hacerlo con relación al momento en que se pusoq p en marcha el sistema 38 Temporizadores de SoftwareTemporizadores de Software Casi todas las computadoras tienen un segundo pp reloj programable que puede ajustarse de modo que cause interrupciones con lamodo que cause interrupciones con la frecuencia que las necesite un programa. Este temporizador es adicional al temporizadortemporizador es adicional al temporizador principal del sistema. Mi t l f i d l i t iMientras la frecuencia de las interrupciones sea baja, no habrá problema si este segundo temporizador se utiliza con fines específicos para una aplicacióndada. 39 El problema surge cuando la frecuencia del temporizador específico para la aplicación es muy altaaplicación es muy alta. Los temporizadores de software evitan i t i C d l k linterrupciones. Cada vez que el kernel se ejecuta por algún otro motivo, justo antes de volver al modo de usuario examina el reloj de tiempo real para verexamina el reloj de tiempo real para ver si ha expirado un temporizador de ft 40 software Si es así, se ejecuta el suceso calendarizado sin necesidad de cambiar al modo del kernel porque el sistema yaal modo del kernel porque el sistema ya está allí. Una vez efectuado el trabajo, el t i d d ft t bltemporizador de software se restablece para que vuelva a dispararse. Lo único que hay que hacer es copiar el valor actual del reloj en el temporizador yactual del reloj en el temporizador y sumarle el intervalo de tiempo fuera. 41 El funcionamiento de los temporizadores de software depende de la frecuencia con que se ingrese al kernel por otrosque se ingrese al kernel por otros motivos, que pueden ser: Ll d l i tLlamadas al sistema Fallos de TLB Fallos de página Interrupciones de E/SInterrupciones de E/S La CPU se queda sin trabajo 42