Asignación 6:
GESTIÓN DE E/S - PLANIFICACIÓN DE
DISCOS
Luis Augusto Sandoval Lizarraga. Prof. Mirella Herrera
C.I.: 26.781.082 Sistemas operativos
PLANIFICACIÓN DE DISCOS
La programación de discos es realizada por los sistemas operativos para programar
las solicitudes de E/S que llegan para el disco. La programación de discos también se
conoce como programación de E/S. La importancia de la planificación de discos
radica en que:
• Múltiples solicitudes de E/S pueden llegar de diferentes procesos y solo una solicitud
de E/S puede ser atendida a la vez por el controlador de disco. Por lo tanto, otras
solicitudes de E/S deben esperar en la cola de espera y deben programarse.
• Dos o más solicitudes pueden estar alejadas entre sí, lo que puede provocar un
mayor movimiento del brazo del disco.
• Los discos duros son una de las partes más lentas del sistema informático y, por lo
tanto, deben accederse de manera eficiente.
TÉRMINOS IMPORTANTES DE LA PLANIFICACIÓN
• Tiempo de búsqueda: Es el tiempo que tarda el brazo del disco en ubicarse en una pista específica donde se encuentran
los datos a leer o escribir. Por lo tanto, el algoritmo de programación de disco que da un tiempo de búsqueda promedio
mínimo es mejor.
• Latencia rotacional: Es el tiempo que tarda el sector deseado del disco en girar a una posición para que pueda acceder a
los cabezales de lectura/escritura. Por lo tanto, el algoritmo de programación de disco que da una latencia rotacional
mínima es mejor.
• Tiempo de transferencia: Es el tiempo que se tarda en transferir los datos. Depende de la velocidad de rotación del disco y
del número de bytes a transferir.
• Tiempo de acceso al disco: Es el tiempo total que tarda el disco en acceder a un dato. Se calcula de la siguiente manera:
o Tiempo de acceso al disco = Tiempo de búsqueda + Latencia rotacional + Tiempo de transferencia
• Tiempo total de búsqueda: Es el tiempo total que tarda el brazo del disco en moverse de una pista a otra. Se calcula de la
siguiente manera:
o Tiempo total de búsqueda = Movimiento total del cabezal * Tiempo de búsqueda
• Tiempo de respuesta del disco: Es el tiempo promedio que pasa una solicitud esperando para realizar su operación de E/S.
El tiempo de respuesta promedio es el tiempo de respuesta de todas las solicitudes. El tiempo de respuesta de varianza es
la medida de cómo se atienden las solicitudes individuales con respecto al tiempo de respuesta promedio. Por lo tanto, el
algoritmo de programación de disco que proporciona un tiempo de respuesta de varianza mínimo es mejor.
ALGORITMOS DE PLANIFICACIÓN DE DISCOS
• FIFO
• SSTF
• SCAN
• C-SCAN
• LOOK
• C-LOOK
• SCAN de N pasos
- Posicion inicial del cabezal: 50
- Entradas de prueba:
82 170 43 140 24 16 190
FIFO ( FIRST IN FIRST OUT )
• En este algoritmos las peticiones son atendidas por orden de llegada a la
cola del disco
82 170 43 140 24 16 190
0 16 24 43 50 82 100 140 150 170 190 199
Distancia recorrida por el brazo: (82-50)+(170-82)+(170-43)+(140-43)+(140-24)+(24-16)+(190-16) = 642
SSTF (SHORTEST SEEK TIME FIRST)
• El algoritmo de programación de discos SSTF (Shortest Seek Time First) da prioridad a las
solicitudes de E/S con el menor tiempo de búsqueda. Para ello, calcula el tiempo de búsqueda de
cada solicitud por adelantado y luego las programa en función de su tiempo de búsqueda
calculado. Como resultado, la solicitud más cercana al brazo del disco se ejecutará primero.
82 170 43 140 24 16 190
0 16 24 43 50 82 100 140 150 170 190 199
Distancia recorrida por el brazo: (50-43)+(43-24)+(24-16)+(82-16)+(140-82)+(170-140)+(190-170) = 208
SCAN
El algoritmo de programación de discos SCAN (Elevator) mueve el brazo del disco en una
dirección particular y atiende las solicitudes que se encuentran en su camino. Una vez que
alcanza el final del disco, invierte su dirección y vuelve a atender las solicitudes que llegan en
su camino. Por lo tanto, este algoritmo funciona como un ascensor y también se conoce como
algoritmo del ascensor.
Como resultado de este funcionamiento, las solicitudes que se encuentran en el rango medio
del disco se atienden con más frecuencia, mientras que las solicitudes que llegan detrás del
brazo del disco tendrán que esperar más tiempo.
82 170 43 140 24 16 190
0 16 24 43 50 82 100 140 150 170 190 199
Distancia recorrida por el brazo: (199-50) + (199-16) = 332
C-SCAN
En el algoritmo de programación de discos SCAN, el brazo del disco vuelve a escanear la ruta que ya
ha escaneado después de invertir su dirección. Esto puede provocar que se acumulen demasiadas
solicitudes en el otro extremo de la ruta o que haya pocas o ninguna solicitud pendiente en el área
escaneada.
El algoritmo de programación de discos CSCAN evita estas situaciones al hacer que el brazo del
disco, en lugar de invertir su dirección, se desplace al otro extremo del disco y comience a atender
las solicitudes desde allí. Por lo tanto, el brazo del disco se mueve de forma circular y este
algoritmo es similar al algoritmo SCAN, por lo que se conoce como C-SCAN (Circular SCAN).
82 170 43 140 24 16 190
0 16 24 43 50 82 100 140 150 170 190 199
Distancia recorrida por el brazo: (199-50) + (199-0) + (43-0) = 391
LOOK
El algoritmo de programación de discos LOOK es similar al algoritmo SCAN, pero con la diferencia
de que el brazo del disco, en lugar de ir al final del disco, solo va hasta la última solicitud que debe
atenderse en la dirección en la que se mueve y luego invierte su dirección desde allí. Esto evita el
retraso adicional que se produce debido al desplazamiento innecesario al final del disco.
El algoritmo LOOK es una mejora sobre el algoritmo SCAN, ya que reduce el tiempo de búsqueda
promedio de las solicitudes de E/S. Esto se debe a que el brazo del disco no tiene que viajar
innecesariamente al final del disco si no hay solicitudes de E/S pendientes en esa área.
82 170 43 140 24 16 190
0 16 24 43 50 82 100 140 150 170 190 199
Distancia recorrida por el brazo: (190-50) + (190-16) = 314
C-LOOK
En este algoritmo el brazo de disco a pesar de ir hasta el final va sólo hasta la última petición a
atender delante de la cabeza y luego desde allí va hasta la última petición del otro extremo. De
este modo, también se evita el retraso adicional que se producía debido al recorrido innecesario
hasta el final del disco. Esto evita el retraso adicional que se produce debido al desplazamiento
innecesario al final del disco.
El algoritmo C-LOOK es una mejora sobre el algoritmo CSCAN, ya que reduce el tiempo de
búsqueda promedio de las solicitudes de E/S. Esto se debe a que el brazo del disco no tiene que
viajar innecesariamente al final del disco si no hay solicitudes de E/S pendientes en esa área.
82 170 43 140 24 16 190
0 16 24 43 50 82 100 140 150 170 190 199
Distancia recorrida por el brazo: (190-50) + (190-16) + (43-16) = 341
N-STEP SCAN
Este algoritmo funciona creando un búfer para N solicitudes. Las solicitudes que pertenecen a un
búfer se atienden de una vez. Además, una vez que el búfer está lleno, no se aceptan nuevas
solicitudes en este búfer y se envían a otro. Cuando se atienden estas N solicitudes, es el momento
de atender las siguientes N solicitudes principales, y así todas las solicitudes obtienen un servicio
garantizado
82 170 43 140 24 16 190
0 16 24 43 50 82 100 140 150 170 190 199
Algoritmo N-STEP SCAN para n = 4 pasos.
Cola 1 82 170 43 140
Cola 2 24 16 190
Distancia recorrida por el brazo: (199-50) + (199-0) + (190) = 538
TABLA COMPARATIVA DE LOS ALGORITMOS
Algoritmo Ventajas Desventajas
No optimiza el uso del disco ni el tiempo
FIFO Simple y justo para todos los procesos
de respuesta
Minimiza el tiempo de búsqueda y el Puede causar inanición de algunas
SSTF movimiento del brazo peticiones
Reduce la variación del tiempo de servicio Puede generar largos tiempos de espera
SCAN y evita la inanición para las pistas externas
Ofrece un tiempo de servicio más Tiene el mismo problema que SCAN para
C-SCAN uniforme que SCAN las pistas externas
Mejora SCAN al cambiar de dirección Tiene el mismo problema que SCAN para
LOOK antes de llegar al final del disco las pistas externas
Mejora C-SCAN al cambiar de dirección Puede ser más complejo de implementar
C-LOOK antes de llegar al final del disco que FIFO o SSTF
Combina FIFO y SCAN para reducir el Puede generar largos tiempos de espera
N-Step-SCAN número de cambios de dirección para algunas peticiones
RAID
RAID (Redundant Array of Independent Disks) es una tecnología de almacenamiento de datos que
combina varios discos físicos en un solo conjunto lógico de almacenamiento. RAID proporciona
varios beneficios, como un mayor rendimiento, una mayor capacidad de almacenamiento y una
mayor fiabilidad.
TIPOS DE RAID
Existen diferentes tipos de RAID, cada uno con sus propias características, propósitos y ventajas. Los más
comunes son:
• RAID 0: Divide los datos entre dos o más discos, aumentando la velocidad de lectura y escritura, pero sin
ofrecer redundancia. Si uno de los discos falla, se pierden todos los datos.
• RAID 1: Copia los datos de un disco a otro, creando un espejo. Ofrece una alta redundancia y tolerancia a
fallos, pero reduce la capacidad de almacenamiento a la mitad.
• RAID 5: Divide los datos y la información de paridad entre tres o más discos, permitiendo recuperar los datos
en caso de fallo de uno de ellos. Ofrece un buen equilibrio entre rendimiento, capacidad y seguridad, pero
requiere más recursos del sistema.
• RAID 6: Similar al RAID 5, pero con dos bloques de paridad por disco, lo que permite recuperar los datos en
caso de fallo de hasta dos discos. Ofrece una mayor seguridad que el RAID 5, pero reduce el rendimiento y la
capacidad.
• RAID 10: Combina el RAID 0 y el RAID 1, creando un conjunto dividido y espejado. Ofrece un alto rendimiento y
una alta redundancia, pero requiere al menos cuatro discos y reduce la capacidad a la mitad.
RESUMEN DEL MANEJO DE DISPOSITIVIOS ENTRE LOS
SISTEMAS OPERATIVOS
Sistema
Manejo de los dispositivos
operativo
Unix trata a los dispositivos de entrada y salida (E/S) como archivos especiales que se encuentran en el
directorio /dev. Cada dispositivo tiene un nombre y un número asociado, que se usan para identificarlo y
Unix acceder a él. Los programas pueden leer y escribir en los dispositivos usando las mismas funciones que se
usan para los archivos normales
Linux es un sistema operativo de la familia Unix, por lo que también trata a los dispositivos como archivos
especiales en el directorio /dev. Sin embargo, Linux usa dos tipos de archivos para los dispositivos: los
archivos de caracteres y los archivos de bloques. Los archivos de caracteres permiten leer y escribir en los
Linux dispositivos byte a byte, mientras que los archivos de bloques permiten leer y escribir en los dispositivos
bloque a bloque. Los programas pueden usar la entrada y salida estándar para comunicarse con los
dispositivos por defecto, que son el teclado y la pantalla.
Windows usa un modelo diferente para el manejo de los dispositivos. Windows usa controladores de
dispositivos en modo kernel y una capa de abstracción de hardware (HAL) para interactuar con los
dispositivos. Los controladores de dispositivos son programas que se encargan de traducir las peticiones
Windows de los programas en instrucciones específicas para cada dispositivo. HAL es una capa entre el hardware
de la computadora y el sistema operativo, que se encarga de controlar las interfaces de E/S, los
controladores de interrupciones y los procesadores.
BIBLIOGRAFIA
• GeeksforGeeks. (s. f.). Disk Scheduling Algorithms. Disk Scheduling Algorithms -
GeeksforGeeks.
• GeeksforGeeks. (s. f.). N-step SCAN disk scheduling. N-Step-SCAN disk scheduling -
GeeksforGeeks.
• Stallings, W. (2018). Operative systems internals and design principles (9a ed.).
Pearson.
• myservername. (s.f). Diferencia entre Linux y Windows: ¿Cuál es el mejor sistema
operativo? . Diferencia entre Linux y Windows: ¿Cuál es el mejor sistema operativo?
- Otro ([Link])