Está en la página 1de 11

Fundamentos de Sistemas Operativos

(segunda parte)
Gestión de entrada/salida

Objetivos
Entender los conceptos fundamentales, de sistemas operativos, relacionados con la
entrada/salida, la cual hace referencia a la interacción entre usuarios y sistemas
informáticos.
Apreciar matices en los conceptos periférico, dispositivo, fichero y canal.
Constatar la naturaleza diversa de la entrada/salida.
Entender el principio de diseño de entrada/salida entrada/salida independiente de
dispositivo.
Entender el concepto de entrada/salida estándar.
Identificar la naturaleza multinivel de la entrada/salida.
Entender las estructuras de datos fundamentales que dan soporte a la
entrada/salida a nivel de proceso.
Entender el funcionamiento básico de la entrada/salida a nivel de periférico.
Entender la funcionalidad encapsulada en la entrada/salida a nivel de manejador
de dispositivo.
Conocer algoritmos de planificación del disco.

Contenidos
1.- Conceptos básicos de entrada/salida.
2.- Diversidad de la entrada/salida.
3.- Concepto de entrada/salida independiente de dispositivo.
4.- Concepto de entrada/salida estándar.
5.- Niveles de entrada/salida.
6.- Entrada/salida a nivel de proceso.
7.- Entrada/salida a nivel de periférico.
8.- Entrada/salida a nivel de manejador de dispositivo.
9.- Ejemplo de manejador.
10.- Planificación de disco.
11.- Tratamiento de errores.

1.- Conceptos básicos de E/S


- Concepto de entrada/salida.
- Concepto de periférico.
- Concepto de dispositivo.
- Concepto de canal de entrada/salida.

Concepto de E/S
Concepto de E/S.
En una primera aproximación, el concepto de Entrada/salida hace referencia
a todo aquello (software y hardware) que, en un sistema informático,
posibilita la interacción entre los usuarios y el sistema.
A nivel de lenguaje máquina, hace referencia a todo aquello (periféricos,
controladores…) que permite la interacción con el subsistema procesador-
memoria.
A nivel de proceso, hace referencia a todo aquello (canales, ficheros,
dispositivos, …) que permite la interacción con un proceso.

Concepto de periférico

Concepto de periférico.
Dispositivo físico (hardware) para propósitos de interacción con el
subsistema procesador-memoria (entrada/salida).
Accedido y controlado a través de un controlador programable.

Ejemplos.
Pantalla.
Teclado.
Ratón.
Touch pad.
Disco.
Línea de comunicaciones.

Concepto de dispositivo

Concepto de dispositivo.
Abstracción en torno a la cual se organiza la entrada/salida en un sistema
informático.
Incluye software y hardware.
En UNIX cada dispositivo tiene un representante en el sistema de ficheros.

Ejemplos.
Pantalla + teclado + ratón + software -> consola.
Discos + software -> dispositivo de almacenamiento multivolumen tolerante
a fallos.

Concepto de canal de E/S


Concepto canal de entrada/salida.
Abstracción básica en torno a la cual se articula la entrada/salida a la que
tiene acceso un proceso.
Representante local para un recurso de entrada/salida global.
Un proceso define un espacio de entrada/salida en términos de canales.
Un proceso desencadena la entrada/salida de información mediante
operaciones llevadas a cabo sobre canales.

2.- Diversidad de la E/S

Diversidad de la entrada/salida.
Dada la diversidad de la naturaleza de los datos con los que interactúan
diferentes aplicaciones, resultan diferentes las tecnologías que se muestran
efectivas para soportar dichas interacciones.

Tipos de interacciones de entrada/salida.


Selecciones.
Orientadas a la comunicación de valores escalares alfabéticos o numéricos.
Basadas en texto (comandos) escrito.
Basadas en reconocimiento del habla.
Orientadas a la especificación o evaluación de entidades geométricas bi y
tridimensionales.
Orientadas al tratamiento de imágenes estáticas, video, sonido, ...
Almacenamiento.
Comunicaciones.
Señales.

