Desarrollo de Juegos de Computadoras

Desarrollo de Juegos de Computadoras 

Cómo construir un juego de computadora en una hora y encontrar la fuente de la eterna construcción de los juegos de computadoras



¿Por qué empresas que empiezan con lenguajes modernos se vuelven a Java?

http://www.genbetadev.com/java-j2ee/por-que-empresas-que-empiezan-con-lenguajes-modernos-se-vuelven-a-java

Mientras el lenguaje más utilizado del mundo cumplió ya sus 20 años, hay muchas voces en el mundo del desarrollo que reniegan de Java.
Es cierto que Java es un lenguaje antiguo, que para muchas tareas es extremadamente verboso y que tiene problemas de base que uno de sus creadores, Joshua Bloch, desgranó en su libro.
Entonces, ¿por qué tantas compañías vuelven atrás y abandonan lenguajes mucho más modernos para utilizar Java? Te voy a presentar unos cuantos ejemplos y veremos si tienen algo en común
http://www.genbetadev.com/java-j2ee/por-que-empresas-que-empiezan-con-lenguajes-modernos-se-vuelven-a-java

Sistemas Operativos - Gestión de multiprocesadores

Resumen del capítulo diez del libro Sistemas Operativos 5ta edición de William Stallings El sistema operativo debe cumplir sus objetivos, una correcta gestión de los procesos en un ambiente de multiprocesadores

¿Qué son los cortafuegos?

Un muro cortafuegos (firewall) es un software o hardware de un sistema informático o una red de dispositivos de comunicaciones o computadoras. Está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas.



Programando un temporizador con Java - Medir un tiempo determinado y notificar que el tiempo se ha agotado en JDeveloper 11g

Programando un temporizador con Java 

Medir un tiempo determinado y notificar que el tiempo se ha agotado en JDeveloper 11g 

Un temporizador es un dispositivo programado que permite medir un tiempo determinado: relojes de arena, relojes electrónicos y relojes programados por software. Cuando trascurre el tiempo configurado suena una alarma o indicador. Puede ser usado en la cocina, alarmas de seguridad, laboratorios de análisis clínicos, desarrollo de juegos para computadoras y distintos artefactos domésticos y de la industria electrónica. La mayor parte de los aparatos electrónicos, teléfonos móviles y ordenadores personales cuentan con una función para medir el tiempo temporizado.

Aprender a construir software en un día con Java

Caso práctico de desarrollo de software

Aprender a construir software en un día

Aprender a desarrollar sistemas informáticos software orientado a objetos en un día con Java

La importancia de saber particionar tablas a la hora de buscar trabajo como freelancer

Trabajando como Freelancer con MySQL y PHP

Una empresa realiza la siguiente publicación de ofrecimiento de empleo: 10/010/2017 - Empresa SistemasDos. Se busca programador web para realizar un sistema en línea de gestión de clientes, se entregará el desarrollo del sistema a la persona que dé la mejor solución a los siguientes requisitos:
1. Realizar un informe por pantalla de los correos de una persona dado su DNI
2. Mostrar el nombre del usuario separado del servidor 

Trabajando como Freelancer

Trabajando como Freelancer

Una empresa realiza la siguiente publicación de ofrecimiento de empleo: 10/08/2016 - Empresa SistemaDos. Se busca programador web para realizar un sistema web de gestión de clientes, se entregará el desarrollo del sistema a quien dé la mejor solución a la tarea de llevar el registro de los clientes y sus correos electrónicos. Los postulantes deberán presentar la solución en tres días a partir de la publicación del ofrecimiento de empleo.

Trabajando con clases Java y Java UML (Lenguaje Unificado de Modelado)

Comprendiendo el concepto de herencia y polimorfismo con un ejemplo

• Diagramas UML Java, diagramas generadores de código Java
• Reutilización con herencia y polimorfismo, extends y métodos constructores()
• Crear objetos polimórficos usando new y métodos constructores()

Libros gratuitos sobre programación

Librosweb es el sitio web hispano de referencia sobre diseño y programación. La mayor colección de libros, tutoriales, vídeos, presentaciones y otros recursos para diseñadores y programadores.
 

Diseño Ágil con TDD

Libro de desarrollo de software dirigido por las pruebas en castellano


Libro: Diseño Ágil con TDD - Carlos Blé

¿Qué es el Desarrollo Ágil?

