Anda di halaman 1dari 12

DEFINICION

De Wikipedia, la enciclopedia libre Saltar a: navegacin, bsqueda

Vector de interrupciones

En informtica el vector de interrupciones es un vector que almacena la direccin de atencin a la interrupcin. En muchas arquitecturas de computacin tpicas, los vectores de interrupcin se almacenan en una tabla en una zona de memoria, la llamada tabla de vectores de interrupcin, de modo que cuando se atiende una peticin de interrupcin de nmero n, el sistema, tras realizar eventualmente algunas tareas previas (tales como salvar el valor de ciertos registros) transfiere el control a la direccin indicada por el elemento nsimo de dicha tabla. Usualmente, en las arquitecturas ms tpicas, la transferencia de control se efectuar de modo anlogo a una llamada a funcin a nivel de mquina, almacenndose en una pila el estado actual del registro contador de programa, que ser recuperado por una instruccin mquina de retorno de interrupcin, que restaurar el estado correspondiente a la ejecucin normal de programa forzando la ejecucin de la siguiente instruccin.
FUENTE.. http://es.wikipedia.org/wiki/Vector_de_interrupciones

VECTOR DE INTERRUPCIONES Panda Software Glosario Es una tcnica o utilizada para que un ordenador gestione correctamente las interrupciones que se solicitan al microprocesador. As se facilita al microprocesador la direccin de memoria a la que debe acceder para dar servicio a la dicha interrupcin.
FUENTE. http://diccionario.babylon.com/vector%20de%20interrupciones/

DIRECCION DELOS VECTORES

Funcionamiento del mecanismo de interrupciones


Cada dispositivo que desea comunicarse con el procesador por interrupciones debe tener asignada una lnea nica capaz de avisar a ste de que le requiere para una operacin. Esta lnea es la llamada IRQ ("Interrupt ReQuest", peticin de interrupcin). Las IRQ son lneas que llegan al controlador de interrupciones, un componente hardware dedicado a la gestin de las interrupciones, y que puede estar integrado en el procesador principal o ser un circuito separado conectado al procesador principal. El controlador de interrupciones debe ser capaz de habilitar o inhibir lneas de interrupcin (operacin llamada comnmente enmascarar por la utilizacin de una mascara ), y establecer prioridades entre las distintas interrupciones habilitadas.

Cuando varias lneas de peticin de interrupcin se activan a la vez, el controlador de interrupciones utilizar estas prioridades para escoger la interrupcin sobre la que informar al procesador principal. Sin embargo hay interrupciones que no se pueden enmascarar o deshabilitar, las conocidas como interrupciones no emascarables o NMI. Un procesador principal (sin controlador de interrupciones integrado) suele tener una nica lnea de interrupcin llamada habitualmente INT. Esta lnea es activada por el controlador de interrupciones cuando tiene una interrupcin que servir. Al activarse esta lnea, el procesador consulta los registros del controlador de interrupciones para averiguar qu IRQ es la que ha de atender. A partir del nmero de IRQ busca en el vector de interrupciones qu rutina debe llamar para atender una peticin del dispositivo asociado a dicha IRQ. Las rutinas de interrupcin generalmente toman un pequeo tiempo de ejecucin y la mayora no pueden ser interrumpidas cuando se estn atendiendo, porque al entrar en ellas se almacena el estado de los registros en una pila y si se interrumpen muchas veces, la pila se puede desbordar.

Mecanismo de interrupciones en un PC
Un ordenador PC tpico dispone en su placa base de un controlador de interrupciones 8259 de Intel o de un circuito integrado anlogo. Este dispositivo electrnico dispone de hasta 16 lneas IRQ, numeradas desde el 00 hasta el 15. En las nuevas placas base este circuito est integrado junto con el resto del chipset. Al mismo tiempo, interrupcin funciona como catalizador de un sistema en desarrollo a travs de diversas formas de ser responsable. Un computador debe disponer de los elementos suficientes para que el programador tenga un control total sobre todo lo que ocurre durante la ejecucin de su programa. La llegada de una interrupcin provoca que la CPU suspenda la ejecucin de un programa e inicie la de otro

