Resumen Arquitecura II

download Resumen Arquitecura II

of 45

Transcript of Resumen Arquitecura II

UNIDAD I Conceptos Introductorios.Arquitecturas secuenciales, estructura de una arquitectura secuencial y monoprocesador. Arquitecturas para procesamiento en paralelo: SISD, SIMD, MISD y MIMD. Concepto de acople: acoplamiento dbil y fuerte. Paralelismo con una CPU, computadora Pipeline. Arquitectura Data Flow, representacin de programas Data Flow, Tipo de Operadores

Arquitectura de Computadoras Concepto: La composicin y combinacin funcional de los distintos elementos de un computador Arquitecturas Convencionales: Serie o Secuencial Estructura general determinada por Von Neumann: 1. Programa almacenado, datos almacenados 2. Flujo de computo secuencial 3. Representacin Binaria de la informacin 4. No hay paralelismo de las operaciones Estructuras para una Arquitectura secuencial y monoprocesador Estructura: interconexin entre los distintos componentes Dos buses: todo dato, transferencia y operacin E/S pasara por el procesador Dos buses alternativa: las operaciones de E/S y transferencia se realizan bajo el control de procesadores de E/S Un bus: una sola transferencia a la vez sea solo 2 unidades pueden estar haciendo uso de l. Arquitecturas de procesamiento paralelas Se basa en la explotacin de sucesos concurrentes en un proceso de cmputos La concurrencia implica que pueden ser: Sucesos Paralelos: ocurren en mltiples recursos durante el mismo intervalo. Sucesos Simultneos: ocurren en un mismo instante. Sucesos Pipeline: ocurren en lapsos superpuestos. A nivel de hardware puede ser varias computadoras conectadas para hacer una tarea comn o ofrecer recursos, varios procesadores en una sola computadora, procesadores capaces de trabajar en forma pipeline. Tipos de Procesamiento en paralelo TI-DI-TO-EI(traer instruccin, decodificarla, traer operandos y ejecutar la instruccin) Estas operaciones definen el flujo de instrucciones que combinado con el flujo de datos, surgen los cuatro grupos de procesadores posibles : SISD: Simple Instruccin Simple dato El programa se almacena en memoria como una secuencia de instrucciones y se ejecuta extrayendo las mismas en secuencia y ejecutndola. Por lo tanto el curso que sigue el cmputo viene dado por las secuencias de las instrucciones del programa, es decir el flujo de control del programa. No permite paralelismo

Es necesario disponer de un registro que tenga la direccin de la prxima instruccin llamado contador de programa. Arquitecturas No convencionales: En Paralelo SIMD: Simple Instruccin Mltiple Dato Se ejecuta ms de una instruccin en forma simultnea. Tiene

una sola unidad de control (UC) que ejecuta una instruccin , pero cuenta con varias unidades de procesamiento (ALU o UP) que depositan sus datos en la memoria, as cada instruccin puede operar con varios datos.

MISD: Mltiples Instrucciones Simple Dato Esta arquitectura posee varias unidades de control con una unidad de procesamiento(ALU o UP), existen distintos flujos de instrucciones y un nico flujo de datos. Esto es un esquema terico sin aplicacin.

MIMD: Mltiple Instruccin, Mltiple Dato: Tenemos varias unidades de control con varias unidades de ejecucin

Concepto de Acople(MIMD) Las computadoras MIMD se clasifican en dos grupos: Multi-computadoras: diversas computadoras autnomas que pueden o no comunicarse entre s. Multiprocesadores: controlado por un SO que provee la interaccin entre los procesadores y sus programas a nivel de dato , proceso y archivo. Existen dos modelos diferentes para los sistemas multiprocesadores: Fuertemente acoplados: este tipo de sistemas se comunica a travs de una memoria comn, puede existir cache en cada procesador. Existe una compleja conectividad entre los procesadores y la memoria ya que uno de los problemas este tipo de sistemas es la concurrencia. Cuando la interaccin entre las tareas es alta son muy eficientes sin perder performance Dbilmente acoplados: cada procesador tiene un conjunto de dispositivos de E/S y una gran memoria local a donde accede para obtener la mayora de sus datos e instrucciones. Se comunican a travs de un sistema de transferencia de mensajes. Se los conoce tambin como Sistemas Distribuidos. Cuando la interaccin entre las tareas es baja son muy eficientes. En un sistema fuertemente acoplado, el retraso que se experimenta al enviar un mensaje de una computadora a otra es corto y la tasa de transmisin de los datos, es decir, el nmero de bits por segundo que se puede transferir, es alta. Esto se debe a que estos sistemas se comunican a travez de una memoria comun. En un sistema dbilmente acoplado ocurre lo contrario: el retraso de los mensajes entre las mquinas es grande y la tasa de transmisin de los datos es baja. Paralelismo con una sola CPU Salvo en el caso de la SISD , las dems arquitecturas permiten el paralelismo por la simple utilizacin adecuada de las estructuras del hardware. Procesamiento en paralelo es un trmino utilizado para denotar operaciones simultaneas en la CPU con el fin de aumentar la velocidad de computo. En las Arquitecturas en paralelo o no convencionales, se utilizan tcnicas de paralelismo que se consiguen multiplicando los componentes de hardware o tecnicas de pipeline. Un computador pipeline hace operaciones superpuestas para explotar el paralelismo temporal. Un Array procesador usa ALUs multiples sincronizadas para lograr paralelismo espacial. Un sistema multiprocesador logra paralelismos asincrnicos, a travs de un conjunto de procesadores que interactan y comparten recursos. Pipelining: Se divide la tarea en una secuencia de subtareas cada una de las cuales se ejecutan en una etapa de hardware especializada que trabaja concurrentemente con otras de las etapas del pipeline (Similar a la cinta de montaje). Esto aumenta el Troughput de forma considerable. Computadoras Pipeline Hay 4 etapas o pasos principales de ejecucin de un proceso: IF: Levantar instruccin ID: identificar la operacin OF: Levantar los operadores EX: Ejecutar la operacin

La idea de un computador pipeline es que las instrucciones sucesivas se ejecuten de forma superpuesta. EJEMPLO DE COMPUTADOR SIN PIPELINE: ETAPAS EX OF ID IF P1 P1 P1 P1 P2 P2 P3 P2 P3 P2 P3 P3

Un computador sin pipeline le toma 4 ciclos de pipeline completar una instruccion EJEMPLO DE COMPUTADOR CON PIPELINE ETAPAS EX OF ID IF P1 P1 P2 P1 P2 P3 P1 P2 P3 P4 P2 P3 P4 P5 . P10 P3 P4 P5 P10 P4 P5 . P10 P5 . P10 TIEMPO Un pipeline produce un resultado de salida por cada ciclo luego de cargado el pipeline. El ciclo de instruccin ha sido reducido a un cuarto del tiempo de ejecucin original por medio de las ejecuciones superpuestas. Hay ciertas dificultades que impiden al pipeline operar con su maxima velocidad. Los segmentos pueden tomar tiempos diferentes para cumplir su funcion sobre los datos que llegan. Algunos pasos son saltados por ciertas instrucciones.(por ejemplo una instruccin no necesita un clculo de direccin de un operando). Arquitectura a nivel de software (DATA FLOW) La idea principal al realizar un sistema es alcanzar velocidad y performance ms alta posible, esto se logra mediante dos medios: 1) Explotando las necesidades tecnologias de los componentes 2) Adecuando estructuras y organizaciones del computador. El modelo computo de Von Neumann parece inapropiado debido a que es un modelo serial , muchos lenguajes y arquitecturas como SISD, SIMD o MIMD esta basadas en este modelo. Es necesario contar con un modelo de sistema de computador que permita expresar algoritmos de un paralelismo natural. Uno de estos modelos es el DATAFLOW tambin conocido como SISTEMA DATADRIVEN. La diferencia entre el modelo de cmputo DATA FLOW y el modelo convencional de Von Neumann (CONTROL FLOW) se basa en qu considera cada modelo como lo decisivo en el proceso de cmputo: El modelo CONTROL FLOW, es la secuencia de instrucciones El programa se almacena en la memoria como un secuencia de instrucciones, el flujo de control del programa(curso) est dado por la secuencia de instrucciones. No es posible ejecutar cualquier instruccin hasta que todas las instrucciones previas hayan sido ejecutadas por lo tanto puede haber instrucciones que pese a estar listas(estar disponibles sus operandos) para ejecutar deban esperar. - El modelo DATA FLOW, es la disponibilidad de los datos El curso del computo esta controlado por el flujo de datos en el programa. Una instruccin puede ejecutarse solo cuando estan disponibles todos sus operandos. La precedencia de una instruccin respecto a otra esta dada exclusivamente por la estructura natural del algoritmo y no depende de la ubicacin de las instrucciones en memoria.

-

Tipos de operadores Los instrucciones combinativas tienen dos input y un output. Pueden ejecutar operaciones como OR y AND. Las instrucciones separativas tienen dos input y un output. Realizan una copia.

UNIDAD II: Sistemas Operativos Introduccin, evolucin de los Sistemas Operativos. Tipos de Sistemas Operativos, Sistemas Operativos combinados. Estructura de los S.O. Objetivo de los S.O SISTEMA OPERATIVO Es un programa que actua como interfase entre el usuario de una computadora y el hardware de la misma. Este se utiliza para ADMINISTRAR LOS RECURSOS El requisito principal es dar buenos tiempos de respuesta y compartir equitativamente los recursos del sistema entre todos los usuarios. Es un programa con rutinas de control sobre todo el hardware, que se instala entre el hardware y los programas, proporcionandoles a estos ultimos facilidades para conseguir acceder a los recursos del sistema, tales como archivos y dispositivos de entrada/salida. Un SO actua como gestor de los dispositivos de E/S y dems recursos, asignandolos a los usuarios y programas en el orden y tiempo que el decida. EVOLUCIN DE LOS S.O. Primera Generacin 1945-1955 Tecnologa de tubos de vaco. Programacin en lenguaje mquina, teclado hexadecimal(se cargaba instruccin por instruccin y se observaban los resultados una a una ). Lento y por ende exclua a programas medios y largos. Avances: Se empiezan a emplear para las entradas tarjetas perforadas y para salidas cintas de papel. Se crea el programa cargador: cargaba en memoria programas y datos (Primer esbozo de SO). El usuario colocaba las tarjetas perforadas con el programa (ya codificado en lenguaje mquina) y con los datos. Las memorias de la primera generacin El almacenamiento se lograba con un tambor que giraba rpidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnticas. Segunda Generacin 1955-1965 Con la introduccin del transistor cada una de las tareas se poda realizar con mayor velocidad y precisin. Esto permiti empezar a vender computadoras. Se utilizaban para clculos cientficos y de Ingeniera. Lenguajes utilizados: FORTRAN y ASSEMBLER. Avances: Se crean mquinas capaces de leer tarjetas perforadas y escribir la informacin sobre cintas. Luego el procesador (otra mquina) ejecutaba el programa con los datos desde estas cintas y volcaba los resultados sobre otras cintas. Por ltimo otra mquina lea estas cintas y emita una salida por impresora. Eran necesarias 3 mquinas para poder procesar, generalmente se tenan en empresas diferentes debido a los costos. Los tiempos de transporte y de carga de cintas eran mayores que el T de procesamiento. Entonces las operaciones de E/S eran el cuello de botella. Solucin: Agrupar trabajos afines en una misma cinta. Colocar dos mquinas lectoras de tarjetas y dos lectores de cinta por procesador. Agrupar trabajos afines genera otro tipo de procesamiento denominado: PROCESAMIENTO POR LOTES. El SO se encargaba de coordinar estas tareas y se lo denomin: SISTEMA OPERATIVO POR LOTES. Pona en accin a los dispositivos de cinta. Transfera de estas, los datos y programas a la memoria. Arrancaba el interprete. Coordinaba la ejecucin. Pona en accin al dispositivo de salida. Una parte de este sistema se lo mantena en memoria y se lo denomin: MONITOR DE LOTES.