El desarrollo ágil de software es un enfoque para la toma de decisiones en los proyectos de desarrollo de software,  el trabajo es realizado mediante la colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo.
Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño, codificación, pruebas y documentación todo al mismo tiempo y de forma colaborativo entre el cliente y el proceso de desarrollo, se valoriza más a las personas que desarrollan que al proceso de desarrollo. Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. La mayoría de los equipos ágiles están localizados en una simple oficina abierta de espacios grandes. Los métodos ágiles también enfatizan que el software funcional es la primera medida del progreso. Es muy importante la entrega rápida, dos o cuatro semanas, al cliente. Promueve la documentación en línea y cambiante constantemente. La premisa principal es adaptarse al cambio y progresar en el desarrollo del producto software final.

Sistema Operativo I - TPN° 4 y 5

Preguntas

 Trabajo práctico N° 4 y 5


4.1. La Tabla 3.5 enumera los elementos típicos que se encuentran en un bloque de control de proceso para un sistema operativo monohilo. De éstos, ¿cuáles deben pertenecer a un bloque de control de hilo y cuáles deben pertenecer a un bloque de control de proceso para un sistema multihilo?
4.2. Enumere las razones por las que un cambio de contexto entre hilos puede ser más barato que un cambio de contexto entre procesos.
4.3. ¿Cuáles son las dos características diferentes y potencialmente independientes en el concepto de proceso?
4.4. Dé cuatro ejemplos generales del uso de hilos en un sistema multiprocesador monousuario.
4.5. ¿Qué recursos son compartidos normalmente por todos los hilos de un proceso?
4.6. Enumere tres ventajas de los ULT sobre los KLT.
4.7. Enumere dos desventajas de los ULT en comparación con los KLT.
4.8. Defina jacketing (revestimiento).
4.9. Defina brevemente las diversas arquitecturas que se nombran en la Figura 4.8.
4.10. Enumere los aspectos principales de diseño de un sistema operativo SMP.
4.11. Dé ejemplos de servicios y funciones que se encuentran en un sistema operativo monolítico típico que podrían ser subsistemas externos en un sistema operativo micronúcleo.
4.12. Enumere y explique brevemente siete ventajas potenciales de un diseño micronúcleo en comparación con un diseño monolítico.
4.13. Explique la desventaja potencial de rendimiento de un sistema operativo micronúcleo.
4.14. Enumere cuatro funciones que le gustaría encontrar incluso en un sistema operativo micronúcleo mínimo.
4.15. ¿Cuál es la forma básica de comunicación entre procesos o hilos en un sistema operativo micronúcleo?

TPN 5

5.1. Enumere cuatro aspectos de diseño para los cuales el concepto de concurrencia es relevante.
5.2. ¿En qué tres contextos aparece la concurrencia?
5.3. ¿Cuál es el requisito básico para la ejecución de procesos concurrentes?
5.4. Enumere tres grados de percepción entre procesos y defina brevemente cada uno.
5.5 ¿Cuál es la diferencia entre procesos en competencia y procesos cooperantes?
5.6. Enumere los tres problemas de control asociados con los procesos en competencia y defina brevemente cada uno.
5.7. Enumere las condiciones necesarias para la exclusión mutua.
5.8. ¿Qué operaciones pueden ser realizadas sobre un semáforo?
5.9. ¿Cuál es la diferencia entre semáforos binarios y semáforos generales?
5.10. ¿Cuál es la diferencia entre semáforos fuertes y semáforos débiles?
5.11. ¿Qué es un monitor?
5.12. ¿Cuál es la diferencia entre bloqueante y no bloqueante con respecto a los mensajes?
5.13. ¿Qué condiciones están asociadas generalmente con el problema lectores/escritores?
 

Responder las siguiente preguntas sobre desarrollo de software


  1. ¿Qué es el proceso software y en qué consiste?
  2. ¿Defina que es el análisis, diseño e implementación?
  3. Explique el ciclo de vida prototipo y prototipo desechable.
  4. Explique las diferencias del enfoque de desarrollo evolutivo, no evolutivo y reutilización.
  5. Explique como hace el modelo en espiral de desarrollo para controlar el riesgo, tiempo y costo en un proyecto de desarrollo de software.
  6. Explique el proceso de obtener el documento de requerimientos. 
  7. Explique la diferencia entre defecto y falla.
Nota: El TPN° 0 simula ser una persona experta en ventas a clientes y compras a proveedores, es posible crear un documento de requerimientos de usuarios utilizando el TPN° 0. 

Excelente artículo sobre la problemática de educir necesidades del usuario

Recomiendo leer a los alumnos de Análisis de Sistemas el siguiente artículo

Práctica de subredes, dominios de colisión y difusión

Práctica de laboratorio con dominios de colisión y difusión en una red LAN


Realizar la siguiente práctica y responder a las preguntas comentando en esta publicación


Para saber más de dominios de difusión visitar las siguientes publicaciones:

Dominios de Colisión y Difusión

Dominios de Colisión y Difusión