(rutina de servicio de interrupcin). Como las interrupciones pueden producirse en cualquier momento, es muy probable que se altere la secuencia de sucesos que el programador haba previsto inicialmente. Es por ello que las interrupciones deber controlarse cuidadosamente. De esta forma, podemos resumir todas las etapas seguidas ante una interrupcin en un sistema dotado de vectorizacin. Estos pasos son los siguientes: 1.- El dispositivo enva la solicitud de interrupcin mediante la lnea INTR. 2.- El procesador termina la ejecucin de la instruccin en curso y analiza la lnea de peticin de interrupcin, INTR. Si esta lnea no est activada continuar normalmente con la ejecucin de la siguiente instruccin, en caso contrario se pasa a la etapa siguiente. 3.- La CPU reconoce la interrupcin, para informar al dispositivo de ello, activa la lnea de reconocimiento de interrupcin, INTA. 4.- El dispositivo que reciba la seal INTA enva el cdigo de interrupcin por el bus de datos. 5.- La CPU calcula la direccin de memoria donde se encuentra la rutina de servicio de interrupcin (vector de interrupcin). 6.- El estado del procesador, y en particular el contador de programa, se salva en la pila de la misma forma que en una llamada a procedimiento. 7.- La direccin de la rutina de servicio de interrupcin se carga en el contador de programa, con lo que se pasa el control a la citada rutina. 8.- La ejecucin contina hasta que el procesador encuentre la instruccin de retorno de interrupcin. 9.- Cuando se encuentre la instruccin de retorno de interrupcin se restaura el estado del procesador, en especial el contador de programa, y se devuelve el control al programa interrumpido. Normalmente la primera instruccin de la rutina de servicio tendr como fin desactivar las interrupciones para impedir el anidamiento, por otra parte, antes de devolver el control al programa interrumpido se volvern a habilitar si es necesario. Las interrupciones constituyen quiz el mecanismo ms importante para la conexin del microcontrolador con el mundo exterior, sincronizando la ejecucin de programas con acontecimientos externos. El funcionamiento de las interrupciones es similar al de las subrutinas de las cuales se diferencian principalmente en los procedimientos que las ponen en marcha. As como las subrutinas se ejecutan cada vez que en el programa aparece una instruccin , las interrupciones se ponen en marcha al aparecer en cualquier instante un evento externo al programa, es decir por un mecanismo hardware. El PIC16C84/PIC16F84 dispone de 4 posibles fuentes de interrupcin: 1. 2. 3. 4. Activacin del pin RB0/INT Desbordamiento del temporizador TMR0 Cambio de estado en uno de los 4 pines de ms peso (RB7:RB4) del PORTB Finalizacin de la escritura en la EEPROM de datos.

Cuando se produce cualquiera de los sucesos indicados anteriormente, se origina una peticin de interrupcin, que si se acepta, guarda el valor del PC actual en la Pila, pone a cero el bit GIE (Global Interrupt Enable), lo que prohbe cualquier otra interrupcin y se carga el PC con el valor 0004H , que es la posicin del vector de interrupcin, y comienza a ejecutarse el programa de atencin a la interrupcin que se encuentra a partir de esta direccin. Cada causa de interrupcin est controlada mediante dos bit. Uno de ellos acta como sealizador o flag que indica si se ha producido o no la interrupcin, y la otra funciona como bit de permiso o prohibicin de la interrupcin en s, tal y como se muestra en la siguiente figura.