Dificultad planteada por la diversidad entrada/salida.


Entran en conflicto los principios de sencillez y generalidad con la
especificidad.

3.- E/S independiente de dispositivo

Concepto de E/S independiente de dispositivo.


Principio de diseño de entrada/salida que perseguiría la abstracción de
detalles inherentes a la diversidad de la entrada salida.
Pasa por la identificación e implementación de las abstracciones y primitivas
adecuadas, compromiso razonable entre aplicación generalizada y control
de detalles.
Un subsistema de entrada/salida independiente de dispositivo puede
coexistir con subsistemas más específicos.
4.- E/S estándar

Concepto de E/S estándar.


Cualquier proceso requiere de entrada y salida de datos.
Además, eventualmente pueden producirse errores.
El razonamiento lleva a preestablecer, para cada proceso, tres abstracciones
básicas (canales) singulares, relacionadas con el concepto de entrada/salida
independiente de dispositivo, para propósitos de entrada/salida. La entrada
estándar, la salida estándar y el error estándar.
Cada proceso tendría acceso a dichos canales de entrada/salida sin
preocuparse de tener que acondicionarlos.
Puede controlarse que fichero/dispositivo queda asociado a la entrada,
salida y error estándar.

5.- Interfases de E/S


- Naturaleza multinivel de la entrada/salida.
- Niveles de entrada/salida.
- Interfases de entrada/salida.

Naturaleza multinivel de la E/S

Naturaleza multinivel de la E/S.


El concepto de entrada/salida independiente de dispositivo, la constatación
de la diversidad de la entrada salida, el interés por encapsular la
especificidad y el interés por la planificación de los recursos sugiere una
solución al problema de la interacción entre usuarios y sistemas
informáticos a diferentes niveles.

Niveles de entrada/salida.
Entrada/salida a nivel de proceso.
Entrada/salida a nivel de periférico.
Entrada/salida a nivel de manejador de dispositivo.

Niveles de E/S

Entrada/salida a nivel de proceso.


Hace referencia a la entrada/salida tal y como se percibe a nivel de modelo
de programación nativo del sistema.

Entrada/salida a nivel de periférico.


Hace referencia a la entrada/salida tal y como se percibe a nivel de lenguaje
máquina.
Entrada/salida a nivel de manejador de dispositivo.
Hace referencia al nivel intermedio de entrada/salida que homogeiniza la
diversidad, encapsula especificidad y aplica la planificación de los recursos
de entrada/salida.

Interfases de E/S

6.- E/S a nivel de proceso


- Generalidades.
- Concepto de sesión de E/S.
- Abstracciones y primitivas.
- Estructuras fundamentales de E/S.
- Esquema de estructuras de datos de E/S.

Generalidades

Concepto de entrada/salida a nivel de proceso.


Hace referencia a la entrada/salida tal y como se percibe a nivel de modelo
de programación nativo del sistema.
Se articula a través de las abstracciones y primitivas, de entrada/salida,
construidas por el kernel y puestas a disposición de los procesos.
Suele tener lugar en sesiones de entrada/salida.
Al menos parte de ella suele suscribir los conceptos de entrada/salida
independiente de dispositivo y entrada/salida estándar.

Abstracción fundamental.
La entrada/salida a nivel de proceso se articula en torno al concepto de
canal el cual actúa como representante local para un recurso de
entrada/salida global (fichero o dispositivo).
Un proceso define un espacio de entrada/salida en términos de canales.
Un proceso desencadena la entrada/salida de información mediante
operaciones llevadas a cabo sobre canales.
La práctica de mapear recursos globales (ficheros y dispositivos) sobre
representantes locales (canales) permite minimizar esfuerzo, de localización
de recursos y de verificación de aspectos de protección.

