SlideShare una empresa de Scribd logo
1 de 46
Entradas / Salidas     Sandra Jannette Castañeda Ramírez 9717132 Universidad de los Andes. Santafé de Bogotá, Mayo 4 de 1998     Introducción Las entradas/salidas han sido los elementos mas despreciados por los diseñadores de hardware y por los mejoradores del rendimiento de los computadores, quienes no hacen sino concentrarse en volver mas eficiente el procesamiento de la información (acrecentar el rendimiento de la CPU), sin tener en cuenta el rendimiento de los sistemas de entradas/salidas; tanto así que una de las medidas más utilizadas para determinar que tan poderoso, bueno o malo es algún sistema de cómputo, es el tiempo de CPU, el cual ignora completamente el tiempo de entradas/salidas; algo irónico puesto que finalmente : Cuando un usuario compra un computador o un sistema de cómputo lo que busca es cortos tiempos de respuesta, que se puede traducir como el tiempo que pasa desde que el usuario da una orden y recibe los resultados, y la mayoría de las veces, este resultado depende de una operación de entradas/salidas.  Cuando se quiere determinar la diferencia entre 2 computadores para saber si están en la misma escala (super, mini, micro) se observa la cantidad de discos, terminales y otros periféricos que pueda soportar cada uno, aunque en ciertos casos posean los mismos super-microprocesadores.  Además, las diferencias en costo entre un super y un microcomputador están determinadas no solo por el número de procesadores sino también por los sistemas de memoria y de entradas/salidas que posean.  Un computador sin dispositivos de entradas/salidas es como un carro sin ruedas : seguramente no podrá llegar muy lejos sin ellas. Hay quienes dicen que la velocidad de las entradas/salidas no importa puesto que siempre hay un proceso que ejecutar mientras otro está esperando un periférico. Este argumento se puede refutar ya que está midiendo el rendimiento como productividad (mas tareas por hora), no como tiempo de respuesta, y si analizamos la mayoría de las aplicaciones, por ejemplo las que manejan transacciones, encontramos que son exigentes con el tiempo de respuesta. Además, cuando hay muchos procesos, el tráfico de paginación por la conmutación entre los procesos incrementa las entradas/salidas; aún peor, hay veces en las cuales el único proceso que espera que se realice la operación de entradas/salidas es el ser humano. En general, en un sistema en el que se mejora el rendimiento de la CPU con el fin de obtener resultados mas rápidos y no se mejoran la velocidad de las entradas/salidas, cualquier mejora adicional que se haga a la CPU incrementará el tiempo de inactividad de la CPU, puesto llegará un momento en que a todos los procesos estén esperando por una entrada/salida. Como conclusión, la productividad de las entradas/salidas puede limitar la productividad del sistema al igual que el tiempo de respuesta de las entradas/salidas limita el tiempo de respuesta del sistema.   Necesidad de las entradas/salidas En teoría, la velocidad de un sistema multiprocesador debe incrementar en right0proporción directa con el incremento del número de nodos de procesamiento; esto no ocurre en todos los casos, pero se ha observado que lo que si ocurre en la práctica es que a medida que la velocidad de procesamiento incrementa, los programas que ejecutan entradas/salidas, requieren mayor cantidad de ellas. Por otro lado, es usual que las aplicaciones que corren en los poderosos supercomputadores requieran de operaciones de entradas/salidas de grandes volúmenes. Esto sucede así por diferentes razones: Muchas veces los datos requeridos por un programa no se pueden colocar en memoria principal y por eso deben ser colocados en archivos en discos. Un ejemplo de este caso puede ser una aplicación que deba hacer operaciones con una matriz muy grande (de 1000 x 1000 ó más grande).  Otros casos son aquellos en los cuales los datos si pueden ser almacenados en memoria , pero se requieren operaciones de entradas/salidas, por ejemplo, para leer datos de entrada de archivos al principio del proceso y para escribir los resultados al final; eventualmente se puede necesitar escribir o leer datos durante el proceso.  Hay aplicaciones que corren por largo tiempo, que requieren de puntos de chequeo, en los cuales se detiene el procesamiento para reiniciar mas tarde; en este momento es necesario almacenar el contenido de las estructuras de datos en archivos.  Las entradas/salidas pueden ser requeridas para la depuración de un programa paralelo.    Elementos que determinan el desempeño de las E/S Ahora veremos qué elementos juegan un papel importante en el desempeño de las entradas/salidas. El número de operaciones físicas de entradas/salidas necesarias para satisfacer un requerimiento.  La congestión en la red que ocasiona el aspecto anterior.  El ancho de banda requerido por las aplicaciones.  Los diferentes patrones de acceso de las aplicaciones.  El tiempo de acceso a un disco que está compuesto de:  El tiempo de posicionamiento en los discos, que es también llamado tiempo de búsqueda porque se refiere al tiempo gastado en desplazar el brazo móvil, que contiene la cabeza de lectura/escritura, a la pista deseada.  La latencia de rotación o retardo rotacional en los discos, que es el tiempo para que el sector requerido gire bajo la cabeza lectora/escritora.  El tiempo de transferencia, que es el tiempo empleado en transferir un bloque de bits bajo la cabeza de lectura/escritura hasta el búffer del controlador. Normalmente es función del tamaño del bloque, la velocidad de rotación, la densidad de grabación de una pista y la velocidad de los componentes electrónicos que conectan el disco al computador.  Teniendo en cuenta estos factores, se han planteado alternativas que tratan de mejorar uno o más de ellos. La mayoría de estas soluciones está orientada a algún tipo de arquitectura.     Soluciones en Entradas/Salidas El paralelismo busca maximizar el rendimiento de un sistema, especialmente cuando se ejecutan aplicaciones de gran escala que por lo general requieren altas velocidades y cortos tiempos de respuesta. Desafortunadamente pocos programas son escritos para explotar la concurrencia, debido a muchas razones; entre ellas se encuentra el hecho de que los programadores aún piensan en forma secuencial; por otro lado, encontramos que es mas difícil la depuración y la corrección de programas paralelos que la de programas secuenciales. Desde la década de los 50 a algunos diseñadores de sistemas de computación les ha llamado la atención el problema de las entradas/salidas; ellos inicialmente se dedicaron, en la mayoría de los casos, a construir paralelismo en varios componentes individuales de entrada/salida; por ejemplo: 1. Mejoras en los buses Los buses han transferido bits en paralelo por muchos años. Se han hecho muchos intentos por tratar de aprovechar al máximo el acceso a los buses; por ejemplo, existen buses que proveen segmentación (pipeline), que consiste en aprovechar el tiempo en que un procesador está accediendo el bus para hacer el arbitraje, esto es, para decidir cuál es el próximo dispositivo que va a acceder al bus; con esto, se trata de no tener el bus inactivo los n ciclos de reloj que dura el arbitraje.     2. Mejoras en el acceso a los discos El DMA (Acceso Directo a Memoria) Es una técnica muy empleada para evitar que las entradas/salidas pasen necesariamente del almacenamiento a la CPU, sino que pasen directamente del almacenamiento a memoria. Tradicionalmente, cuando ocurre un acceso a almacenamiento secundario ocurre lo siguiente en un sistema que trabaja sin DMA: la CPU hace el requerimiento de los datos al subsistema de entradas/salidas quien después de determinar el bloque que se requiere, dirige éste requerimiento al respectivo controlador de disco; éste comienza la lectura bit por bit desde el disco hasta su búffer interno y cuando logra cargar todos los datos produce una interrupción que es atendida por la CPU, quien comienza la transferencia desde el búffer hacia la memoria; como se puede ver, esta operación hace que se desaproveche ese tiempo de CPU (que es significativo, teniendo en cuenta que el acceso a memoria cuesta). El DMA se inventó para liberar a la CPU de hacer este trabajo. El camino ahora es mas corto puesto que cuando la CPU hace el requerimiento al subsistema de entradas/salidas, proporciona una información adicional que incluye la dirección de memoria principal en la que debe quedar el bloque y el número de bytes a transferir; el controlador empieza a transferir datos desde el disco hasta su búffer y cuando finaliza empieza a copiarlos a memoria principal comenzando en la dirección que antes le habían suministrado; cuando finaliza la copia produce una interrupción. Una pregunta muy usual que uno puede hacerse es por qué el controlador utiliza un búffer en lugar de copiar directamente del disco hacia memoria principal. La razón es que una vez la transferencia desde el disco comienza, los datos empiezan a llegar en una rata constante así el controlador esté listo o no para recibirlos; si el controlador tratara de escribir directamente en la memoria tendría que usar el bus del sistema corriendo el riesgo de que esté ocupado, razón por la cual el controlador debería esperar y si la espera es muy larga es posible que la próxima palabra llegue al controlador y sea necesario de todas maneras almacenarla en alguna parte y si esta parte es muy pequeña, llegaría un momento en que el controlador debe finalizar la recepción de datos desde el disco si el bus siguiera ocupado. De la otra manera, el diseño del controlador es mucho más simple porque la transferencia del DMA a memoria no es en tiempo crítico.   Discos de cabeza fijaright0 Tratan de disminuir el tiempo de posicionamiento pues, como su nombre lo indica, tiene varias cabezas, cada una sobre cada pista del disco. Lógicamente, la aparición de discos con gran cantidad de pistas hizo que esta no fuera una buena solución desde el punto de vista económico. Discos de mayor densidad de almacenamiento Se trata de almacenar mas bits por pulgada en una pista, tratando de mejorar con esto los tiempos de transferencia debido a que en cada unidad de tiempo se pueden leer o escribir mas datos; y tratan de mejorar, un poco, la velocidad de búsqueda porque generalmente estos discos son de diámetro mas pequeño, lo que hace tengan menos cilindros y que las distancias de búsqueda sean más cortas. Los cachés Su objetivo principal es reducir el tráfico a los discos para obtener buenos tiempos de respuesta y rendimiento. Cuando hay una operación de lectura (se desea llevar datos desde los discos hasta la memoria principal), el bloque es buscado en el caché; si se encuentra allí, el sistema operativo procede a retornarlo inmediatamente sin necesidad de leerlo físicamente de los discos; de no encontrarlo en el caché el sistema operativo notifica al controlador del disco que necesita un bloque y éste procede a transmitir los datos al caché; finalmente, el controlador interrumpe la CPU cuando la entrada/salida está completa. Cuando se va a hacer una escritura ocurre algo similar con la variante de que el bloque a escribir es colocado en el caché sin hacer alguna verificación si es un archivo nuevo, y si es un archivo al que se va a hacer alguna modificación lo mas probable es que sea un archivo que se acabe de leer y esté en el caché, momento en el cual se escriben los datos en el caché y se marca dicho bloque como sucio, para saber si en el momento de quitarlo del caché es necesario escribir a disco.  Sin embargo se pueden presentar algunos problemas relacionados al uso de cachés como la inconsistencia entre los datos que están en memoria o en los discos y los que están en el caché.   Arreglos de Discos No es una tecnología diferente sino una forma distinta de organizar los discos pequeños. El argumento justificador de dichos arreglos es que, como el precio por megabyte es independiente del tamaño del disco, la productividad potencial se puede incrementar teniendo muchas unidades de discos y, por consiguiente, muchos brazos de discos. Además, la fragmentación del total espacio de almacenamiento en múltiples y económicos discos permite soluciones que se benefician del ancho de banda proporcionado por los discos y las bajas latencias de posicionamiento; el problema de estos arreglos es que el tiempo medio entre las fallas (MTBF), para el arreglo como un todo, decrementa linealmente con el número de discos independientes del arreglo, teniéndose entonces la posibilidad de que las fallas catastróficas produzcan pérdidas de datos. La necesidad de almacenar datos redundantes para la recuperación de las fallas de los discos, produjo la aparición de los RAIDs (arreglos de discos económicos redundantes), que mejoran la confiabilidad del sistema en cuanto a las fallas, y tienen alta capacidad de entradas/salidas. Desafortunadamente, al igual que los arreglos convencionales, también tienen la tendencia de maximizar la latencia rotacional pues cada operación debe esperar por el caso mas malo de posicionamiento de un disco; además, a medida que se incrementa el tamaño del arreglo (incrementa el ancho de banda) se puede crear un cuello de botella en el controlador o nodo de entradas/salidas. Aunque los arreglos mejoran la productividad, la latencia no se mejora necesariamente.   Striping de discos Como una alternativa a los arreglos de discos, apareció la noción del striping de discos, en el cual los dispositivos convencionales son unidos lógicamente al nivel del software de los sistemas de archivos, de tal manera que los bloques consecutivos de un archivo son localizados en discos diferentes, permitiendo así, que el sistema de archivos pueda iniciar operaciones de entradas/salidas en varios bloques en paralelo. La  Sistemas de Archivos Un sistema de archivos es responsable del manejo de los archivos en almacenamiento secundario. Es right0responsable de proporcionar los medios para almacenamiento privado de información y para que los usuarios puedan compartir información entre ellos de forma controlada. Lo mas importante, quizás, es que el sistema de archivos debe brindar estos servicios haciendo que ciertos aspectos (tales como la ubicación física de los archivos, la forma que toman dichos archivos en los dispositivos en los que están almacenados o el medio físico utilizado para transferir datos desde y hasta esos dispositivos) sean transparentes al usuario. Como no se espera que la tecnología de hardware de entradas/salidas mejore dramáticamente, por lo menos en un futuro cercano, muchos investigadores se han dedicado a desarrollar sistemas de archivos que combinen y aprovechen las ventajas del inherente paralelismo provisto por los componentes individuales de los sistemas distribuidos y los sistemas masivamente paralelos con técnicas que pretendan agilizar los accesos, dando como resultado los sistemas de archivos paralelos. Además han aprovechado la arquitectura de las máquinas multiprocesador dividiendo la jerarquía de entradas/salidas en cuatro niveles :  Los nodos de procesamiento, que son nodos del sistema dedicados únicamente al procesamiento de los datos.  Los nodos de entradas/salidas, que son nodos del sistema dedicados únicamente a las entradas/salidas.  Los controladores  Los dispositivos de E/S.    Se pueden enumerar varias características que se esperaría que un sistema de archivos paralelo, ideal y de propósito general, tuviera:    Alto rendimiento, es decir, ejecutar los accesos a los datos de manera eficiente.  Alta confiabilidad, para soportar dispositivos de almacenamiento secundario de gran capacidad y libres de errores.  Portabilidad, para ser integrado en sistemas heterogéneos fácil y rápidamente.  Escalabilidad, para garantizar a los diseñadores la posibilidad de adicionar nodos de entradas/salidas extra, controladores y dispositivos de almacenamiento secundario, sin limitación.  Transparencia, es decir, que el sistema de archivos preste sus servicios sin que el usuario se entere de la ubicación física de los archivos, de los dispositivos que usa para transferirlos, etc.  Flexibilidad, para soportar una amplia variedad de interfaces y políticas implementadas a través de librerías.  Permitir implementaciones de librerías de manera fácil y eficiente.  Contar con técnicas para clasificar dinámicamente los patrones de acceso de las aplicaciones y automáticamente adaptar los algoritmos de manejo de datos a minimizar las latencias de acceso para esos patrones.  Los patrones de acceso a los datos son grupos en los cuales se puede incluir cualquier aplicación dependiendo de la forma en que acceso los mismos. Algunos ejemplos: De acuerdo a la forma en que acceden a los archivos y a la frecuencia de acceso, las aplicaciones se pueden agrupar en:  Lecturas y escrituras de gran tamaño ejecutadas secuencialmente en un archivo (o lo que comúnmente es llamado acceso secuencial).  Procesamiento de transacciones, las cuales típicamente manejan un gran número de requerimientos concurrentes cuyo tamaño es usualmente pequeño, involucrando varios dispositivos simultáneamente (accesos aleatorios concurrentes).  Accesos a un gran número de archivos pequeños con muy pocos accesos concurrentes. Los archivos son usualmente cortos (accesos aleatorios no concurrentes).  También se pueden agrupar teniendo en cuenta la operación que realizan durante el acceso en:  De solo lectura  De solo escritura  De lectura y escritura  Esta clasificación varía de acuerdo con el autor que la defina, de manera que pueden existir categorías diferentes a las anteriores. Diseñar sistemas que satisfagan los requerimientos de los anteriores patrones es una tarea complicada porque hay diversidad de ellos y cada uno se comporta de manera diferente de los otros; por ejemplo, el número de archivos usados no es igual para cada patrón y varía de 1 a docenas; el tamaño de los archivos está en el rango de unos pocos Kbytes a Gbytes; los requerimientos de entradas/salidas también varían desde bytes a Mbytes; la frecuencia de acceso a los archivos es diferente para cada patrón; y el ancho de banda y la tasa de entradas/salidas requeridos también varía en cada caso. Tener en cuenta los patrones de acceso es un aspecto muy importante en el momento de elegir la técnica que se va a utilizar en cualquier sistema de archivos, porque de esto puede depender que se obtengan los resultados deseados. Por ejemplo, el ya mencionado striping, es un método usado por una gran mayoría de los sistemas de archivos actuales. Para que el striping produzca los beneficios esperados, es muy importante tener en cuenta los patrones de acceso de las aplicaciones, pues el paralelismo se desaprovecharía si, por ejemplo, el acceso de una aplicación es aleatorio y los bloques que accede se encuentran en un mismo disco. En síntesis se deben desarrollar modelos balanceados al determinar cómo van a ser manejados los recursos de entradas/salidas para alcanzar alto rendimiento. Esto requiere explotar un amplio espacio de opciones, es decir, determinar la mas efectiva combinación de buffering, caching masivo en varios niveles de entradas/salidas, precarga, distribución de datos y compartimiento de archivos para reducir el número de operaciones físicas de entradas/salidas y sobrelaparlas con computación. Además, se requiere una configuración flexible del subsistema de entradas/salidas que combine nodos de entradas/salidas separados de los de procesamiento, rápidos buses de entradas/salidas y drives independientes; una ideal distribución balanceada podría ofrecer la misma distancia máxima entre cualquier recurso de entradas/salidas y el nodo de procesamiento y el mismo ancho de banda para cada nodo de procesamiento.   Sistemas de Archivos paralelos actuales No se puede decir que hay homogeneidad en los diseños de los actuales sistemas de archivos, por el contrario, los autores se han encargado de atacar varios de los problemas, ya mencionados, de las entradas/salidas usando diferentes técnicas o utilizando una misma técnica pero con funciones distintas. A continuación se mencionan brevemente algunos trabajos y las técnicas utilizadas para aportar las soluciones. Algunos sistemas de archivos soportan un número de políticas predefinidas pero también aceptan ambientes definidos por el usuario, en donde se puede especificar el patrón de acceso de la aplicación e incluso los patrones de acceso para precarga. Otra aproximación, planteada para el Intel Paragón y llamada SPIFFI, pretende también otorgar flexibilidad implementando un esquema descentralizado del sistema de archivos que brinda al usuario la posibilidad de seleccionar uno de 4 tipos de apuntadores dependiendo del modo de acceso: apuntador local de archivos, apuntador global de archivos, apuntador global sincronizado y apuntador distribuido. Si dos procesos simultáneamente usan apuntadores locales de archivos (LPFs) para acceder al mismo archivo, cada apuntador se comporta como si ningún otro proceso estuviera accediendo el archivo. Un apuntador global de archivos (GFP) es compartido entre un grupo de procesos, todos accediendo el mismo archivo; pueden leer o escribir secuencialmente; cada proceso accederá un conjunto aleatorio de bloques (de cualquier tamaño) del archivo; un proceso no conoce de antemano que bloques accederá pero conoce que ningún otro proceso leerá los mismos bloques; hay un nodo especial llamado el nodo GFP dedicado a servir los requerimientos GFPs; cuando un proceso quiere acceder a un archivo hace una solicitud de lectura al nodo para obtener el valor del GFP; luego el proceso envía un segundo mensaje pero dirigido al nodo que contiene el disco apropiado. Los apuntadores globales sincronizados (SGFP) son apuntadores GFP pero con sincronización; los procesos que comparten uno de éstos apuntadores tienen asignados un orden fijo cíclico y tienen acceso a él solamente en ese orden; si se envía una solicitud para obtener el apuntador fuera de ese orden, se debe esperar el turno. El apuntador distribuido de archivos (DFP) se creó para evitar los cuellos de botella que se pueden crear, en aplicaciones de mucha E/S, con GFP o SGFP; este también es un apuntador distribuido pero a diferencia de los anteriores es descentralizado; cada nodo de disco mantiene un apuntador para su fragmento; cada aplicación lee el archivo que desea seleccionando un nodo de discos inicial; el proceso continúa leyendo el mismo disco hasta que todos los bloques son leídos de ese nodo; en este momento el proceso escoge nuevos nodos de los cuales leer; se detiene cuando ha leído completamente todos los fragmentos en todos los nodos.    Otra gran parte de sistemas de archivos como PPFS, NFS, Vesta, Galley y ParFiSys, entre otros, se basan en un modelo cliente/servidor en donde los servidores son los nodos de entradas/salidas, cada uno equipado con uno o más dispositivos de almacenamiento secundario asociados a través de un controlador, y los clientes son los nodos de procesamiento, quienes envían las solicitudes de lectura/escritura de los usuarios. Típicamente se cuenta con rutinas que se encargan de recibir estos requerimientos y de establecer comunicación con los servidores para obtener información estructural de los directorios y poder conducir los requerimientos a los servidores correspondientes. Generalmente, también se combinan técnicas de precarga con el uso de caches para ocultar al usuario la latencia de acceso y reducir la sobrecarga y congestión de la red por los accesos, respectivamente. El sistema de archivos Hurricane es otro enfoque que plantea un modelo orientado por objetos, en el cual los archivos son tratados como un número de simples bloques llamados objetos de almacenamiento. Cada uno de estos objetos define una porción de una estructura de un archivo o implementa un conjunto de políticas. La clase más simple de objetos de almacenamiento son los bloques de discos; con excepción de ellos, los objetos de almacenamiento contienen entre otros estados, apuntadores a otros objetos de almacenamiento (estos últimos llamados sub-objetos). Este modelo fue diseñado para multiprocesadores de memoria compartida, y busca brindar flexibilidad soportando una amplia variedad de modos de acceso (secuencial, aleatorio, solo lectura, solo escritura o lectura/escritura), estructuras de archivos (datos densos o poco densos, tamaños de archivos grandes o pequeños), y políticas (de bloqueo, de precarga, de compresión/descompresión y de manejo del caché), que pueden ser definidas por las aplicaciones cuando accedan datos. Por ejemplo, si 2 aplicaciones intentan acceder a un mismo archivo, se crea un objeto separado para cada apertura, que mantiene el estado del archivo; esos objetos comparten un sub-objeto que implementa alguna política de bloqueo; el sub-objeto de éste último es un objeto que implementa algún tipo de distribución del archivo a través de múltiples discos; los sub-objetos de éste objeto de distribución son objetos por disco, que implementan la distribución del archivo a través de los objetos bloques del disco en cada disco; las operaciones de entrada/salida se realizan a través de un flujo de requerimientos entre los objetos, quienes van chequeando la disponibilidad de los datos de acuerdo a lo que cada objeto representa. La flexibilidad se da entonces, porque no es necesario que todas las aplicaciones que requieran el archivo deben definir las mismas políticas y los objetos creados en el momento de la apertura de un archivo pueden ser acomodados a las características de la aplicación, por ejemplo, si una aplicación está accesando un archivo secuencialmente, el objeto que se crea en la apertura puede tener las características de hacer precarga de los datos secuencialmente; o se puede tener el caso de archivos que no se quieran distribuir a través de varios discos, por lo cual el sub-objeto del objeto de bloqueo puede ser el objeto por disco directamente, pues el objeto de distribución ya no sería necesario. Algunas optimizaciones se han logrado para evitar, principalmente, la congestión en la red y la cantidad de operaciones de entradas/salidas físicas. La Entrada/Salida Colectiva, por ejemplo, se aplica en programas paralelos en los que los procesadores ejecutan operaciones similares pero sobre diferentes conjuntos de datos; el objetivo es reunir los requerimientos de entradas/salidas de varios procesadores de manera que puedan cooperar entre ellos mismos para ejecutar entradas/salidas eficientemente. La Precarga trata de sobrelapar la computación y las entradas/salidas; la lectura del próximo conjunto de datos puede ser sobrelapada con la computación del actual conjunto de datos. El Caching de Datos se basa en el principio de que una porción del actual conjunto de datos cargados en memoria principal es también necesitada para la computación del próximo conjunto de datos, por tanto pueden ser reusados en lugar de leerlos de nuevo del disco. Se ha desarrollado además, un esquema que pretende disminuir la latencia de transferencia de datos en sistemas de archivos paralelos con archivos de solo escritura, manejando entradas/salidas colectivas. A diferencia de los otros esquemas, en éste el caché no se encuentra en los nodos de entradas/salidas sino en los nodos de procesamiento. Los requerimientos de escritura se van almacenando en los caches locales junto con la información relevante como son estampillas, la identificación (única en el sistema) del archivo, el número de bytes a escribir y los datos que se van a escribir. Cuando un caché se llena, interrumpe a todos los procesadores y se procede a enviar los datos y la información concerniente a ellos, contenidos en todos los caches, a los nodos de entradas/salidas para que éstos procedan a hacer las actualizaciones correspondientes en los discos. Si hay mas de un caché que va a escribir sobre un mismo bloque de un archivo, se decide la escritura mediante la estampilla.   Resumen   Los trabajos desarrollados hasta el momento plantean soluciones a algunos de los factores ya mencionados como determinantes del desempeño de las entradas/salidas y otros se enfocan en la consecución de algunas de las características deseables en ellos, también mencionadas. El problema del ancho de banda es solucionado en gran medida por los sistemas RAID y depende del número de discos que conformen el arreglo. El striping también busca solucionar este problema, indirectamente, pues su finalidad es aprovechar al máximo el paralelismo y poder acceder a varios dispositivos de entrada/salida al mismo tiempo. La baja latencia de posicionamiento en los discos la consiguen también los sistemas RAID, así como la deseada característica de confiabilidad. La deseable característica de satisfacer los diferentes patrones de acceso de las aplicaciones de manera dinámica fue considerada por Hurricane y por SPIFFI; el primero a través de su modelo orientado a objetos que permite crear objetos diferentes para cada caso dependiendo del patrón de acceso; y el segundo con la implementación de sus 4 tipos de apuntadores, cuya diferencia es la forma en que permiten acceder a los archivos. El número de accesos físicos de entradas/salidas se reduce con la implementación de las entradas/salidas colectivas; esto, por supuesto, disminuye la congestión en la red ya que varios requerimientos son reunidos para hacer un solo acceso a los dispositivos. La latencia de transferencia de datos desde los discos se puede reducir con el caching. El objetivo de los caches es precisamente evitar el acceso a dispositivos mas lentos (como la memoria o los discos) confiando en el principio de localidad. ENWRICH también plantea una alternativa que disminuye el tiempo de transferencia de datos pero solo para sistemas en los cuales se hagan accesos de solo escritura a los archivos. La precarga de datos (prefetching) en cierto modo reduce el tiempo gastado en entradas/salidas porque permite sobrelaparlo con la computación. En conclusión, cada uno de los sistemas de archivos paralelos existentes plantea alguna solución a uno (máximo a dos) de los aspectos mencionados y posee varias de las características también mencionadas; falta centrar la atención en los factores por los cuales no se ha hecho nada y profundizar el trabajo en tratar de reducir el número de operaciones físicas de entradas/salidas y en satisfacer los diferentes patrones de acceso de las aplicaciones teniendo en cuenta por supuesto la arquitectura de la máquina para la cual se desea desarrollar el sistema de archivos.  
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC

