tratamiento de las interrupciones

Upload: julian-toapanta

Post on 17-Oct-2015

139 views

Category:

Documents


1 download

TRANSCRIPT

INSTITUTO SUPERIOR TECNOLGICO LOS ANDES

SISTEMAS OPERATIVOS

Nombre: Julin Toapanta Nivel: Cuarto Profesor: Ing. Byron Carrera

INTRODUCCIN

OBJETIVOS

OBJETIVO GENERAL: Buscar informacin sobre el tema de interrupciones, excepciones, sistema operativo multiprogramado, spoolers para despes de clasificar realizar el informe correspondiente.

OBJETIVOS ESPECFICOS:

Conocer los pasos de las interrupciones y la importancia de cada uno de ellos. Saber del por qu excepciones en el sistema operativo. Conocer las caractersticas de los sistemas operativos multiprogramado. Analizar el procedimiento spooler.

MARCO TERICO

TRATAMIENTO DE LAS INTERRUPCIONES

Tratamiento de las interrupcionesUna interrupcin se trata en todo caso, despus de terminar la ejecucin de la instruccin en curso.El tratamiento depende de cul sea el dispositivo de E/S que ha causado la interrupcin, ante la cual debe poder identificar el dispositivo que la ha causado.

Una interrupcin es un mecanismo que permite ejecutar un bloque de instrucciones interrumpiendo la ejecucin de un programa, y luego restablecer la ejecucin del mismo sin afectarlo directamente. De este modo un programa puede ser interrumpido temporalmente para atender alguna necesidad urgente de la computadora y luego continuar su ejecucin de manera normal y como si nada hubiera pasado.Las interrupciones son un metodo del que disponen los dispositivos e incluso los procesos para hacer notar a la CPU la aparicin de alguna circunstancia que requiera su intervencin. De este modo, los dispositivos pueden provocar que la CPU deje por el momento la tarea que estaba realizando y atienda la interrupcin. Una vez atendida, seguira con su labor anterior.Cuando no existan interrupciones, era el procesador el que tena que estar continuamente comprobando el estado del dispositivo cuando lo necesitaba. Todo ese tiempo que el procesador estaba sondeando el estado de los dispositivos era tiempo que no se poda dedicar a otros procesos, lo que significa esto una afectacin al rendimiento.Por todo ello se. pens que lo mejor era que existiera una lnea especial entre el procesador y los dispositivos, por la que los dispositivos indicaban al procesador que ya estaban listos.Cuando al procesador le llega una interrupcin, la atiende inmediatamente dejando de hacer lo que estuviera haciendo, para poder atenderla de la forma correcta, debe saber con anterioridad cmo tratarla. Las computadoras tienen en un sitio conocido de memoria, las distintas rutinas de tratamiento para las diferentes interrupciones, el procesador reconoce la interrupcin de la que se trata y busca en memoria la rutina correspondiente.Una vez terminado el tratamiento de la interrupcin, es muy importante que el procesador siga con lo que estaba haciendo, es importante que antes de tratar la interrupcin se guarde de alguna forma el estado en que se encuentra la computadora, y al terminar la rutina de tratamiento se restaure el estado.Se pueden distinguir dos tipos de interrupciones: interrupciones software e interrupciones hardware; Las interrupciones software son provocadas por los programas usando una funcin especial del lenguaje, tenen como objetivo el que la CPU ejecute algn tipo de funcin, al terminar de ejecutarse esta funcin, se seguir ejecutando el programa que provoc la interrupcin.Un dispositivo perifrico puede generar una seal elctrica llamada interrupcin que modifica ciertas banderas que se encuentran en el CPU. La deteccin de una interrupcin es parte del ciclo de instruccin. En cada ciclo de instruccin, el CPU revisa las banderas hardware para ver si algn dispositivo necesita atencin.Las interrupciones generadas por los dispositivos perifricos son generalmente asncronos con respecto al programa que se est ejecutando. Un evento esasncronoa una entidad si el momento cuando ocurre no est determinado por la entidad. Las interrupciones no siempre ocurren en el mismo punto dentro de la ejecucin de un programa. En contraste, un evento de error como la divisin por cero essncronoen el sentido de que siempre ocurre durante la ejecucin de una instruccin particular si el mismo dato es presentado a la instruccin.

