Guía Instruccional de Sistemas Operativos II

5to. Semestre de la Especialidad: Informática
1er. Corte
Semestre: 2.010-I Instituto Universitario de Tecnología Antonio José Sucre Prof. Martin E. Duerto S.

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
Asignatura: Sistemas Operativos II Contenido Programático (PRIMER CORTE)

UNIDAD I (Introducción y Conceptos Básicos) 1.1 Definición de Sistema Operativo Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración de los dispositivos periféricos. Cuando se aplica voltaje al procesador de un dispositivo electrónico, éste ejecuta un reducido código en lenguaje ensamblador localizado en una dirección concreta en la ROM (dirección de reset) y conocido como reset code, que a su vez ejecuta una rutina con la que se inicializa el hardware que acompaña al procesador. También en esta fase suele inicializarse el controlador de las interrupciones. Finalizada esta fase se ejecuta el código de arranque (startup code), también código en lenguaje ensamblador, cuya tarea más importante es ejecutar el programa principal (main()) del software de la aplicación. Un sistema operativo se puede encontrar en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras, radios, etc). 1.2 Recursos administrados por un sistema operativo: Tiempo de procesador: Después del consumo de memoria la actividad del procesador es el dato más importante a controlar en nuestro servidor. Para determinar si las tareas del procesador se manejan eficientemente para todo el trabajo en el equipo o si está sobrecargado, debemos examinar su uso. El uso del procesador o uso de CPU es el porcentaje de tiempo en el que se encuentra ocupado trabajando. Debemos vigilar esta ocupación para detectar cuellos de botella en el procesador. En Windows Server 2003, podemos utilizar el Administrador de tareas o Rendimiento para controlar el uso y la actividad del procesador. El contador que define el uso del procesador en cada una de estas herramientas es:
y y

Uso de CPU, en el Administrador de tareas, y, % Tiempo de proceso en Rendimiento.

2

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
En el Administrador de tareas el uso de CPU muestra un gráfico indicando el porcentaje de tiempo que el procesador está trabajando. Este contador es el primer indicador de la actividad del procesador. Viendo el gráfico vemos cuanto tiempo de proceso se está utilizando. Si el equipo parece enlentecerse, el gráfico puede estar mostrando un gran porcentaje de uso. En Rendimiento, el porcentaje de tiempo de procesador es el porcentaje de tiempo transcurrido que el procesador ha gastado en ejecutar un hilo que no sea el de inactivo. Cada procesador tiene un hilo de inactividad que consume ciclos cuando no hay otros hilos en ejecución. Este contador es el primer indicador de la actividad del procesador. Muestra el porcentaje medio de tiempo ocupado observado durante el intervalo de muestra. Se calcula el valor mediante el control del tiempo que el proceso de inactividad está activo y que se le resta al 100%. Es interesante el control de este contador en sistemas de multiproceso simétrico (SMP) como a los sistemas de único procesador. SMP permite a cualquier procesador del sistema ejecutar cualquier hilo del sistema operativo o de aplicación simultáneamente con otro procesador en el sistema. Observar la pauta en el uso de un procesador en procesadores individuales y para todos los procesadores durante el periodo establecido. También, considerar el número de hilos en la cola del procesador del sistema para determinar si el uso elevado de procesador está limitando la capacidad del sistema para cumplir su trabajo. Tiempo de Memoria: En informática, el hablar de la memoria del computador, no se refiera a la capacidad del disco duro de éste, sino a la RAM, memoria de acceso aleatorio o, en inglés, Ramdom Access Memory. La RAM es un medio físico que almacena temporalmente toda la lógica del computador: el sistema operativo, los programas que estamos ejecutando y otros datos para su funcionamiento. La memoria de un PC actual se encuentra, normalmente, en forma de módulos DIMM (tienen 168 contactos, 5,25 pulgadas de longitud y una de altura. Se empezaron a utilizar con la llegada de los Pentium II). Hace unos años, no demasiados, se utilizaban los SIMM (los hay de 30 pins, 3,5 pulgadas de longitud por media de altura y los de 72 contactos, 4,25 pulgadas de longitud y una de altura) y ahora se está empezando a utilizar los RIMM, muchos más caros. Los módulos DIMM suelen funcionar a 66, 100, 120 o 133 Mhz mientras que los RIMM lo hacen a 600, 700 u 800 Mhz. Las siglas ECC significan Error Correction Code (Código de corrección de errores). Es un sistema que chequea la integridad de los datos almacenados en la memoria RAM. El sistema utiliza tres bits adicionales a cada byte de datos.

