CAPITULO 7. SISTEMAS DE ENTRADA Y SALIDA

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
CAPITULO 7. SISTEMAS DE ENTRADA Y SALIDA por Mind Map: CAPITULO 7. SISTEMAS DE ENTRADA Y SALIDA

1. 7.1. Dispositivos de Entrada y Salida

1.1. Son los responsables de la comunicación con el mundo exterior y del almacenamiento de datos para su posterior uso.

1.1.1. También son el cuello de botella de todo el sistema de componentes porque son mucho más lentos.

1.1.2. Es función del sistema operativo el control de todos los dispositivos de entrada y salida.

1.1.2.1. Función que lleva a cabo enviando comandos a los dispositivos, detectando las interrupciones y controlando los errores.

2. 7.2. Organización de las Funciones de Entrada y Salida

2.1. Estos se comunican con el procesador a través de un módulo conmutador.

2.2. Permiten la conexión de un rango amplio de dispositivos de entrada y salida, y proveen la especificación acerca de como deberían comunicarse con el procesador transfiriendo datos y comandos.

2.3. Uno de los términos clave es la política de arbitraje usada para decidir qué dispositivo puede acceder al colector en un momento dado.

2.4. Los dispositivos suelen comunicarse con la máquina a través de un punto de conexión denominado puerto.

2.5. Pueden estar compuestos por un componente mecánico y un componente electrónico o controlador.

2.6. Un puerto de entrada y salida suele tener cuatro registros.

2.6.1. Estado

2.6.2. Control

2.6.3. Entrada de datos

2.6.4. Salida de datos

3. 7.3. Aspectos del Diseño

3.1. 7.3.1. Objetivos

3.1.1. Un objetivo que debería alcanzar el software que los gestione es la eficiencia.

3.1.2. Dada la gran variedad de dispositivos que debe gestionar el sistema operativo, sería deseable que lograra alcanzar una cierta generalidad en el tratamiento de los mismos.

3.2. 7.3.2. Mecanismo y Política

3.2.1. Lo que se debe tener en cuenta al desarrollar un manejador de dispositivos es separar mecanismos y políticas.

3.2.2. Con mecanismo nos referimos a la representación fidedigna de las funcionalidades puras del dispositivo, independientemente de que partes de la funcionalidad usará una aplicación.

3.2.3. La política hace referencia a como se pueden usar esas mismas capacidades.

3.3. 7.3.3. Estructura Lógica de las Funciones

3.3.1. Los sistemas operativos intentan ofrecer al resto del sistema una interfaz estándar, simple y uniforme para el uso de un dispositivo.

3.3.2. Las capas más cercanas al hardware se encargan de ocultar las particularidades del mismo a las capas superiores y éstas deben presentar una interfaz agradable, limpia y regular a los usuarios.

4. 7.4. Subsistema de Entrada y Salida del Núcleo

4.1. El núcleo del sistema operativo debería ofrecer servicios relacionados con la entrada y salida, apoyándose en el hardware y en la infraestructura de manejadores de dispositivos.

4.2. 7.4.1.Planificación de la Entrada y Salida

4.2.1. Virtualiza los recursos de entrada y salida al disco, entre distintas solicitudes de acceso, con el fin de maximizar el rendimiento global.

4.2.2. A diferencia de un planificador de procesos, el de entrada y salida no es un componente obligatorio del sistema operativo pero sí lo es el rendimiento, que es la única razón de ser del planificador de la entrada y salida.

4.2.3. La planificación provee la infraestructura que recibe solicitudes desde las capas superiores del núcleo, despacha solicitudes al manejador del disco y gestiona la finalización de estas solicitudes.

4.3. 7.4.2. Almacenamiento Intermedio

4.3.1. Cuando dos procesos, locales o remotos, se comunican intercambiando mensajes, suele ocurrir que uno de ellos sea más lento que el otro, ya sea en la transmisión en la recepción.

4.3.2. Los mensajes pueden transmitirse desde un proceso a otro copiando el cuerpo del mensaje desde el espacio de direcciones del proceso transmisor al espacio de direcciones del proceso receptor.

4.3.3. 7.4.2.1. Memoria Intermedia Nula

4.3.3.1. En este caso no hay lugar para almacenar temporalmente el mensaje. Entonces puede usarse una de las siguientes estrategias de implementación:

4.3.3.1.1. Cita o rendez-vous

4.3.3.1.2. Descarte

4.3.4. 7.4.2.2. Memoria Intermedia Sencilla