Ethernet es una tecnología conflictiva, todos los equipos que se conectan al mismo medio físico reciben las señales enviadas por otros dispositivos. Si dos computadoras o equipos de la red transmiten a la vez se genera una colisión. Si no existieran mecanismos que detectaran y corrigieran los errores de estas colisiones, Ethernet no podría funcionar.

En el diseño de una red se debe tener especial cuidado  con los llamados Dominios de Colisión y Dominio de Difusión (Broadcast).

Dominio de colisión: Grupo de dispositivos conectados al mismo medio físico, de tal manera que si dos dispositivos acceden al medio al mismo tiempo, el resultado será una colisión entre las dos señales. Como resultado de estas colisiones se produce un consumo inadecuado de recursos y de ancho de banda. Cuanto menor sea la cantidad de dispositivos afectados a un dominio de colisión mejor desempeño de la red.

Dominio de difusión. Grupo de dispositivos de la red que envían y reciben mensajes de difusión entre ellos. Una cantidad inapropiada de estos mensajes de difusión (broadcast) provocara un bajo rendimiento en la red,  una cantidad exagerada (tormenta de broadcast) dará como resultado el mal funcionamiento de la red hasta tal punto de poder dejarla completamente congestionada.

Por ejemplo: Si una computadora trasmite video a los demás computadoras de la red lo hace con mensajes broadcast, los mensajes broadcast tienen un IP origen y muchos IP de destino. El IP broadcast es la última IP de la red o subred calculada por la máscara de subred.

Los hubs o concentradores tienen un único dominio de colisión, eso quiere decir que si dos equipos provocan una colisión en un segmento asociado  a un puerto del hubs, todos los demás dispositivos aun estando en diferentes puertos se verán afectados. De igual manera se verían afectados si una estación envía un Broadcast, debido a que un hub también tiene un solo dominio de difusión.

Es importante entender la diferencia entre estos dos conceptos lo correcto es tener muchos dominios de colisión pequeños que pocos grandes.

Un dominio de difusión, broadcast domain, es el área lógica en una red de computadoras en la que cualquier computadora conectado a la red puede transmitir directamente a cualquier otra computadora sin que un dispositivo de encaminamiento intervenga, dado que comparten la misma subred, dirección de puerta de enlace.

De forma más específica, es un área de una red de computadoras, formada por todos las computadoras y dispositivos de red que se pueden alcanzar enviando una trama a la dirección de difusión de la capa de enlace de datos. La IP de difusión es la última IP de la sub red.

Por ejemplo:
•        dada una IP=192.168.3.5 y su máscara de red 255.255.255.0 y hacemos ping a la dirección 192.168.3.255 recibirán el paquete las computadoras 192.168.3.0...255 alcanzada por la máscara 255.255.255.0.

Un dominio de difusión funciona con la última dirección IP de una subred. Si una computadora envía un paquete de información a la IP de difusión se estará comunicando con todas las computadoras de la subred. Es usada normalmente para enviar video a todas las computadoras o cuando el sistema operativos quiere hacer un diagnóstico de la red.

Por ejemplo:
•        dada una IP=192.168.3.5 y su máscara de red 255.255.255.128 y hacemos ping a la dirección 192.168.3.127 recibirán el paquete las computadoras 192.168.3.0...127 alcanzada por la primera subred de la máscara 255.255.255.128.
•        dada una IP=192.168.3.5 y su máscara de red 255.255.255.128 y hacemos ping a la dirección 192.168.3.255 recibirán el paquete las computadoras 192.168.3.128...255 alcanzada por la segunda subred de la máscara 255.255.255.128.

Se utilizan las máscaras de subredes para segmentar una red de difusión grande en subredes lógicas más pequeñas.

Las máscaras de subred trabajan en capa 3 del modelo OSI.

Para una máscara de red de clase C se dividiría la red en:
•        255.255.255.0 en 1 subred de 255 computadoras
•        255.255.255.128 en 2 subredes de 128 computadoras
•        255.255.255.192 en 4 subredes de 64 computadoras
•        255.255.255.224 en 8 subredes de 32 computadoras
•        255.255.255.240 en 16 subredes de 16 computadoras
•        255.255.255.248 en 32 subredes de 8 computadoras
•        255.255.255.252 en 64 subredes de 4 computadoras
•        255.255.255.254 en 128 subredes de 2 computadoras
•        255.255.255.255 en 256 subredes de 1 computadora

Se utilizan encaminadores o enrutadores, routers, para segmentar los dominios de difusión de broadcast. Los ruoters no agrandan los dominios de difusión cuando se hace broadcast.

Resumen para el concepto de dominio de difusión

