¿Qué relación hay entre los puertos, las aplicaciones, los protocolos de Internet y los cortafuegos?
Trabajando con el Cortafuegos
Entrada relacionada: https://carlosprivitera.blogspot.com.ar/2016/08/que-son-los-cortafuegos.htmlDesarrollo 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
Procesos colaborativos concurrentes: Interbloqueo y sincronización
Resumen del capítulo seis del libro Sistemas Operativos 5ta edición de William Stallings
¿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.
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()
Concurrencia: exclución mutua y sincronización en los Sistemas Operativos
Resumen del capítulo cinco del libro Sistemas Operativos 4ta edición de William Stallings
Ubuntronics: ¿Qué es el Software Libre? ¿Por qué todas las escu...
Ver la publicación original: ==> Ubuntronics: ¿Qué es el Software Libre? ¿Por qué todas las escu...: Nadie mejor que Richard M. Stallman ─con frecuencia abreviado como «rms»─ para aprender más sobre el Software Libre. El padre del Softwa...
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.
- Sitio: http://librosweb.es/
Usando el ADF Mobile Application
Publicar HTML, CSS y JavaScripts de terceros para incrustar en una página AMX con JDeveloper 11g
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.
Revista digital - Artículo sobre MySQL
Revistas y artículos interesantes para leer
https://plus.google.com/u/0/+CarlosPrivitera/posts
https://issuu.com/spoug/docs/oracleando2
Tecnología de reutilización con Java
Construcción de un componente Bean en JDeveloper 11g usando el ADF de Oracle
TÉCNICAS DE ANÁLISIS - Ingeniería de construcción de un producto software
Definir qué producto software se quiere construir - Diagramas de Flujos de Datos DFD
Técnicas de educción de requisitos de la fase de análisis
Fase de análisis de sistemas - Obtener las solicitudes del usuario y generar el documento de requerimientos de usuario
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?
Consumir métodos de una clase bean desde una página AMX con JDeveloper 11g
Ingeniería de construcción de productos software - Crear una aplicación de dos capas con el AMF de Oracle usando el ADF JDeveloper 11g
- Modelo de construcción de software de dos capas
- Modelo de construcción de software de tres capas
ADF Mobile Framework AMF
Publicar HTML y Javascripts en Android con ADF
Mobile Framework, AMF, usando JDeveloper 11g
Responder las siguiente preguntas sobre desarrollo de software
- ¿Qué es el proceso software y en qué consiste?
- ¿Defina que es el análisis, diseño e implementación?
- Explique el ciclo de vida prototipo y prototipo desechable.
- Explique las diferencias del enfoque de desarrollo evolutivo, no evolutivo y reutilización.
- Explique como hace el modelo en espiral de desarrollo para controlar el riesgo, tiempo y costo en un proyecto de desarrollo de software.
- Explique el proceso de obtener el documento de requerimientos.
- 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
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?
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 ...
TPN° 2 y 3 Análisis de Sistemas I 1er año
Crear el documento de requerimientos para la construcción de software
Bajar el archivo...
Pregunta para los alumnos de Redes - Telecomunicaciones
Tema: Máscara de subred
Contestar con un comentario
- ¿Cuál es el beneficio de crear subredes en una red?
Contestar con un comentario
Pregunta para los alumnos de Sistemas Operativos I
Hola ...
Responder la siguiente pregunta:
Responder haciendo un comentario en esta publicación.
- ¿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.
Sistemas Operativos I
Comenzando con Sistemas Operativos I - 1er año de Computación y Redes.
Bajar el archivo de práctica: TPN 1 Procesos en los Sistemas Operativos
Biografiaría: Libros para resolver todos los prácticos teóricos
Bajar el archivo de práctica: TPN 1 Procesos en los Sistemas Operativos
Biografiaría: Libros para resolver todos los prácticos teóricos
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
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
Bienvenido a Programación III Java
Hola para todos ...
En este encuentro con los alumnos de Programación III los invito a practicar con JDeveloper 11g. Cualquier consulta será respondida y los espero en el aula.
Ir a la publicación con material de estudio
En este encuentro con los alumnos de Programación III los invito a practicar con JDeveloper 11g. Cualquier consulta será respondida y los espero en el aula.
Ir a la publicación con material de estudio
Bienvenido a Sistemas Operativos de Redes
Sistemas Operativos de Redes - Los sistemas operativos en un contexto moderno.
Suscribirse a:
Entradas (Atom)