4.3.4.1. Es un sistema distribuido, la transferencia de un mensaje a través de la red puede requerir un tiempo significativo en algunos casos.

4.3.5. 7.4.2.3. Memoria Intermedia Doble

4.3.5.1. Se utilizan dos áreas de almacenamiento de manera que mientras una está siendo leída la otra está siendo escrita.

4.3.6. 7.4.2.4. Memoria Intermedia Circular

4.3.6.1. Es una estructura de datos que utilizan varios almacenamientos intermedios simples, de tamaño fijo, lógicamente contiguos y en la que al último elemento le sigue el primero generado, conceptualmente, un anillo.

4.4. 7.4.3. Caché

4.4.1. Es una memoria, pero más rápida que la convencional en la que se mantiene una copia de los datos originales, de manera que es más eficiente el acceso a esta copia que al original.

4.4.2. Su objetivo es el de mejorar el desempeño mediante el almacenamiento transparente de datos.

4.5. 7.4.4. Spool

4.5.1. Se utilizó por primera vez en el sistema IBM 7070 para permitir el solapamiento entre el procesamiento de la CPU y múltiples operaciones de entrada y salida, el 7070 tenía una capacidad de interrupción llamada procesamiento prioritario.

4.5.2. Permitía que un programa principal fuera interrumpido cuando un dispositivo de entrada y salida requiera servicios.

4.5.3. Actualmente, el término se refiere al proceso de colocar en un buffer salidas destinadas a un dispositivo.

4.6. 7.4.5. Manejo de Errores

4.6.1. Un sistema operativo que emplea memoria protegida puede evitar muchos tipos de errores de hardware y de las aplicaciones, de modo que un problema mecánico menor no cause un fallo total del sistema.

4.7. 7.4.6. Estructuras de Datos

4.7.1. El núcleo necesita mantener información de estado acerca del uso de los componentes de entrada y salida; esto lo hace a través de diversas estructuras de datos internas, como la estructura de tabla de archivos abiertos.

4.7.2. El núcleo de un sistema operativo emplea muchas estructuras similares para seguir la pista a las conexiones de red, comunicaciones con los dispositivos y otras actividades de entrada y salida.

5. 7.5. Planificación del Acceso a Discos

5.1. 7.5.1. Estructura de un Disco

5.1.1. Una unidad de discos rígidos está compuesta por varios platos, un eje y una cabeza lecto-grabadora.

5.1.2. Cada plato está subdividido en regiones circulares concéntricas semejantes a anillos y llamadas pistas.

5.1.3. Finalmente, cada pista está compuesta por un cierto número entero de sectores.

5.1.4. Para ubicar una unidad específica de datos en un disco, la lógica del mecanismo requiere de tres piezas de información:

5.1.4.1. Cilindro

5.1.4.1.1. Específica la pista en la cual residen los datos.

5.1.4.2. Cabeza

5.1.4.2.1. Identifica la cabeza lecto grabadora exacta.

5.1.4.3. Sector

5.1.4.3.1. Denota al sector exacto sobre la pista.

5.2. 7.5.2. Planificación del Acceso Directo

5.2.1. Los bloques tienden a estar ubicados físicamente sobre todo el disco.

5.2.2. Dado que los archivos están partidos en bloques individuales y las unidades de disco rígico se acceden por bloques y no mediante el concepto mucho más abstracto de archivo, la lectura o escritura de datos al archivo esta partida en un flujo de muchos pedidos individuales de entrada y salida, cada una a un bloque diferente.

5.3. 7.5.3. Distintos Tipos de Algoritmos de Planificación

5.3.1. 7.5.3.1. FCFS

5.3.1.1. La forma más sencilla de planificación es, desde luego, el servicio por orden de llegada. Casi podríamos decir que es un enfoque sin planificador, estos bloques se procesarán en ese orden.

5.3.2. 7.5.3.2. SSTF

5.3.2.1. Si el núcleo ordenara estas solicitudes, no obstante, y las procesara en otro orden los resultados serían muy diferentes.

5.3.3. 7.5.3.3. SCAN

5.3.3.1. En este algoritmo la cabeza se posiciona en un extremo del disco y va avanzando hacia el otro extremo, atendiendo los requerimientos de acceso a bloques que va encontrando por el camino.

5.3.4. 7.5.3.4. C-SCAN

5.3.4.1. En este algoritmo la cabeza, al llegar al extremo final se vuelve a posicionar en el inicio, para atender primero los requerimientos que, se supone por lógica, llevan más tiempo esperando.

5.3.5. 7.5.3.5. LOOK