El dominio de difusión es el conjunto de todos los dispositivos que reciben tramas de broadcast que se originan en cualquier dispositivo de la red. Los equipos alcanzados por  broadcast generalmente están limitados por enrutadores, dado que los routers no envían tramas de broadcast.

Si bien los switchs filtran la mayoría de las tramas según las direcciones MAC, no hacen lo mismo con las tramas de broadcast y difunden los paquetes broadcast, los switchs agrandan el dominio de difusión.

Es responsabilidad del administrador de la red controlar si se han instalado demasiados switchs.

Una serie de switches interconectados forman un dominio de broadcast simple.

Solo una equipo de capa 3 del modelo OSI, como un router o una LAN virtual (VLAN), puede detener un dominio de difusión de capa 3. Los routers y las VLAN se utilizan para segmentar los dominios de colisión y debroadcast.

Cuando un switch recibe una trama de broadcast, la reenvía a cada uno de sus puertos excepto al puerto entrante en el que el switch recibió esa trama. Cada dispositivo conectado reconoce la trama de broadcast y la procesa. Esto provoca una disminución en la eficacia (ineficiencia) de la red dado que el ancho de banda se utiliza para propagar el tráfico de broadcast.

Cuando se conectan dos switches, aumentan los dominios de broadcast.

¿Qué son las VLAN - Redes LAN Virtuales?

Una VLAN (acrónimo de Virtual LAN, Red de Área Local Virtual’) es un método de crear redes lógicamente independientes dentro de una misma red física. Varias VLANs pueden coexistir en un único conmutador, switch, físico o en una única red física.

Una VLAN hace los mismo que las máscaras de red pero lo hacen en capa 2 del modelo OSI.

Son útiles para reducir el tamaño del dominio de difusión y ayudan en la administración de la red separando segmentos lógicos de una red de área local (como los departamentos de una empresa en ventas y compras) que no deberían intercambiar datos usando la red local (aunque podrían hacerlo a través de un enrutador). Una VLAN arma grupos de computadoras pequeños que se comunican entre sí.

Una VLAN consiste en una red de ordenadores que se comportan como si estuviesen conectados al mismo conmutador, aunque pueden estar en realidad conectados físicamente a diferentes segmentos de una red de área local. Los administradores de red configuran las VLANs mediante software en lugar de hardware, lo que las hace extremadamente flexibles. Una de las mayores ventajas de las VLANs surge cuando se traslada físicamente algún ordenador a otra ubicación. Puede permanecer en la misma VLAN, grupos de computadoras, sin necesidad de cambiar la configuración IP de la máquina. Otra ventaja es que no hace falta cambiar la IP de una computadora para hacer que pertenezca a otro grupos de computadoras. Es fácil hacer que una computadora pertenezca a diferentes dominios de difusión.

Por ejemplo: una computadora que estaba en ventas puede pasar fácilmente a compras. O si una computadora que pertenece a ventas y es cambiada de piso en el edificio siga perteneciendo a ventas a pesar del cambio de lugar.

Dominio de colisión

Un dominio de colisión es un segmento físico de cable de una red de computadores donde es posible que las tramas transmitida puedan colisionar con otra trama. Estas colisiones se dan particularmente en el protocolo de red Ethernet.

Las tramas son inyectadas a los cables por la electrónica del equipo de transmisión y normalmente codifican en su trama al número MAC que identifica al equipo transmisor.

A medida que aumenta el número de nodos, equipos de transmisión, que pueden transmitir en un segmento de red, aumentan las posibilidades de que dos de ellos transmitan a la vez, inyecten tención o corriente al cable. Esta transmisión simultánea ocasiona una interferencia entre las señales eléctricas de ambos nodos, que se conoce como colisión. Conforme aumenta el número de colisiones disminuye el rendimiento de la red.

El rendimiento de una red puede ser expresado como:
•        rendimiento% = (1 - Colisiones / Paquetes Transmitidos) * 100

Por ejemplo para 20 paquetes transmitidos:
•        se transmiten 20 paquetes exitosamente 1-(0/20)*100 = 100%
•        se transmiten 10 paquetes exitosamente 1-(10/20)*100 = 50%
•        se transmiten 0 paquetes exitosamente 1-(20/20)*100=0%

Un dominio de colisión puede estar constituido por un solo segmento de cable Ethernet en una Ethernet de medio compartido, o todos los nodos que afluyen a un concentrador Ethernet en una Ethernet de par trenzado, o incluso todos los nodos que afluyen a una red de concentradores y repetidores.

Los hub son equipos de transmisión que funcionan como concentradores y repetidores, son fuente de colisiones, los hub ya no se venden y son remplazados por los switch.

Dispositivos con dominios de colisión

A partir de las capas del modelo OSI es posible determinar qué dispositivos extienden o componen los dominios de colisión.