3

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
Dependiendo del controlador de memoria del computador, el sistema ECC, será capaz de encontrar entre dos y cuatro bits erróneos por cada byte. El funcionamiento de este sistema está basado en un algoritmo matemático, que codifica la información del byte en tres bits. Cuando los datos llegan a la memoria se comparan el byte y los tres bits, determinando si ha habido una corrupción en la información transmitida. Otro factor a tener en cuenta es el tiempo de acceso a la RAM. Para ello se utiliza el término nanosegundo, una mil millonésima de segundo, y realmente es el tiempo que se tarda en acceder a los datos almacenados. En los antiguos SIMM esta velocidad estaba entre los 80 y 60 nanosegundos, pero no es el único factor del tiempo que tarde el computador en acceder, un SIMM EDO es mejor que uno FPM, por la forma en que los datos son tratados. En un módulo de SDRAM el tiempo podrá bajar a 12, 10 e incluso 8 nanosegundos. Un concepto importante es el refresco. Para empezar hay que saber que un chip de memoria RAM está formado por una especie de células eléctricas que se ordenan en "columnas" con la necesidad de ser recargadas de manera continua. La tasa de refresco es al número de columnas que deben ser recargadas. Las más frecuentes suelen ser de 2Kbytes y 4kbytes. La primera es capaz de recargar más células a la vez y por lo tanto es más rápida. Dispositivos Periféricos:

Los dispositivos de E/S 1. Según su utilidad:
y

se pueden clasificar

de

la siguiente manera:

y

Dispositivos de Interfaz de Usuario: Permiten la comunicación entre los usuarios y la computadora. Dentro de este grupo se incluyen todos los dispositivos que sirven de interfaz para el usuario, tanto de Entrada (Teclado, Mouse...) como de Salida (Impresora, Pantalla...). Dispositivos de Almacenamiento: Proporcionan almacenamiento no volátil de datos y memoria. Su función primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la CPU. Según su

4

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
capacidad y la inmediatez con que pueden acceder a los datos se pueden dividir en almacenamiento secundario (discos y disquetes) y terciario (cintas). Dispositivos de Comunicaciones: Permiten conectar a la computadora con otras a través de una interfaz de red. Entre ellos se pueden mencionar los Modem, Tarjetas de Interfaz de Red, entre otros.

y

2. Según su administración:
y

y

y

Dispositivos Dedicados: Su característica principal es la que se asigna a un solo proceso, el cual los utiliza en forma exclusiva. Entre estos periféricos se encuentran las cintas magnéticas y la mayoría de los periféricos de comunicación. Dispositivos Compartidos: Estos dispositivos tienen la característica de ser asignados a varios procesos al mismo tiempo. La complejidad de su manejo reside en la necesidad de mantener la información sobre los archivos que contienen y sobre el espacio disponible y servir simultáneamente a varios procesos (simultaneidad lógica). Los dispositivos más importantes de este tipo son los discos. Dispositivos Virtuales: Se usan principalmente para simular periféricos inexistentes, o para poder asignar a varios programas, en forma simultánea, periféricos que por su naturaleza son dedicados (ejemplo la impresora). En este caso la labor del Sistema Operativo consiste en simular los correspondientes periféricos, y en hacer el encadenamiento adecuado con las unidades físicas correspondiente.

Cada clase de dispositivo de E/S posee características que la hacen diferente a las demás, incluso cada dispositivo que hace parte de la clase posee sus propias características. A continuación se hace mención de algunas de ellas:
y

y

y

y

y

Velocidad de Datos: Es la velocidad con que el dispositivo transfiere los datos. Puede haber una diferencia de varios órdenes de magnitud en las velocidades de transmisión de un dispositivo a otro. Aplicaciones: Hace referencia a la utilidad que se le da al dispositivo, esta característica tiene una gran influencia en su Software, en las políticas del Sistema Operativo y de las utilidades de apoyo. Complejidad de Control: Es la manera como el dispositivo realiza el control de las operaciones de E/S. La complejidad del control es filtrada por el módulo de E/S que controla al dispositivo. Unidad de Transferencia: Es la mínima unidad que utilizan los dispositivos para transferir los datos, los cuales pueden transmitirse como flujos de bytes o de caracteres (un terminal) o en bloque mayores (un disco). Representación de los Datos: Es la forma como el dispositivo esquematiza y codifica los datos. Cada dispositivo emplean un esquema de codificación de