5.3.5.1. Podemos verlo como modificaciones al SCAN y C-SCAN, que, en este caso pasan a llamarse LOOK y C-LOOK.

5.3.6. 7.5.3.6. El Ascensor Linus

5.3.6.1. El el planificador de entrada y salida a la unidad de discos rígidos que encontramos en la versión 2.4.

5.3.7. 7.5.3.7. El Planificador con Fecha Límite

5.3.7.1. Fue propuesto para resolver el problema de la inanición que afectaba al planificador de entrada y salida de la versión 2.4 y de los algoritmos del ascensor en general.

5.3.8. 7.5.3.8. El Planificador de Entrada y Salida Anticipatorio

5.3.8.1. Implementa la misma planificación basada en plazos que usa el planificador con fecha límite, pero fue dotado con el agregado de un mecanismo de anticipación.

5.3.9. 7.5.3.9. CFQ

5.3.9.1. Trabaja colocando a las solicitudes sincrónicas en colas por procesos y luego asignando rodajas de tiempo a cada cola para acceder al disco.

5.4. 7.5.4. Manejadores de Dispositivos

5.4.1. Son módulos del núcleo del sistema operativo, específicos del mismo y dependientes del hardware y que, si bien internamente diferencian entre los distintos tipos de dispositivos, ofrecen al resto del sistema y a las aplicaciones una interfaz estándar.

6. 7.6. Ventanas al Núcleo

6.1. Son más una interfaz para el manejador de dispositivos que aparece en el sistema de archivos como si se tratara de un archivo más.

6.2. 7.6.1. Desventajas

6.2.1. Los números mayor y menos existentes estaban limitados a 8 bits cada uno.

6.2.2. El esquema convencional requería la asignación de números mayores y menores de dispositivos.

6.2.3. Mucha duplicación almacenada.

6.2.4. El orden en el cual el usuario conecta el dispositivo determina cuál archivo de dispositivo le asigna a cada dispositivo el núcleo.

6.3. 7.6.2. devfs

6.3.1. En devfs los manejadores de dispositivos en el núcleo podían registrar dispositivos por su nombre en lugar de hacerlo por su número y estos dispositivos registrados aparecían automáticamente en el sistema de archivos.

6.4. 7.6.3. Conexión en Caliente

6.4.1. Comenzó a implementarse en el núcleo Linux durante el desarrollo de la versión 2.4. en enero de 2001, para permitir la conexión en caliente de los dispositivos PCMCIA, CardBus y Firewire.

6.5. 7.6.4. El Nuevo Modelo de Dispositivos de Linux

6.5.1. Consta de un número de funciones y estructuras comunes a las que todos los subsistemas de manejadores de dispositivos se han debido adaptar para poder usarlas.

6.5.2. 7.6.4.1. Colectores, Dispositivos y Clases

6.5.2.1. Un colector puede ser descrito como algo con dispositivo conectados, un dispositivo en sí mismo que sirve como punto de conexión para otros dispositivos.

6.5.2.2. Los dispositivos en este modelos son los dispositivos físicos o virtuales que residen en el colector.

6.5.2.3. Es más bien algo que provee una función a un usuario y de la que se espera que se desempeñe de cierta manera.

6.6. 7.6.5. sysfs

6.6.1. Enumera los dispositivos y canales conectados al sistema en una jerarquía de archivos a la que se puede acceder desde el espacio del usuario.

6.7. 7.6.6. udev

6.7.1. Reemplaza la funcionalidad provista por devfs, proporcionando entradas en /dev sólo para los dispositivos que están presentes en el sistema en un momento dado, y provee prestaciones con las que no se podía contar previamente con devfs.

6.8. 7.6.7. HAL en Linux

6.8.1. La capa de abstracción de hardware o HAL es un elemento del sistema operativo que funciona como una interfaz entre el software y el hardware del sistema

6.8.2. 7.6.7.1. DeviceKit

6.8.2.1. Es también una capa de abstracción de harware que intenta reemplazar a HAL.

6.9. 7.6.8. D-BUS

6.9.1. Es un sistema de comunicación entre procesos. Su diseño tiene tres capas:

6.9.1.1. Una biblioteca

6.9.1.2. Un proceso demonio

6.9.1.3. Envoltorios

6.9.2. 7.6.8.1. Netlink Sockets

6.9.2.1. Son otra forma de comunicación entre procesos que se utilizan para transferir información entre el núcleo y los procesos que ejecutan en espacio de usuario.

7. VICTOR EMMANUEL PAZ CALDERÓN