•        Los dispositivos de la capa 1 del modelo OSI (como los concentradores y repetidores) reenvían todos los datos transmitidos en el medio y por lo tanto extienden los dominios de colisión.
•        Los dispositivos de la capa 2 del modelo OSI (como los conmutadores switch) segmentan los dominios de colisión.
•        Los dispositivos de la capa 3 del modelo OSI (como los routers) segmentan los dominios de colisión y difusión (broadcast). Los Router nunca retransmiten los broadcast.

Con Ethernet, si se tienen más de cuatro concentradores en una red, entonces probablemente ya se ha extendido el dominio de colisión más de lo deseado.

No es buena idea mezclar switch y hub, los hub reenvían la información a todas sus bocas y producen colisiones que en pocas computadoras no generan problemas pero en muchas computadoras suelen ser un desastre.

Los switch no generan colisiones porque dividen los cables de sus bocas en segmentos de colisiones distintos. Los switch crean una tabla de números MAC de tal forma que siempre tiene identificada cada computadora y sólo unen de a dos computadoras a la vez para realizar una transmisión.

El switch escucha en todas los puertos pero cuando escribe lo hace solamente en dos puertos. Por eso a los switch se los llama llaves o conmutadores o multiplexores.

Si el dominio de colisión es muy grande con muchas computadoras y hacemos difusión de broadcast normalmente es un desastre y es responsabilidad del administrador de la red dividir el dominio de colisión. Si tenemos problemas de colisión la banda ancha disponible queda disminuida por la gran cantidad de retrasmisiones de tramas que hay que hacer.

Para saber más de dominios de difusión visitar las siguientes publicaciones:

 
FIN

Tecnología de requerimientos de Usuarios - Análisis de Sistemas 1er año

Un Analista Programador de Sistemas debe tener la habilidad de educir, obtener, requerir necesidades y pedir requisitos al usuario del sistema. Si el Analista Programador de Sistemas ha logrado hacer correctamente la tarea podrá construir, desarrollar, un producto software. El TPN° 0 simula ser una persona experta en gestión de empresas. El alumno puede usar el TPN° 0 como fuente de ideas para comenzar la construcción de un producto software relacionado con las actividades de una PyME.
Bajar el archivo PDF a la computadora
   

Sistemas Operativos de Redes - Responder las preguntas

Leer el material de estudio y responder las siguientes preguntas:


  • Explique los dos tipos de direcciones existentes, MAC e IP.
  • ¿Cuál es la función de un Ruter?
  • ¿Qué característica tiene la dirección IP para hacer broadcast?
  • Describa que es una Tarjeta de red o NIC Ethernet
  • ¿A qué se refiere con Norma de cableado “568-B” ?
  • Explique las características de la ficha RJ45 y cable UTP
  • Enumere brevemente las herramientas a usar para armar o probar el cableado de una red.

Análisis de Sistemas - preguntas para responder

Leer el material de estudio y la bibliografía para responder las siguientes preguntas:

  • Escriba cinco principios para el correcto desarrollo del software.
  • ¿Cómo se clasifican los errores y qué relación hay entre la clasificación?
  • ¿Qué es el análisis y diseño de sistemas?
  • ¿Cuál es la finalidad de los sistemas informáticos en las organizaciones?
  • ¿Qué es el análisis estructurado?
  • ¿Qué es el diseño estructurado?

Sistemas Operativos - Pregunta sobre IRQ

Contestar las siguientes preguntas

1.4. ¿Qué es una interrupción?

1.5. ¿Cómo se tratan múltiples interrupciones?


Interrupciones IRQ

Interrupciones IRQ

Sistemas Operativos, ejecución de procesos por interrupciones IRQ Contenido


  • Interrupciones IRQ
  • Sistemas Operativos, ejecución de procesos por interrupciones IRQ
  • Introducción
  • La subrutina de servicio de interrupción
  • Funcionamiento del mecanismo de interrupciones
  • Conflictos con interrupciones
  • Procesamiento de una interrupción
  • Tipos de interrupciones.
  • Sistemas de prioridad de interrupciones
  • Determinación de la fuente que genera la interrupción
  • Determinación de la dirección de la rutina de servicio de interrupción
  • Configuración IRQ
  • Las 15 IRQs de periféricos conocidos
  • Resolución de conflictos del hardware


Introducción

En el contexto de la informática, una interrupción (Interrupt ReQuest, IRQ, también conocida como petición de interrupción) es una señal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecución del proceso actual y pasar a ejecutar código específico para otro proceso. Más tarde el procesador regresará al estado original y terminará con el primer proceso.
Una interrupción es un cable que llega hasta el procesador, si se envía una señal eléctrica por el cable de interrupciones el procesador deja de hacer lo que está haciendo y realiza otra tarea.
Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa, sino que pertenece al sistema operativo o al BIOS. Una vez finalizada dicha subrutina, se reanuda la ejecución del programa interrumpido originalmente.