Los bits de control que se encuentran en el registro INTCON (0Bh 8Bh) habilitan y configuran las interrupciones. Para que se pueda producir interrupcin por alguna de estas fuentes, el bit correspondiente debe estar a 1, mientras que los bits sealizadores o flags que estn en los registros INTCON y EEDATA (08h) informan si se ha producido la interrupcin cuando se ponen a 1. Cualquiera de las interrupciones tambin puede sacar al procesador del modo de reposo. El bit GIE (Global Interrupt Enable) es el de activacin global del permiso de interrupcin, y se borra automticamente cuando se reconoce una interrupcin para evitar que se produzca ninguna otra mientras se est atendiendo a la primera. Al retornar de la interrupcin con una instruccin RETFIE, el bit GIE se vuelve a activar ponindose a 1. Para el resto de los bit de indicacin de interrupcin (es decir, el resto de los flags) no se ha previsto mecanismo de puesta a cero, por lo que es el programa de atencin a la interrupcin el que debe realizar el tratamiento de la correspondiente interrupcin y adems, el que debe poner el o los flags de indicacin de interrupcin a 0. De no ser as, no se podr salir de la rutina de atencin a la interrupcin. El microcontrolador solo dispone de un vector de interrupcin en la direccin 0004h; esto quiere decir que, sea cual sea la fuente de la interrupcin, el PC se carga con 0004h. Por lo tanto, el programa de atencin a la interrupcin debe encargarse de comprobar el estado de cada uno de los flags para saber cual es el dispositivo que produce la interrupcin y actuar segn el caso http://www.monografias.com/trabajos37/memoria-e-interrupcion/memoria-einterrupcion2.shtml

INICIALIZACIN DE LA TABLA DE VECTORES DE INTERRUPCIN La tabla de vectores es en donde se almacenan las direcciones de las funciones o rutinas que atendern a cada interrupcin . Es decir, que cuando se produce una interrupcin, se transfiere el control del sistema a la rutina situada en la direccin indicada en la posicin de memoria especificada en la posicin correspondiente de este vector. La inicializacin incluye cargar en la memoria RAM ciertas tablas y programas muy bsicos, imprescindibles para el manejo de muy bajo nivel del hardware. Por ejemplo, la carga en memoria baja de los vectores de interrupcin, de forma que cuando ocurra una interrupcin se sepa dnde encontrar la rutina adecuada. La tabla de vectores de interrupcin es una estructura que se crea durante la inicializacin del ordenador y se coloca, en el principio de nuestra memoria (segmento 0 y desplazamiento 0). Dicha estructura ocupa 1024 Bytes, ya que dispone de 256 interrupciones. Cada una, usa 4bytes de este vector: 2bytes para el offset y otros 2bytes para el segmento en que se encuentra la funcin. Por tanto, en total la tabla ocupa 1KB. Adems, esta estructura almacena la direccin en memoria de las distintas rutinas que van ligadas a las distintas interrupciones. Cada direccin est formada por dos valores de 16 bits: un Contador de Programa (PC) y un Segmento de Cdigo (CS). Cuando invocamos una interrupcin mediante software o mediante hardware, la tabla es accesada por los valores de PC y CS correspondientes y son usados para especificar la direccin hacia donde ser enviada la ejecucin. En los PCs estndar se pueden manejar un total de 256 interrupciones distintas, y cada una requiere un programa de control especial. Este programa se sita en memoria RAM o en la ROM-BIOS, pero en cualquier caso, en los primeros 1024 octetos (1 KB) de la memoria RAM (direcciones 000-400h) se carga una tabla de vectores de interrupcin de 256 punteros de 4 bytes. Cada puntero de la tabla seala la direccin de memoria donde comienza el programa de control correspondiente a la interrupcin de igual nmero http://www.buenastareas.com/ensayos/Tabla-De-Vectores/4599861.html

Los Vectores de Interrupcin