Las rutinas del Sistema de Operacin llamadas manejadores de dispositivos usualmente manejan las interrupciones generadas por el dispositivo. Los Sistemas de Operacin usan interrupciones pare implementar el tiempo compartido. Tienen un dispositivo llamadotimerque genera una interrupcin despus de un intervalo especfico de tiempo. El Sistema de Operacin inicializa eltimerantes de actualizar elProgram Counterpare ejecutar un programa de un usuario. Cuando eltimerexpira, genera una interrupcin causando que el CPU ejecute la rutina de servicio de la interrupcin timer.Unseal o signales la notificacin por software de que un evento ocurri. Por lo general es la respuesta del Sistema de Operacin. Por ejemplo,ctrl-Cgenera una interrupcin para el manejador de dispositivo que maneja el teclado. El manejador notifica al proceso apropiado mandando unsignal.El Sistema de Operacin tambien puede enviarsignalsa un proceso para notificar la finalizacin de una E/S o de un error. Las interrupciones pueden ser producidas por Hardware o por Software Las interrupciones por Hw son producidas por un dispositivo y viajan por el mismo bus del sistema. Las interrupciones por Sw son producidas por medio de la ejecucin de una operacin especial que se conoce como "llamada al sistema" (system call) o por errores producidos dentro de un proceso, tambin conocidas como excepciones.Hay muchos tipos de interrupciones y pare cada uno de estas existe una rutina en el sistema de operacin que le da servicio. Los sistemas de operacin actuales permiten a los dispositivos tales como E/S o reloj del sistema interrumpir el CPU asncronamente.Pasos durante una interrupcinEl CPU suspende lo que estaba realizando. El hw transfiere el control al sistema de operacin.Deshabilita las interrupciones, mientras se atiende una interrupcin no se puede atender otra que llegue, algunas arquitecturas con manejo de interrupciones sofisticadas permiten, mediante un esquema de prioridades, interrumpir un servicio de interrupcin para atender otra de mayor prioridad, por lo que, aquellas interrupciones de menor o igual prioridad son deshabilitadas.El kernel del sistema de operacin salva el estado actual del proceso interrumpido, transfiere su ejecucin a una direccin fija, esta direccin por lo general contiene la direccin de comienzo donde la rutina de servicio de la interrupcin se encuentra, cada diseo de computadora tiene su propio mecanismo de interrupciones, una forma de manejar las interrupciones es invocando una rutina general que examine la informacin de la interrupcin y determine el tipo de interrupcin ocurrida, y de all llama a la rutina que se encarga de atender dicha interrupcin.

Por lo general se maneja mediante un vector de interrupciones, indexado por el tipo de interrupcin, en este vector se encuentra la direccin de comienzo de la rutina que da servicio a dicho tipo, se le conoce como vector de interrupcin, otra forma de localizar la rutina apropiada es mediante el pooling, es decir, preguntando a cada dispositivo pare ver quien requiri el servicio. Se ejecuta la rutina de interrupcin Se restaura el estado anterior Se habilitan las interrupcionesLa arquitectura de interrupciones debe tambin almacenar la direccin de la instruccin interrumpida.5.2.1. Dentro de un computadorCuando una computadora se encuentra realizando un proceso este puede interrumpirse por cualquiera de las dos causas siguientes:1.- Que se haya presentado una causa que impida que siga adelante un trabajo o un programa que no haya terminado:En este caso las interrupciones pueden darse: Por Software: quiere decir que la interrupcin se hace por medio de una instruccin del Sistema operativo que demanda la detencin del proceso o por una instruccin del programa mismo que demanda la accin de otro dispositivo. Por Hardware: se refiere a interrupciones provocadas por la accin de algn elemento fsico ya sea por una falla, por requerirlo el circuito, por falta de energa elctrica u otra causa que impida la continuacin de un programa dado algunas de estas fallas pueden ser manejadas por el sistema operativo ya sea por normalizar el proceso o para indicar al operador la causa de la interrupcin.2.- Es que haya llegado el fin lgico de un programa o de un trabajo: en este caso el sistema operativo debe retirar el control al programa que ha terminado de introducir una nueva tarea si se tiene alguna espera esta interrupcin no representa un mayor problema ya que solo puede darse cuando el programa que se encuentra en proceso demanda a travs de una instruccin su propio fin.5.2.2. Interrupcin de E/SCon el fin de iniciar una operacin de E/S la CPU carga los registros apropiados dentro del controlador del dispositivo, el controlador a su vez examina el contenido de estos registros para determinar que accin debe realizar, por ejemplo, si se encuentra una solicitud de lectura, el controlador iniciara la transferencia de datos del dispositivo a su buffer local, cuando haya terminado de hacer esto el controlador informara al CPU que ha completado su operacin, esta comunicacin se genera por medio de una interrupcin.

Esto caso se da en general como resultado de una solicitud de E/S por parte de un proceso del usuario, una vez iniciada la E/S; luego al completarse la operacin el control se devuelve al proceso del usuario, este caso se conoce como E/S sincrnica, pero existe otra posibilidad llamada E/S asncrona que devuelve el control al programa del usuario sin esperar que se complete la E/S as esta puede continuar mientras se realizan otras operaciones del sistema.

5.2.3 Interrupciones de programaLas interrupciones software son provocadas por los programas usando una funcin especial del lenguaje, tienen como objetivo el que la CPU ejecute algn tipo de funcin, al terminar de ejecutarse esta funcin, se seguir ejecutando el programa que provoc la interrupcin.Este tipo de interrupciones es la forma ms importante que tendrn los programas de ejecutar funciones especiales del DOS (Disk Operating System) o del BIOS (Basic Input Output System). Estas funciones tienen un nmero de interrupcin software asociada, cuando un programa lanza una interrupcin de este tipo, la CPU ejecuta su funcin de tratamiento asociada, por lo que debemos saber qu es lo que hace cada interrupcin para conseguir el efecto deseado.Las Interrupciones son principalmente subrutinas de la BIOS o el DOS que pueden ser llamadas por un programa, su funcin es controlar el hardware, servir de contacto entre los programas y las funciones del BIOS y del dos.Las interrupciones de software pueden ser activadas directamente por el ensamblador invocando al nmero de interrupcin deseada con la instruccin INT.El uso de las interrupciones nos ayuda en la creacin de programas, utilizndolas en programas, son ms cortos, es ms fcil entenderlos y usualmente tienen un mejor desempeo debido en gran parte a su menor tamao.Este tipo de interrupciones podemos separarlas en dos categoras: las interrupciones del sistema operativo DOS y las interrupciones del BIOS.