5

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
datos diferente, incluidas las diferencias en los códigos de caracteres y los convenios de paridad. Condiciones de Error: Hace referencia a la manera como el dispositivo detecta los errores, la manera en que se informa sobre ellos, sus consecuencias y el rango disponible de repuestas que se tiene frente a cada dispositivo. Estas condiciones difieren ampliamente de un dispositivo a otro.

y

Software: Los recursos de software de un sistema de computación, consisten en las funciones disponibles al usuario con el objeto de administrar datos y controlar la ejecución de programas. Entre estos recursos se encuentran los servicios de administración de archivos, los despachadores, librerías del sistema y rutinas de utilidad. El método más utilizado para permitir a varios usuarios compartir un recurso de software, es haciendo este recurso de software reentrante. La utilización de software reentrante, evita tener en la memoria varias copias de ese software, situación que sería muy ineficiente. En computadores pequeños puede ser imposible la implementación de programas reentrantes.

1.3 Tipos de Sistemas operativos a.- Sistemas de Tiempo Real: Los Sistemas Operativos de tiempo real son la plataforma para establecer un sistema de tiempo real ya que en los SOTR no tiene importancia el usuario, sino los procesos.

Algunos ejemplos de Sistemas Operativos de tiempo real son: 1. VxWorks, 2. Solaris, Lyns OS 3. Spectra Por lo regular Sistema Operativo de tiempo real suele tener la misma arquitectura que un Sistema Operativo convencional, pero su diferencia radica en que proporciona mayor prioridad a los elementos de control y procesamiento que son utilizados para ejecutar los procesos o tareas.

1. El SOTR debe ser multitarea y permisible 2. Un SOTR debe poder asignar prioridades a las tareas

6

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
3. El SOTR debe proporcionar medios de comunicación y sincronización entre tareas 4. Un SOTR debe poder evitar el problema de inversión de prioridades 5. El comportamiento temporal del SOTR debe ser conocido b.- Sistema de Multiprogramación: Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutando) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.

Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.

Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea. Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes: * Mejora productividad del sistema y utilización de recursos. * Multiplexa recursos entre varios programas. * Generalmente soportan múltiples usuarios (multiusuarios). * Proporcionan facilidades para mantener el entorno de usuarios individuales. * Requieren validación de usuario para seguridad y protección. * Proporcionan contabilidad del uso de los recursos por parte de los usuarios. * Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real. * Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores. * En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.

7

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
c.- Tiempo Compartido: Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Características de los Sistemas Operativos de tiempo compartido: * Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc. * Dan la ilusión de que cada usuario tiene una máquina para sí. * Mayoría utilizan algoritmo de reparto circular. * Programas se ejcutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio. * Evitan monopolización del sistema asignando tiempos de procesador (time slot). * Gestión de memoria proporciona protección a programas residentes. * Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir múltiples usuarios accesando un mismo archivo. d.- S.O. para Redes Distribuidas: Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.

8

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Características de los Sistemas Operativos distribuidos:

* Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software . * Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios. * Objetivo clave es la transparencia. * Generalmente proporcionan medios para la compartición global de recursos. * Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internados, llamadas a procedimientos remotos, etc.).

1.4 Conceptos claves que afectan el diseño de un sistema operativo -Relocalización: Consiste en ajustar las direcciones de un programa al sitio donde fue cargado, para que este pueda ser ejecutado. Este proceso es indispensable para poder tener multiprogramación, puesto que el programa no va a ocupar las mismas posiciones de memoria. NOTA: Relocalizar es indispensable para que haya multitarea. Un proceso de usuario puede residir en cualquier parte de la memoria física. Por esto, aunque el espacio de direcciones del computador comience en 00000, no es necesario que la primera dirección del proceso de usuario sea 00000. -Reentrancia: (investigar) -Interrupciones: (también conocida como interrupción hardware o petición de interrupción) es una señal recibida por el procesador de una computadora, indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación.