Para mejorar los tiempos se introducen dos nuevos conceptos: Buffering: elemento amortiguador entre las E/S y el procesador, es bsicamente un acumulador. Almacenamiento magntico Discos: reemplaza a cintas. Permita cambiar de un programa a otro con slo cambiar manualmente la posicin de la cabeza lectora. Estos dos avances dan origen a un nuevo concepto: SPOOLING: operaciones perifricas simultneas en lnea. Significa tener varios trabajos distintos en disco y una cola de trabajos esperando para ser ejecutados. Esto le permite al procesador elegir que programa ejecutar para aumentar la utilizacin de la CPU. En trabajos en cinta o tarjeta, no es posible ejecutar trabajos en distinto orden que el de llegada. Surge la posibilidad de hacer una planificacin de trabajos. Las memorias de la segunda generacin Las computadoras de la segunda generacin utilizaban redes de ncleos magnticos en lugar de tambores giratorios para el almacenamiento primario. Estos ncleos contenan pequeos anillos de material magntico, enlazados entre s, en los cuales podan almacenarse datos e instrucciones. Tercera Generacin 1965-1980 Con la introduccin de los circuitos integrados, sumado a la aparicin de discos, se permite integrar en una sola Mquina las E/S con el proceso. Equipos de menor costo y mejor performance. El procesamiento por lotes dedica recursos a un solo programa a la vez. Pero basados en el principio que la mayora de los programas oscilan entre fases de computacin intensiva y de intensiva E/S, esto implica la necesidad de tener varios programas, concurrentes, en memoria. A esto se lo denomina: MULTIPROGRAMACIN. La multiprogramacin implica: Mecanismos de proteccin. De manera de proteger cada trabajo contra la intrusin y daos de los otros. Manejo de interrupciones del sistema, originadas por las peticiones de los programas de necesidad de E/S, datos, memoria, etc. Cuarta Generacin 1980-1990 Circuitos integrados a gran escala permite fabricacin de computadoras personales. Integran la mayora de los conceptos anteriormente vistos. Se desarrollan a nivel de hardware y software sistemas con entornos amigables al usuario, es decir se mejora el acceso a los recursos. Debido a que el hardware se hace de uso general, el software se afirma en el concepto de multiprogramacin. Un avance se da a mediados de los 80 con el desarrollo de redes de computadoras personales que corren S.O. en red con el concepto de: Multiprogramacin, Multiusuario En 1977 aparecen las primeras microcomputadoras, Apple Computer, Radio Shack, Commodore Business Machines. IBM se integra al mercado de las microcomputadoras con su Personal Computer, de donde les ha quedado como sinnimo el nombre de PC. Que incluye un sistema operativo estandarizado, el MS- DOS (MicroSoft Disk Operating System). Las memorias de la cuarta generacin : Se reemplazan las memorias con ncleos magnticos, por las de chips de silicio Actual Generacin Desde 1990 Surgen conceptos como Inteligencia artificial, sistemas expertos, redes neuronales, teora del caos, algoritmos genticos, fibras pticas, telecomunicaciones, etc., son parmetros que marcan la 5ta generacin. Dos grandes avances tecnolgicos: La creacin en 1982 de la primera supercomputadora con capacidad de proceso paralelo Anuncio por parte del gobierno japons del proyecto "quinta generacin" que aplicara frustradamente lo que llamamos Inteligencia Artificial. Se introducen los conceptos de cache.

Aparecen las CPU de varios ncleos, por lo cual se potencia el concepto de hilos y multihilos. Se disminuye el tiempo de acceso a disco mediante la creacin de discos de estado slido. En cuanto a los SO: Se afianza el desarrollo de los mismos orientndolos a usuarios, haciendo entornos amigables y de fcil utilizacin. Se brindan libreras de fcil acceso para que programadores puedan utilizar los recursos de hardware sin tener que conocer los aspectos tcnicos de los mismos. EVOLUCION DE LOS S.O. MS-DOS La razn de su continua popularidad se debi al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel. Cuando Intel liber el 80286, DOS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayora del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran xito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacan. Interfaz de usuario era por medio de una lnea de comando. Permita manejar directamente hasta 1 MB de la RAM OS/2 Despus de la introduccin del procesador Intel 80286, IBM y Microsoft reconocieron la necesidad de tomar ventaja de las capacidades multitarea de esta CPU. Se unieron para desarrollar el OS/2, un moderno SO multitarea para los microprocesadores Intel. Es un sistema operativo de multitarea para un solo usuario que requiere un microprocesador Intel 286 o mejor . Permita manejar directamente hasta 16 MB de la RAM. Su era un entorno muy complejo que requera 4 MB de la RAM para funcionar. UNIX SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Fue creado a principios de los setentas por los cientficos en los laboratorios Bell. Unix es ms antiguo que todos los dems SO de PC MACINTOSH La Macintosh es una mquina netamente grfica. No existe una interfaz de lnea de comando. Se basan en la familia de microprocesadores de Motorola, usan la arquitectura de Bus de 32 bits. Incluan un entorno grfico. Precursores.

ESTRUCTURA DEL SO Nivel 1: formado por circuitos electrnicos, donde los objetos tratados son registros, celdas de memoria y puertas lgicas. Las acciones son poner a 0 una puerta lgica o leer una posicin de memoria Nivel 2: Conjunto de instrucciones del procesador. Acciones: sumar, restar, carga, almacenamiento. Nivel 3: Aade el concepto de procedimiento o subrutina mas las operaciones de call/return. Nivel 4: Introduce las interrupciones, que permiten al procesador guardar el contexto actual e invocar una rutina de tratamiento de interrupciones Estos cuatro primeros niveles no son parte del SO, sino que constituyen el hardware del procesador. Sin embargo algunos elementos del SO se empiezan a mostrar en estos niveles, por ejemplo las rutinas de tratamiento de interrupciones. Nivel 5: Se introduce la nocin de un proceso como un programa en ejecucin. Incluye el suspender procesos y continuar procesos. Esto requiere guardar los registros de hardware de manera de poder dar inicio a otro proceso. Se incluye tambin mtodos de sincronizacin entre procesos, para cuando ellos necesitan comunicarse entre s. Esto implica la sealizacin y semforos. Nivel 6: Trata los dispositivos de almacenamiento secundario del computador. En este nivel se dan las funciones para posicionar las cabezas de lectura / escritura y la trasferencia real de bloques. Delega al nivel 5 aspectos relacionados a la planificacin de la operacin y la notificacin al proceso solicitante. Niveles ms altos se ocupan de la direccin en el disco de los datos requeridos. Nivel 7: Crea un espacio de direcciones lgicas para los procesos. Organiza el espacio de direcciones virtuales en bloques que se mueven entre la memoria principal y la secundaria. Cuando un bloque de memoria necesario no se encuentra en la memoria principal, este nivel realiza la peticin al nivel 6. Hasta el nivel 7, el SO trata con recursos no compartibles entre procesos. A decir, dos procesos no pueden compartir la misma posicin en disco ni en memoria. A partir del nivel 8, el SO trata con objetos externos, como dispositivos perifricos, redes de computadoras. Los objetos de estos niveles, son objetos lgicos con nombre que pueden compartirse entre procesos. Nivel 8: Trata con la comunicacin de informacin y mensajes entre los procesos. Es un mtodo ms rico que la sealizacin del nivel 5. Utiliza tuberas o pipe, es un canal lgico para el flujo de datos entre procesos. Un pipe se define por su salida de un proceso y su entrada en otro proceso. Nivel 9: Da soporte al almacenamiento a largo plazo en ficheros con nombre. Son entidades abstractas y de longitud variable, en contraposicin del Nivel 6, donde el almacenamiento se trata a nivel pista, sectores y bloques de tamao fijo. Nivel 10: Proporciona acceso a los dispositivos externos utilizando interfaces estndar. Nivel 11: Responsable para mantener la asociacin entre los identificadores externos e internos de los recursos y objetos del sistema. El identificador externo es un nombre que puede utilizar una aplicacin o usuario. El identificador interno es una direccin de otro identificador que puede utilizarse por parte de los niveles inferiores del SO para localizar y controlar un objeto. Estas asociaciones se mantienen en un directorio. Las entradas no solo incluyen la asociacin entre identificadores internos/externos, sino tambin caractersticas como los derechos de acceso. Identificador externo: directorio, carpetas. Identificador interno: archivos (nivel 9) Existe una tabla relacional donde figura para cada identificador externo, los identificadores internos que contiene. Nivel 12:Proporciona una utilidad completa para dar soporte a los procesos. En el nivel 5 solo se mantiene los contenidos de los registros del procesador mas la lgica de planificacin. En el nivel 12, se da el espacio de direcciones virtuales de los procesos, una lista de objetos y procesos con los cuales puede interactuar, parmetros pasados al proceso en la creacin, y toda otra caracterstica que pudiera utilizar el SO para controla el proceso.