La diferencia entre ambas es que las interrupciones del sistema operativo son ms fciles de usar pero tambin son ms lentas ya que estas interrupciones hacen uso del BIOS para lograr su cometido, en cambio las interrupciones del BIOS son mucho ms rpidas pero tienen la desventaja que, como son parte del hardware son muy especficas y pueden variar dependiendo incluso de la marca del fabricante del circuito.La eleccin del tipo de interrupcin a utilizar depender nicamente de las caractersticas que le quiera dar a su programa: velocidad (utilizando las del BIOS) o portabilidad (utilizando las del DOS).5.2.4 Interrupciones externas

El uso de las interrupciones nos ayuda en la creacin de programas, utilizndolas nuestros programas son ms cortos, es ms fcil entenderlos y usualmente tienen un mejor desempeo debido en gran parte a su menor tamao.Las interrupciones externas las generan los dispositivos perifricos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones; tambin son generadas por los coprocesadores.Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito integrado cuya funcin es exclusivamente manejar este tipo de interrupciones.Por ejemplo en un circuito llamado PIC 8259A si es controlado por la UCP utilizando para tal control una serie de vas de comunicacin llamadas puertos:Interrupcin 10HPropsito: Llamar a diversas funciones de video del BIOS.Sintaxis:Int 10HEsta interrupcin tiene diversas funciones, todas ellas nos sirven para controlar la entrada y salida de video, la forma de acceso a cada una de las opciones es por medio del registro AH.Funciones comunes de la interrupcin 10H.1. 02H Seleccin de posicin del cursor2. 09H Escribe atributo y carcter en el cursor3. 0AH Escribe carcter en la posicin del cursor0EH Escritura de caracteres en modo alfanumrico

Funcin 02HUso: Posiciona el cursor en la pantalla dentro de las coordenadas vlidas de texto.Registros de llamada: AH = 02H1. BH = Pgina de video en la que se posicionar el cursor.2. DH = Fila3. DL = ColumnaFuncin 09HUso: Desplegar un carcter un determinado nmero de veces con un atributo definido empezando en la posicin actual del cursor.Registros de llamada: AH = 09H1. AL = Carcter a desplegar2. BH = Pgina de video en donde se desplegar3. BL = Atributo a usarEsta funcin despliega un carcter el nmero de veces especificado en CX pero sin cambiar la posicin del cursor en la pantalla.Funcin 0AHUso: Desplegar un caracter en la posicin actual del cursor.Registros de llamada: AH = 0AH1. AL = Caracter a desplegar2. BH = Pgina en donde desplegar3. BL = Color a usar (slo en grficos).4. CX = Nmero de repeticionesLa nica diferencia entre esta funcin y la anterior es que sta no permite modificar los atributos, simplemente usa los atributos actuales. Tampoco se altera la posicin del cursor con esta funcin.Funcin 0EHUso: Desplegar un caracter en la pantalla actualizando la posicin del cursor.Registros de llamada: AH = 0EH1. AL = Caracter a desplegar2. BH = Pgina donde se desplegara el caracter3. BL = Color a usar (solo en grficos)Interrupcin 16HPropsito: Manejar la entrada/salida del teclado.Sintaxis: Int 16HLa interrupcin 16H, son llamadas utilizando el registro AH.Funciones de la interrupcin 16H00H Lee un caracter de teclado01H Lee estado del tecladoFuncin 00HUso: Leer un caracter del teclado.Registros de llamada: AH = 00HRegistros de retorno: AH = cdigo de barrido (scan code) del tecladoAL = Valor ASCII del caracter.Cuando se utiliza esta interrupcin se detiene la ejecucin del programa hasta que se introduzca un caracter desde el teclado, si la tecla presionada es un caracter ASCII su valor ser guardado en el registro AH, de lo contrario el cdigo de barrido ser guardado en AL y AH contendr el valor 00H.Funcin 01HUso: Leer estado del teclado.Registros de llamada: AH = 01HInterrupcin 17HPropsito: Manejar la entrada/salida de la impresora.Sintaxis: Int 17HEsta interrupcin es utilizada para escribir caracteres a la impresora, inicializarla y leer su estado.Funciones de la interrupcin 16H1. 00H Imprime un caracter ASCII2. 01H Inicializa la impresora3. 02H Proporciona el estado de la impresoraFuncin 00HUso: Escribir un caracter a la impresora.Registros de llamada: AH = 00H1. AL = Caracter a imprimir2. DX = Puerto a utilizarRegistros de retorno: AH = Estado de la impresora.El estado de la impresora se codifica bit por bit como sigue:BIT 1/0 SIGNIFICADO0 1 Se agot el tiempo de espera3 1 Error de entrada/salida4 1 Impresora seleccionada5 1 Papel agotado6 1 Reconocimiento de comunicacin7 1 La impresora se encuentra libreLos bits 1 y 2 no son relevantes.La mayora de los BIOS nicamente soportan 3 puertos paralelos aunque existen algunos que soportan 4.

Manejo de Interrupciones