Más contenido relacionado

La actualidad más candente

Algoritmos de gestión de memoria
Algoritmos de gestión de memoriaAlgoritmos de gestión de memoria
Algoritmos de gestión de memoriaadolfoahumada94
 
Unidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IUnidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IKamps Tepes
 
Memoria virtual formato a
Memoria virtual formato aMemoria virtual formato a
Memoria virtual formato aEdison_Pillajo
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoriacaredimaria
 
Mapa conceptual computacion paralela
Mapa conceptual   computacion paralelaMapa conceptual   computacion paralela
Mapa conceptual computacion paralelaEduardo Suarez
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoriaJulian Parra
 
Administracion de la memoria, primeros sistemas
Administracion de la memoria, primeros sistemasAdministracion de la memoria, primeros sistemas
Administracion de la memoria, primeros sistemasANIUX77
 
Administracion de memoria so
Administracion de memoria soAdministracion de memoria so
Administracion de memoria soIndira Gil
 
Colaborativo_Nelis Rivero
Colaborativo_Nelis RiveroColaborativo_Nelis Rivero
Colaborativo_Nelis RiveroNelisRivero
 
Sistemas Operativos[1]
Sistemas Operativos[1]Sistemas Operativos[1]
Sistemas Operativos[1]guest5db8b1
 