Canales de especial relevancia.


Entrada estándar.
Salida estándar.
Error estándar.

Concepto de sesión de E/S


Concepto de sesión de entrada/salida.
Hace referencia al conjunto de operaciones que, llevadas a cabo sobre un
fichero o dispositivo, se inicia con la operación de apertura, de fichero o
dispositivo, y finaliza con la operación de cierre, del canal que se asocio a la
apertura. Entre las operaciones de apertura y cierre, pueden solicitarse,
sobre el canal asociado a la apertura, operaciones de lectura y/o escritura.

Operación de apertura de un fichero o dispositivo.


La operación de apertura de un fichero o dispositivo declara la intención de
operar, sobre determinado fichero o dispositivo, de una cierta manera
(modo de apertura).
La operación de apertura, de fichero o dispositivo, implica: la localización
del recurso, la verificación de aspectos de protección (en función de la
identidad del que opera, de lo que pretende hacer, del propietario del
recurso, y de lo que éste último permite hacer) y el mapeo del recurso
global sobre un recurso local (disponible), del proceso (canal).

Operación de cierre de un canal de E/S.


La operación de cierre de un canal de entrada/salida declara que no se
tiene intención de seguir operando con el recurso asociado a dicho canal.
La operación de cierre, de fichero o dispositivo, supone: la liberación del
recurso local (canal) y la posibilidad de liberar los recursos destinados a
describir aspectos que determinan el comportamiento de operaciones, en el
contexto de una sesión de entrada/salida.

Atributos asociados a la apertura.


Puntero de lectura y/o escritua (offset).
Modo de apertura.

Abstracciones y primitivas

Abstracciones básicas.
Canal.
Fichero.
Dispositivo.

Primitivas básicas.
Abrir un fichero/dispositivo (canal).
Cerrar un canal (fichero/dispositivo).
Leer de un canal (fichero/dispositivo).
Escribir en un canal (fichero/dispositivo).

Estructuras fundamentales de E/S


Tabla de canales.
Estructura de datos que, para cada proceso, describe las asociaciones canal-
descriptor de apertura de fichero/dispositivo.

Descriptor de apertura.
Estructura de datos en la que se mantiene la información de estado
relacionada con la vista que de un fichero o dispositivo tiene un proceso.

Descriptor de fichero/dispositivo abierto.


Estructura de datos en la que se describen aspectos de ficheros o
dispositivos abiertos.

Esquema de estructuras de E/S

7.- E/S a nivel de periférico


- Generalidades.
- Hardware del disco.
- Direccionamiento y tiempo de acceso.
- Ejemplo de parámetros físicos de disco.

Generalidades

Concepto de entrada/salida a nivel de periférico.


Hace referencia a la entrada/salida tal y como se percibe a nivel de lenguaje
máquina.
Se articula a través de la programación de los controladores.
Resulta inherentemente específica.
Suele requerir conocimiento de aspectos físicos del funcionamiento de los
periféricos.

Hardware del disco

Direccionamiento y tiempo de acceso

Unidad de direccionamiento.
Sector (cilindro o pista, disco y cara o cabezal, sector)

Tiempo de acceso.
posicionamiento (seek) + retardo (search).

Posicionamiento.
Tiempo necesario para desplazar el cabezal al cilindro.
Retardo.
rotación + tranferencia.

Rotación.
Tiempo hasta que el sector pasa por debajo del cabezal.

Transferencia.
Tiempo de transferencia de datos.

Retardo promedio.
Media vuelta.

Ejemlo de parámetros físicos de disco

Ejemplo: Disco duro Fujitsu de 40.9 GB (7200rpm)


Parámetros geométricos:
Cilindros (C) : 30784 cilindros
Pistas/cilindro o cabezales (P) : 4
Sectores/pista (S) : Variable. Más sectores en los cilindros externos,
menos en los internos. (Ej. entre 441 y 798 sectores)
Bytes/sector : 512