Una interrupcin es un evento que hace que el microcontrolador deje de ejecutar la tarea que est realizando para atender dicho acontecimiento y luego regrese y continue la tarea que estaba realizando antes de que se presentara la interrupcin.El mecanismo interno (dentro del procesador) de trasferencia de interrupciones, llamado Mondo, del sistema Sun4u (perteneciente a la misma compaa que fabrican el procesador UltraSPARC-IIi, basado en la arquitectura SPARCV9) es implementado con el UltraSPARC-IIi, por medio del cual se reduce la sobrecarga del servicio de interrupciones, identificando a un nico dispositivo interruptor, sin necesidad de sondear varios registros de estados.Los procesadores con la arquitectura SPARC V9 proporcionan un conjunto de registros dedicados, de uso exclusivo para el servicio de interrupciones. Esto elimina la necesidad que tiene el procesador de salvar su conjunto normal de registros para atender una interrupcin, y luego ser vueltos a almacenar.Un paquete de interrupciones contiene un vector Mondo con tres palabras dobles, dedicados a asistir al procesador en el servicio de interrupciones.Algunas de las limitaciones del vector Mondo son: Solo un paquete de solicitud de interrupcin puede ser atendido a la vez. No existe nivel de prioridad asociado con el vector de interrupciones Mondo; ellos son atendidos con la lgica primero que llega, primero en ser atendido.La entrega de los paquetes de interrupcin ahora se realiza dentro del UltraSPARC-IIi. Como es un camino dedicado a un solo proceso, las tareas de flujo de control son ms simples, y no se necesitan reintento de interrupciones. UltraSPARC-IIi causa una sola entrega del paquete de interrupcin a la vez, luego de cada reconocimiento por software (en el manejador de trampas de recepcin mondo).El bloque lgico PIE del UltraSPARC-IIi es responsable por recibir las interrupciones desde una fuente externa PCI, otras fuentes externas (dispositivos de E/S, interrupciones grficas, UPA64S y otros), y fuentes internas, cargando los registros de datos mondo, y sealizando una trampa de recepcin mondo al pipeline del UltraSPARC-IIi. Las interrupciones externas son concentrados en un ASIC (circuito integrado de aplicacin especfica) externo (STP2210QFP) que muestrea todas las lneas de entrada de interrupciones en forma cclica (roundrobin) y presenta a una de ellas a la vez al UltraSPARC-IIi. Este soporta hasta 8 lneas de PCI con 4 interrupciones cada una (hasta un mximo de 26), 12 para dispositivos de E/S, uno para grficos y uno para el UPA. Los tipos de lnea de entrada al concentrador pueden ser por nivel y por pulso. Esto es transparente al software, pero el hardware lo trata de modo distinto.Atendiendo al sistema Mondo, con cada interrupcin son cargados tres registros de palabras dobles, junto con los datos. Para el UltraSPARC-IIi, los 53 bits ms significativos de la primer palabra, como los 64 bits de los otros dos registros son ceros. Los 11 bits menos significativos de la primera palabra contienen el nmero de interrupcin (INR), el cual indica el tipo de interrupcin. El software utiliza el INR para indexar (apuntar) en una tabla, la cual tpicamente provee el IRL, que es el Contador de Programa (Program Counter) de la rutina de servicio de interrupcin, y los argumentos necesarios para la rutina.La CPU puede procesar solo una interrupcin a la vez. La Unidad de Despacho Mondo es responsable de recordar todas las interrupciones que han llegado, y colocarles en serie en el cause (pipeline) de la CPU como trampas (traps). Adems, rastrea el estado de escrituras pendientes del DMA y garantiza que todas las escrituras DMA sean completadas a la memoria antes de notificar a la CPU.Cada interrupcin tiene una prioridad asociada con l. Existen 8 niveles de prioridad (8 el ms alto y 1 el ms bajo). Son utilizadas en las decisiones en los arbitrajes. As, cuando varias interrupciones estn presente, ser atendida aquella con mayor prioridad. Si ellas tienen todas la misma prioridad, sern atendidas en forma cclica (roundrobin).

IMPORTANCIA DE LAS INTERRUPCIONES Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacin, mientras otra permanece a la espera de que concluya una operacin en un dispositivo de E/S.El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se contine ejecutando.En ciertos intervalos de tiempo puede convenir no aceptar seales de interrupcin. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).Un ejemplo de sincronismo por interrupcin es el almacenamiento de caracteres introducidos mediante el teclado. Cuando se introduce un carcter, se codifica en el registro de datos del dispositivo y adems se activa un bit del registro de estado quien crea una interrupcin en el hardware. El procesador deja temporalmente la tarea que estaba completando y ejecuta la rutina de atencin a la interrupcin correspondiente. El teclado almacena el carcter en el vector de memoria intermedia ( tambin llamado buffer) asociada al teclado y despierta el proceso que haba en el estado de espera de la operacin de entrada/salida.

EXCEPCIONES

Cuando laCPUintenta ejecutar una instruccin incorrectamente construida, la unidad de control lanza una excepcin para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupcin, la instruccin en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas.

Clases de excepcionesLas instrucciones de un programa pueden estar mal construidas por diversas razones: Elcdigo de operacinpuede ser incorrecto. Se intenta realizar alguna operacin no definida, como dividir por cero. La instruccin puede no estar permitida en el modo de ejecucin actual. La direccin de algn operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.

Importancia de las excepcionesEl mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecucin de la CPU y los mecanismos de proteccin de la memoria, que las aplicaciones realicen operaciones que no les estn permitidas. En cualquier caso, el tratamiento especfico de una excepcin lo realiza el SO.Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y ste es el que trata la situacin como convenga.Es bastante frecuente que el tratamiento de una excepcin no retorne al programa que se estaba ejecutando cuando se produjo la excepcin, sino que el SO aborte la ejecucin de ese programa. Este factor depende de la pericia del programador para controlar la excepcin adecuadamente.