Asignación de memoria continua
Asignación de memoria continuaAsignación de memoria continua
Asignación de memoria continuaEdgar Pauta
 
Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Lennin Caro
 

La actualidad más candente (19)

Algoritmos de gestión de memoria
Algoritmos de gestión de memoriaAlgoritmos de gestión de memoria
Algoritmos de gestión de memoria
 
Unidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IUnidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos I
 
Capitulo3
Capitulo3Capitulo3
Capitulo3
 
Memoria virtual formato a
Memoria virtual formato aMemoria virtual formato a
Memoria virtual formato a
 
Ec7
Ec7Ec7
Ec7
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
Mapa conceptual computacion paralela
Mapa conceptual   computacion paralelaMapa conceptual   computacion paralela
Mapa conceptual computacion paralela
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
Memorias ram
Memorias ramMemorias ram
Memorias ram
 
Administracion de la memoria, primeros sistemas
Administracion de la memoria, primeros sistemasAdministracion de la memoria, primeros sistemas
Administracion de la memoria, primeros sistemas
 
Administracion de memoria so
Administracion de memoria soAdministracion de memoria so
Administracion de memoria so
 
Colaborativo_Nelis Rivero
Colaborativo_Nelis RiveroColaborativo_Nelis Rivero
Colaborativo_Nelis Rivero
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
Sistemas Operativos[1]
Sistemas Operativos[1]Sistemas Operativos[1]
Sistemas Operativos[1]
 
