19
INSTITUTO TECNOLÓGICO SUPERIOR DE ESCÁRCEGA SCC - 0431 INVESTIGACIÓN INTEGRANTES: DARINELA SARMIENTO DOMÍNGUEZ CONCEPCIÓN FERRER PÉREZ FRANCISCO JESÚS KANTÚN HERNÁNDEZ WENDY EVA ELIZABETH MEX MAZARIEGO ASIGNATURA: SISTEMAS OPERATIVOS GRUPO: ISMB-7. Taller de Investigación II

Estructura de Datos para los Manejadores de Dipósitivos

Embed Size (px)

Citation preview

Page 1: Estructura de Datos para los Manejadores de Dipósitivos

INSTITUTO TECNOLÓGICOSUPERIOR DE ESCÁRCEGA

SCC - 0431

INVESTIGACIÓN

INTEGRANTES:DARINELA SARMIENTO DOMÍNGUEZ

CONCEPCIÓN FERRER PÉREZFRANCISCO JESÚS KANTÚN HERNÁNDEZWENDY EVA ELIZABETH MEX MAZARIEGO

ASIGNATURA:SISTEMAS OPERATIVOS

GRUPO:ISMB-7.

Taller de Investigación II

Ana Isabel González Martínez

DOCENTE:

ING. IVETT PACHECO FARFÁN

Page 2: Estructura de Datos para los Manejadores de Dipósitivos

CONTENIDOINTRODUCCIÓN..................................................................................................................3

4.3 ESTRUCTURA DE DATOS PARA MANEJO DE DISPOSITIVOS.............................3

Estructura Simple  o Modular.........................................................................................3

Estructura por Microkernel.............................................................................................5

Estructura por Anillos Concéntricos (capas)..................................................................6

Estructura Cliente – Servidor.........................................................................................8

Procesos de petición......................................................................................................9

4.4 OPERACIONES DE ENTRADA/SALIDA..................................................................13

CONCLUSIÓN....................................................................................................................15

REFERENCIAS BIBLIOGRÁFICAS....................................................................................15

Page 3: Estructura de Datos para los Manejadores de Dipósitivos

INTRODUCCIÓN

Los sistemas operativos son la base para el control de nuestro equipo y programas, pero también para una buena administración de los dispositivos de E/S. Ya que si no contáramos con una administración de los mismos no podríamos explotar al máximo la capacidad que estos poseen. En esta investigación se trataran de abarcar los puntos más importantes sobre la administración de los dispositivos de E/S y como es que interactúan con el Sistema Operativo para que estos puedan funcionar y todo lo que implica manejar un dispositivo mediante el SO con el fin de que el lector entienda todo lo que se lleva acabo detrás de un SO y los diferentes dispositivos que hay.

4.3 ESTRUCTURA DE DATOS PARA MANEJO DE DISPOSITIVOS

Los sistemas operativos actuales son grandes y complejos, estos deben poseer una ingeniería correcta para su fácil actualización y para que puedan cumplir su función correctamente. La estructura es generalmente modular, cada modulo cumple una función determinada e interactúa con los demás módulos. 

Una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema. 

Estructura Simple  o Modular.