La subrutina de servicio de interrupción

 Tareas de la rutina de interrupción:
  • guardar los registros y datos del proceso interrumpido
  • averiguar quién  ha interrumpido al procesador
  • saltar al nuevo proceso para su ejecución por el sistema operativo
  • regresar al procesador al estado original y terminar la tarea del proceso interrumpido
  • esperar una nueva interrupción

Las interrupciones surgen de la necesidad que tienen los dispositivos periféricos de enviar información al procesador. El procesador ignora a los dispositivos E/S instalados en la computadora, es responsabilidad de los dispositivos E/S interrumpir al procesador para que haga una tarea.

Funcionamiento del mecanismo de interrupciones

Todos los dispositivos que deseen comunicarse con el procesador por medio de interrupciones deben tener asignada una línea única capaz de avisar al CPU que hay una tarea para realizar. Esta línea se denomina IRQ ("Interrupt ReQuest" o petición de interrupción).
Las IRQ son líneas que llegan al controlador de interrupciones, un componente de hardware dedicado a la gestión de las interrupciones, y que puede estar integrado en el procesador principal o ser un circuito separado conectado al mismo. El controlador de interrupciones debe ser capaz de habilitar o inhibir las líneas de interrupción y establecer prioridades entre las mismas. Cuando varias líneas de petición de interrupción se activan a la vez, el controlador de interrupciones utilizará las prioridades para escoger la interrupción sobre la que informará al procesador principal. También puede darse el caso de que una rutina de tratamiento de interrupción sea interrumpida para realizar otra rutina de tratamiento de una interrupción de mayor prioridad a la que se estaba ejecutando; aunque hay interrupciones que no se pueden deshabilitar (conocidas como interrupciones no enmascarables o NMI).
Por ejemplo la interrupción del reloj de la computadora no se puede enmascarar y cuando el reloj tiene que comunicar la hora al procesador lo hace con máxima prioridad y si es necesario interrumpirá a otra interrupción en curso.
Un procesador principal que no tenga un controlador de interrupciones integrado, suele tener una única línea de interrupción llamada habitualmente INT. Esta línea es activada por el controlador de interrupciones cuando tiene una interrupción que servir. Al activarse esta línea, el procesador consulta los registros del controlador de interrupciones para averiguar cual IRQ hay que atender. A partir del número del IRQ busca en la tabla de vectores de interrupción la dirección de la RAM de la rutina a la que debe llamar para atender la petición del dispositivo asociado a dicha IRQ.
La tabla de vectores son punteros a una dirección de memoria RAM donde está el procesos a ejecutar.
La cantidad de vectores de interrupciones son 15 o 24 en computadoras modernas, y se asocian a una línea física como un cables. Cada dispositivo se apropia de una línea e instala un vector de interrupción que apunta a la memoria RAM donde está el proceso que ejecuta tareas para el dispositivo.
Conflictos con interrupciones
Es muy común que al instalar un nuevo dispositivo en una computadora el nuevo dispositivo se apropia de un cables o línea de interrupción ya ocupado, también puede suceder que la tabla de vectores de interrupciones se corrompa y apunte a un lugar de memoria incorrecto.
Si hay un problema de interrupciones la computadora deja de funcionar o los dispositivos en conflicto no funcionan.

Procesamiento de una interrupción

  • Terminar la ejecución de la instrucción del proceso en actual proceso y mandarlo al estado de bloqueado para restaurarlo más tarde.
  • Salvar el estado del procesador (valores de registros y flags) y el valor del contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso de interrupción, pueda seguir ejecutando el programa interrumpido a partir de la última instrucción.
  • La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (Interrupt Service Routine, o abreviado ISR) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la interrupción.
  • Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la pila en el paso 2 y retorna al programa que se estaba usando anteriormente.

Tipos de interrupciones.