Capitulo7
Capitulo7Capitulo7
Capitulo7
 
Administración de Memoria
Administración de MemoriaAdministración de Memoria
Administración de Memoria
 
Asignación de memoria continua
Asignación de memoria continuaAsignación de memoria continua
Asignación de memoria continua
 
Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011
 

Destacado

Arquitectura de los Sistemas Multimedia
Arquitectura de los Sistemas MultimediaArquitectura de los Sistemas Multimedia
Arquitectura de los Sistemas MultimediaM. Villarreal
 
Formatos de Video
Formatos de VideoFormatos de Video
Formatos de Videochulasan
 
Multimedia en webs, blogs y wikis
Multimedia en webs, blogs y wikisMultimedia en webs, blogs y wikis
Multimedia en webs, blogs y wikisÁngel Puente
 
Periféricos de entrada
Periféricos de entradaPeriféricos de entrada
Periféricos de entradaiesalmeraya
 
1 informe (multimedia)
1 informe (multimedia)1 informe (multimedia)
1 informe (multimedia)CRISTIAN
 
Servidores: cuadro comparativo
Servidores: cuadro comparativoServidores: cuadro comparativo
Servidores: cuadro comparativoMaria Figueredo
 
Mapa Conceptual Multimedia
Mapa Conceptual MultimediaMapa Conceptual Multimedia
Mapa Conceptual MultimediaCésarZamora
 
Perifericos de entrada
Perifericos de entradaPerifericos de entrada
Perifericos de entradamoro-acedo
 
Perifericos de entrada
Perifericos de entradaPerifericos de entrada
Perifericos de entradaSILVIS528
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosdavidrt
 
Procesamiento digital de imágenes con matlab
Procesamiento digital de imágenes con matlabProcesamiento digital de imágenes con matlab
Procesamiento digital de imágenes con matlabPercy Julio Chambi Pacco
 
Dispositivo de entrada y salida de la pc
Dispositivo de entrada y salida de la pcDispositivo de entrada y salida de la pc
Dispositivo de entrada y salida de la pcdamian
 
Dispositivos Periféricos de Entrada, Salida, Almacenamiento y Comunicación
Dispositivos Periféricos de Entrada, Salida, Almacenamiento y ComunicaciónDispositivos Periféricos de Entrada, Salida, Almacenamiento y Comunicación
Dispositivos Periféricos de Entrada, Salida, Almacenamiento y ComunicaciónJessica Paola
 
Puertos Y Conectores De Un Pc
Puertos Y Conectores De Un PcPuertos Y Conectores De Un Pc
Puertos Y Conectores De Un PcFabio Valencia
 

Destacado (16)

Arquitectura de los Sistemas Multimedia
Arquitectura de los Sistemas MultimediaArquitectura de los Sistemas Multimedia
Arquitectura de los Sistemas Multimedia
 
Formatos de Video
Formatos de VideoFormatos de Video
Formatos de Video
 
Multimedia en webs, blogs y wikis
Multimedia en webs, blogs y wikisMultimedia en webs, blogs y wikis
Multimedia en webs, blogs y wikis
 
Periféricos de entrada
Periféricos de entradaPeriféricos de entrada
Periféricos de entrada
 
1 informe (multimedia)
1 informe (multimedia)1 informe (multimedia)
1 informe (multimedia)
 
Servidores: cuadro comparativo
Servidores: cuadro comparativoServidores: cuadro comparativo
Servidores: cuadro comparativo
 
Mapa Conceptual Multimedia
Mapa Conceptual MultimediaMapa Conceptual Multimedia
Mapa Conceptual Multimedia
 
Perifericos de entrada
Perifericos de entradaPerifericos de entrada
Perifericos de entrada
 
Perifericos de entrada
Perifericos de entradaPerifericos de entrada
Perifericos de entrada
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Procesamiento digital de imágenes con matlab
Procesamiento digital de imágenes con matlabProcesamiento digital de imágenes con matlab
Procesamiento digital de imágenes con matlab
 
Dispositivo de entrada y salida de la pc
Dispositivo de entrada y salida de la pcDispositivo de entrada y salida de la pc
Dispositivo de entrada y salida de la pc
 
Dispositivos Periféricos de Entrada, Salida, Almacenamiento y Comunicación
Dispositivos Periféricos de Entrada, Salida, Almacenamiento y ComunicaciónDispositivos Periféricos de Entrada, Salida, Almacenamiento y Comunicación
Dispositivos Periféricos de Entrada, Salida, Almacenamiento y Comunicación
 