Nivel 13: Proporciona una interfaz del SO al usuario. Se denomina shell (caparazn), porque separa al usuario de los detalles del SO y lo presenta como una coleccin de servicios. El shell acepta mandatos de usuario, los interpreta, y crea y controla los procesos que necesita para su ejecucin. SERVICIOS DEL S.O. Ejecucin de programas: Cargarlos, darles el control. Determinar su fin normal o anormal. Operaciones de E/S: El programa de usuario no puede ejecutar operaciones de E/S directamente, el SO provee los medios para hacerlo. Manipulacin del Sistema de Archivos: Para que programas pueden leer y escribir archivos. Se hace por medio del sistema de archivos Deteccin de errores: Pueden ocurrir en CPU, memoria, E/S o en el programa. Por cada error, el SO tiene un tipo de accin diferente. Administracin de recursos: Cuando hay varios usuarios o programas concurrentemente, el SO debe administrar los recursos a c/u, tales como CPU, memoria, dispositivos, etc. Accounting: Contabilizar que recursos son los usados por cada usuario. Usados con fines estadsticos para configurar el sistema. Proteccin: Cuando se ejecutan distintos trabajos en forma simultnea, uno no debe poder interferir con los otros. Los servicios de los Sistemas operativos son provistos de 2 formas: 1. Llamadas al Sistema El nivel ms fundamental de los servicios se maneja por medio de las llamadas al supervisor o ncleo (Kernel) del SO. Estas llamadas proveen la interface entre un programa en ejecucin y el SO. Las llamadas se agrupan en 4 grupos: Control de procesos: Find, dump. Carga de otro proceso (Load). Crear procesos, terminarlos. Esperar un tiempo. Esperar por un evento o una seal. Manipulacin de archivos: Crear y borrar archivos. Apertura y cierre de archivos. Lectura y escritura. Manipulacin de dispositivos: Pedir un dispositivo. Liberar un dispositivo. Leer y Escribir. Mantenimiento de la informacin: Fecha, Hora. Atributos de procesos, archivos o dispositivos. La forma de hacer todas las llamadas es por medio de Interrupciones o como llamadas a un Server.

2. Programas del sistema La mayora de los SO proveen una gran cantidad de programas para resolver problemas comunes y otorgar un entorno ms conveniente para la construccin y ejecucin del programa. Los programas del sistema se dividen en varias categoras:Manipuladores de archivos: crear, copiar, renombrar, imprimir, listar, manipular y hacer vuelcos de archivos y directorios. Informacin de estado: pedir fecha, hora, cantidad de memoria, cantidad de disco, nmero de usuarios, etc. Modificaciones de archivos: Editores de texto. Soporte para lenguajes de programacin: compiladores, assemblers, interpretes. Carga y ubicacin de programas: Cargadores absolutos, Reubicables, Linkeditores, etc Programas de aplicacin

UNIDAD III: Administracin del Procesador Introduccin, Administracin de Memoria, CPU, Entrada/Salida, Informacin. Administracin del Procesador, relacin entre Procesos y Programas. Tablas y diagramas de transicin. Bloque de control de proceso, rutinas de administracin del Procesador, algoritmos de planificacin: FIFO, El ms corto primero, Round Robin. Medicin de perfomances. Sincronizacin entre procesos, semforos, semforos con contador. CPU Procesador : Controla el funcionamiento del computador y realiza sus funciones de procesamiento de datos Cuando hay un solo procesador se lo denomina unidad central de proceso UC: examina la instruccin y da las rdenes correspondientes para su ejecucin. ALU: si en la instruccin interviene un clculo matemtico o decisin lgica UC ordena a la ALU que ejecute la funcin. CP: contador de programa, contiene la direccin de la prxima instruccin. RI: registro de instrucciones, contiene la ltima instruccin leda RDIM: registro de direccin de memoria, especifica la direccin de memoria de la siguiente lectura o escritura. RDAM: registro de datos de memoria, contiene los datos que se van a escribir en memoria. RDI E/S: registro de direccin de entrada /salida, especifica el dispositivo de E/S. RDA E/S: registro de datos de entrada/salida, permite el intercambio de datos entre un dispositivo y el procesador. Administracin de CPU Es la tarea ms importante de los SO. La CPU tiene como funcin el control y la ejecucion de los procesos, Una buena y eficiente administracion se basa en dos aspectos fundamentales: THROUGHPUT (Cantidad de procesos por unidad de tiempo que se pueden ejecutar) TURNAROUND TIME (Tiempo de respuesta de los procesos) La idea de repartir el recurso del procesador entre distintos procesos, se debe a que tenemos la posibilidad de utilizar el tiempo de procesador abandonado por un proceso para que lo pueda usar otro. Compartimos el tiempo del procesador para evitar as tiempos muertos originados por procesos que requieren E/S. Para obtener el Turnaround debemos sumar los tiempos de los procesos y dividirlos por la cantidad de procesos. Es decir que el tiempo de respuesta es tiempo promedio en el cual el sistema dar respuesta. Hay una mejora sustancial del tiempo de respuesta en sistemas monoprocesador multitarea respecto de monoprocesador monotarea. A este tiempo se le suma el tiempo del SO en salvar contextos y cargar otro proceso: overhead (sobrecarga).

Programa secuencia de instrucciones. Proceso un programa en ejecucin, tambin podemos definirlo como la entidad de un programa ejecutado en un computador. Otra definicin el proceso consiste en leer el programa, obtener los datos necesarios y ejecutarlo. - Multiprogramacin < > Multiprocesamiento - Multiprogramacion: Mas de un programa residente en memoria - Multiprocesamiento: Mas de un procesador Tabla de procesos y diagrama de transicin de estados: Para poder administrar convenientemente el procesador sera necesario

llevar una tabla con el estado en que se encuentran los distintos procesos. (Base de datos del Sistema Operativo) Los procesos se van a encontrar en tres estados: - Ejecucin: Proceso ejecutndose - Listo: Proceso listo para entrar en ejecucin - Bloqueado: Proceso detenido por algn motivo - que el procesador no puede atenderlo. Cada flecha determina los algoritmos del Sistema Operativo, esto se comportaran dependiendo del tipo de politica de asignacin. Como hemos dicho anteriormente el estado de un proceso es el lugar donde se ubica un proceso, tanto sea de manera lgica como de manera fsica. La ubicacin lgica est dada por la base de datos (Tabla de control de Proceso) que lleva el sistema operativo de los procesos. Esta tabla contiene los bloques de control de proceso con todo lo referente proceso . La ubicacin fisica esta dado por el lugar fisico que ocupa el proceso. Estos pueden ser Memoria RAM o Microprocesador. Bloque de control de procesos(BCP) Es un registro que se lleva por proceso toda la informacin referida al proceso en cuestin de forma que posible interrumpir el proceso cuando est corriendo y posteriormente restaurar la ejecucin como si no hubiera habido interrupcin. Datos necesarios para que el SO pueda controlar el proceso. Los elementos que contiene son ID de proceso: nico para distinguirlo del resto de los procesos. Estado: si el proceso est en ejecucin o no. Prioridad: Nivel de prioridad relativo al resto de los procesos. CP: contador de programa: Direccin de la siguiente instruccin que se ejecutara. Puntero a memoria: cada proceso contiene una o ms pilas LIFO. Datos de contexto: Estos son los datos que estn presentes en los registros del procesador cuando el proceso est corriendo. Informacin del estado de E/S: Incluye peticiones pendientes de E/S, dispositivos asignados al mismo, una lista de fichero en uso por el mismo PSW: Program Static Word , el tamao de una palabra hace referencia al nmero de bits contenidos en ella. La mayora de los registros en un ordenador normalmente tienen el tamao de la palabra. El valor numrico tpico manipulado por un ordenador es probablemente el tamao de palabra. La cantidad de datos transferidos entre la CPU del ordenador y el sistema de memoria a menudo es ms de una palabra. Los ordenadores modernos normalmente tienen un tamao de palabra de 16, 32 64 bits. Tiempo usado de CPU Informacin de auditoria Fin de un proceso total o temporal Las causas posibles de abandono son: - Fin normal (proceso completo) - Lmite de tiempo excedido - Memoria no disponible - Violaciones de frontera - Error de proteccin - Error aritmtico - Fallo de E/S - Instruccin no valida o privilegiada - Terminacin o solicitud del proceso padre - Error (Fin Anormal) - Necesita recursos E/S, etc. (Pasa a Bloqueado) - Desalojo (Por algn proceso de mayor prioridad pasa a listo) Rutinas de administracin del procesador El sistema operativo es un programa construido modularmente, esto hace que dentro del mismo existan rutinas que se encargan de distintas actividades las cuales son disparadas por el mismo SO. Modelo de 2 estados El modelo de estados ms simple es el de dos estados. En este modelo, un proceso puede estar ejecutndose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecucin.

En algn momento el proceso que se est ejecutando pasar al estado No ejecucin y otro proceso se elegir de la lista de procesos listos para ejecutar para ponerlo en estado Ejecucin.

De esta explicacin se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Adems los procesos que no se estn ejecutando deben guardarse en algn tipo de cola mientras esperan su turno para ejecutar. Modelo de 5 estados En este modelo los estados Bloqueado y Listo tienen ambos una cola de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sita en la cola de listos

Los cinco estados de este diagrama son los siguientes:

Ejecucin: el proceso est actualmente en ejecucin. Listo: el proceso est listo para ser ejecutado, slo est esperando que el planificador as lo disponga. Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operacin de Entrada/Salida. Nuevo: El proceso recin fue creado y todava no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todava no fueron cargados en la memoria principal. Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque termin o por algn fallo, como un error de proteccin, aritmtico, etc.

Los procesos para un instante dado, se encontraran el cualquiera de esos cinco estados, y salvo en el de ejecucin, los dems son estados estticos. Las rutinas del sistema operativo se encargan de lograr dicha trancision de los procesos dentro de los distintos estados. Esas rutinas o polticas de asignacin son: - Planificador de Trabajo: Se encarga de ingresar los procesos desde el exterior. Ademas se comunica con el resto de los administradores para ir solicitando los recursos y tambien se encarga de la liberacin de los procesos. - Planificador del Procesador: Se encarga de administrar la cola de Listos, es decir la inspecciona y selecciona, de acuerdo a algun criterio, cual de los procesos que ah se encuentran har uso el procesador. - Controlador de Trfico: Se encarga del manejo de las tablas, cuando un proceso pide un servicio sobre un recurso (Ej: E/S) cambiar de estado de Ejecucin a estado Bloqueado. - Dispatcher: Se encarga de poner en ejecucin a los procesos, sea carga en el procesador el contexto del proceso a procesar.

Procesos suspendidos SWAPPING