Cada interrupcin est identificada por un Vector de Interrupcin, que no es otra cosa que una direccin particular en la memoria FLASH. Todos los Vectores estn ubicados en posiciones consecutivas de la memoria FLASH y forman la denominada Tabla de Vectores de Interrupcin. El RESET no es una interrupcin pero su direccin 0x0000 tambin se conoce como Vector de Reset. Por defecto, la Tabla de Vectores de Interrupcin est ubicada en las primeras posiciones de la memoria, tal como se ve abajo. Solo cuando se habilita el uso de la Seccin de Boot Loader toda la tabla se desplazar al inicio de dicha seccin. Enseguida se presenta una tabla con las 35 interrupciones posibles en los ATmegaXX4. Debemos recordar que solo los ATmega1284 tienen el Timer3 y por tanto las 4

interrupciones relacionadas con el Timer3 no estarn disponibles en los otros megaAVR de esta serie. Aprenderemos de a poco y para empezar en este captulo nos ocuparemos de las 7 interrupciones externas, desde INT0 hasta PCINT3. Las restantes sern estudiadas en sus mdulos respectivos. Tabla Num Nombre de Vector de Interrupcin RESET INT0 INT1 INT2 PCINT0 PCINT1 PCINT2 PCINT3 WDT TIMER2_COMPA TIMER2_COMPB TIMER2_OVF TIMER1_CAPT TIMER1_COMPA TIMER1_COMPB TIMER1_OVF TIMER0_COMPA TIMER0_COMPB TIMER0_OVF SPI_STC USART0_RX USART0_UDRE USART0_TX ANALOG_COMP ADC EE_READY TWI SPM_READY

Num Vector

Direccin de Programa

Fuente de interrupcin External Pin, Power-on Reset, Brown-out Reset, Watchdog Reset, and JTAG AVR Reset External Interrupt Request 0 External Interrupt Request 1 External Interrupt Request 2 Pin Change Interrupt Request 0 Pin Change Interrupt Request 1 Pin Change Interrupt Request 2 Pin Change Interrupt Request 3 Watchdog Time-out Interrupt Timer/Counter2 Compare Match A Timer/Counter2 Compare Match B Timer/Counter2 Overflow Timer/Counter1 Capture Event Timer/Counter1 Compare Match A Timer/Counter1 Compare Match B Timer/Counter1 Overflow Timer/Counter0 Compare Match A Timer/Counter0 Compare match B Timer/Counter0 Overflow SPI Serial Transfer Complete USART0 Rx Complete USART0 Data Register Empty USART0 Tx Complete Analog Comparator ADC Conversion Complete EEPROM Ready 2-wire Serial Interface Store Program Memory Ready

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

0x0000 0x0002 0x0004 0x0006 0x0008 0x000A 0x000C 0x000E 0x0010 0x0012 0x0014 0x0016 0x0018 0x001A 0x001C 0x001E 0x0020 0x0022 0x0024 0x0026 0x0028 0x002A 0x002C 0x002E 0x0030 0x0032 0x0034 0x0036

Num Vector 29 30 31 32 33 34 35

Direccin de Programa 0x0038 0x003A 0x003C 0x003E 0x0040 0x0042 0x0044

Tabla Num Nombre de Vector de Interrupcin USART1_RX USART1_UDRE USART1_TX TIMER3_CAPT TIMER3_COMPA TIMER3_COMPB TIMER3_OVF

Fuente de interrupcin USART1 Rx Complete USART1 Data Register Empty USART1 Tx Complete Timer/Counter3 Capture Event Timer/Counter3 Compare Match A Timer/Counter3 Compare Match B Timer/Counter3 Overflow