Atendiendo a la fuente que las produce, las interrupciones pueden clasificarse de la siguiente forma:
  • Interrupciones de hardware: Son asíncronas a la ejecución del procesador, es decir, se pueden producir en cualquier momento independientemente de lo que esté haciendo el CPU en ese momento. Las causas que las producen son externas al procesador y a menudo suelen estar relacionadas con los distintos dispositivos de E/S.
  • Excepciones de errores:  Son aquellas que se producen de forma síncrona a la ejecución del procesador y por tanto podrían predecirse si se analiza con detenimiento la traza del programa que en ese momento estaba siendo ejecutado en la CPU. Normalmente son causadas al realizarse operaciones no permitidas tales como la división por 0, el desbordamiento, el acceso a una posición de memoria no permitida, etc.
  • Interrupciones por software.  Las interrupciones por software son aquellas generadas por un programa en ejecución. Para generarlas, existen distintas instrucciones en el código máquina que permiten al programador producir una interrupción, las cuales suelen tener nemotécnicos tales como INT (por ejemplo, en DOS se realiza la instrucción INT 0x21 y en Unix se utiliza INT 0x80 para hacer llamadas de sistema).
  • Reloj: las computadoras tienen un reloj digital para una base de tiempos y temporización, muchos procesos necesitan medir el tiempo en milisegundos y segundos y hacen usos del reloj de la computadora. El reloj de la computadora notifica al procesador del tiempo transcurrido por medio de una interrupción.
  • Fallo de hardware: si un componente del computador se rompe o tiene un fallo puede generar una interrupción y notificar al procesador del problema.

Sistemas de prioridad de interrupciones

El sistema operativo necesita un mecanismo para priorizar las interrupciones y tratar primero las más urgentes. Para ello, existen varias alternativas:
  • Interrupciones simultáneas: No tienen por qué ocurrir de manera simultánea sino que se refiere a que en un momento dado pueden haber varias interrupciones activas.
  • Interrupciones anidadas: Mientras se está procesando una determinada rutina de servicio de interrupción puede suceder otra señal de interrupción.
  • Inhibición de interrupciones: Se deshabilitan las demás interrupciones mientras se está tratando una interrupción, inhibir las interrupciones es muy ineficiente y se usa en casos especiales.  inhibir las interrupciones por mucho tiempo puede generar interbloque de procesos, los sistemas operativos deben impedir el interbloqueo.

Determinación de la fuente que genera la interrupción

Hay distintas formas de identificar la fuente de una determinada interrupción. La primera alternativa que se consideró fue asignar una línea (un bit) para cada interrupción, lo cual suponía un gran costo en cuanto a la relación de número de dispositivos y número de bits usados y a menudo limitaba el número de dispositivos que se podían conectar. Por ello, se pensó con posterioridad en que en cada patilla de interrupción debería poder conectarse más de un dispositivo, debiendo implementar por tanto una metodología que permitiese identificar de forma unívoca de qué dispositivo se trataba. Para ello hay varias directrices:
  • Polling: el microprocesador comprueba de manera sistemática todos los dispositivos de manera que «busca» cuál de ellos fue el que solicitó la interrupción. Esto tiene una ventaja y es que es barato a nivel de coste hardware ya que el polling se implementa en software, no obstante tiene otras desventajas que no podemos olvidar y es que suele ser lento porque tiene que comprobar en serie todos los dispositivos y establece una prioridad en los dispositivos (el orden de sondeo) y por tanto puede provocar inanición.
  • Interrupciones vectorizadas: este concepto fue ya tratado en el apartado anterior. Como ventajas podemos destacar que suele ser rápido pero implica un alto costo en el hardware.
  • Hardware paralelo: se utiliza un registro de interrupción cuyos bits se controlan de forma independiente por las señales de petición de interrupción.

Determinación de la dirección de la rutina de servicio de interrupción

Hay dos alternativas para determinar la dirección de la rutina de servicio de interrupción que se debe ejecutar al recibir una interrupción determinada:
  • Direcciones fijas: Se hallan cableadas en el procesador y por tanto nunca pueden ser cambiadas. Esto implica que las rutinas de servicios de interrupciones siempre estarán en una determinada posición de la memoria.
  • Direcciones variables (por interrupciones vectorizadas): En este grupo se incluyen aquellas que presentan una dirección variable y que, por tanto, no se halla cableada en el procesador. De esta manera el dispositivo debe dar información acerca de la localización de la dirección de comienzo de la rutina de servicio de interrupción asociada a dicho periférico. Los drivers de los fabricantes de dispositivos deben instalar en la RAM los procesos que atienden las interrupciones, la técnica de direcciones variables puede generar gran cantidad de conflictos de IRQ.

Conflictos del hardware

Una interrupción es una línea que une el periférico al procesador. Una interrupción es una interrupción de hardware cuando es solicitada por uno de los componentes de hardware de la PC. Por ejemplo, este es el caso al tocar una tecla, el teclado llama la atención del procesador sobre la tecla presionada. No obstante no se puede solicitar al mismo tiempo dos interrupciones o dos dispositivos no pueden pedir la misma interrupción. Por lo tanto, al instalar las tarjetas de expansión, debe asegurarse que, durante la configuración, la misma interrupción no se utilice para dos periféricos diferentes. Si esto sucediera, ocurriría un "conflicto del hardware" y ningún periférico funcionaria.
Verdaderamente, si dos periféricos utilizan el mismo interruptor, interrupción, el sistema no sabrá cómo distinguirlos. Un conflicto del hardware no sucede únicamente cuando dos periféricos poseen el mismo hardware. También puede ocurrir un conflicto cuando dos periféricos poseen la misma dirección E/S o usan los mismos canales DMA, los canales de DMA son accesos directo a memoria sin pasar por el procesador.