Una de las razones para implementar el estado Bloqueado era poder hacer que los procesos se puedan mantener esperando algn suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho ms lentas estas operaciones, puede suceder que en nuestro modelo de cinco estados todos los procesos en memoria estn esperando en el estado Bloqueado y que no haya ms memoria disponible para nuevos procesos. El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Despus del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente. El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que est en el estado Suspendido, el mismo todava se encuentre bloqueado. Slo convendra traerlo cuando ya est listo para ejecutar, esto implica que ya aconteci el suceso que estaba esperando cuando se bloque. Para tener esta diferenciacin entre procesos suspendidos, ya sean listos como bloqueados, se utilizan cuatro estados: Listo, Bloqueado, Bloqueado y suspendido y Listo y suspendido. Algoritmos de planificacin Dichas politicas de asignacin son fundamentales para la definicion del rendimiento del sistema. Esto quiere decir que los criterios para seleccionar un algoritmo de asignacion del procesador deben responder a las siguientes pautas: - Utilizacin del Procesador: 100% - Throughtput: Cantidad de trabajos por unidad de tiempo. - Tiempo de ejecucin: Tiempo desde que ingresa un proceso hasta que termina. - Tiempo de espera: Tiempo de permanencia en Listo. - Tiempo de respuesta: Tiempo que tarda en obtenerse un resultado. Tipos de algoritmos de Planificacin FIFO (First in, First out): Es la ms sencilla, los procesos se ejecutan en el orden que llegan, es decir toma al primero que este en la cola de listo continuado con el siguiente. El proceso abandona voluntariamente el uso del procesador (se termina o se bloquea). Desventaja: si en la cola hay un proceso muy largo, los dems tendrn mucho tiempo de espera aumentara el Troughput. MS CORTO PRIMERO (JSF): JOB SHORT FIRST Es la que mas se utiliza cuando queremos ordenar los procesos en funcion del tiempo. Ordena los procesos de acuerdo al tiempo que necesitan ser procesados, es decir la cola de listo se reordena cada vez que ingresa un proceso de acuerdo a las rafagas que va a emplear el procesador para cada proceso. Es el algoritmo ms eficiente. Dificultad de conocer que tan largo o tan corto es el proceso. Desventaja: se castiga a los procesos largos que podran no ejecutarse nunca.(Inanicin) No se tiene en cuenta el tiempo total de ejecucion sino el tiempo de rfaga. No se conoce cuanto dura una rafaga sino que se basa en estadisticas y promedio para calcular cuanto duraria el proceso. NOTA: Rfaga o Quantum es el tiempo continuo del uso del procesador para un solo proceso. MS CORTO PRIMERO (Con desalojo):

El desalojo en esta politica se da por: - Llego un proceso calificado como mas corto que el que esta en ejecucion - Llego un proceso cuyo tiempo es menor al tiempo remanente. Dificultad de conocer que tan largo o tan corto es el proceso. Desventaja: se castiga a los procesos largos que podran no ejecutarse nunca.(Inanicin) ROUND ROBIN: Polticas con derecho preferente, pues abandonan el recurso por expiracin del tiempo. Se divide el tiempo de la CPU en fracciones o cuantos que se asigna a los peticionarios. Ningn proceso puede ejecutarse por ms de una fraccin de tiempo, en la que los dems procesos estn esperando en la cola de listos. Si un proceso necesita ms de una fraccin de tiempo para completar su ejecucin despus de agotar su cuanto, se lo coloca en la cola de listos para que espere la siguiente asignacin. El punto a determinar es el valor del quantum de tiempo Se utiliza principalmente para sistemas de tiempo compartido y multiusuario. CREACION DE PROCESOS Asignar un Id de proceso nico

Reservar espacio para el proceso: programa y datos, espacio direcciones compartidas y BCP Inicializar el BCP: Id, CP y punteros de pila. Resto todo en 0. Establecer enlaces apropiados: orden en cola de listos que corresponda. Creacin o expansin de Estructuras de datos: registros de auditora, etc. CAMBIO DE PROCESO:

Interrupciones: reloj, por quantum, E/S , fallo de memoria: falta de pgina/segmento Llamadas al SO: utilizar alguna librera del SO, por ejemplo al abrir un archivo. Por condiciones de error. Ejemplo intento de acceso a un archivo prohibido.

Cambio de modo. Atendemos la interrupcin: Salvamos el contexto del proceso en ejecucin Cargamos la direccin de la primer instruccin del manejador de interrupciones. Cambiamos de modo usuario a modo ncleo.

Un cambio de modo no implica siempre un cambio de proceso, ya que, atendida la interrupcin se puede continuar con la ejecucin del proceso que estaba en ejecucin. Cambio de estado, debemos salvar el estado del procesador esto significa: Actualizar el BCP Mover el BCP a la cola apropiada (listo, bloqueado, listo/suspendido). Seleccionar un nuevo proceso. Actualizar el BCP del proceso elegido y cargarlo en el procesador. Actualizar las estructuras de datos de gestin de memoria. Restaurar el estado del proceso, desde donde haba quedado en su ltima ejecucin.

Interrupciones: De programa: desbordamiento, divisin por cero, fuera de espacio de memoria permitido.

Por temporizador: usado en RR por ejemplo. De E/S: generada por un controlador de E/S para sealar la conclusin normal de una operacin o para indicar error. Por fallo de hardware: error de paridad en memoria, fallo de energa, etc.

Planificacin de colas mltiples Los procesos pueden clasificarse en grupos: Primer plano (interactivos). Segundo plano (por lotes). Podemos usar colas distintas una para cada grupo, con prioridades distintas y algoritmos de planificacin distintos. Cada nuevo proceso se incluir en una cola y permanecer en ella. Debe existir una planificacin entre las colas. Planificacin de colas mltiples con realimentacin:

Adems de incluir varias colas podemos permitir que los procesos cambien de cola. Por ejemplo:

Ir cambiando a los procesos interactivos o de rfagas de CPU cortas a colas de mayor prioridad. Cambiar los procesos de rfagas CPU largas a las colas de menor prioridad. Si un proceso espera demasiado en una cola se puede mover a otra de mayor prioridad (envejecimiento, bloqueo indefinido).

Para definir un planificador de colas mltiples con realimentacin necesitamos:

Concurrencia

El nmero de colas y algoritmo de planificacin para cada una. El mtodo para saber cundo cambiar un proceso a otra cola de mayor o menor prioridad. El mtodo para determinar a qu cola entra un proceso nuevo.

En un sistema multiprogramado con un nico procesador, los procesos se intercalan en el tiempo (Round Robin) para dar apariencia de ejecucin simultnea. Aunque no se consigue un procesado en paralelo real, y aunque se produce una sobrecarga en la CPU por el hecho de tener que cambiar de tarea constantemente, las ventajas de todo esto son muy elevadas. Uno de los grandes problemas que nos podemos encontrar es que el hecho de compartir recursos est lleno de riesgos. Por ejemplo, si dos procesos hacen uso al mismo tiempo de una variable global y ambos llevan a cabo tanto operaciones de lectura como de escritura sobre dicha variable, el orden en que se ejecuten estas lecturas y escrituras es crtico, puesto que se ver afectado el valor de la variable.

Dos tareas se dice que son concurrentes si transcurren durante el mismo intervalo de tiempo. En un PC, el SO pasa el control de la CPU de una tarea a otra cada pocos milisegundos, algo conocido como cambio de contexto. Al realizar los cambios de contexto en intervalos de tiempo muy cortos, el usuario tiene la percepcin de que las distintas tareas se ejecutan en paralelo (algo que, obviamente, solo sucede si disponemos de mltiples procesadores). Tipos de concurrencia Concurrencia aparente: hay ms procesos que procesadores. Los procesos se multiplexan en el tiempo. Pseudoparalelismo.

Concurrencia real: cada proceso se ejecuta en un procesador. Se produce una ejecucin en paralelo. Paralelismo real.

Ventajas de la ejecucin concurrente

1. Facilita la programacin. Diversas tareas se pueden estructurar en procesos separados.Ejemplo: Servidor Web: Un proceso encargado de atender a cada peticin.

2. Acelera la ejecucin de clculos. Divisin de clculos en procesos ejecutados en paralelo.Ejemplos: Simulaciones, Mercado electrnico, Evaluacin de carteras financieras.

3. Mejora la interactividad de las aplicaciones. Se pueden separar las tareas de procesamiento de las tareas deatencin de usuarios. Ejemplo: Impresin y edicin.

4. Mejora el aprovechamiento de la CPU. Se aprovechan las fases de E/S de una aplicacin para procesamientode otras. Tipos de procesos concurrentes Independientes: Procesos que se ejecutan concurrentemente pero sin ninguna relacin. No necesitan comunicarse. No necesitan sincronizarse. Ejemplo: Dos intrpretes de mandatos de dos usuarios ejecutados en distintos terminales. Cooperantes: Procesos que se ejecutan concurrentemente con alguna interaccin entre ellos. Pueden comunicarse entre s. Pueden sincronizarse. Ejemplo: Servidor de transacciones organizado en proceso receptor y procesos de tratamiento de peticiones. Interacciones entre procesos Acceso a recursos compartidos: Procesos que comparten un recurso. Procesos que compiten por un recurso. Ejemplo: Servidor de peticiones en la que distintos procesos escriben en un registro de actividad (log). Comunicacin: Procesos que intercambian informacin. Ejemplo: Receptor de peticiones debe pasar informacin a proceso de tratamiento de peticin. Sincronizacin: Un proceso debe esperar a un evento en otro proceso. Ejemplo: Un proceso de presentacin debe esperar a que todos los procesos de clculo terminen. Concurrencia: compartiendo recursos

Un problema fundamental a la hora de compartir recursos ocurre cuando dos o ms procesos acceden un recurso compartido sin control, de manera que el resultado combinado de este acceso depende del orden de llegada.

HILOS Subprocesos de un proceso. La memoria y los recursos son asignados a los procesos. Todos los hilos de un proceso comparten la memoria y los recursos asignados a dicho proceso. Cada hilo tiene un contexto diferente Puede decirse que el recurso CPU no es compartido. Cada hilo tiene una pila diferente.

Los hilos de un proceso pueden acceder a datos comunes. SO mantiene varios hilos de ejecucin dentro de un mismo proceso. MS-DOS soporta un solo hilo. UNIX soporta mltiples procesos de usuarios, pero slo un hilo por proceso. Windows (a partir del 2000), Solaris, Linux, Mach, y OS/2 soportan mltiples hilos.

Beneficios de los hilos

Se tarda menos tiempo en crear un nuevo hilo en un proceso existente. Se tarda menos tiempo en terminar un hilo que un proceso. Se tarda menos tiempo en cambiar entre dos hilos de un mismo proceso. Los hilos de un mismo proceso comparten recursos (memoria, archivos, )

Condicin de carrera

pueden comunicarse entre s sin invocar al ncleo (no necesidad de proteccin) coordinacin es ms rpida (vs. procesos, que deben enviarse msgs.) aumenta eficiencia

Al pasar de tener un solo hilo en el que la ejecucin de un programa es secuencial a tener varios en los que el programa y sus tareas se procesan de forma pseudo-paralela o incluso paralela, no podemos garantizar ningn orden concreto en la ejecucin de los procesos, es decir, su comportamiento es pseudo aleatorio. Cuando un programa o sistema en tiempo real se distribuye en diferentes tareas, surge la necesidad de controlar la coherencia de la informacin que maneja cada proceso as como la que es compartida por todos. Las acciones que ejecuta el procesador no son atmicas, es decir, pueden dividirse. De esta forma una simple asignacin x=y; puede llegar a componerse de varias instrucciones en ensamblador que pueden no ser ejecutadas de forma secuencial con una probabilidad ms alta de la que nos gustara.