Para entender cmo funciona el mecanismo de las interrupciones en bajo nivel, recordemos que el Contador de Programa es un registro que dirige cada una de las instrucciones que ejecuta el CPU. Pues bien, al dispararse la interrupcin el hardware guardar en la Pila el valor actual del Contador de Programa y lo actualizar con el valor del Vector de Interrupcin respectivo, de modo que el CPU pasar a ejecutar el cdigo que se encuentre a partir de esa direccin. Al final del cdigo de la interrupcin debe haber una instruccin de retorno que restaure el Contador de Programa con el valor que se haba guardado en la Pila. La instruccin es reti y la pone el compilador. Si se llegara a producir el evento excepcional en que se disparen dos o ms interrupciones al mismo tiempo, se ejecutarn las interrupciones en orden de prioridad. Tiene mayor prioridad la interrupcin cuyo Vector se ubique ms abajo, es decir, entre todas, la interrupcin INT0 tiene siempre las de ganar. La estructura y caractersticas de la Tabla de Vectores de Interrupcin pueden variar entre las diferentes familias de megaAVR y a veces entre diferentes partes de una misma serie. Por ejemplo, los megaAVR de la serie ATmegaXX8 no tienen la interrupcin externa INT2 y tampoco las interrupciones PCINT3 (porque les falta el puerto A). Adems, el ATmega48 no dispone de la funcionalidad de Boot Loader, as que este AVR no puede desplazar su Tabla de Vectores de Interrupcin. La ausencia de algunas interrupciones hace que los otros Vectores cambien de valor. En cualquier caso, para nosotros, los programadores en C o Basic, es suficiente tener en cuenta los nombres de los Vectores de Interrupcin, que en la tabla de arriba se resaltan con enlaces en en azul. Los nombres de los Vectores de Interrupcin presentados corresponden al datasheet y no necesariamente son idnticos a los que utilizan los compiladores AVR GCC o AVR IAR C. Estos nombres se encuentran definidos en los archivos de dispositivo de cada AVR, ubicados en la carpeta include de cada compilador. La instalacin por defecto de AVR GCC con Atmel Studio 6 en Windows 7 marca la ruta C:\Program Files (x86)\Atmel\Atmel

Studio 6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\avr\include\avr. All los puedes ubicar, y de hecho es recomendable examinarlos de vez en cuando. Pero si por el momento deseas ahorrarte el trabajo te dir que la nica diferencia es el apndice _vect. Es decir, en todos los archivos de dispositivo de AVR IAR C y de AVR GCC (en sus versiones actuales) los nombres de los Vectores de Interrupcin son los mismos que aparecen en el datasheet pero con el aadido _vect, como se muestra en la siguiente tabla de ejemplo. Est de ms decir que en nuestros programas debemos usar la forma con _vect. Tabla Nombre de Vector de Interrupcin en datasheet Nombre de Nombre de Vector de Interrupcin Vector de Interrupcin en datasheet en archivo de dispositivo INT0 INT0_vect INT1 INT1_vect INT2 INT2_vect PCINT0 PCINT0_vect PCINT1 PCINT1_vect PCINT2 PCINT2_vect PCINT3 PCINT3_vect TIMER0_COMPA TIMER0_COMPA_vect TIMER0_COMPB TIMER0_COMPB_vect TIMER0_OVF TIMER0_OVF_vect USART0_RX USART0_RX_vect USART0_UDRE USART0_UDRE_vect USART0_TX USART0_TX_vect Lamentablemente para quienes programan en CodeVisionAVR, Pavel Haiduc decidi no s por qu usar otros nombres para los Vectores de Interrupcin. No solo son diferentes de los indicados en los datasheets sino que la Tabla de Vectores empieza en 2 y no en 1 (sin incluir el Vector de reset, claro est). As que ellos no tendrn ms remedio que recurrir a los archivos de dispositivo de sus AVR, los cuales se hallan en la fcilmente ubicable carpeta inc creada por CodeVisionAVR en su directorio de instalacin.
http://www.cursomicros.com/avr/interrupciones/funciones-de-interrupcion-isr.html

MODIFICACION DE LOS VECTORES Modificacion del vector de interrupcion


El Turbo C cuenta con dos funciones para manejo de vectores de interrupci on: una para leer el valor actual de un vector y otra para modificarlo. La forma de proceder correcta sera hacer que el vector de interrupcion correspondiente apunte a nuestra funcion, salvando previamente el valor original de dicho vector