Puertos Y Conectores De Un Pc
Puertos Y Conectores De Un PcPuertos Y Conectores De Un Pc
Puertos Y Conectores De Un Pc
 
Unidades de Almacenamiento - Arquitectura de PC
Unidades de Almacenamiento - Arquitectura de PCUnidades de Almacenamiento - Arquitectura de PC
Unidades de Almacenamiento - Arquitectura de PC
 
Blogs y Educación
Blogs y EducaciónBlogs y Educación
Blogs y Educación
 

Similar a ENTRADAS Y SALIDAS DE UN PC

Administración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosAdministración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosPablo Macon
 
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.PAOLA ABOYTES
 
Velocidad y capacidad de un computador
Velocidad y capacidad de un computadorVelocidad y capacidad de un computador
Velocidad y capacidad de un computadorlorens26
 
SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)Videoconferencias UTPL
 
Gestion entrada y salida UACJ
Gestion entrada y salida UACJGestion entrada y salida UACJ
Gestion entrada y salida UACJRudi Herrera
 
Cuestionario terminado
Cuestionario terminadoCuestionario terminado
Cuestionario terminadofloresitalagu
 
Manual memoria kingstong
Manual memoria kingstongManual memoria kingstong
Manual memoria kingstongtoteliebe
 
Gestión de entrada y salida
Gestión de entrada y salidaGestión de entrada y salida
Gestión de entrada y salidaAndres
 
Gestión De Entrada Y Salida
Gestión De Entrada Y SalidaGestión De Entrada Y Salida
Gestión De Entrada Y SalidaAndres
 

Similar a ENTRADAS Y SALIDAS DE UN PC (20)

7 memoria cache
7 memoria cache7 memoria cache
7 memoria cache
 
Administración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosAdministración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas Operativos
 
Sistemas operativos modernos
Sistemas operativos modernosSistemas operativos modernos
Sistemas operativos modernos
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Laboratorio 1
Laboratorio 1Laboratorio 1
Laboratorio 1
 
Laboratorio 1
Laboratorio 1Laboratorio 1
Laboratorio 1
 
Acceso Directo de Memoria
Acceso Directo de MemoriaAcceso Directo de Memoria
Acceso Directo de Memoria
 
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.
 
Velocidad y capacidad de un computador
Velocidad y capacidad de un computadorVelocidad y capacidad de un computador
Velocidad y capacidad de un computador
 
4679923.ppt
4679923.ppt4679923.ppt
4679923.ppt
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)
 
Tc2 paso3
Tc2 paso3Tc2 paso3
Tc2 paso3
 
Ulloa
UlloaUlloa
Ulloa
 
Ulloa
UlloaUlloa
Ulloa
 
Gestion entrada y salida UACJ
Gestion entrada y salida UACJGestion entrada y salida UACJ
Gestion entrada y salida UACJ
 
Cuestionario terminado
Cuestionario terminadoCuestionario terminado
Cuestionario terminado
 
Manual memoria kingstong
Manual memoria kingstongManual memoria kingstong
Manual memoria kingstong
 
Gestión de entrada y salida
Gestión de entrada y salidaGestión de entrada y salida
Gestión de entrada y salida
 
Gestión De Entrada Y Salida
Gestión De Entrada Y SalidaGestión De Entrada Y Salida
Gestión De Entrada Y Salida
 

Último

Administración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfAdministración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfec677944
 
FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..angelicacardales1
 
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURAPRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURAgisellgarcia92
 
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoEl MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoTe Cuidamos
 
Derechos de propiedad intelectual lo mejor
Derechos de propiedad intelectual lo mejorDerechos de propiedad intelectual lo mejor
Derechos de propiedad intelectual lo mejorMarcosAlvarezSalinas
 
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxT.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxLizCarolAmasifuenIba
 
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?Michael Rada
 
Rendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosRendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosCondor Tuyuyo
 
VAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa ManaosVAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa Manaosmalenasilvaet7
 
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxCADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxYesseniaGuzman7
 
La electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfLa electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfDiegomauricioMedinam
 
Habilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxHabilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxLUISALEJANDROPEREZCA1
 
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Oxford Group
 
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAPLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAAlexandraSalgado28
 
Tema Documentos mercantiles para uso de contabilidad.pdf
Tema Documentos mercantiles para uso de contabilidad.pdfTema Documentos mercantiles para uso de contabilidad.pdf
Tema Documentos mercantiles para uso de contabilidad.pdfmaryisabelpantojavar
 
estadistica basica ejercicios y ejemplos basicos
estadistica basica ejercicios y ejemplos basicosestadistica basica ejercicios y ejemplos basicos
estadistica basica ejercicios y ejemplos basicosVeritoIlma
 
Pensamiento Lógico - Matemático USB Empresas
Pensamiento Lógico - Matemático USB EmpresasPensamiento Lógico - Matemático USB Empresas
Pensamiento Lógico - Matemático USB Empresasanglunal456
 
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIAPRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIAgisellgarcia92
 
SISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaSISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaBetlellyArteagaAvila
 
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfT.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfLizCarolAmasifuenIba
 

Último (20)

Administración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdfAdministración en nuestra vida cotidiana .pdf
Administración en nuestra vida cotidiana .pdf
 
FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..
 
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURAPRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
PRESENTACIÓN NOM-009-STPS-2011 TRABAJOS EN ALTURA
 
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnicoEl MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
El MCP abre convocatoria de Monitoreo Estratégico y apoyo técnico
 
Derechos de propiedad intelectual lo mejor
Derechos de propiedad intelectual lo mejorDerechos de propiedad intelectual lo mejor
Derechos de propiedad intelectual lo mejor
 
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxT.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
 
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
¿ESTÁ PREPARADA LA LOGÍSTICA PARA EL DECRECIMIENTO?
 
Rendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosRendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de Condominios
 
VAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa ManaosVAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa Manaos
 
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxCADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
 
La electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfLa electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdf
 
Habilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptxHabilidades de un ejecutivo y sus caracteristicas.pptx
Habilidades de un ejecutivo y sus caracteristicas.pptx
 
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
 
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAPLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
 
Tema Documentos mercantiles para uso de contabilidad.pdf
Tema Documentos mercantiles para uso de contabilidad.pdfTema Documentos mercantiles para uso de contabilidad.pdf
Tema Documentos mercantiles para uso de contabilidad.pdf
 
estadistica basica ejercicios y ejemplos basicos
estadistica basica ejercicios y ejemplos basicosestadistica basica ejercicios y ejemplos basicos
estadistica basica ejercicios y ejemplos basicos
 
Pensamiento Lógico - Matemático USB Empresas
Pensamiento Lógico - Matemático USB EmpresasPensamiento Lógico - Matemático USB Empresas
Pensamiento Lógico - Matemático USB Empresas
 
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIAPRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
PRESENTACIÓN NOM-004-STPS-2020 SEGURIDAD EN MAQUINARIA
 
SISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privadaSISTEMA FINANCIERO PERÚ. Institución privada
SISTEMA FINANCIERO PERÚ. Institución privada
 
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfT.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
 