Es decir, todas las instrucciones en un lenguaje de programacin imperativo no garantizan su total ejecucin en un periodo de tiempo dado. El sistema operativo o cualquier interrupcin ajena al sistema puede ocasionar la ruptura del flujo normal de ejecucin y es normal y habitual que esto ocurra. Por tanto existe un problema: la informacin compartida por los procesos ligeros de un programa puede presentar problemas serios de coherencia ya que no se garantiza la integridad de los datos cuando el recurso compartido no tiene control. Solucin Impedir que ms de un proceso acceda simultneamente a las variables compartidas. Esto se logra mediante la Exclusin Mutua. Consiste en que un solo proceso excluye temporalmente a todos los dems para usar un recurso compartido de forma que garantice la integridad del sistema. Exclusin Mutua. Los algoritmos de exclusin mutua (comnmente abreviada como mutex por mutual exclusion) se usan en programacin concurrente para evitar el uso simultneo de recursos comunes, como variables globales, por fragmentos de cdigo conocidos como secciones crticas. Seccin crtica Se denomina as, en programacin concurrente, a la porcin de cdigo de un programa de computador en la cual se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por ms de un hilo en ejecucin. La seccin crtica puede ser utilizada en dispositivos para asegurarse de que un recurso compartido, por ejemplo, una impresora, puede ser accedida por un solo proceso a la vez. La seccin crtica puede ser utilizada en datos para asegurarse de que una variable compartida, puede ser accedida por un solo proceso a la vez.

La aplicacin de la exclusin mutua crea dos problemas de control adicionales: Interbloqueo e Inanicin. INTERBLOQUEO: considere 2 procesos, P1 y P2, y dos recursos R1 y R2. suponga que cada proceso necesita acceder a ambos recursos para realizar parte de su funcin. Es posible encontrar la siguiente situacin: el sistema operativo asigna R2 a P1 y R1 a P2. Cada proceso est esperando por uno de los dos recursos. Ninguno liberar el recurso que ya posee hasta haber conseguido el otro recurso y realizado la funcin que requiere ambos recursos. Los dos procesos estn INTERBLOQUEADOS. INANICIN : Suponga que tres procesos (P1,P2,P3) requieren todos acceso peridico al recurso R. Considere la situacin en el cual P1 est en posesin del recurso y P2 y P3 estn ambos retenidos, esperando por ese recurso. Cuando P1 termine su seccin crtica debera permitrsele acceso a R a P2 o P3. Asuma que el SO le concede el acceso a P2 y que P1 solicita nuevamente acceso a su seccin crtica. Si el SO le concede acceso a P1 despus de que P2 haya terminado y luego nuevamente a P2, entonces a P3 puede denegrsele indefinidamente el acceso al recurso.

Para evitar todos estos inconvenientes, se deberan cumplir ciertas pautas a saber: Slo se permite un proceso al tiempo dentro de su seccin crtica, de entre todos los procesos que tienen secciones crticas para el mismo recurso u objeto compartido. Un proceso que se pare en su seccin no crtica debe hacerlo sin interferir con otros procesos. No debe ser posible que un proceso que solicite acceso a una seccin crtica sea postergado indefinidamente: ni interbloqueo ni inanicin. Cuando ningn proceso est en una seccin crtica, a cualquier proceso que solicite entrar en su seccin crtica debe permitrsele entrar sin demora. No se hacen suposiciones sobre las velocidades relativas de los procesos ni sobre el nmero de procesadores Un proceso permanece dentro de su seccin crtica slo por un tiempo finito.

Exclusin Mutua: soporte hardware Deshabilitar interrupciones: En una mquina monoprocesador, un proceso continuar ejecutando hasta que invoque un servicio del SO o hasta que sea interrumpido. Por tanto, para garantizar la exclusin mutua basta con impedir que un proceso sea interrumpido. Esta tcnica puede proporcionarse en forma de primitivas definidas por el ncleo del SO para deshabilitar y habilitar las interrupciones. Dado que la seccin crtica no puede ser interrumpida se garantiza la exclusin mutua. La eficiencia podra degradarse por cuanto se limita la capacidad del procesador de entrelazar programas. Adems esta solucin no funciona sobre sistemas multiprocesador.

Instrucciones mquina especiales: TSL (Test and set lock)es una instruccin hardware que provoca la lectura del contenido de una palabra de la memoria en un registro y el almacenamiento de un valor distinto de cero en dicha palabra de memoria. Al tratarse de una instruccin mquina, el procesador nos garantiza que la instruccin TSL sin interrupcin por parte de otro proceso. En un sistema multiprocesador, ninguno de los dems procesadores tendr acceso a la palabra hasta que termine de ejecutarse la instruccin. Exclusin Mutua: soporte software ALGORITMO DE DEKKER: La solucin se desarrolla por etapas. Se reserva una posicin de memoria global llamada turno. Un proceso que desea ejecutar su seccin crtica primero evala el contenido de turno. Si el valor de turno es igual al nmero del proceso, puede continuar con su seccin crtica. En espera, lee repetitivamente el valor de turno hasta que puede entrar en su seccin crtica. (espera activa). Cuando termina con ella, debe actualizar el valor de turno para el otro proceso. La espera activa genera mucha sobrecarga al SO. Cada proceso debe tener su propia llave de la seccin crtica para que, si uno de ellos falla, pueda seguir accediendo a su seccin crtica; para esto se define un vector booleano seal. Cada proceso puede evaluar el valor de seal del otro, pero no modificarlo. Cuando un proceso desea entrar en su seccin crtica, comprueba la variable seal del otro hasta que tiene el valor falso (indica que el otro proceso no est en su seccin crtica). Asigna a su propia seal el valor cierto y entra en su seccin crtica. Cuando deja su seccin crtica asigna falso a su seal. Si uno de los procesos falla fuera de la seccin crtica, el otro proceso no se queda bloqueado. El otro proceso puede entrar en su seccin crtica tantas veces como quiera, porque la variable seal del otro proceso est siempre en falso. Pero si un proceso falla en su seccin crtica o despus de haber asignado cierto a su seal, el otro proceso estar bloqueado permanentemente. Una solucin correcta

Hay que observar el estado de ambos procesos, que est dado por la variable seal, pero es necesario imponer orden en la actividad de los procesos para evitar el problema de "cortesa mutua". La variable turno puede usarse en esta labor, indicando que proceso tiene prioridad para exigir la entrada a su seccin crtica. De esta manera tenemos turnos para ingresar a la SC. ALGORITMO DE PETERSON: lo desarroll, basndose en el algoritmo de Dekker al igual que este la variable global seal indica la posicin de cada proceso con respecto a la exclusin mutua y la variable global turno resuelve los conflictos de simultaneidad. Los N procesos comparten una zona de memoria, por lo que hay que tener cuidado de no coincidir en su peticin. Solucin : variables de cierre, que nos indican la intencin de cada proceso en querer entrar en su seccin crtica, y con otra variable indicadora de quien tiene el turno de entrada. Semforos Dos o ms procesos pueden cooperar por medio de simples seales, tales que un proceso pueda ser obligado a parar en un lugar especfico hasta que haya recibido una seal especfica. Para la sealizacin se utilizan variables especiales llamadas semforos. Para transmitir una seal va el semforo S, el proceso ejecutar semSignal(s). Para recibir una seal va el semforo S, el proceso ejecutar semWait(s) El semforo puede ser visto como una variable que contiene un valor entero sobre el cual slo estn definidas 3 operaciones: Un semforo puede ser inicializado a un valor no negativo.

La operacin semWait decrementa el valor del semforo. Si el valor pasa a ser negativo, entonces el proceso se bloquea, sino el proceso contina se ejecucin. La operacin semSignal incremente el valor del semforo. Si el valor es menor o igual que 0, entonces se desbloquea uno de los procesos bloqueados en la operacin semWait. Semforos contadores Se inicializa la variable S en 1 El Proceso P1 invoca a semWait(s), este devuelve 0, por lo que puede entrar en la seccin crtica. Antes de ingresar, decremente el valor de s. Cuando P2 invoca a semWait(s), este le devuelve un valor negativo, s=-1, por lo que el proceso se bloquea, es decir pasa a una cola de bloqueados. Cuando el proceso P1 sale de la seccin crtica, incremente s, siendo su valor entonces 0. Se ejecuta semSignal, se desbloquea algn proceso y se le da permiso para entrar en la seccin crtica. Semforos binarios Esta, es una versin ms restringida, conocida como semforo binario o mutex. Un semforo binario solo puede tomar 2 valores, puede ser inicializado a 0 o 1. La operacin semWait comprueba el valor de s. Si el valor es 0, entonces el proceso se bloquea. Si el valor es 1, entonces se cambia el valor a 0 y el proceso contina la ejecucin. La operacin semSignal comprueba si hay algn proceso bloqueado. Si lo hay, entonces se desbloquea a uno de ellos, si no hay procesos bloqueados se pone el valor del semforo a 1. Este tipo de semforos, no puede saber por medio de s si hay procesos o no en espera, por lo que necesita un mecanismo adicional para ello. Un tema adicional para ambos tipos de semforos es determinar qu proceso de la cola tiene prioridad de ejecucin. La poltica ms favorable es la FIFO, el proceso que est primero es el que ms tiempo lleva esperando. Esta poltica se denomina semforo fuerte. Un semforo que no especifica el orden en que deben ser extrados los procesos, se denomina semforo dbil. En la actualidad mayora de los SO operativos utilizan semforos fuertes. QUE SUCEDE EN SISTEMAS CON MAS DE UN PROCESADOR IMPLEMENTADO SEMFOROS? El problema de la cena de los filsofos

En 1965 Dijkstra plante y resolvi un problema de sincronizacin llamado el problema de la cena de los filsofos, que se puede enunciar como sigue. Cinco filsofos se sientan a la mesa, cada uno con un plato de espaghetti. El espaghetti es tan escurridizo que un filsofo necesita dos tenedores para comerlo. Entre cada dos platos hay un tenedor . La vida de un filsofo consta de periodos alternos de comer y pensar. Cuando un filsofo tiene hambre, intenta obtener un tenedor para su mano derecha, y otro para su mano izquierda, cogiendo uno a la vez y en cualquier orden. Si logra obtener los dos tenedores, come un rato y despus deja los tenedores y contina pensando. La pregunta clave es: puede el lector escribir un programa para cada filsofo que permita comer equitativamente a los filsofos y no se interbloquee ? El procedimiento coger_tenedor espera hasta que el tenedor especificado est disponible y lo coge. Por desgracia la solucin obvia es incorrecta. Supongamos que los cinco filsofos cogen sus tenedores izquierdos de forma simultnea. Ninguno podra coger su tenedor derecho, lo que producira un interbloqueo. Una mejora que no tiene interbloqueos ni aplazamiento indefinido, es la proteccin de los cinco enunciados siguientes a la llamada al procedimiento pensar mediante un semforo binario exmut. Antes de empezar a coger los tenedores, un filsofo hara un wait sobre exmut. Desde el punto de vista terico esta solucin es adecuada. Desde el punto de vista prctico presenta un error de eficiencia: en todo instante existir a lo sumo un filsofo comiendo. Si se dispone de cinco tenedores, se debera permitir que dos filsofos comieran al mismo tiempo. La solucin permite el mximo paralelismo para un nmero arbitrario de filsofos. Utiliza un vector, estado, para llevar un registro de la actividad de un filsofo: si est comiendo, pensando o hambriento (estado que indica que quiere coger los tenedores). Un filsofo puede comer nicamente si los vecinos no estn comiendo. Los vecinos del i-simo filsofo se definen en las macros IZQ y DER. En otras palabras, si i= 2, entonces IZQ = 1, y DER = 3. Se utiliza un vector de semforos, uno por filsofo, de forma que los filsofos hambrientos puedan bloquearse si los tenedores necesarios estn ocupados. Observe que cada proceso ejecuta el procedimiento filsofo como programa principal, pero los dems procedimientos, coger_tenedores, dejar_tenedores y prueba, son procedimientos ordinarios y no procesos separados.