Configuración IRQ

La IRQ de una tarjeta de expansión puede modificarse para asignarle un número IRQ que no está siendo utilizado por otro periférico.
En los periféricos más antiguos, este número IRQ se adjunta a los puentes que se encuentran en la placa.
En las placas recientes (que poseen un BIOS Plug & Play), el parámetro de recurso (direcciones IRQ, DMA E/S) es automático. También puede ser realizado por el SO con la ayuda de utilidades que brinda la tarjeta de expansión. Este modo plug & play debe ser desactivado en ocasiones para que puedan modificarse los parámetros manualmente.
Aún no resulta fácil hallar recursos disponibles para todos los periféricos. Por lo tanto, he aquí una lista incompleta de recursos que se utilizan generalmente, los que por consiguiente no pueden asignarse en forma manual:

Las 15 IRQs de periféricos conocidos

  • 0 Reloj interno, (alta prioridad)
  • 1 Teclado
  • 2 Controlador de interrupción programable Cascada de IRQ 8 a 15
  • 3 Puerto de comunicaciones COM2/COM4
  • 4 Puerto de comunicaciones COM1/COM3
  • 5 libre
  • 6 Controlador de disquete
  • 7 Puerto de impresora LPT1
  • 8 CMOS (Reloj digital de tiempo real)
  • 9 libre
  • 10 libre
  • 11 libre
  • 12 Puerto del ratón PS2/libre
  • 13 Procesador de datos numéricos (coprocesador matemático)
  • 14 Controlador de disco duro primario (IDE)
  • 15 Controlador de disco duro secundario (IDE)


Las computadoras modernas tienen más líneas de interrupciones y suelen tener electrónica dedicada especialmente a tratar las interrupciones de forma muy eficiente.
Los puertos de E/S seriales COM1 y COM4 así como los puertos COM2 y COM3 usan los mismos interruptores y son una fuente de conflictos de IRQ si se instalan periféricos simultáneamente en COM1 Y COM4 o COM2 y COM3. Puede parecer ilógico en cuanto se usa la misma interrupción. En realidad, es posible utilizar el puerto COM1 tanto como el puerto COM4 (así como el puerto COM2 y el COM3) en tanto no se activen al mismo tiempo. De lo contrario, el equipo podría congelarse y funcionar defectuosamente.
De todas formas el puerto serial COMx de E/S de las computadoras modernas ha desaparecido y se ha remplazado por el puerto serial de E/S USB.

Resolución de conflictos del hardware

Si tiene un problema de hardware, primero intente de identificar el problema afín de poder determinar cuál es el periférico que lo está causando. Esto significa que debe tratar de eliminar tantas variables como sea posible hasta descubrir cuál es el elemento responsable:
  • abrir la carcasa del equipo y retirar uno a uno los periféricos de E/S o elementos que puedan estar causando el conflicto.
  • desactivar o desinstalar el software en el sistema operativo para detener el funcionamiento del periférico conflictivo.
  • verificar en el BIOS que todo está bien. Muchos BIOS permiten cambiar números de IRQ a periféricos estándar (no recomendado).

En la actualidad el sistema Plug & Play  resuelve los problemas de IRQ. Los problemas de interrupciones han desaparecidos o son muy pocos frecuentes.

FIN ...

Pregunta para los alumnos de Redes - Telecomunicaciones

Tema: Máscara de subred

  • ¿Cuál es el beneficio de crear subredes en una red? 

Contestar con un comentario

Redes 3er año - Carrera de Telecomunicaciones

Trabajando con máscaras de sub-red.
Bajar: TPN° 1
Acceso a la bibliografía: Redes

Pregunta para los alumnos de Sistemas Operativos I

Hola ...

  • ¿Han podido descargar el TPN° 1?
  • ¿Han podido obtener la bibliografía?

Responder la siguiente pregunta:

  • ¿Qué es núcleo monolítico y micro-núcleo?

Responder haciendo un comentario en esta publicación.

Análisis de Sistemas I 1er año

Hola a todos ...
En esta primer entrega, comenzamos con el tema de construcción de software. El objetivo es aprender a construir software con un método.
Enlace para bajar el archivo: TP1 Análisis de Sistema I