El manejo de excepcionesLas excepciones son eventos relacionados directamente con la ejecucin de un programa. En general, cuando ocurre una excepcin el sistema operativo aborta el programa. La diferencia entre error y excepcin es que el error puede manejarse por el sistema operativo (como falla al encontrar un archivo en disco). Tambin son diferentes del manejo de las interrupciones por hardware, las cuales se activan por eventos (como la llegada de un carcter de un puerto serie) y que no se relaciona directamente con el programa en ejecucin.El hardware de la PC asiste a DOS en la deteccin de algunas excepciones. Por ejemplo, intentar hacer una divisin por cero genera una interrupcin a nivel hardware. Las interrupciones relacionadas con los dispositivos perifricos , como el intento de lectura a un disco que no existe, se llaman errores crticos. En lugar de ocasionar una interrupcin de hardware, estas operaciones se reportan al sistema operativo a travs de los manejadores de dispositivos.

Funcionamiento de las excepcionesExiten dos posibles razones para que suceda una excepcin. Una de ellas es porque se produzca un error en tiempo de ejecucin en lamquina virtual de Java. En ese caso, se crea una instancia de un objeto excepcin (cualquier objeto que descienda de la clase java.lang.Throwable). Estas excepciones se llaman excepciones no verificadas, es debido a que el compilador no es capaz de determinar si el cdigo gestiona la excepcin. Esto pasa porque un error en tiempo de ejecucin puede ocurrir en cualquier parte de un programa y por multitud de razones.

Las clases de excepcin que descienden de las clases RuntimeException y Error son excepciones no verificadas. Las clases RuntimeException se generan por la mquina virtual de Java al detectar una condicin inesperada durante la ejecucin. Como ejemplo de estas clases podemos tener una conversin explcita de tipos no vlida, uar un puntero nulo o referenciar a un elemento inexistente de unamatriz(fuera de lmites). Las clases de excepcin Error indican problemas crticos que normalmente no pueden ser tratados dentro de la aplicacin. Como ejemplo de este tipo de problemas tenemos los errores por falta de memoria o por desbordamiento de lapila.La otra razn por la que puede ocurrir una excepcin es debido a que un mtodo genere explcitamente un objeto que descienda de la clase Throwable (generable). Esto se consigue con la palabra clavethrow. El objetivo de generar una de estas excepciones es el de indicar una condicin no vlida, como pueda ser por ejemplo una accin errnea por parte del usuario.Las excepciones generadas se llaman tambin excepciones verificadas, por dos causas: la primera es que el compilador se asegura durante la compilacin que el mtodo incluye cdigo para generar una excepcin de tipo generable (las excepciones no verificadas no necesitan que las declaremos). La segunda causa es que el compilador hace obligatorio que el cdigo que llame a uno de estos mtodos incluya la llamada dentro una instruccin try-catch y que se proporcione un bloque catch para capturar la excepcin.Al generarse una excepcin, ya sea verificada o no, la ejecucin pasa inmediatamente hasta la primera orden catch del bloque try cuya clase de excepcin coincida con la clase de la excepcin generada. Si la excepcin no sucede en el interior de un bloquetry, o el bloquetryno tiene un bloque catch que coincida, la ejecucin del mtodo se termina inmediatamente y el control vuelve al punto en el que se invoc al mtodo. En este punto, vuelve a repetirse el proceso descrito y la pila de llamadas se va deshaciendo hasta encontrar un bloque catch que coincida. En caso de no encontrarse ninguno, se terminar la ejecucin del hilo en el que se ha generado la excepcin.Si se encuentra un bloque catch que coincida, se ejecutar ese bloque y se continuar seguidamente de forma normal la ejecucin del mtodo que contiene la instruccintryque captur la excepcin en ltimo lugar.No obstante, existe un caso en el que la ejecucin normal no contina, que es cuando ocurre una nueva excepcin dentro del bloquecatch. En este caso, se intentara continuar la ejecucin en el primer bloque catch coincidente que est fuera de la instruccintryactual.