También llamados sistemas monolíticos. La estructura consiste en que no existe estructura alguna. El sistema operativo se escribe como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados y cada uno de ellos es libre de llamar a cualquier otro, si este ultimo proporciona cierto cálculo útil para el primero. Sin embargo incluso en este tipo de sistemas es posible tener al menos algo de estructura. Los servicios (llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parámetros en lugares bien definidos, como en los registros o en la pila, para después ejecutar una instrucción especial de trampa de nombre “llamada al núcleo” o “llamada al supervisor”.

Page 4: Estructura de Datos para los Manejadores de Dipósitivos

Esta instrucción cambia la máquina del modo usuario al modo núcleo y transfiere el control al sistema operativo, lo que se muestra en el evento (1) de la figura 1. El sistema operativo examina entonces los parámetros de la llamada, para determinar cuál de ellas se desea realizar, como se muestra en el evento (2) de la figura 1. A continuación, el sistema operativo analiza una tabla que contiene en la entrada k un apuntador al procedimiento que realiza la k-esima llamada al sistema. Esta operación que se muestra en (3) de la figura 1, identifica el procedimiento de servicio, al cual se llama. Por último, la llamada al sistema termina y el control regresa al programa del usuario.

Figura 1

Figura 1. La forma en que debe hacerse una llamada al sistema: (1) el programa del usuario es atraído hacia el núcleo. (2) el sistema operativo determina el número del servicio solicitado. (3) el sistema operativo localiza y llama al procedimiento correspondiente al servicio. (4) el control regresa al programa del usuario.

Esta organización sugiere una organización básica del sistema operativo:

1.- un programa principal que llama al procedimiento del servicio solicitado.

2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.

Page 5: Estructura de Datos para los Manejadores de Dipósitivos

3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de servicio.

En este modelo, para cada llamada al sistema existe un procedimiento de servicio que se encarga de él. Los procedimientos utilitarios hacen cosas necesarias para varios procedimientos de servicio, por ejemplo buscar los datos de los programas del usuario. La siguiente figura muestra este procedimiento de tres capas:

Error: Reference source not foundFigura 2. Un modelo de estructura simple para un sistema monolítico.

Estructura por Microkernel.

Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte más importante del DOS es un programa con el nombre "COMMAND.COM" Este programa tiene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la administración de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos.

Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del shell, reemplazando la

Page 6: Estructura de Datos para los Manejadores de Dipósitivos

interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos “shells” diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.

Estructura por Anillos Concéntricos (capas).

El sistema por “capas” consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la inmediata inferior. El primer sistema construido de esta manera fue el sistema THE (Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes.

El sistema tenía 6 capas, como se muestra en la figura 4. La capa 0 trabaja con la asignación del procesador y alterna entre los procesos cuando ocurren las interrupciones o expiran los cronómetros. Sobre la capa 0, el sistema consta de procesos secuénciales, cada uno de los cuales se podría programar sin importar que varios procesos estuvieran ejecutándose en el mismo procesador, la capa 0 proporcionaba la multiprogramación básica de la CPU.

La capa 1 realizaba la administración de la memoria. Asignaba el espacio de memoria principal para los procesos y un recipiente de palabras de 512K se utilizaba para almacenar partes de los procesos (páginas) para las que no existía lugar en la memoria principal. Por encima de la capa 1, los procesos no debían preocuparse si estaban en la memoria o en el recipiente; el software de la capa 1

Page 7: Estructura de Datos para los Manejadores de Dipósitivos

se encargaba de garantizar que las páginas llegaran a la memoria cuando fueran necesarias.

La capa 2 se encargaba de la comunicación entre cada proceso y la consola del operador. Por encima de esta capa, cada proceso tiene su propia consola de operador.

La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de información entre ellos. Por encima de la capa 3, cada proceso puede trabajar con dispositivos exactos de E/S con propiedades adecuadas, en vez de dispositivos reales con muchas peculiaridades. La capa 4 es donde estaban los programas del usuario, estos no tenían que preocuparse por el proceso, memoria, consola o control de E/S. el proceso operador del sistema se localizaba en la capa 5.

Una generalización más avanzada del concepto de capas se presento en el sistema MULTICS. En lugar de capas, MULTICS estaba organizado como una serie de anillos concéntricos, siendo los anillos interiores los privilegiados. Cuando un procedimiento de un anillo exterior deseaba llamar a un procedimiento de un anillo interior, debió hacer el equivalente a una llamada al sistema.

Mientras que el esquema de capas de THE era en realidad un apoyo al diseño, debido a que todas las partes del sistema estaban ligadas entre sí en un solo programa objeto, en MULTICS, el mecanismo de anillos estaba más presente durante el tiempo de ejecución y era reforzado por el hardware. La ventaja del mecanismo de anillos es su facilidad de extensión para estructurar subsistemas del usuario.

5 El operador4 Programas del usuario3 Control de entrada/salida2 Comunicación operador-proceso1 Administración de la memoria y del disco0 Asignación del procesador y multiprogramación

Figura 4. Estructura del sistema operativo THE.

Page 8: Estructura de Datos para los Manejadores de Dipósitivos

Estructura Cliente – Servidor.

Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el código a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo. El punto de vista usual es el de implantar la mayoría de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del usuario (denominado proceso cliente) envía la solicitud a un proceso servidor, que realiza entonces el trabajo y regresa la respuesta. En este modelo, que se muestra en la figura 5, lo único que hace el núcleo es controlar la comunicación entre los clientes y los servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria, cada parte es pequeña y controlable. Además como todos los servidores se ejecutan como procesos en modo usuario y no en modo núcleo, no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, éste puede fallar, pero esto no afectará en general a toda la máquina.

Figura 5. El modelo Cliente-servidor.

Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptación

para su uso en los sistemas distribuidos (figura 6).

Si un cliente se comunica con un servidor mediante mensajes, el cliente no

necesita saber si el mensaje se maneja en forma local, en su máquina, o si se

Page 9: Estructura de Datos para los Manejadores de Dipósitivos

envía por medio de una red a un servidor en una máquina remota. En lo que

respecta al cliente, lo mismo ocurre en ambos casos: se envió una solicitud y se

recibió una respuesta.

Figura 6. El modelo cliente-servidor en un sistema distribuido.

Procesos de petición

Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operación de E/S, el sistema operativo prepara dicha operación y bloquea al proceso hasta que se recibe una interrupción del controlador del dispositivo indicando que la operación está completa. Las peticiones se procesan de forma estructurada en las siguientes capas:

1. Manejadores de interrupción.

2. Manejadores de dispositivos o drivers.

3. Software de E/S independiente de los dispositivos. Este software está formado por la parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloques y el servidor de archivos.

Page 10: Estructura de Datos para los Manejadores de Dipósitivos

4. Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de usuario.

El sistema operativo estructura el software de gestión de E/S de esta forma para ofrecer a los usuarios una serie de servicios de E/S independientes de los dispositivos. Esta independencia implica que deben emplearse los mismos servicios y operaciones de E/S para leer datos de un disquete, de un disco duro, de un CD-ROM o de un teclado.

1. Manejadores de Interrupción

Un manejador de interrupciones, también conocido como ISR (interrupt service routine o rutina de servicio de interrupción), es una subrutina callback en un sistema operativo o en un controlador de dispositivo cuya ejecución es desencadenada por la recepción de una interrupción. Los manejadores de instrucciones tienen una multitud de funciones, que varían basadas en el motivo por el cual la interrupción fue generada y la velocidad en la cual el manejador de interrupciones completa su tarea.

Estos manejadores pueden ser iniciados por interrupciones de hardware o de software, y son usados para servir a los dispositivos de hardware y transiciones entre modos protegidos de operación como los llamados de sistema.

Page 11: Estructura de Datos para los Manejadores de Dipósitivos

2. Manejadores de Dispositivos

- Contiene el codigo dependiente del dispositivo

- Cada manejador contiene sus colas.

3. E/S Independiente de Dispositivo

La frontera de este nivel con el anterior es difusa.

Funciones:

Ofrecer una interfaz uniforme a los procesos de usuarios.

Asignar nombres a los dispositivos.

Proteger a los dispositivos.

Ofrecer un tamaño de bloque independiente de los dispositivos.

Almacenar los datos temporales en las transferencias de E/S.

Page 12: Estructura de Datos para los Manejadores de Dipósitivos

Gestionar la asignación del espacio en dispositivos de bloques.

Reservar y liberar los dispositivos dedicados.

Informar de los posibles errores.

Un aspecto muy importante en un S.O. es la asignación de nombres a los archivos y dispositivos.

4. E/S en el Espacio de Usuario

SPOOLING

Page 13: Estructura de Datos para los Manejadores de Dipósitivos

El sistema de E/S verá que el dispositivo no está y lo notificará a los niveles superiores hasta que el error llegue a la aplicación. Sin embargo, es importante resaltar que los sistemas operativos son cada vez más robustos y cada vez incluyen más control y reparación de errores, para lo cual usan métodos de paridad, checksums, códigos correctores de error, etc. Además, la información que proporcionan cuando hay un error es cada vez mayor.

4.4 OPERACIONES DE ENTRADA/SALIDA

Las funciones que debe realizar un computador para ejecutar trabajos de

entrada/salida: 

Direccionamiento o selección del dispositivo que debe llevar a cabo la

operación de E/S.

Transferencia de los datos entre el procesador y el dispositivo (en uno u

otro sentido).

Sincronización y coordinación de las operaciones. 

Esta última función es necesaria debido a la deferencia de velocidades entre los

dispositivos y la CPU y a la independencia que debe existir entre los periféricos y

la CPU (por ejemplo, suelen tener relojes diferentes). 

Se define una transferencia elemental de información como la transmisión de una

sola unidad de información (normalmente un byte) entre el procesador y el

periférico o viceversa.

Para efectuar una transferencia elemental de información son precisas las

siguientes funciones:

 

Page 14: Estructura de Datos para los Manejadores de Dipósitivos

Establecimiento de una comunicación física entre el procesador y el

periférico para la transmisión de la unidad de         información. 

Control de los periféricos, en que se incluyen operaciones como prueba y

modificación del estado del periférico. Para         realizar estas funciones la

CPU gestionara las líneas de control necesarias. 

Definiremos una operación de E/S como el conjunto de acciones necesarias para

la transferencia de un conjunto de datos (es decir, una transferencia completa de

datos). 

Para la realización de una operación de E/S se deben efectuar las siguientes

funciones: 

Recuento de las unidades de información transferidas (normalmente bytes)

para reconocer el fin de operación. 

Sincronización de velocidad entre la CPU y el periférico. 

Detección de errores (e incluso corrección) mediante la utilización de los

códigos necesarios (bits de paridad, códigos de        redundancia cíclica,

etc.)

Almacenamiento temporal de la información. Es más eficiente utilizar un

buffer temporal específico para las operaciones        de E/S que utilizan el

área de datos del programa. 

Conversión de códigos, conversión serie/paralelo, etc.

CONCLUSIÓN

Page 15: Estructura de Datos para los Manejadores de Dipósitivos

En conclusión podemos de decir que la interacción entre un dispositivo y el

usuario se lleva a cabo gracias al Sistema Operativo y los controladores que el

dispositivo posee, ya que si el dispositivo a instalar no tuviera sus debidos

controladores no se lograría la conexión entre este y el SO, también se abarco los

debidos pasos que el SO debe llevar a cabo para la correcta instalación de este.

Esperemos que esta información allá sido de gran utilidad y le sirva para su futura

aplicación, y que la información brindada le allá sido clara y concisa.

REFERENCIAS BIBLIOGRÁFICAS.

Libros

"Operating System Concepts" Abraham Silberscatz y Peter B. Galvin. 1994 Addison-Wesley.

"Sistemas Operativos Modernos" Andrew S. Tanenbaum. 1993. Prentice Hall.

"Sistemas Operativos" William Stallings. 1997 Prentice Hall.

Electrónicos

http://sistemasoperativos.angelfire.com/html/temas.html

http://sistemasoperativosyeraldi.blogspot.mx/2009/11/43-estructura-de-datos-para-manejo-de.html