2 void interrupt (*viejoint1C) (void); disable(); viejoint1C=getvect(0x1C); setvect(0x1C,FuncionPeriodica); enable(); para que cuando acabe el programa se pueda restaurar su valor: disable(); setvect(0x1C,viejoint1C); enable(); Por supuesto, hay que deshabilitar las interrupciones para evitar que se produzca una durante el cambio, mientras el vector de interrupcion esta en un estado indefinido (la escritura del nuevo vector no es atomica). Aunque el vector de interrupcion del temporizador 0 es el 0x08 (correspondiente a la IRQ 0), es mejor usar el 0x1C, que es llamado desde la 0x08, sobre todo porque ello evita tener que realizar ciertas operaciones necesarias en el controlador de interrupciones (PIC 8259). http://isa.uniovi.es/~cuadrado/archivos/controldigitalpc.pdf

PROGRAMAS RECIDENTES
Un programa residente es un programa de software que, tras ser cargado, permanece parcial o totalmente en memoria RAM al finalizar su ejecucin

http://www.alegsa.com.ar/Dic/programa%20residente.php

Programa residente
En informtica, un mdulo residente o programa residente permanece en memoria mientras se mantenga encendido el ordenador. Un programa de este tipo puede ser un antivirus. De esta propiedad deriva el trmino proteccin residente.

http://es.wikipedia.org/wiki/Programa_residente

Qu es un programa residente? Un programa residente es un programa que permanece en la memoria del ordenador, por eso hablamos de programas residentes en memoria. Cualquier aplicacin que uses en tu ordenador (juego, p2p, editor de imagenes, word, etc) ocupa cierta cantidad de memoria pero cuando cierras el programa la memoria se libera y puede ser utilizada para otro fin. Los programas residentes permanecen todo el tiempo en memoria, aunque no ests utilizndolo en ese momento y por tanto ocupan permanentemente una porcin de la memoria de tu ordenador. Para que quede un poco ms claro digamos que por ejemplo cuando dejas de jugar con uno de tus juegos ste libera completamente la memoria pero si usas el antivirus para analizar

un archivo, despus de haberlo analizado el antivirus permanece en memoria protegiendo tu ordenador. Para que sirven los programas residentes en memoria? Cada vez que enciendes el ordenador los programas residentes en memoria, como el antivirus, se cargan junto con el sistema operativo de forma que estos programas estn disponibles desde el primer momento. En el caso del antivirus sto permite que el sistema est protegido desde que el ordenador arranca sin que tengas tu que abrir el antivirus cada vez que enciendes el ordenador.

Como ves es bueno que programas como el antivirus arranquen automaticamente al encender el ordenador y que permanezcan en memoria para permitir su uso continuo. Otros programas que tambin residen en memoria tienen como finalidad acelerar la carga de una aplicacin, por ejemplo el programa Acrobat Reader, que se utiliza para abrir archivos PDF, reside parcialmente en memoria a la espera de que tu quieras abrir un archivo PDF, de esta forma cuando tu abres uno de estos archivos el programa ya est cargado parcialmente y la carga se realiza ms rpidamente (si quieres un sustituto del Acrobat Reader piensa en Foxit PDF). Por otro lado puede ocurrir que tengas muchos programas instalados en tu ordenador, algo bastante normal, y que muchos de esos programas quieran cargarse parcialmente al inicio para estar disponibles de una forma ms rpida, esto conlleva que el arranque del ordenador se ralentice enormemente (uno de los problemas de un ordenador que va lento es ste) y que todos estos programas residentes en memoria consuman gran parte de la memoria disponible en el sistema. Por lo tanto lo que en principio puede parecer un beneficio termina siendo un inconveniente ya que se ralentiza el ordenador, se aumenta el consumo de la CPU innecesariamente y esto ltimo adems puede acarrear un calentamiento excesivo del procesador (sobre todo en verano).