Manejo de excepcionesIntroduccinUna excepcin en trminos de lenguaje de programacin es la indicacin de un problema que ocurre durante la ejecucin de un programa. Sin embargo la palabra excepcin se refiere que este problema ocurre con poca frecuencia generalmente cuando existe algn dato o instruccin que no se apega al funcionamiento del programa por lo que se produce un error. El manejo de excepciones permite al usuario crear aplicaciones tolerantes a fallas y robustos (resistentes a errores) para controlar estas excepciones y que pueda seguir ejecutando el programa sin verse afectado por el problema. En lenguaje java estas excepciones pueden manejarse con las clases que extienden el paquete Throwable de manera directa o indirecta, pero existen diversos tipos de excepciones y formas para manejarlas.Uso del manejo de excepcionesEl manejo de excepciones ayuda al programador a remover el cdigo para manejo de errores de la lnea principal de ejecucin, adems se pude elegir entre manejar todas las excepciones, las de cierto tipo o de las de grupos relacionados, esto hace que la probabilidad de pasar por alto los errores se reduzca y a la vez hace los programas ms robustos. Pero es importante utilizar un lenguaje de programacin que soporte este manejo, de lo contrario el procesamiento de errores no estar incluido y har el programa ms vulnerable. Este manejo est diseado para procesar errores que ocurren cuando se ejecuta una instruccin, algunos ejemplos son: desbordamiento aritmtico, divisin entre cero, parmetros invlidos de mtodo y asignacin fallida en la memoria. Sin embargo no est diseado para procesar problemas con eventos independientes al programa como son pulsar una tecla o clic al mouse. Las excepciones se dividen en verificadas y no verificadas. Es importante esta divisin porque el compilador implementa requerimientos de atrapar o declarar para las verificadas lo que har que se detecten las excepciones automticamente y de acuerdo al lenguaje de programacin utilizado se utilizar un mtodo para corregirlas. Sin embargo para las no verificadas se producir un error indicando que deben atraparse y declararse. Por eso el programador debe pensar en los problemas que pueden ocurrir cuando se llama a un mtodo y definir excepciones para verificarse cuando sean importantes. Las clases de excepciones pueden derivarse de una superclase comn, por lo que con un manejador para atrapar objetos de la superclase, tambin se pueden atrapar todos los objetos de las subclases de esa clase. Pero tambin, se pueden atrapar atrapar a cada uno de los tipos de las subclases de manera individual si estas requieren ser procesadas diferente.Limpieza de pilaEn ocasiones cuando se hace lanza una excepcin, pero no se atrapa en un enlace especfico, la pila de llamadas se limpia y el programa intenta volverlo a atrapar en el siguiente bloque, esto se conoce como limpia de pila. Este proceso hace que el mtodo en el que no se atrap la excepcin termina, todas sus variables quedan fuera del enlace y el control regresa a la instruccin que originalmente la invoc. La limpieza de pila de repetir hasta que la excepcin pueda ser atrapada porque de lo contrario se producir un error a la hora de compilar.AsercionesLas aserciones ayudan a asegurar la validez del programa al atrapar los errores potenciales e identificar los posibles errores lgicos del desarrollo. Estas pueden escribirse como comentarios para apoyar a la persona que desarrolla el programa. Algunos ejemplos son: Precondiciones y pos condiciones Estas caractersticas son utilizadas por los programadores para hacer un anlisis de lo esperado del programa antes y despus de su ejecucin. Son importantes porque gracias a ellas se pueden detectar posibles fallas en el programa y corregirlas. Las precondiciones son verdaderas cuando se invoca a un mtodo, estas describen las caractersticas del mtodo y las expectativas que se tienen en el estado actual del programa. Si no se cumplen las precondiciones el comportamiento del mtodo es indefinido por lo que se lanza una excepcin que est preparada o continuar con el programa esperando el error. Las pos condiciones describen las restricciones en el entorno y cualquier efecto secundario del mtodo. Es recomendable escribirlas para saber que esperar en un futuro si es que se hacen modificaciones.ConclusinEl manejo de excepciones ayuda a lidiar con los errores de una aplicacin por medio de la manipulacin del cdigo para hacer programas ms robustos. Adems existen herramientas que ayudan a manejarlas tal es el caso de los bloques tratar que encierran el cdigo que puede lanzar una excepcin y los bloques atrapar que lidian con las excepciones que surjan. Tambin existen tcnicas que el programador utiliza para conocer el posible funcionamiento del programa y detectar los errores que pueda contener.

SISTEMAS OPERATIVOS MULTIPROGRAMADOS

Sistema Operativo MultiprogramadoPublicado porGabrielen07:33

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware: el hardware con proteccin de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:Se solapa el clculo de unos trabajos con la entrada/salida de otros trabajos.Se pueden mantener en memoria varios programas.Se asigna el uso de la CPU a los diferentes programas en memoria.Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo que ste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados, los cuales cumplen con las siguientes funciones:Administrar la memoria.Gestionar el uso de la CPU (planificacin).Administrar el uso de los dispositivos de E/S.Cuando desempea esas tareas, el monitor residente se transforma

Sistemas operativos multiprogramados

Surge un nuevo avance en el hardware: el hardware con proteccin de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:Se solapa el clculo de unos trabajos con la entrada/salida de otros trabajos.Se pueden mantener en memoria varios programas.Se asigna el uso de la CPU a los diferentes programas en memoria.

Sistemas operativos de multiprogramacin (o Sistemas operativos de multitarea)

Soporta la ejecucin de dos o ms trabajos activos al mismo tiempo.Su objetivo es tener varias tareas en la memoria principal.

Las caractersticas de un Sistema operativo de multiprogramacin son las siguientes:

Mejora productividad del sistema y utilizacin de recursosMultiplexa recursos entre varios programasSoporta mltiples usuariosRequiere validacin de usuario para seguridad y proteccin

Estos sistemas operativos se caracterizan por tener mltiples programas activos, compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.

Sistemas Operativos Multiprogramados.Sistemas Operativos.

Soluciones a problemas de rendimiento.Surge un nuevo avance en el hardware: el hardware con proteccin de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento: Se solapa el clculo de unos trabajos con la entrada/salida de otros trabajos. Se pueden mantener en memoria varios programas. Se asigna el uso de la CPU a los diferentes programas en memoria.Sistemas Operativos Multiprogramados y funciones.Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo que ste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados, los cuales cumplen con las siguientes funciones: Administrar la memoria. Gestionar el uso de la CPU (planificacin). Administrar el uso de los dispositivos de E/S.Cuando desempea esas tareas, el monitor residente se transforma en un sistema operativo multiprogramado.