9

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
Una interrupción supone la ejecución temporaria de un programa, para pasar a ejecutar una "subrutina de servicio de interrupción", que pertenece al BIOS (Basic Input Output System). Las interrupciones surgen de las necesidades que tienen los dispositivos periféricos de enviar información al procesador principal de un sistema de computación. La primera técnica que se empleó fue que el propio procesador se encargara de sondear (polling) el dispositivo cada cierto tiempo para averiguar si tenía pendiente alguna comunicación para él. Este método presentaba el inconveniente de ser muy ineficiente, ya que el procesador constantemente consumía tiempo en realizar todas las instrucciones de sondeo. El mecanismo de interrupciones fue la solución que permitió al procesador desentenderse de esta problemática, y delegar en el dispositivo la responsabilidad de comunicarse con el procesador cuando lo necesitaba. El procesador, en este caso, no sondea a ningún dispositivo, sino que queda a la espera de que estos le avisen (le "interrumpan") cuando tengan algo que comunicarle (ya sea un evento, una transferencia de información, una condición de error, etc.). - Canales: (investigar) - Procesamiento de I/O: (investigar) - Buffering: Un buffer (o búfer) en informática es un espacio de memoria, en el que se almacenan datos para evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede en algún momento sin datos. Algunos ejemplos de aplicaciones de buffers son:
y

y

y y

El buffer de teclado es una memoria intermedia en la que se van almacenando los caracteres que un usuario teclea, generalmente, hasta que pulsa la tecla [INTRO], momento en el cual el programa captura todos o parte de los caracteres tecleados contenidos en dicho buffer. En Audio o video en streaming por Internet. Se tiene un buffer para que haya menos posibilidades de que se corte la reproducción cuando se reduzca o corte el ancho de banda. Un buffer adecuado permite que en el salto entre dos canciones no haya una pausa molesta. Las grabadoras de CD o DVD, tienen un buffer para que no se pare la grabación. Hoy en día hay sistemas para retomar la grabación pero antes suponía que el CD no quedaba bien grabado y muchas veces era inservible.

10

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
El concepto del Buffer es similar al de cache. Pero en el caso del buffer, los datos que se introducen siempre van a ser utilizados. En la caché sin embargo, no hay seguridad, sino una mayor probabilidad de utilización. Para explicar la acepción informática a gente no técnica, se puede usar esta metáfora: Un buffer es como tener dinero en el banco (buffer), un trabajo (entrada) y unos gastos fijos (salida). Si tienes un trabajo inestable, mientras tengas ciertos ahorros, puedes mantener tus gastos fijos sin problemas, e ir ingresando dinero cuando puedas según vas trabajando. Si los ahorros son pequeños, en seguida que no tengas trabajo, no vas a poder acometer los gastos fijos. De la misma forma si escuchas música en Internet y tu programa de audio usa un buffer pequeño, en cuanto que haya alguna interrupción en la descarga (porque las descargas nunca tienen una velocidad constante), notarás cortes de sonido, ya que faltará información. Los buffers se pueden usar en cualquier sistema digital, no solo en los informáticos, por ejemplo se utilizan en reproductores de música y vídeo.

- Protección de Memoria: (Memory Protection). Técnica que prohíbe que un programa afecte accidentalmente a otro programa activo. A través de diversas y diferentes técnicas, se crea una frontera protectora alrededor del programa, y las instrucciones dentro del mismo tienen prohibido hacer referencia a datos fuera de esa fronter.

Unidad II (Cargadores y Enlazadores) 2.1- Cargadores y Enlazadores: Un enlazador es un programa de sistema que combina dos o más programas objeto separados y permite que se hagan referencias unos a otros, o sea, que cada uno de estos programas pueden hacer referencia a código ó variables de los otros programas con los que está enlazado. En muchos programas el cargador hace la labor del programa de enlace, porque existe solo un "linking loader" y no existe programa de enlace independiente. Es importante señalar que no se necesita un programa de enlace ni un cargador separado para cada traductor en el sistema, ya que estos programas trabajan con el programa objeto, sin importar el lenguaje fuente. Por otro lado es importante que cada compilador o ensamblador produzca el programa objeto usando el mismo formato. Cada programa objeto es un archivo de récord. Un cargador es un programa que coloca en la memoria para su ejecución, el programa guardado en algún dispositivo de almacenamiento secundario.

11

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
Un cargador es un programa del sistema que realiza la función de carga, pero muchos cargadores también incluyen relocalización y ligado. Algunos sistemas tienen un enlazador para realizar las operaciones de enlaces y un cargador separado para manejar la relocalización y la carga. Los procesos de ensamblado y carga están íntimamente relacionados. El cargador consiste en un juego de instrucciones que permiten al dispositivo de entrada (teclado ó unidad de cinta) asignar la dirección de inicio de la memoria y asegurar que el computador leerá el programa y lo cargara byte a byte.