UNIDAD IV: Administracin de Dispositivos de Entrada/Salida Introduccin. Tipos de perifricos. Canales y unidades de control. Tcnicas para la administracin y asignacin. Asignacin de perifricos dedicados y compartidos. Algoritmos de planificacin de E/S. Dispositivos virtuales. Operaciones perifricas off-line.ADMINISTRACIN DE DISPOSITIVOS DE E/S Probablemente la E/S es el aspecto ms intrincado en el diseo de un SO. Dado que existe una gran variedad de dispositivos es difcil desarrollar una solucin general uniforme. Los dispositivos externos dedicados a la E/S se pueden agrupar, a grandes rasgos, en tres categoras: Dispositivos legibles por los humanos: apropiados para la comunicacin con el usuario. Impresoras, Terminales de visualizacin grfico: que constan de pantalla, teclado y quizs un ratn. Dispositivos legibles por la mquina: adecuados para comunicarse con equipos electrnicos. Discos y unidades de cinta. Sensores. Controladores. Impulsores. Dispositivos de comunicaciones: apropiados para comunicarse con dispositivos lejanos. Adaptadores de lneas digitales. Mdem. Las unidades de E/S constan de dos elementos: MECNICO: denominado DISPOSITIVO DE E/S.

ELECTRNICO: denominado CONTROLADORES.

Los dispositivos de E/S que se conectan al ordenador se clasifican en: BLOQUE: La informacin se almacena en bloques, esos bloques son de tamao fijo. Donde cada bloque tiene una direccin que lo identifica. Se puede leer o escribir en un bloque independiente de los dems. Ej: disquete, CD, DVD, disco duro. CARCTER: La informacin que se generan o reciben son flujos de caracteres (no bloques). Accede a los datos en secuencia: o sea, para acceder a determinados datos, la lectura y escritura se debe hacer seguido de los datos anteriores. Ej: teclado, pantalla, cinta, ratones, interfaz de comunicacin Otros aspectos importantes que hacen la diferencia entre dispositivos son: Comportamiento: entrada, salida, almacenamiento.

Tasa de transferencia: entre dispositivos y memoria.D PO IT IS S IVO T C AD EL O MO S UE S ANNE C R VO (S lida S a ) IMPR S R EOA (L nea ) IMPR S R EOA (L ser) MO E DM R DL E AN FL PPY O C D C A INT MAG T A NE IC C MPO T O R AMIE O NT E da ntra " " S lida a " " E da/ sa ntra lida " Alm c m a ena iento " " C AS AC N L IFIC IO C r ter a c " " " " " " " B loque " " T A AS KB E . /S G 0 1 ,0 0 2 ,0 40 0 0 ,6 1 20 0 2 -8 ,0 ,0 50 00 0 -6 0 10 0 10 00 20 00

DIFERENCIAS SEGN E/S La operacin de E/S presenta 3 caractersticas: Operacin asincrnica: Se dice que la operacin de E/S es asncrona, debido a que el procesador y los dispositivos de E/S no operan a la misma velocidad. Un dispositivo de E/S puede tardar entre 500 y 1000 veces el tiempo de la CPU.

Dada la necesidad de controlar la operacin asncrona, el hardware de E/S debe incluir seales de control para coordinar las operaciones. Conversin de formato: algunos dispositivos requieren transferencias de datos bits en serie y otros de caracteres en paralelo. Existen adems numerosas codificaciones: ASCII, EBCDIC. Velocidad de transferencia de datos (bps): Diferencia dispositivos de e/s

Aplicaciones: el uso al que est destinado un dispositivo de hardware tiene influencias en el software y en las polticas del SO y de las herramientas que dan soporte. Por ejemplo: Un disco que almacena archivos necesita el soporte de un software de gestin de archivos. Un disco usado como almacn de pginas de un sistema de memoria virtual necesita el soporte de un software y de un hardware especial. Puede que un terminal usado por el administrador del sistema tenga una prioridad mayor. Complejidad del control: Una impresora requiere una interfaz de control sencilla. Un disco es mucho ms complejo. El efecto de estas diferencias en el SO se filtra hasta cierto punto por el mdulo de E/S que controla el dispositivo. Unidad de transferencia: Los datos pueden transmitirse como flujos de bytes o caracteres (E/S de un terminal) o en bloques de mayor tamao (E/S de un disco). Representacin de los datos: Los dispositivos utilizan distintos esquemas de codificacin de datos, incluyendo diferencias en el cdigo del carcter y en las convenciones sobre paridad. Condiciones de error: Cada dispositivo responde a los errores de diferente manera y los notifica de manera distinta. Evolucin del Sistema de E/S El procesador controla directamente un dispositivo perifrico. Se aade un controlador o mdulo de E/S. El procesador usa E/S programada sin interrupciones. Con este paso el procesador se independiza de los detalles especficos de las interfases de los dispositivos externos. Se utiliza la misma configuracin que la etapa anterior pero empleando interrupciones. El procesador no necesita estas gastando tiempo esperando a que se realice una operacin de E/S, incrementando de esta manera la eficiencia. Al mdulo de E/S se le da control directo a la memoria mediante DMA. Con ello puede mover un bloque de datos a la memoria sin involucrar al procesador, excepto al principio y al final de la transferencia. Se mejora el mdulo de E/S para convertirse en un procesador independiente, con un juego de instrucciones especializadas adaptas a la E/S. La unidad central de procesamiento hace que el procesador ejecute un programa de E/S residente en la memoria principal. El procesador de E/S lee y ejecuta estas instrucciones sin la intervencin del procesador. Esto permite que el procesador especifique una secuencia de actividades de E/S, siendo interrumpido slo cuando se termine la secuencia completa. El mdulo de E/S tiene su propia memoria local y es de hecho un computador por derecho propio. Con esta arquitectura, se pueden controlar un gran conjunto de dispositivos de E/S, con una intervencin mnima por parte del procesador. CONTROLADORES Los CONTROLADORES DE DISPOSITIVOS (tambin llamados adaptadores de dispositivos) son la parte electrnica de los perifricos, el cual puede tener la forma de una tarjeta o un circuito impreso integrado a la tarjeta maestra de la computadora. Por ejemplo, existen controladores de discos que se venden por separado y que se insertan en una ranura de la computadora, o existen fabricantes de computadoras que integran esa funcionalidad en la misma tarjeta en que viene la unidad central de procesamiento (tarjeta maestra). Los controladores de dispositivos generalmente trabajan con voltajes de 5 y 12 volts con el dispositivo propiamente, y con la computadora a travs de interrupciones. Estas interrupciones viajan por el 'BUS' de la computadora y son recibidos por el CPU el cual a su vez pondr en ejecucin algn programa que sabr qu hacer con esa seal. A ese programa se le llama 'MANEJADOR DE DISPOSITO' (device driver). Algunas veces el mismo controlador contiene un pequeo programa en una memoria de solo lectura o en memoria de acceso aleatoria no voltil y re-escribible que interacta con el correspondiente manejador en la computadora. Por ejemplo, la terminal (CRT) tiene un 'chip' que se encarga de enviar cadenas de bits por medio de un cable serial que a su vez son recibidos por un controlador de puerto serial en la computadora. Este 'CHIP' tambin se encarga de leer secuencias de bits que agrupa para su despliegue en la pantalla o para ejecutar algunas funciones de control. Lo

importante en todos estos dispositivos es que se debe ejercer un mecanismo para sincronizar el envo y llegada de datos de manera concurrente Compatible SATA I y II, la tarjeta controlador PCI-ST101 de Advance permite conectar nuevos perifricos SATA e IDE (discos duros, reproductor de DVD, etc.) a su configuracin informtica Controlador LED F-HD: Controlador de sistemas de iluminacin LED. Controlador de led rgb controlador con 60 led x metro la distancia ms larga es de 15 m 100x65x24mm. MONTAK (ASCENSOR) PUERTOS Las placas controladoras se conectan entre el bus del sistema y el dispositivo que tienen que controlar, estas controladores se enchufan en ranuras de expansin, que son puestos de E/S. Cada puerto se identifica con un nmero de puerto de 16 bits. Como se hace con la memoria, la CPU utiliza los buses de datos, direccin y control como conductores para comunicarse con los puertos. Para acceder a un puerto, la CPU enva primero una seal para avisar a todos los dispositivos de que la direccin que va en el bus es la de un puerto de E/S. El dispositivo cuya direccin de puerto coincida responder. TIPOS DE ENTRADA SALIDA El concepto de entrada/salida engloba la comunicacin e intercambio entre la CPU y el exterior. Esta comunicacin se puede efectuar por 2 mtodos: Serie Paralelo

La E/S paralela se basa en una comunicacin simultnea de n bits. Transmite simultneamente una palabra completa, tal como es utilizada por el procesador hacia o desde unidades perifricas, por lo que el tiempo de transferencia es mnimo. La E/S serie puede ser considerada como un caso particular de la anterior, en la que n=1 efectundose entonces un secuenciamiento de bits. La E/S serie exige un tiempo unitario para cada bits transmitido, por lo que la transmisin de una misma palabra requerir los n tiempos correspondientes, ms los precisados para la informacin de control y proteccin. Las interfaces de E/S serie exigen una serializacin previa y paralelizacin posterior de la informacin que no es precisa efectuar en la E/S paralela. Pero en la E/S paralela se requieren n vas de comunicacin ms las necesarias para control y proteccin, por lo que a grandes distancias se prefiere la comunicacin serie, y a cortas distancias y velocidad alta se prefiere paralelo. PUERTOS DE E/S SERIE El modo de bits en serie se usa principalmente para las comunicaciones. A este tipo de puertos se los denomina USART (unidad transmisor receptor asncrono sncrono). Hay dos modos de transferencia de datos de bits en serie: Asncrona: cada carcter va precedido de un bits de arranque y otro bits de parada al final del carcter. Sncrona: cada mensaje o bloque de transmisin va precedida por unos bits de sincronismo. TRABAJO: INVESTIGAR DIFERENCIAS ENTRE TRANSMISIN SERIE SNCRONA Y ASNCRONA. SOFTWARE DE ENTRADA-SALIDA Los objetivos ms importantes del software de E/S son: Ocultar la complejidad del hardware a los procesos que se ejecutan por encima del sistema operativo. Presentar una interfaz de E/S sencilla.