Un sistema operativo (cuyo acrnimo es SO) es un conjunto de programas destinados a permitir la comunicacin del usuario con un computador y gestionar sus recursos de manera eficiente. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la mquina desde los niveles ms bsicos.>Un sistema operativo se puede encontrar normalmente en la mayora de los aparatos electrnicos que podamos utilizar sin necesidad de estar conectados a una computadora y que utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la mquina y que sta cumpla con sus funciones (telfonos mviles, reproductores de DVD, auto radios... y computadoras)>>Clasificacin de los sistemas operativos.>>Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras, dependiendo del uso o de la aplicacin que se les daba. A continuacin se mostrarn diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus caractersticas:>>Sistemas operativos por lotes. >Sistemas operativos multiprogramacin. >Sistemas operativos multiusuario. >Sistemas operativos de tiempo compartido. >Sistemas operativos de tiempo real. >>Sistemas operativos por lotes>Los sistemas operativos por lotes requieren que la informacin est reunida en bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son procesados en el orden de admisin, segn el modelo de "primero en llegar primero en ser atendido". En estos sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el sistema operativo, y la otra se usa para cargar programas transitorios para su ejecucin. Cuando termina la ejecucin de un programa se carga un nuevo programa en la misma zona de memoria. >>Sistemas operativos multiprogramacin>Los sistemas de multiprogramacin son capaces de soportar dos o ms procesos concurrentes mltiples, permiten que residan al mismo tiempo en la memoria primaria las instrucciones y los datos procedentes de dos o ms procesos. Estos sistemas implican la operacin de multiproceso, para el manejo de la informacin. Se caracterizan principalmente por un gran nmero de programas activos simultneamente que compiten por los recursos del sistema, como el procesador, la memoria , y los "dispositivos de E/S". Estos sistemas monitorean el estado de todos los programas activos y recursos del sistema. >>Sistemas operativos multiusuario>Los sistemas operativos multiusuario permiten acceder simultneamente a un sistema de computadoras a travs de dos o ms terminales. Este tipo de sistema operativo es fundamental en el manejo de redes de computadoras actualmente. >>Sistemas operativos de tiempo compartido>Los sistemas operativos de tiempo compartido tratan de proporcionar un reparto equitativo de los recursos comunes para dar la impresin a los usuarios de que poseen una computadora independiente. En estos sistemas el administrador de memoria proporciona aislamiento y proteccin de los programas, ya que generalmente no tienen necesidad de comunicarse entre ellos. El control de E/S se encarga de proporcionar o retirar la asignacin a los dispositivos de forma que se preserve la integridad del sistema y se proporcione servicio a todos los usuarios. El administrador de archivos proporciona proteccin y control en el acceso de la informacin, dada la posibilidad de concurrencia y conflictos al tratar de acceder a los archivos. >>Sistemas operativos de tiempo real>Estos sistemas tienen como objetivo proporcionar tiempos ms rpidos de respuesta, procesar la informacin sin tiempos muertos. En estos sistemas el administrador de memoria es relativamente menos solicitado debido a que muchos procesos residen permanentemente en memoria. El administrador de archivos se encuentra normalmente en grandes sistemas de tiempo real y su objetivo principal es manejar la velocidad de acceso, ms que la utilizacin eficaz del almacenamiento secundario.

Sistemas Operativos de multiprogramacin (o Sistemas Operativos de multitarea).Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin.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 mquinas con ms de una UCP.Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea son las siguientes:Mejora productividad del sistema y utilizacin de recursos.Multiplexa recursos entre varios programas.Generalmente soportan mltiples usuarios (multiusuarios).Proporcionan facilidades para mantener el entorno de usuarios inndividuales.Requieren validacin de usuario para seguridad y proteccin.Proporcionan contabilidad del uso de los recursos por parte de los usuarios.Multitarea sin soprte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real.Sistemas multiprocesadores son sistemas multitareas por definicin ya que soportan la ejecucin simultnea de mltiples tareas sobre diferentes procesadores.En general, los sistemas de multiprogramacin se caracterizan por tener mltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.

Sistemas operativos multiprogramacin

Los sistemas de multiprogramacin son capaces de soportar dos o ms procesos concurrentes mltiples, permiten que residan al mismo tiempo en la memoria primaria las instrucciones y los datos procedentes de dos o ms procesos. Estos sistemas implican la operacin de multiproceso, para el manejo de la informacin. Se caracterizan principalmente por un gran nmero de programas activos simultneamente que compiten por los recursos del sistema, como el procesador, la memoria, y los "dispositivos de E/S". Estos sistemas monitorean el estado de todos los programas activos y recursos del sistema.

SPOOLERS

Hace aparicin el disco magntico con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del clculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line).