2.2- Cargadores Compile & Go: (compile y ejecute). Son los utilizados por los compiladores tipo Turbo (Pascal, C, Prolog, etc), que realizan todas las etapas enumeradas previamente, cuando la compilación se realiza directamente a la memoria. La idea central consiste en que a medida que se va compilando se va escribiendo directamente sobre la memoria el código ejecutable y una vez se termine el proceso, se le da el control al programa compilado para su ejecución. 2.3- Esquemas Generales de Cargadores. (Investigar) 2.4- Cargadores Absolutos: Existen en sistemas en los que los compiladores generan código absoluto (no relocalizable). De esta forma se obliga a que el programa siempre se deba carga en las mismas posiciones de memoria. Son relativamente simples pero no permiten tener multiprogramación. La principal ventaja de los cargadores absolutos es su simplicidad, pues la carga se reduce prácticamente a una operación entrada/salida. 2.5- Llamadas, Subrutinas: 2.6- Cargadores/Enlazadores (definido anteriormente) 2.7- Relocalización (definido anteriormente) 2.8- El Problema de Enlace

Unidad III (PROGRAMACIÓN DE ENTRADA / SALIDA) 3.1.- Operaciones E/S: Tanto en la E/S programada como la basada en interrupciones, la UCP debe encargarse de la transferencia de datos una vez que sabe que hay datos disponibles en el controlador. Una mejora importante para incrementar

12

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
la concurrencia entre la UCP y la E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos, liberando de este trabajo a la UCP, e interrumpir a la UCP sólo cuando haya terminado la operación completa de EIS. Esta técnica se denomina acceso directo a memoria (DMA, Direct Memory Access).

Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga directamente de transferir los datos entre el periférico y la memoria principal, sin requerir intervención alguna por parte del procesador. Esta técnica funciona de la siguiente manera: cuando el procesador desea que se imprima un bloque de datos, envía una orden al controlador indicándole la siguiente información: * Tipo de operación: lectura o escritura. * Periférico involucrado en la operación. * La dirección de memoria desde la que se va a leer o a la que va a escribir directamente con el controlador de dispositivo (dirección). * El número de bytes a transferir (contador). Donde el campo Operación corresponde al código de operación de las instrucciones máquinas normales. Especifica la operación que debe realizar la CCW. La unidad de control decodifica este campo y envía las señales adecuadas de control al dispositivo. Existen varias operaciones, las más importantes son las siguientes: Lectura: el canal transfiere a memoria principal un bloque de palabras de tamaño especificado en el campo nº de palabras, en orden ascendente de direcciones, empezando en la dirección especificada en el campo dirección del dato.

13

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
Escritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se transfieren en el mismo orden que en la operación de lectura.

Control: se utiliza esta orden para enviar instrucciones específicas al dispositivo de E/S, como rebobinar una cinta magnética, etc.

Bifurcación: cumple en el programa de canal la misma función que una instrucción de salto en un programa normal. El canal ejecuta las CCW en secuencia, salvo cuando aparece una CCW de este tipo, que utiliza el campo dirección del dato como la dirección de la siguiente CCW a ejecutar. Flags: Los bits de este campo indican lo siguiente: CC (Encadenamiento de comando): cuando este bit está a 1, indica al canal que la siguiente CCW especifica una nueva operación de E/S que debe realizarse con el mismo dispositivo. El canal ejecuta primero la operación de E/S especificada en la CCW que tiene a 1 el flag CC. Después ejecuta la siguiente sobre el mismo dispositivo. Desde el punto de vista del dispositivo, las dos operaciones resultantes de la primera y segunda CCW aparecen como dos comandos de E/S separados. CD (Encadenamiento de datos): una CCW con el bit CD a 1, indica al canal que la siguiente CCW contiene una nueva dirección del dato y un nuevo nº de palabras. Éstos deben utilizarse para transferir un segundo bloque de datos hacia o desde el dispositivo de E/S, mediante la orden especificada por la CCW actual. Cuando el canal termina la transferencia de datos especificada en la CCW con el bit CD a 1, no corta la conexión con el dispositivo de E/S, continúa la transferencia utilizando la dirección y el nº de palabras de la siguiente CCW. SKIP (Salto): este bit, cuando está a 1, hace que el programa de canal salte un número de palabras igual al especificado en el campo nº de palabras. Cuando se