Para conseguir estos objetivos se estructura el software de E/S en capas, de forma que las capas inferiores ocultan la complejidad del hardware a las capas superiores y stos se encargan de conseguir una interfaz sencilla. CAPAS DEL SOFTWARE DE E/S MANEJADORES DE INTERRUPCIONES: Su principal objetivo es que el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo est ocupado y se debe suspender el proceso o sincronizar algunas tareas.

Driver:

MANEJADORES DE DISPOSITIVOS: El driver es el software que se comunica con el hardware de E/S. Existe un driver para cada controlador que tengamos conectado a la computadora. Es el nico software que conoce las caractersticas del dispositivo. Programa al controlador imprimiendo en sus registros. Se encarga de traducir peticiones del nivel superior. Encola las peticiones que van llegando para que el driver las trate ms tarde. Por ejemplo, si el sistema tiene tipos diferentes de discos duros, al usuario las diferencias tcnicas entre ellos no le deben importar, y los drivers le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos.

SOFTWARE DE E/S INDEPENDIENTE DEL DISPOSITIVO: En esta capa se agrupa la mayor parte del software de E/S. Las funciones bsicas de este nivel son: Presentar una interfaz uniforme a los programas de usuario; la misma operacin de entrada o de salida independientemente del dispositivo al que se desea acceder.

Identificar al dispositivo a partir del nombre simblico ; asignndoles nombres a los dispositivos.

Proteccin de los dispositivos ; debe disponer de un sistema que permita determinar quien tiene acceso a qu dispositivos. Tamao de bloque; a los dispositivos de bloque los trata como si todos tuvieran el mismo tamao de bloque (conocido como bloque lgico). El driver de cada uno de ellos es el encargado de comprobar si a cada uno de ellos le corresponde 1 o ms sectores del disco.

Almacenamiento Intermedio; Si se solicita informacin de un bloque que est cargado en el cach su lectura no se ordena al driver pero si no est cargado en cach se ordena la lectura del bloque completo. (lecturas por adelantado). SOFTWARE DE E/S EN ESPACIO DE USUARIO: Una porcin pequea del software de E/S se ejecuta a nivel de usuario. Consiste en bibliotecas que se enlazan con los programas de usuario. Tambin el sistema de spooling o reas de trabajo encolados, permite conseguir una explotacin concurrente de dispositivos de acceso exclusivo, como por ejemplo la impresora. Tcnicas para realizar la E/S E/S Programada. El procesador emite el mandato de E/S, a peticin de un proceso, al mdulo de E/S. El proceso espera a que termine la operacin antes de continuar. E/S dirigida por Interrupciones. El procesador emite el mandato de E/S de un proceso y contina ejecutando instrucciones del mismo u otro proceso. El mdulo de E/S enva un interrupcin cuando est prepara para transmitir. Acceso directo a memoria ( DMA). Existe un mdulo DMA que controla el intercambio de datos entre la memorial principal y el mdulo de E/S. El procesador manda una peticin de transferencia de bloque de datos al mdulo de DMA. El procesador es interrumpido slo luego que el bloque entero ha sido transferido La unidad de DMA es capaz de imitar al procesador, tomando el control del bus del sistema tal como lo hace un procesador. La unidad de DMA necesita hacerlo para transferir los datos desde y hacia la memoria usando el bus del sistema. Tcnicas para realizar la E/S: DMA 1)- Cuando el procesador quiere leer o escribir un bloque de datos, enva un mandato al mdulo de DMA especificndole la siguiente informacin: Si se trata de una operacin de lectura o escritura, utilizando la lnea de control de lectura o escritura que existe entre le procesador y el mdulo de DMA. La direccin del dispositivo de E/S, comunicndoselo mediante las lneas de datos.

La direccin inicial de memoria que se pretende leer o escribir, comunicndoselo mediante las lneas de datos y almacenndose en el registro de direcciones del mdulo de E/S. El nmero de palabras que se van a leer o escribir, comunicndoselo de nuevo mediante las lneas de datos y almacenndose en el registro contador de datos. Toma el control del sistema desde la CPU para transferir datos desde y hacia la memoria a travs del bus del sistema. Se utiliza el robo de ciclos para transferir datos a travs del bus del sistema. El ciclo de instruccin se suspende para dar paso a la transferencia de datos. La CPU espera un ciclo del bus. No existe interrupcin alguna: no salva el contexto. 2)- A continuacin el computador contina con otro trabajo. El mdulo de E/S transfiere el bloque completo de datos, palabra a palabra, directamente desde la memoria o hacia ella, sin pasar por el procesador. Cuando se completa la transferencia, el mdulo DMA enva una seal de interrupcin al procesador. Por tanto el procesador est involucrado solo al principio y al final de la transferencia. El DMA se conecta al bus del sistema para poder transferir los datos entre los dispositivos de entrada/salida y la memoria principal. Por esta razn, debe compartirlo con el procesador, siendo capaz de robarle a ste ciclos de bus. El DMA obliga al procesador a que suspenda temporalmente lo que est haciendo justo antes de que ste precise el bus del sistema. La figura siguiente se muestra en qu momentos el DMA

puede suspender al procesador durante el ciclo de una instruccin. Una vez que el procesador est suspendido, el DMA utiliza el ciclo de bus robado para transferir una palabra, devolviendo inmediatamente el control al procesador. Es importante sealar que el procesador no se ve interrumpido, ya que no debe guardar el contexto del proceso que est ejecutando, simplemente se ve inactivo durante el ciclo de bus que el DMA realiza la transferencia. Aunque la actividad del procesador se ralentiza, este esquema es mucho ms eficiente que todos los anteriores. Sin embargo, el rendimiento del DMA depende de su configuracin dentro del propio sistema. Existen distintas alternativas de diseo, el esquema de las cuales, se puede apreciar en las siguientes figuras. A continuacin describiremos en qu consisten bsicamente estas configuraciones. Estructura de DMA: de bus sencillo Estructura sencilla y barata. El mdulo realiza la transferencia entre Memoria y los dispositivos de E/S a travs del mdulo DMA, por lo que consume 2 ciclos de bus por cada palabra transferida, como en la E/S programada, una para peticin de transferencia y otra para la transferencia misma. El robo de ciclos hace que la CPU ejecute ms lentamente.

El nmero de ciclos de bus requeridos se puede acortar mediante la integracin de las funciones del DMA y de la E/S. Debe haber un camino entre el mdulo de DMA y el mdulo de E/S que no pasen por el bus del sistema. El modulo DMA est conectado directamente a uno o ms bloques de E/S, de modo que la transferencia de datos no emplea el bus del sistema. El intercambio de datos entre DMA y los mdulos de E/S se realiza fuera del bus de sistema

Estructura de DMA: bus de E/S Los mdulos de E/S estn conectados al DMA mediante un bus. La configuracin es fcilmente ampliable. El intercambio de datos entre DMA y los mdulos de E/S se realiza fuera del bus de sistema.

CANALES Y PROCESADOR DE ENTRADA SALIDA Siguiendo con la tendencia de independizar al procesador de las operaciones de entrada/salida, se libera a ste de tener que ejecutar instrucciones relacionadas con las mismas. Es decir, las instrucciones de entrada/salida que pueda contener un programa son ejecutadas por un subsistema denominado canal de entrada/salida. Para iniciar una transferencia, el procesador simplemente especifica al canal en qu lugar de la memoria se encuentra el programa de entrada/salida. El programa contiene la informacin necesaria sobre cules son los dispositivos involucrados en la transferencia, as como las zonas de memoria para el almacenamiento, la prioridad y las acciones a llevar a cabo bajo las posibles condiciones de error. Una vez que el Canal ha terminado de dirigir toda la transferencia, informa al procesador del cumplimiento de la operacin. Cuando hablamos de un canal, nos referimos a un controlador o interface para perifricos con inteligencia, es decir posee una CPU dedicada a las operaciones de E/S. Esta CPU dedicada mejora el rendimiento por cuanto libera a la CPU principal de controlar las operaciones especficas de los dispositivos de E/S. Por lo general la CPU principal y el canal estn en una relacin Maestro Esclavo, por lo que la CPU indica al canal cuando debe comenzar y le ordena detenerse o cambiar lo que hace. Por otra parte el canal no puede realizar ninguna operacin a menos que as le indique la CPU. Hay dos tipos de comunicacin entre la CPU y Canal: Desde la CPU al canal viajan las instrucciones de E/S Desde el canal a la CPU viajan las interrupciones del canal. Veamos ahora cmo es la arquitectura bsica de un canal. ste posee un procesador especializado en la ejecucin de instrucciones de entrada/salida, un canal de datos y direcciones con la memoria principal, una va de seales de control con el procesador y un bus independiente al que se conectan distintos dispositivos con sus controladores. Segn la forma en que el canal da servicio a los distintos dispositivos, podemos clasificarlo en distintas clases. CLASIFICACION DEL PE/S Canal selector: Un canal selector controla varios dispositivos de alta velocidad, dedicndose a la transferencia de uno cada vez. El procesador del canal opera con los controladores de los dispositivos conectados al bus del propio canal de entrada/salida