En el campo de la Informtica, el spooling (Simultaneous Peripheral Operations On-Line) se refiere al proceso mediante el cual la computadora introduce trabajos en un buffer (un rea especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando est listo.El spooling es til en caso de dispositivos que acceden a los datos a distintas velocidades. El buffer proporciona un lugar de espera donde los datos pueden estar hasta que el dispositivo (generalmente ms lento) los procesa. Esto permite que la CPU pueda trabajar en otras tareas mientras que espera que el dispositivo ms lento acabe de procesar el trabajo.La aplicacin ms comn del spooling es la impresin. En este caso, los documentos son cargados en un buffer, que habitualmente es un rea en un disco, y la impresora los saca de ste a su propia velocidad. El usuario puede entonces realizar otras operaciones en el ordenador mientras la impresin tiene lugar en segundo plano. El spooling permite tambin que los usuarios coloquen varios trabajos de impresin en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el siguiente.El uso de un almacenamiento intermedio permite que varios procesos en paralelo estn generando datos para el dispositivo, sin que se mezcle el resultado, ni que tengan que esperar a que finalice la operacin con el perifrico. En consecuencia se obtiene una comunicacin indirecta entre los programas que escriben los datos y los que los leen. Se suele usar este mecanismo cuando un dispositivo escribe datos a diferente velocidad de la que la lee el dispositivo receptor, lo cual permite que un dispositivo ms lento lo procese a su ritmo.Tambin se puede referir a un dispositivo de almacenamiento que incorpora un spool fsico, como una unidad de cinta.

Definicin de un spoolerUn spooler es una aplicacin cliente/servidor, el cual acepta uno o ms trabajos para ser impresos, conocidos dentro del mundo de impresin como jobs, los cuales son almacenados temporalmente en una lista y van siendo atendidos como fueron llegando, con el propsito de ser enviados a una impresora u otro spooler

CONCLUSIONES

Despes de realizar el informe se lleg a las siguientes conclusiones: Se logr conocer los pasos de las interrupciones y la importancia de la misma. Conoc las clases de excepciones. Aprend las caractersticas de los sistemas operativos multiprogramado. Se conoci el procedimiento spooler.

RECOMENDACIONES

Poner mucha atencin en las clases impartidas ya que nos ser de mucha utilidad en nuestro futuro profesional.

Seguir auto preparndonos en los temas tratados para que de esta forma adquirir ms conocimientos sobre el funcionamiento de un sistema operativo.

VENTAJAS

La ventaja del este procedimiento de interrupciones es que no se tiene que perder tiempo ejecutando continuamente rutinas para consultar el estado del perifrico.

DESVENTAJAS El inconveniente del procedimiento de interrupciones es que el dispositivo debe tener los circuitos electrnicos necesarios para acceder al sistema de interrupciones del computador.

BIBLIOGRAFA

http://es.wikipedia.org/wiki/Sistema_operativo#Interrupciones_y_excepcioneshttp://148.204.211.134/polilibros/portal/Polilibros/P_terminados/PolilibroFC/Unidad_V/Unidad%20V_2.htmhttp://computacion.cs.cinvestav.mx/~ameneses/pub/tesis/ltesis/node15.htmlhttp://tecnologia-sistoper.blogspot.com/2009/04/clases-de-excepciones.htmlhttp://es.wikipedia.org/wiki/Manejo_de_excepcioneshttp://boards5.melodysoft.com/FOROIRI2/so-multiprogramacion-nm-416.htmlhttp://www.monografias.com/trabajos5/sisop/sisop.shtml#clasi

Linux

Ventajas:

El mejor costo del mercado, gratuito o un precio simbolico por el cd.Tienes una enorme cantidad de software libreparaeste sistemaMayorestabilidadpor algo lo usan en servidores de alto rendimientoEntorno grafico (beryl) mejor que el aero de windowsExisten distribuciones de linux para diversos tipos de equipo, hasta para maquinas de 64 bits.Las vulneralidades son detectadas y corregidas ms rapidamente que cualquier otro sistema operativo.en cuanto a ventajas, creo que las principales son: que es gratuito, de cdigo abierto, en cuanto a seguridad, pues es casi lo mismo que mac, ya que los dos nacieron de Unix, la cantidad de distribuciones para satisfacer la necesidad de cualquier persona, personalizable a mas no poder, un manejo de recursos bastante eficiente, seguridad, es realmente multiusuario, en fin, creo que no terminaria, pero eso es lo mas importante

Desventajas:

Para algunas cosas debes de saber usar LunixLa mayoria de los ISP no dan soporte para algo que no sea windows (ignorantes).No Existe mucho software comercial.Muchos juegos no corren en linux.en cuanto a sus desventajas creo que seria, mmm, la mala idea que tienen las personas en cuanto a su dificultad, a lo mejor el proceso de instalacion es mas complejo y algunos dispositivos y programas deben de ser instalados desde consola, aunque, no es gran cosa

Windows

Ventajas:

Es ms conocidoEs el que tiene ms software desarrolladolas ventajas que tiene es que es sencillo de usar, o eso se rumora ah y la cantidad de programas y juegos, casi todos tienen version para win.Desventajas:

El costo es muy altoLas nuevas versiones requieren muchos recursosLa mayoria de los virus estan echos para winPuedes tener errores de compatibilidad en sistemas nuevos.Historicamente es ms inestable de los 3En cuanto a desventajas, son casi inumerables, ineficiencia del codigo, altos requerimientos y poco desempeo, virus, de paga, no es posible modificar casi nada, es decir, es de codigo cerrado, parches para corregir cosas que debieron ya ser corregidas y que al final generan mas problemas de los que solucionan

Mac

Ventajas:

mejor interfaz grafica del mercadoIdeal para diseo grafico.Es muy estableEn cuanto a sus ventajas, esta la seguridad, el desempeo, graficamente es mejor, utilizacion de recursos al maximo

Desventajas:

Costoso (aunque viene incluido con la maquina)Existe poco software para este sistema operativo.Es ms complicado encontrar gente que la pueda arreglar en caso de fallas.En cuanto a las desventajas es que es de "paga" y de codigo cerrado, aunque esto es entre comillas, ya que para poder usarlo a la perfeccion necesitas una mac, la cantidad de programas es algo limitada, aunque se pueden emular.