Por cierto, si te fijas en la esquina inferior derecha de tu escritorio (en Windows XP) vers un montn de iconos, cada uno de ellos representa un programa que arranc al inicio y que permanece residente en la memoria. Ya hemos dicho que algunos son imprescindibles como el antivirus pero otros solo consumen recursos innecesariamente. Por ejemplo supn que instalas el Winamp porque los fines de semana te gusta escuchar msica con el ordenador, pero entre semana ests trabajando con tu ordenador y no lo utilizas, al instalar el Winamp ste arranca siempre junto con el ordenador de forma que permanece en memoria todo el tiempo que tu ordenador est encendido a la espera de que utilices el reproductor, pero tu solo lo usas los fines de semana as que por que tener en memoria ese programa si no lo vas a usar?. Por otro lado aunque utilices el programa todos los das la diferencia entre arrancarlo desde cero a arrancarlo desde la memoria es mnima y sin embargo todo el tiempo que no utilices el reproductor estar ocupando recursos. No sera mejor impedir que el programa se inicie con el arranque del PC y evitar que resida en memoria?. Como impedir que un programa se cargue en memoria desde que arranca el ordenador Para impedir que un programa se cargue en memoria y arranque junto al sistema operativo tenemos varios mtodos pero nosotros vamos a ver tan solo uno que para mi es el ms fcil.
http://www.vinagreasesino.com/articulos/los-programas-residentes-que-son-para-que-sirven-ycomo-desactivar-los-programas-residentes-en-memoria.php

Programas residentes: mas vale solo que mal acompaado


alt-tab-com-ar es_ES
Subscribirme

Primera ley de las aplicaciones residentes(tm): Si est cargada en memoria, no tiene una ventana a la vista y no es el antivirus, lo mas probable es que no la necesites. Cuando hablo de aplicaciones residentes me estoy refiriendo a todo lo que se inicia automticamente al encender la PC sin siquiera habernos preguntado pero que no es parte del sistema operativo. En el 95% de los casos, estas aplicaciones residentes no son el

programa en si mismo si no que son ayudantes de los mismos: Actualizadores para que el software pueda llamar a casa y comprobar si hay una nueva versin disponible, detectores del comportamiento del usuario para presentarle la seccin adecuada del programa en funcin de eso, precargadores para que el programa en cuestin tenga ciertas libreras en la memoria ram y as acelerar el proceso de apertura inicial del mismo, sensores de control de dispositivos internos o externos para poder mostrarnos en pantalla el estado de un atasco de papel en la impresora por ejemplo -como si el clac clac clac y la sarta de leds parpadeantes no fueran suficientes- o el estado de la antena inalmbrica del adaptador Wi-Fi o Bluetooh, etctera. Salvando el antivirus para los usuarios de Windows -que son la inmensa mayora-, el comn de la gente no necesita de ninguna de estas aplicaciones funcionando en modo residente, es decir, que estn ah pero no estn. Se inician junto con tu sistema operativo por que algn programa as lo sugiere o requiere -por que la mayora ni preguntan, dan por sentado que es mejor as- pero no dan la cara. No tienen una ventana visible, a lo sumo las mas osadas exhibicionistas puede que enseen un cono en el System Tray, la zona de notificacin del sistema operativo, al lado del reloj usualmente, abajo a la derecha en Windows, arriba a la derecha -siempre haciendo la contra- en Linux, al menos en la gran mayora de los entornos de escritorio. Voy a dejar para el final y un poco de lado a Linux por que es mucho mas cauto, Beningno quizs?, a la hora de recargar al sistema operativo de aplicaciones residentes as que centrndonos en Windows exclusivamente, esta entre otras es -junto con algn que otro malware que pudiera haberte infectado y en mucho menor medida por la fragmentacin del sistema de archivos- la causa por la cual tu PC se vuelve mas lenta con el uso sostenido en el tiempo. Por eso se achancha, anda a pedales, se arrastra y cualquier otro adjetivo calificativo/despectivo que se te pueda ocurrir.