Tiempos de acceso:
Posicionamiento (promedio) : 8.9 ms
Rotación : 8.333 ms
Retardo (promedio): 4.167 ms
Arranque del motor de rotación : 10 s

8.- E/S a nivel de manejador


Generalidades.
Concepto de manejador de dispositivo.
Características de dispositivos.
Tipos de manejadores de dispositivos.

Generalidades

Entrada/salida a nivel de manejador de dispositivo.


Hace referencia al nivel intermedio de entrada/salida que homogeiniza la
diversidad, encapsula especificidad y aplica la planificación de los recursos
de entrada/salida.

Manejador de dispositivo (driver)


Concepto de manejador de dispositivo.
Subsistema software que, para cada dispositivo (o tipo de dispositivo)
homogeiniza la diversidad, encapsula especificidad y aplica la planificación.
Aisla los detalles del dispositivo
Todos los manejadores (drivers) ofrecen una interfaz de operaciones similar
al resto del S.O.

Características de dispositivos

Características a distinguir en un dispositivo:


Unidad de transferencia: orientado a caracteres o a bloques.
Tipo de acceso: secuencial o aleatorio
Tipo de transferencia: sincrónica o asincrónica
Modos de acceso soportados: uso concurrente o dedicado
Modos de apertura soportados: sólo lectura, sólo escritura, o ambas

Tipos de manejadores

Orientados a bloques:
Transferencia de bloques, acceso aleatorio.

Orientados a caracteres:
Transferencia de caracteres.

9.- Ejemplo de manejador

Recepción de una petición:


El manejador está sirviendo otra petición.
No hay ninguna petición en servicio.

El manejador está sirviendo otra petición:


Encolar la petición que se acaba de recibir.
Suspender el proceso relacionado con la petición.

No hay ninguna petición en servicio


Atender la petición.
Suspender al proceso relacionado a la petición.

Recepción de una interrupción del controlador:


Verificar resultado y transferir datos a la dirección de destino.
Pasar a preparado al proceso relacionado con la petición.
Atender la siguiente petición de la cola.
10.- Planificación del disco
- Objetivos.
- Algoritmos de planificación de disco.
- FCFS (first come first served).
- SSTF (shortest seek time first).
- SCAN (barrido).
- C-SCAN (barrido circular).
- LOOK (ascensor).
- C-LOOK (ascensor circular).

Objetivo de planificación del disco

Objetivos.
Minimizar el tiempo de acceso.
Minimizar el recorrido del cabezal.

Estructura de datos.
Vector de colas de peticiones por cilindro.

Algoritmos

FCFS (First Come First Served).


Respeta el turno de llegada.

SSTF (Shortest Seek Time First).


Primero el más cercano (menor tiempo de posicionamiento).

SCAN.- barrido.
El cabezal recorre el disco de un extremo a otro, sirviendo las peticiones
que encuentra. Al llegar al extremo cambia de dirección.

C-SCAN.- barrido circular.

LOOK.- ascensor.
Idem. SCAN, pero el cabezal cambia de dirección al servir la última petición
en una dirección (no es necesario alcanzar los extremos).

C-LOOK.- ascensor circular.

Ejemplo planificación FCFS

Implementación simple, pero recorrido total elevado.

Ejemplo planificación SSTF


Recorrido total bajo, pero el cabezal oscila en la zona central (posible inanición)

Ejemplo planificación SCAN

Recorrido total bajo, penaliza extremos (pero sin inanición)

Ejemplo planificación C-SCAN

Frente a SCAN, mayor recorrido total con tiempo de respuesta más uniforme

Ejemplo planificación LOOK

Recorrido total inferior a SCAN

Ejemplo planificación C-LOOK

Recorrido total inferior a C-SCAN, tiempo de servicio más uniforme que LOOK

Tratamiento de errores

Ejemplo: Disco

También podría gustarte