14

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
utiliza con la orden de lectura, este flag hace que los datos se lean del dispositivo sin que se transfieran a la memoria principal. PCI (Interrupción controlada por programa): el canal produce una interrupción cuando ejecuta una CCW con el flag PCI a 1. Si esta CCW va precedida por otra CCW con encadenamiento de comandos, la interrupción se genera después de que hayan concluido todas las transferencias de datos. Una vez emitida la orden, el procesador continúa realizando otro trabajo sin necesidad de transferir el bloque de datos. Es el propio controlador el que se encarga de transferir el bloque de datos del periférico a memoria. La transferencia se realiza palabra a palabra. Cuando el controlador ha completado la transferencia, genera una interrupción que activa la rutina de tratamiento correspondiente, de tal manera que se sepa que la operación ha concluido. Utilizando acceso directo a memoria el procesador únicamente se ve involucrado al inicio y al final de la transferencia. Por tanto, cuando el sistema operativo despierta al proceso que pidió la E/S, no tiene que copiar el bloque a memoria porque ya está allí. El DMA requiere una etapa de almacenamiento intermedio en el controlador del dispositivo para armonizar la velocidad del dispositivo de EIS con la copia de los datos en memoria principal. La razón para este almacenamiento intermedio reside en que una vez que el dispositivo empieza la transferencia de datos, ésta debe hacerse a velocidad constante para evitar transferencias parciales y nuevas esperas de posicionamiento del dispositivo sobre los datos (latencia). Una vez transferidos los datos a la memoria del controlador, éste los copia en memoria principal aprovechando el ancho de banda libre del bus. Los pasos a seguir en una operación de E/S con DMA son los siguientes: 1. Programación de la operación de E/S. Se indica al controlador la operación, los datos a transferir y la dirección de memoria sobre la que se efectuará la operación. 2. El controlador contesta aceptando la petición de E/S.

15

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
3. El controlador le ordena al dispositivo que lea (para operación de lectura) una cierta cantidad de datos desde una posición determinada del dispositivo a su memoria interna. 7.3. 4. Cuando los datos están listos, el controlador los copia a la posición de memoria que tiene en sus registros, incrementa dicha posición de memoria y decrementa el contador de datos pendientes de transferir. 5. Los pasos 3 y 4 se repiten hasta que no quedan más datos por leer. 6. Cuando el registro de contador está a cero, el controlador interrumpe a la UCP para in dicar que la operación de DMA ha terminado. Inicio y control de los programas de canal Hemos visto como se utilizan los programas de canal para realizar operaciones de E/S. Estos programas residen en la memoria principal del computador y se ejecutan en el canal. Vamos a examinar ahora la forma en que la CPU inicia y supervisa las operaciones de E/S, es decir, el programa de canal. En el IBM S/370 existen cuatro instrucciones máquina que la CPU puede utilizar para estos fines. Son las siguientes: START I/O Inicia una operación de E/S. El campo de dirección de la instrucción seemplea para especificar el canal y el dispositivo de E/S que participa en la operación. HALT I/O Finaliza la operación del canal. TEST CHANNEL Prueba el estado del canal. TEST I/O Prueba el estado del canal, el subcanal y el dispositivo de E/S. Una operación de E/S se inicia con la instrucción START I/O. La ubicación del programa de canal en la memoria principal viene definida en la palabra de dirección de canal (CAW: Channel A ddress word), que siempre está almacenada en la posición 72 de la memoria principal.

16

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I

3.2.- E/S Directa: (Investigar) 3.3.- E/S Indirecta: (Investigar)

17

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
ANEXOS

Interacción entre: el S.O. con el resto de las partes.

18

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com

Guía Instruccional de Sistemas Operativos II Semestre: 2.010-I
BIBLIOGRAFIA http://es.wikipedia.org/wiki/Sistemas_operativos http://msmvps.com/blogs/juansa/archive/2007/01/04/el-procesador.aspx http://usuarios.lycos.es/todohardware/ram.htm http://bari.ufps.edu.co/materias/150611/htm_docs/texc_rel.htm http://isis.faces.ula.ve/COMPUTACION/Html/Sistemas_operat/Apuntes_1.html http://www-lsi.ugr.es/~jagomez/sisopi_archivos/Reentrancia.htm http://es.wikipedia.org/wiki/Interrupci%C3%B3n http://es.wikipedia.org/wiki/Buffer_de_datos http://www.monografias.com/trabajos37/sistemas-tiempo-real/sistemas-tiemporeal2.shtml#sistem http://www.mitecnologico.com/Main/OperacionesDeEntradaSalida

Autoaprendizaje de Sistemas Operativos http://bari.ufps.edu.co/materias/proyso/index.php

19

Diseñada por: Prof. Martín E. Duerto S. - martinduerto@gmail.com