ENTRADAS Y SALIDAS DE UN PC

  • 1. Entradas / Salidas     Sandra Jannette Castañeda Ramírez 9717132 Universidad de los Andes. Santafé de Bogotá, Mayo 4 de 1998     Introducción Las entradas/salidas han sido los elementos mas despreciados por los diseñadores de hardware y por los mejoradores del rendimiento de los computadores, quienes no hacen sino concentrarse en volver mas eficiente el procesamiento de la información (acrecentar el rendimiento de la CPU), sin tener en cuenta el rendimiento de los sistemas de entradas/salidas; tanto así que una de las medidas más utilizadas para determinar que tan poderoso, bueno o malo es algún sistema de cómputo, es el tiempo de CPU, el cual ignora completamente el tiempo de entradas/salidas; algo irónico puesto que finalmente : Cuando un usuario compra un computador o un sistema de cómputo lo que busca es cortos tiempos de respuesta, que se puede traducir como el tiempo que pasa desde que el usuario da una orden y recibe los resultados, y la mayoría de las veces, este resultado depende de una operación de entradas/salidas. Cuando se quiere determinar la diferencia entre 2 computadores para saber si están en la misma escala (super, mini, micro) se observa la cantidad de discos, terminales y otros periféricos que pueda soportar cada uno, aunque en ciertos casos posean los mismos super-microprocesadores. Además, las diferencias en costo entre un super y un microcomputador están determinadas no solo por el número de procesadores sino también por los sistemas de memoria y de entradas/salidas que posean. Un computador sin dispositivos de entradas/salidas es como un carro sin ruedas : seguramente no podrá llegar muy lejos sin ellas. Hay quienes dicen que la velocidad de las entradas/salidas no importa puesto que siempre hay un proceso que ejecutar mientras otro está esperando un periférico. Este argumento se puede refutar ya que está midiendo el rendimiento como productividad (mas tareas por hora), no como tiempo de respuesta, y si analizamos la mayoría de las aplicaciones, por ejemplo las que manejan transacciones, encontramos que son exigentes con el tiempo de respuesta. Además, cuando hay muchos procesos, el tráfico de paginación por la conmutación entre los procesos incrementa las entradas/salidas; aún peor, hay veces en las cuales el único proceso que espera que se realice la operación de entradas/salidas es el ser humano. En general, en un sistema en el que se mejora el rendimiento de la CPU con el fin de obtener resultados mas rápidos y no se mejoran la velocidad de las entradas/salidas, cualquier mejora adicional que se haga a la CPU incrementará el tiempo de inactividad de la CPU, puesto llegará un momento en que a todos los procesos estén esperando por una entrada/salida. Como conclusión, la productividad de las entradas/salidas puede limitar la productividad del sistema al igual que el tiempo de respuesta de las entradas/salidas limita el tiempo de respuesta del sistema.   Necesidad de las entradas/salidas En teoría, la velocidad de un sistema multiprocesador debe incrementar en right0proporción directa con el incremento del número de nodos de procesamiento; esto no ocurre en todos los casos, pero se ha observado que lo que si ocurre en la práctica es que a medida que la velocidad de procesamiento incrementa, los programas que ejecutan entradas/salidas, requieren mayor cantidad de ellas. Por otro lado, es usual que las aplicaciones que corren en los poderosos supercomputadores requieran de operaciones de entradas/salidas de grandes volúmenes. Esto sucede así por diferentes razones: Muchas veces los datos requeridos por un programa no se pueden colocar en memoria principal y por eso deben ser colocados en archivos en discos. Un ejemplo de este caso puede ser una aplicación que deba hacer operaciones con una matriz muy grande (de 1000 x 1000 ó más grande). Otros casos son aquellos en los cuales los datos si pueden ser almacenados en memoria , pero se requieren operaciones de entradas/salidas, por ejemplo, para leer datos de entrada de archivos al principio del proceso y para escribir los resultados al final; eventualmente se puede necesitar escribir o leer datos durante el proceso. Hay aplicaciones que corren por largo tiempo, que requieren de puntos de chequeo, en los cuales se detiene el procesamiento para reiniciar mas tarde; en este momento es necesario almacenar el contenido de las estructuras de datos en archivos. Las entradas/salidas pueden ser requeridas para la depuración de un programa paralelo.   Elementos que determinan el desempeño de las E/S Ahora veremos qué elementos juegan un papel importante en el desempeño de las entradas/salidas. El número de operaciones físicas de entradas/salidas necesarias para satisfacer un requerimiento. La congestión en la red que ocasiona el aspecto anterior. El ancho de banda requerido por las aplicaciones. Los diferentes patrones de acceso de las aplicaciones. El tiempo de acceso a un disco que está compuesto de: El tiempo de posicionamiento en los discos, que es también llamado tiempo de búsqueda porque se refiere al tiempo gastado en desplazar el brazo móvil, que contiene la cabeza de lectura/escritura, a la pista deseada. La latencia de rotación o retardo rotacional en los discos, que es el tiempo para que el sector requerido gire bajo la cabeza lectora/escritora. El tiempo de transferencia, que es el tiempo empleado en transferir un bloque de bits bajo la cabeza de lectura/escritura hasta el búffer del controlador. Normalmente es función del tamaño del bloque, la velocidad de rotación, la densidad de grabación de una pista y la velocidad de los componentes electrónicos que conectan el disco al computador. Teniendo en cuenta estos factores, se han planteado alternativas que tratan de mejorar uno o más de ellos. La mayoría de estas soluciones está orientada a algún tipo de arquitectura.     Soluciones en Entradas/Salidas El paralelismo busca maximizar el rendimiento de un sistema, especialmente cuando se ejecutan aplicaciones de gran escala que por lo general requieren altas velocidades y cortos tiempos de respuesta. Desafortunadamente pocos programas son escritos para explotar la concurrencia, debido a muchas razones; entre ellas se encuentra el hecho de que los programadores aún piensan en forma secuencial; por otro lado, encontramos que es mas difícil la depuración y la corrección de programas paralelos que la de programas secuenciales. Desde la década de los 50 a algunos diseñadores de sistemas de computación les ha llamado la atención el problema de las entradas/salidas; ellos inicialmente se dedicaron, en la mayoría de los casos, a construir paralelismo en varios componentes individuales de entrada/salida; por ejemplo: 1. Mejoras en los buses Los buses han transferido bits en paralelo por muchos años. Se han hecho muchos intentos por tratar de aprovechar al máximo el acceso a los buses; por ejemplo, existen buses que proveen segmentación (pipeline), que consiste en aprovechar el tiempo en que un procesador está accediendo el bus para hacer el arbitraje, esto es, para decidir cuál es el próximo dispositivo que va a acceder al bus; con esto, se trata de no tener el bus inactivo los n ciclos de reloj que dura el arbitraje.     2. Mejoras en el acceso a los discos El DMA (Acceso Directo a Memoria) Es una técnica muy empleada para evitar que las entradas/salidas pasen necesariamente del almacenamiento a la CPU, sino que pasen directamente del almacenamiento a memoria. Tradicionalmente, cuando ocurre un acceso a almacenamiento secundario ocurre lo siguiente en un sistema que trabaja sin DMA: la CPU hace el requerimiento de los datos al subsistema de entradas/salidas quien después de determinar el bloque que se requiere, dirige éste requerimiento al respectivo controlador de disco; éste comienza la lectura bit por bit desde el disco hasta su búffer interno y cuando logra cargar todos los datos produce una interrupción que es atendida por la CPU, quien comienza la transferencia desde el búffer hacia la memoria; como se puede ver, esta operación hace que se desaproveche ese tiempo de CPU (que es significativo, teniendo en cuenta que el acceso a memoria cuesta). El DMA se inventó para liberar a la CPU de hacer este trabajo. El camino ahora es mas corto puesto que cuando la CPU hace el requerimiento al subsistema de entradas/salidas, proporciona una información adicional que incluye la dirección de memoria principal en la que debe quedar el bloque y el número de bytes a transferir; el controlador empieza a transferir datos desde el disco hasta su búffer y cuando finaliza empieza a copiarlos a memoria principal comenzando en la dirección que antes le habían suministrado; cuando finaliza la copia produce una interrupción. Una pregunta muy usual que uno puede hacerse es por qué el controlador utiliza un búffer en lugar de copiar directamente del disco hacia memoria principal. La razón es que una vez la transferencia desde el disco comienza, los datos empiezan a llegar en una rata constante así el controlador esté listo o no para recibirlos; si el controlador tratara de escribir directamente en la memoria tendría que usar el bus del sistema corriendo el riesgo de que esté ocupado, razón por la cual el controlador debería esperar y si la espera es muy larga es posible que la próxima palabra llegue al controlador y sea necesario de todas maneras almacenarla en alguna parte y si esta parte es muy pequeña, llegaría un momento en que el controlador debe finalizar la recepción de datos desde el disco si el bus siguiera ocupado. De la otra manera, el diseño del controlador es mucho más simple porque la transferencia del DMA a memoria no es en tiempo crítico.   Discos de cabeza fijaright0 Tratan de disminuir el tiempo de posicionamiento pues, como su nombre lo indica, tiene varias cabezas, cada una sobre cada pista del disco. Lógicamente, la aparición de discos con gran cantidad de pistas hizo que esta no fuera una buena solución desde el punto de vista económico. Discos de mayor densidad de almacenamiento Se trata de almacenar mas bits por pulgada en una pista, tratando de mejorar con esto los tiempos de transferencia debido a que en cada unidad de tiempo se pueden leer o escribir mas datos; y tratan de mejorar, un poco, la velocidad de búsqueda porque generalmente estos discos son de diámetro mas pequeño, lo que hace tengan menos cilindros y que las distancias de búsqueda sean más cortas. Los cachés Su objetivo principal es reducir el tráfico a los discos para obtener buenos tiempos de respuesta y rendimiento. Cuando hay una operación de lectura (se desea llevar datos desde los discos hasta la memoria principal), el bloque es buscado en el caché; si se encuentra allí, el sistema operativo procede a retornarlo inmediatamente sin necesidad de leerlo físicamente de los discos; de no encontrarlo en el caché el sistema operativo notifica al controlador del disco que necesita un bloque y éste procede a transmitir los datos al caché; finalmente, el controlador interrumpe la CPU cuando la entrada/salida está completa. Cuando se va a hacer una escritura ocurre algo similar con la variante de que el bloque a escribir es colocado en el caché sin hacer alguna verificación si es un archivo nuevo, y si es un archivo al que se va a hacer alguna modificación lo mas probable es que sea un archivo que se acabe de leer y esté en el caché, momento en el cual se escriben los datos en el caché y se marca dicho bloque como sucio, para saber si en el momento de quitarlo del caché es necesario escribir a disco. Sin embargo se pueden presentar algunos problemas relacionados al uso de cachés como la inconsistencia entre los datos que están en memoria o en los discos y los que están en el caché.   Arreglos de Discos No es una tecnología diferente sino una forma distinta de organizar los discos pequeños. El argumento justificador de dichos arreglos es que, como el precio por megabyte es independiente del tamaño del disco, la productividad potencial se puede incrementar teniendo muchas unidades de discos y, por consiguiente, muchos brazos de discos. Además, la fragmentación del total espacio de almacenamiento en múltiples y económicos discos permite soluciones que se benefician del ancho de banda proporcionado por los discos y las bajas latencias de posicionamiento; el problema de estos arreglos es que el tiempo medio entre las fallas (MTBF), para el arreglo como un todo, decrementa linealmente con el número de discos independientes del arreglo, teniéndose entonces la posibilidad de que las fallas catastróficas produzcan pérdidas de datos. La necesidad de almacenar datos redundantes para la recuperación de las fallas de los discos, produjo la aparición de los RAIDs (arreglos de discos económicos redundantes), que mejoran la confiabilidad del sistema en cuanto a las fallas, y tienen alta capacidad de entradas/salidas. Desafortunadamente, al igual que los arreglos convencionales, también tienen la tendencia de maximizar la latencia rotacional pues cada operación debe esperar por el caso mas malo de posicionamiento de un disco; además, a medida que se incrementa el tamaño del arreglo (incrementa el ancho de banda) se puede crear un cuello de botella en el controlador o nodo de entradas/salidas. Aunque los arreglos mejoran la productividad, la latencia no se mejora necesariamente.   Striping de discos Como una alternativa a los arreglos de discos, apareció la noción del striping de discos, en el cual los dispositivos convencionales son unidos lógicamente al nivel del software de los sistemas de archivos, de tal manera que los bloques consecutivos de un archivo son localizados en discos diferentes, permitiendo así, que el sistema de archivos pueda iniciar operaciones de entradas/salidas en varios bloques en paralelo. La Sistemas de Archivos Un sistema de archivos es responsable del manejo de los archivos en almacenamiento secundario. Es right0responsable de proporcionar los medios para almacenamiento privado de información y para que los usuarios puedan compartir información entre ellos de forma controlada. Lo mas importante, quizás, es que el sistema de archivos debe brindar estos servicios haciendo que ciertos aspectos (tales como la ubicación física de los archivos, la forma que toman dichos archivos en los dispositivos en los que están almacenados o el medio físico utilizado para transferir datos desde y hasta esos dispositivos) sean transparentes al usuario. Como no se espera que la tecnología de hardware de entradas/salidas mejore dramáticamente, por lo menos en un futuro cercano, muchos investigadores se han dedicado a desarrollar sistemas de archivos que combinen y aprovechen las ventajas del inherente paralelismo provisto por los componentes individuales de los sistemas distribuidos y los sistemas masivamente paralelos con técnicas que pretendan agilizar los accesos, dando como resultado los sistemas de archivos paralelos. Además han aprovechado la arquitectura de las máquinas multiprocesador dividiendo la jerarquía de entradas/salidas en cuatro niveles : Los nodos de procesamiento, que son nodos del sistema dedicados únicamente al procesamiento de los datos. Los nodos de entradas/salidas, que son nodos del sistema dedicados únicamente a las entradas/salidas. Los controladores Los dispositivos de E/S.   Se pueden enumerar varias características que se esperaría que un sistema de archivos paralelo, ideal y de propósito general, tuviera:   Alto rendimiento, es decir, ejecutar los accesos a los datos de manera eficiente. Alta confiabilidad, para soportar dispositivos de almacenamiento secundario de gran capacidad y libres de errores. Portabilidad, para ser integrado en sistemas heterogéneos fácil y rápidamente. Escalabilidad, para garantizar a los diseñadores la posibilidad de adicionar nodos de entradas/salidas extra, controladores y dispositivos de almacenamiento secundario, sin limitación. Transparencia, es decir, que el sistema de archivos preste sus servicios sin que el usuario se entere de la ubicación física de los archivos, de los dispositivos que usa para transferirlos, etc. Flexibilidad, para soportar una amplia variedad de interfaces y políticas implementadas a través de librerías. Permitir implementaciones de librerías de manera fácil y eficiente. Contar con técnicas para clasificar dinámicamente los patrones de acceso de las aplicaciones y automáticamente adaptar los algoritmos de manejo de datos a minimizar las latencias de acceso para esos patrones. Los patrones de acceso a los datos son grupos en los cuales se puede incluir cualquier aplicación dependiendo de la forma en que acceso los mismos. Algunos ejemplos: De acuerdo a la forma en que acceden a los archivos y a la frecuencia de acceso, las aplicaciones se pueden agrupar en: Lecturas y escrituras de gran tamaño ejecutadas secuencialmente en un archivo (o lo que comúnmente es llamado acceso secuencial). Procesamiento de transacciones, las cuales típicamente manejan un gran número de requerimientos concurrentes cuyo tamaño es usualmente pequeño, involucrando varios dispositivos simultáneamente (accesos aleatorios concurrentes). Accesos a un gran número de archivos pequeños con muy pocos accesos concurrentes. Los archivos son usualmente cortos (accesos aleatorios no concurrentes). También se pueden agrupar teniendo en cuenta la operación que realizan durante el acceso en: De solo lectura De solo escritura De lectura y escritura Esta clasificación varía de acuerdo con el autor que la defina, de manera que pueden existir categorías diferentes a las anteriores. Diseñar sistemas que satisfagan los requerimientos de los anteriores patrones es una tarea complicada porque hay diversidad de ellos y cada uno se comporta de manera diferente de los otros; por ejemplo, el número de archivos usados no es igual para cada patrón y varía de 1 a docenas; el tamaño de los archivos está en el rango de unos pocos Kbytes a Gbytes; los requerimientos de entradas/salidas también varían desde bytes a Mbytes; la frecuencia de acceso a los archivos es diferente para cada patrón; y el ancho de banda y la tasa de entradas/salidas requeridos también varía en cada caso. Tener en cuenta los patrones de acceso es un aspecto muy importante en el momento de elegir la técnica que se va a utilizar en cualquier sistema de archivos, porque de esto puede depender que se obtengan los resultados deseados. Por ejemplo, el ya mencionado striping, es un método usado por una gran mayoría de los sistemas de archivos actuales. Para que el striping produzca los beneficios esperados, es muy importante tener en cuenta los patrones de acceso de las aplicaciones, pues el paralelismo se desaprovecharía si, por ejemplo, el acceso de una aplicación es aleatorio y los bloques que accede se encuentran en un mismo disco. En síntesis se deben desarrollar modelos balanceados al determinar cómo van a ser manejados los recursos de entradas/salidas para alcanzar alto rendimiento. Esto requiere explotar un amplio espacio de opciones, es decir, determinar la mas efectiva combinación de buffering, caching masivo en varios niveles de entradas/salidas, precarga, distribución de datos y compartimiento de archivos para reducir el número de operaciones físicas de entradas/salidas y sobrelaparlas con computación. Además, se requiere una configuración flexible del subsistema de entradas/salidas que combine nodos de entradas/salidas separados de los de procesamiento, rápidos buses de entradas/salidas y drives independientes; una ideal distribución balanceada podría ofrecer la misma distancia máxima entre cualquier recurso de entradas/salidas y el nodo de procesamiento y el mismo ancho de banda para cada nodo de procesamiento.   Sistemas de Archivos paralelos actuales No se puede decir que hay homogeneidad en los diseños de los actuales sistemas de archivos, por el contrario, los autores se han encargado de atacar varios de los problemas, ya mencionados, de las entradas/salidas usando diferentes técnicas o utilizando una misma técnica pero con funciones distintas. A continuación se mencionan brevemente algunos trabajos y las técnicas utilizadas para aportar las soluciones. Algunos sistemas de archivos soportan un número de políticas predefinidas pero también aceptan ambientes definidos por el usuario, en donde se puede especificar el patrón de acceso de la aplicación e incluso los patrones de acceso para precarga. Otra aproximación, planteada para el Intel Paragón y llamada SPIFFI, pretende también otorgar flexibilidad implementando un esquema descentralizado del sistema de archivos que brinda al usuario la posibilidad de seleccionar uno de 4 tipos de apuntadores dependiendo del modo de acceso: apuntador local de archivos, apuntador global de archivos, apuntador global sincronizado y apuntador distribuido. Si dos procesos simultáneamente usan apuntadores locales de archivos (LPFs) para acceder al mismo archivo, cada apuntador se comporta como si ningún otro proceso estuviera accediendo el archivo. Un apuntador global de archivos (GFP) es compartido entre un grupo de procesos, todos accediendo el mismo archivo; pueden leer o escribir secuencialmente; cada proceso accederá un conjunto aleatorio de bloques (de cualquier tamaño) del archivo; un proceso no conoce de antemano que bloques accederá pero conoce que ningún otro proceso leerá los mismos bloques; hay un nodo especial llamado el nodo GFP dedicado a servir los requerimientos GFPs; cuando un proceso quiere acceder a un archivo hace una solicitud de lectura al nodo para obtener el valor del GFP; luego el proceso envía un segundo mensaje pero dirigido al nodo que contiene el disco apropiado. Los apuntadores globales sincronizados (SGFP) son apuntadores GFP pero con sincronización; los procesos que comparten uno de éstos apuntadores tienen asignados un orden fijo cíclico y tienen acceso a él solamente en ese orden; si se envía una solicitud para obtener el apuntador fuera de ese orden, se debe esperar el turno. El apuntador distribuido de archivos (DFP) se creó para evitar los cuellos de botella que se pueden crear, en aplicaciones de mucha E/S, con GFP o SGFP; este también es un apuntador distribuido pero a diferencia de los anteriores es descentralizado; cada nodo de disco mantiene un apuntador para su fragmento; cada aplicación lee el archivo que desea seleccionando un nodo de discos inicial; el proceso continúa leyendo el mismo disco hasta que todos los bloques son leídos de ese nodo; en este momento el proceso escoge nuevos nodos de los cuales leer; se detiene cuando ha leído completamente todos los fragmentos en todos los nodos.   Otra gran parte de sistemas de archivos como PPFS, NFS, Vesta, Galley y ParFiSys, entre otros, se basan en un modelo cliente/servidor en donde los servidores son los nodos de entradas/salidas, cada uno equipado con uno o más dispositivos de almacenamiento secundario asociados a través de un controlador, y los clientes son los nodos de procesamiento, quienes envían las solicitudes de lectura/escritura de los usuarios. Típicamente se cuenta con rutinas que se encargan de recibir estos requerimientos y de establecer comunicación con los servidores para obtener información estructural de los directorios y poder conducir los requerimientos a los servidores correspondientes. Generalmente, también se combinan técnicas de precarga con el uso de caches para ocultar al usuario la latencia de acceso y reducir la sobrecarga y congestión de la red por los accesos, respectivamente. El sistema de archivos Hurricane es otro enfoque que plantea un modelo orientado por objetos, en el cual los archivos son tratados como un número de simples bloques llamados objetos de almacenamiento. Cada uno de estos objetos define una porción de una estructura de un archivo o implementa un conjunto de políticas. La clase más simple de objetos de almacenamiento son los bloques de discos; con excepción de ellos, los objetos de almacenamiento contienen entre otros estados, apuntadores a otros objetos de almacenamiento (estos últimos llamados sub-objetos). Este modelo fue diseñado para multiprocesadores de memoria compartida, y busca brindar flexibilidad soportando una amplia variedad de modos de acceso (secuencial, aleatorio, solo lectura, solo escritura o lectura/escritura), estructuras de archivos (datos densos o poco densos, tamaños de archivos grandes o pequeños), y políticas (de bloqueo, de precarga, de compresión/descompresión y de manejo del caché), que pueden ser definidas por las aplicaciones cuando accedan datos. Por ejemplo, si 2 aplicaciones intentan acceder a un mismo archivo, se crea un objeto separado para cada apertura, que mantiene el estado del archivo; esos objetos comparten un sub-objeto que implementa alguna política de bloqueo; el sub-objeto de éste último es un objeto que implementa algún tipo de distribución del archivo a través de múltiples discos; los sub-objetos de éste objeto de distribución son objetos por disco, que implementan la distribución del archivo a través de los objetos bloques del disco en cada disco; las operaciones de entrada/salida se realizan a través de un flujo de requerimientos entre los objetos, quienes van chequeando la disponibilidad de los datos de acuerdo a lo que cada objeto representa. La flexibilidad se da entonces, porque no es necesario que todas las aplicaciones que requieran el archivo deben definir las mismas políticas y los objetos creados en el momento de la apertura de un archivo pueden ser acomodados a las características de la aplicación, por ejemplo, si una aplicación está accesando un archivo secuencialmente, el objeto que se crea en la apertura puede tener las características de hacer precarga de los datos secuencialmente; o se puede tener el caso de archivos que no se quieran distribuir a través de varios discos, por lo cual el sub-objeto del objeto de bloqueo puede ser el objeto por disco directamente, pues el objeto de distribución ya no sería necesario. Algunas optimizaciones se han logrado para evitar, principalmente, la congestión en la red y la cantidad de operaciones de entradas/salidas físicas. La Entrada/Salida Colectiva, por ejemplo, se aplica en programas paralelos en los que los procesadores ejecutan operaciones similares pero sobre diferentes conjuntos de datos; el objetivo es reunir los requerimientos de entradas/salidas de varios procesadores de manera que puedan cooperar entre ellos mismos para ejecutar entradas/salidas eficientemente. La Precarga trata de sobrelapar la computación y las entradas/salidas; la lectura del próximo conjunto de datos puede ser sobrelapada con la computación del actual conjunto de datos. El Caching de Datos se basa en el principio de que una porción del actual conjunto de datos cargados en memoria principal es también necesitada para la computación del próximo conjunto de datos, por tanto pueden ser reusados en lugar de leerlos de nuevo del disco. Se ha desarrollado además, un esquema que pretende disminuir la latencia de transferencia de datos en sistemas de archivos paralelos con archivos de solo escritura, manejando entradas/salidas colectivas. A diferencia de los otros esquemas, en éste el caché no se encuentra en los nodos de entradas/salidas sino en los nodos de procesamiento. Los requerimientos de escritura se van almacenando en los caches locales junto con la información relevante como son estampillas, la identificación (única en el sistema) del archivo, el número de bytes a escribir y los datos que se van a escribir. Cuando un caché se llena, interrumpe a todos los procesadores y se procede a enviar los datos y la información concerniente a ellos, contenidos en todos los caches, a los nodos de entradas/salidas para que éstos procedan a hacer las actualizaciones correspondientes en los discos. Si hay mas de un caché que va a escribir sobre un mismo bloque de un archivo, se decide la escritura mediante la estampilla.   Resumen   Los trabajos desarrollados hasta el momento plantean soluciones a algunos de los factores ya mencionados como determinantes del desempeño de las entradas/salidas y otros se enfocan en la consecución de algunas de las características deseables en ellos, también mencionadas. El problema del ancho de banda es solucionado en gran medida por los sistemas RAID y depende del número de discos que conformen el arreglo. El striping también busca solucionar este problema, indirectamente, pues su finalidad es aprovechar al máximo el paralelismo y poder acceder a varios dispositivos de entrada/salida al mismo tiempo. La baja latencia de posicionamiento en los discos la consiguen también los sistemas RAID, así como la deseada característica de confiabilidad. La deseable característica de satisfacer los diferentes patrones de acceso de las aplicaciones de manera dinámica fue considerada por Hurricane y por SPIFFI; el primero a través de su modelo orientado a objetos que permite crear objetos diferentes para cada caso dependiendo del patrón de acceso; y el segundo con la implementación de sus 4 tipos de apuntadores, cuya diferencia es la forma en que permiten acceder a los archivos. El número de accesos físicos de entradas/salidas se reduce con la implementación de las entradas/salidas colectivas; esto, por supuesto, disminuye la congestión en la red ya que varios requerimientos son reunidos para hacer un solo acceso a los dispositivos. La latencia de transferencia de datos desde los discos se puede reducir con el caching. El objetivo de los caches es precisamente evitar el acceso a dispositivos mas lentos (como la memoria o los discos) confiando en el principio de localidad. ENWRICH también plantea una alternativa que disminuye el tiempo de transferencia de datos pero solo para sistemas en los cuales se hagan accesos de solo escritura a los archivos. La precarga de datos (prefetching) en cierto modo reduce el tiempo gastado en entradas/salidas porque permite sobrelaparlo con la computación. En conclusión, cada uno de los sistemas de archivos paralelos existentes plantea alguna solución a uno (máximo a dos) de los aspectos mencionados y posee varias de las características también mencionadas; falta centrar la atención en los factores por los cuales no se ha hecho nada y profundizar el trabajo en tratar de reducir el número de operaciones físicas de entradas/salidas y en satisfacer los diferentes patrones de acceso de las aplicaciones teniendo en cuenta por supuesto la arquitectura de la máquina para la cual se desea desarrollar el sistema de archivos.