Canal multiplexor: Un canal multiplexor puede manejar varios dispositivos a la vez. Si los dispositivos son de baja velocidad se utiliza un multiplexor de bytes, mientras que si su velocidad es elevada, se utiliza uno de bloques. Cada controlador de dispositivos se conecta al canal multiplexor por una va diferente. Reparte el tiempo de comunicacin de manera secuencial y en espacios cortos entre todos los perifricos, dando la sensacin de que est atendiendo a todos de modo paralelo. OBJETIVOS EN EL DISEO Eficiencia La mayora de los dispositivos de E/S son extremadamente lentos en comparacin con la memoria principal. El uso de la multiprogramacin permite que algunos procesos esperen en operaciones de E/S mientras otro proceso se est ejecutando. La E/S no puede seguir el paso de la actividad del procesador. Se utiliza el intercambio para introducir ms procesos listos, que es una operacin de E/S. Generalidad Es preferible gestionar todos los dispositivos de E/S de una manera uniforme. Oculta la mayora de los detalles de la E/S con dispositivos en rutinas de bajo nivel, de forma que los procesos y los niveles superiores contemplen a los dispositivos en trminos generales, como la lectura, escritura, apertura, cierre, bloqueo y desbloqueo. ESTRUCTURA LOGICA DEL SISTEMA DE E/S En la estructura por capas de SO se enfatiz la naturaleza de que el mismo est construido jerrquicamente. Las funciones del SO estn separadas dependiendo de su complejidad, su escala de tiempo, etc. Cada nivel realiza un subconjunto de funciones del SO y se apoya sobre la capa inferior para brindar servicios al nivel superior. Por ejemplo, la capa 7 Memoria virtual, se apoya sobre la capa 6, almacenamiento secundario local (bloque de datos) y brinda servicio a las capas de nivel superior. Los niveles inferiores tratan con una escala de tiempo mucho ms corta. Algunas partes del SO interactan directamente sobre el hardware, donde los eventos pueden tener una escala de tiempo muy breve, nanosegundos. En el otro extremo se sitan las partes del SO que interactan con las aplicaciones de usuario, con eventos que rondan unos pocos segundos. El uso de niveles se ajusta perfectamente a este entorno. Aplicando esta filosofa especficamente al sistema de E/S se llega a los siguientes tipos de organizacin: Dispositivo perifrico local, Puerto de comunicacin, Sistema de fichero Los detalles de organizacin dependern del tipo de dispositivo y su aplicacin. Organizacin de la E/S Niveles involucrados: E/S lgica: trata a los dispositivos como un recurso lgico y no se ocupa de los detalles del control real del dispositivo. Se ocupa de la gestin de tareas generales de E/S para los procesos de usuario, tratando al dispositivo en trminos de un identificador (Disco C): Abrir, cerrar, leer y escribir. E/S de dispositivo: mandatos de E/S, poner caracteres en los buffer y registros, rdenes al controlador. Planificacin y control: la gestin real de la cola y la planificacin de las operaciones de E/S se producen en este nivel, as como el control de las operaciones. En este nivel se manejan las interrupciones y se obtiene el estado de la E/S y se informa el mismo. Este nivel es el que interacta con el mdulo de E/S, y por tanto con el hardware. La estructura de E/S se parece mucho a la anterior. La diferencia es que el mdulo de E/S lgica se reemplaza por una arquitectura de comunicaciones, que a su vez puede tener muchos niveles, por ejemplo TCP/IP. Estructura representativa para almacenamiento segundario que da soporte a un sistema de ficheros. Los tres nuevos niveles son: Gestin de directorios: los nombres simblicos de los ficheros se convierten en identificadores que hacen referencia al fichero o a una tabla de ndices. Se ocupa de operaciones de usuario tales como: Aadir, borrar, reorganizar. Sistema de ficheros: trata con la estructura lgica de los ficheros y con las operaciones que pueden especificar los usuarios, como abrir, cerrar, leer y escribir. Los derechos de acceso se gestionan a este nivel. Organizacin fsica: de la misma manera que las direcciones de memoria virtual deben convertirse en direcciones fsicas de memoria principal teniendo en cuenta la estructura de segmentacin y paginacin, las referencias lgicas a ficheros y registros se deben convertir en direcciones fsicas del almacenamiento secundario, teniendo en cuenta la estructura de pistas y sectores del dispositivo de almacenamiento secundario. BUFFERING de E/S (Almacenamiento intermedio de E/S) Razones para almacenamiento temporal Dispositivos orientados a bloque: La informacin se almacena en bloques de tamao fijo. Las transferencias de un bloque se realizan cada vez. Se utilizan para los discos y las cintas. Dispositivos orientados a flujo: Transfieren los datos como una serie de bytes. Se utilizan para los terminales, impresoras, puertos de comunicacin, ratones y otros dispositivos que no son de almacenamiento secundario. BUFFER NICO Es el esquema ms sencillo. Las transferencias de entrada usan el buffer del sistema. Cuando se completa la transferencia, el proceso mueve el bloque al espacio de usuario e inmediatamente pide otro bloque. A esto se le denomina Lectura adelantada, pues esta ltima operacin se realiza con la esperanza de que este nuevo bloque ser solicitado posteriormente. Se basa en el principio de la secuencialidad. Buffer nico: orientado a bloques

Las transferencias de entrada se realizan en el espacio del sistema. Cuando sea necesario, el proceso mueve el bloque al espacio del usuario. El proceso mueve otro bloque al espacio realizando lectura por adelantado. El proceso de usuario puede procesar un bloque de datos mientras se est leyendo el siguiente. Se puede dar el intercambio, ya que la entrada tiene lugar en la memoria del sistema y no en la memoria de usuario. El sistema operativo debe guardar constancia de las asignaciones de memorias intermedias del sistema a procesos de usuario. Buffer nico: orientado a flujo Se puede utilizar en modo de operacin lnea a lnea o byte a byte. Lnea a lnea: se usa el retorno de carro para indicar el final de lnea. El proceso de usuario se suspende durante la entrada de datos, esperando la llegada de una lnea completa. Con respecto a la salida, se copia la lnea en el buffer y contina el procesamiento. Solo se suspende en caso de tener que enviar la segunda lnea y la primera an se encuentra en buffer. BUFFER DOBLE Utiliza dos almacenes intermedios del sistema en lugar de uno. Un proceso puede transferir datos hacia o desde una memoria intermedia mientras que el sistema operativo vaca o rellena el otro. Con respecto a la entrada orientada a flujo, en lnea a lnea el proceso de usuario no necesita suspenderse debido a una operacin de E/S a menos que el proceso vaya por delante del buffer doble. BUFFER CIRCULAR Se usan ms de dos memorias intermedias. Cada memoria intermedia individual constituye una unidad de la memoria intermedia circular. Se usan cuando las operaciones de E/S han de ir al ritmo del proceso. INVESTIGAR MODELO PRODUCTOR CONSUMIDOR.COMO INFLUYE EN CADA UNO DE LOS BUFFER? ADMINISTRACIN DE DISPOSITIVOS Desde el punto de vista de los SO se administran los dispositivos de E/S cumpliendo 2 funciones: Llevar el control del estado de los dispositivos. Una forma de hacerlo es llevar una base de datos, tal como un Bloque de control de unidad (BCU) asociado con cada dispositivo. Decidir acerca de la poltica para determinar quien recibe un dispositivo, durante cunto tiempo y cuando. Hay 3 tcnicas bsicas para implementar polticas de administracin de dispositivos: Dedicada: se asigna un dispositivo a un solo proceso. Compartida: muchos procesos comparten un dispositivo. Virtual: se simula un dispositivo fsico (de tipo dedicado) en otro dispositivo fsico (generalmente de tipo compartido) Asignacin: asignar fsicamente un dispositivo a un proceso. En forma semejante se deben asignar las unidades de control y canales correspondientes. Poltica de asignacin: perifricos dedicados. Puede hacerse a nivel de: Proceso: cada vez que un proceso necesite el recurso, el mismo estar disponible por cuando lo captur al inicio del proceso Etapa: el perifrico se captura cuando comienza la etapa donde se aloja la instruccin que lo solicita. Instruccin: se hace la asignacin al momento de utilizarlo realmente. Puede que est ocupado por lo que habr que esperar o cancelar. Se puede hacer una asignacin parcial o total: Total: El SO no entregar la totalidad de los perifricos dedicados hasta no tenerlos a todos disponibles. Si un proceso necesita 3 cintas, hasta que no estn las 3 libres no se le asignarn. Parcial: A medida que el SO encuentra perifricos libres los va asignando. Puede existir en este caso el famoso Abrazo Mortal. Poltica de asignacin: perifricos compartidos. Parcial: La asignacin se hace en el momento de usarlos, es decir al momento de lanzarse la operacin de E/S. Se arman colas de espera de disponibilidad de perifricos, unidades de control, y procesadores de E/S (canal). Para ello es necesario el uso de tablas. Estas tablas conforman la base de datos para la administracin de perifricos. BD Para la Administracin de perifricos La BD consta de tablas, una para cada unidad funcional del canal (procesador de E/S, unidad de control) y para perifricos. Estas tablas son denominadas: Bloque de control de perifrico # de dispositivo. Estado del dispositivo. Lista de Unid. de Cont. a las que est conectado el dispositivo. Lista de procesos esperando este dispositivo. Bloque de control de procesador de E/S # de canal. Estado de canal Lista de Unid. de control a las que est conectado el canal Lista de procesos esperando el canal. Bloque de control de la unidad de control # de la unidad de control Estado de la unidad de control Lista de dispositivos conectados a esta unidad de control.

Lista de canales conectados a esta unidad de control. Lista de procesos esperando a esta unidad de control. Por medio de la tablas, se puede determinar la conexin entre mdulos funcionales, a fin de determinar cuales son los caminos para acceder a los dispositivos. Este trabajo le corresponde a una de las rutinas del sistema. RUTINAS DEL SISTEMA Cuando el SO administra a los perifricos de tipo compartido, utiliza 3 rutinas: Controlador de trfico, Planificador de E/S, Manipulador de perifricos. CONTROLADOR DE TRFICO Lleva el estado de los dispositivos, unidades de control y procesadores de E/S por medio de los bloques de control. Determina la posibilidad de una operacin de E/S y la posibilidad de caminos alternativos. Cada bloque de control servir para poder determinar si es posible la operacin y porque camino. El proceso se encolar para que se le asigne un perifrico, luego para que se le asigne una unidad de control y luego para que se le asigne un procesador de E/S. Solo una vez que el proceso est a la cabeza de cada una de las tres colas este puede realizar su operacin de E/S. PLANIFICADOR DE E/S Encargada de decidir qu proceso toma el recurso. Determina el orden en que se asignarn a los procesos los dispositivos, UC y procesadores de E/S, ya sea por algoritmo o prioridad. Una vez que hay un orden, es el controlador de trfico el que determina que puede ser satisfecho el pedido. Una vez que el proceso toma el dispositivo, no se interrumpe hasta que se termina, no hay polticas de desalojo. MANIPULADOR DE PERIFERICOS Existe uno para cada tipo de perifrico. Sus tareas son: Arma el programa del procesador de E/S, emite la instruccin de arranque de E/S, procesa las interrupciones del dispositivo, maneja errores del dispositivo, realiza una planificacin de acuerdo al perifrico (estrategia de acceso). PLANIFICACIN DEL DISCO: ORGANIZACIN Un disco es un plato circular. Los datos se graban en el disco y se recuperan por medio de una bobina, llamada cabeza. Durante una operacin de E/S la cabeza est estacionaria mientras que el plato rota debajo de ella. La cabeza es un dispositivo relativamente pequeo. La organizacin de los datos en el plato consiste en un conjunto concntrico de anillos, llamados pistas. Cada pista tiene la misma anchura que la cabeza. Hay miles de pistas en cada superficie. Los datos se transfieren del disco en sectores. Normalmente hay cientos de sectores por pista, que pueden ser de longitud fija o variable. En la mayora de los sistemas, los sectores utilizan una longitud fija de 512 bytes. Para evitar requisitos de imprecisin los sectores a su vez estn separados por huecos. Las pistas adyacentes estn separadas por huecos. Esto impide los errores debido a que