98
ALGORITMOS Y PROGRAMACION (INGENIERIA, CONSEPTOS Y EXPOSICIONES) INGENIERO JAIRO BOTERO. DOCENTE UPTC PRESENTADO POR EL ALUMNO: FABIAN ANDRES PAIPILLA SALAMANCA CODIGO: 200810196. UNIVERSIDAD PEDAGOGICA Y TECNOLOGICA DE COLOMBIA FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS TUNJA 2011

algoritmos y programacion

Embed Size (px)

Citation preview

Page 1: algoritmos y programacion

ALGORITMOS Y PROGRAMACION

(INGENIERIA, CONSEPTOS Y EXPOSICIONES)

INGENIERO JAIRO BOTERO.

DOCENTE UPTC

PRESENTADO POR EL ALUMNO:

FABIAN ANDRES PAIPILLA SALAMANCA

CODIGO:

200810196.

UNIVERSIDAD PEDAGOGICA Y TECNOLOGICA DE COLOMBIA

FACULTAD DE INGENIERIA

INGENIERIA DE SISTEMAS

TUNJA 2011

Page 2: algoritmos y programacion

Ingeniería

La ingeniería es el conjunto de conocimientos y técnicas científicas aplicadas a la invención, perfeccionamiento y utilización de técnicas para la resolución de problemas que afectan directamente a los seres humanos en su actividad cotidiana.

En ella, el conocimiento, manejo y dominio de las matemáticas, la física y otras ciencias, obtenido mediante estudio, experiencia y práctica, se aplica con juicio para desarrollar formas eficientes de utilizar los materiales y las fuerzas de la naturaleza para beneficio de la humanidad y del ambiente.

Pese a que la ingeniería como tal (transformación de la idea en realidad) está intrínsecamente ligada al ser humano, su nacimiento como campo de conocimiento específico está unido al comienzo de la revolución industrial, constituyendo uno de los actuales pilares en el desarrollo de las sociedades modernas.

Otro concepto que define a la ingeniería es el saber aplicar los conocimientos científicos a la invención, perfeccionamiento o utilización de la técnica en todas sus determinaciones. Esta aplicación se caracteriza por utilizar principalmente el ingenio de una manera más pragmática y ágil que el método científico, puesto que una actividad de ingeniería, por lo general, está limitada a un tiempo y recursos dados por proyectos. El ingenio implica tener una combinación de sabiduría e inspiración para modelar cualquier sistema en la práctica.

Etimología

La etimología del término ingeniería es reciente, pues deriva de ingeniero, que data de 1325 del idioma inglés, cuando un engine’er (de forma literal del inglés, el que opera un engine, es decir, un motor o máquina) refiriéndose inicialmente a un constructor de máquinas militares.1 En este contexto, ya obsoleto, un “engine” se refería a una máquina militar (hoy en día se traduce como "motor"), es decir, un dispositivo mecánico usado en las contiendas militares (por ejemplo, una catapulta). El término “engine” es aún más antiguo, pues deriva del término latino ingenium (c. 1250), al español ingenio)2 El término evolucionó más adelante para incluir todas las áreas en las que se utilizan técnicas para aplicar el método científico. En otras lenguas como el árabe, la palabra ingeniería también significa geometría.

El ingeniero

Su función principal es la de realizar diseños o desarrollar soluciones tecnológicas a necesidades sociales, industriales o económicas. Para ello el ingeniero debe identificar y comprender los obstáculos más importantes para poder realizar un buen diseño. Algunos de los obstáculos son los recursos disponibles, las limitaciones físicas o técnicas, la flexibilidad para futuras modificaciones y adiciones y otros factores como el coste, la posibilidad de llevarlo a cabo, las prestaciones y las consideraciones estéticas y comerciales. Mediante la comprensión de los obstáculos, los ingenieros deducen cuáles

Page 3: algoritmos y programacion

son las mejores soluciones para afrontar las limitaciones encontradas cuando se tiene que producir y utilizar un objeto o sistema.

Los ingenieros utilizan el conocimiento de la ciencia, la matemática y la experiencia apropiada para encontrar las mejores soluciones a los problemas concretos, creando los modelos matemáticos apropiados de los problemas que les permiten analizarlos rigurosamente y probar las soluciones potenciales. Si existen múltiples soluciones razonables, los ingenieros evalúan las diferentes opciones de diseño sobre la base de sus cualidades y eligen la solución que mejor se adapta a las necesidades.

En general, los ingenieros intentan probar si sus diseños logran sus objetivos antes de proceder a la producción en cadena. Para ello, emplean entre otras cosas prototipos, modelos a escala, simulaciones, pruebas destructivas y pruebas de fuerza. Las pruebas aseguran que los artefactos funcionarán como se había previsto.

Para hacer diseños estándar y fáciles, las computadoras tienen un papel importante. Utilizando los programas de diseño asistido por ordenador (DAO, más conocido por CAD, Computer-Aided Design), los ingenieros pueden obtener más información sobre sus diseños. El ordenador puede traducir automáticamente algunos modelos en instrucciones aptas para fabricar un diseño. La computadora también permite una reutilización mayor de diseños desarrollados anteriormente, mostrándole al ingeniero una biblioteca de partes predefinidas para ser utilizadas en sus propios diseños.

Los ingenieros deben tomar muy seriamente su responsabilidad profesional para producir diseños que se desarrollen como estaba previsto y no causen un daño inesperado a la gente en general. Normalmente, los ingenieros incluyen un factor de seguridad en sus diseños para reducir el riesgo de fallos inesperados.

La ciencia intenta explicar los fenómenos recientes y sin explicación, creando modelos matemáticos que correspondan con los resultados experimentales. Tecnología e ingeniería constituyen la aplicación del conocimiento obtenido a través de la ciencia, produciendo resultados prácticos. Los científicos trabajan con la ciencia y los ingenieros con la tecnología. Sin embargo, puede haber puntos de contacto entre la ciencia y la ingeniería. No es raro que los científicos se vean implicados en las aplicaciones prácticas de sus descubrimientos. De modo análogo, durante el proceso de desarrollo de la tecnología, los ingenieros se encuentran a veces explorando nuevos fenómenos.

También puede haber conexiones entre el funcionamiento de los ingenieros y los artistas, principalmente en los campos de la arquitectura y del diseño industrial.

Existe asimismo alguna otra creencia en la forma de entender al ingeniero del siglo XXI, ya que las raíces de este término no quedan claras, porque el término ingeniero es un anglicismo proveniente de "engineer", que proviene de engine, es decir máquina.

Page 4: algoritmos y programacion

En algunos países, como España, existen técnicos que se dedican a labores de ingeniería: los ingenieros técnicos. Esa división de las profesiones liberales de construcción se aplica también a la arquitectura, existiendo arquitectos, de nivel de grado universitario y su versión terciaria o técnica, el arquitecto Técnico.

Funciones del ingeniero

1. Investigación: Búsqueda de nuevos conocimientos y técnicas, de estudio y en el campo laboral.

2. Desarrollo: Empleo de nuevos conocimientos y técnicas. 3. Diseño: Especificar las soluciones. 4. Producción: Transformación de materias primas en productos. 5. Construcción: Llevar a la realidad la solución de diseño. 6. Operación: Proceso de manutención y administración para optimizar

productividad. 7. Ventas: Ofrecer servicios, herramientas y productos. 8. Administración: Participar en la resolución de problemas. Planificar, organizar,

programar, dirigir y controlar la construcción y montaje industrial de todo tipo de obras de ingeniería.

Ética profesional

Los ingenieros deben reconocer que la vida, la seguridad, la salud y el bienestar de la población dependen de su juicio.

No se deben aprobar planos o especificaciones que no tengan un diseño seguro. Se deben realizar revisiones periódicas de seguridad y confiabilidad. Prestar servicios productivos a la comunidad. Comprometerse a mejorar el ambiente. Los ingenieros deben prestar servicios en sus áreas de competencia. Deben emitir informes públicos. Se debe expresar la información en forma clara y

honesta. Deben crear su reputación profesional sobre el mérito de sus servicios. No usar equipamiento fiscal o privado para uso personal. Acrecentar honor, integridad y dignidad de la profesión. Debe continuar con el desarrollo profesional (Continuar la educación). Apoyar a sociedades profesionales. Utilizar el Ingenio para resolver problemas. Ser consciente de su responsabilidad en su trabajo. Debe conocer las teorías científicas para explicar los hechos y actuar sobre ellos.

Page 5: algoritmos y programacion

INGENIERIA DE SISTEMAS

Ingeniería de sistemas es un modo de enfoque interdisciplinario que permite estudiar y comprender la realidad, con el propósito de implementar u optimizar sistemas complejos. Puede verse como la aplicación tecnológica de la teoría de sistemas a los esfuerzos de la ingeniería, adoptando en todo este trabajo el paradigma sistémico. La ingeniería de sistemas integra otras disciplinas y grupos de especialidad en un esfuerzo de equipo, formando un proceso de desarrollo estructurado.

Una de las principales diferencias de la ingeniería de sistemas respecto a otras disciplinas de ingeniería tradicionales, consiste en que la ingeniería de sistemas no construye productos tangibles. Mientras que los ingenieros civiles podrían diseñar edificios o puentes, los ingenieros electrónicos podrían diseñar circuitos, los ingenieros de sistemas tratan con sistemas abstractos con ayuda de las metodologías de la ciencia de sistemas, y confían además en otras disciplinas para diseñar y entregar los productos tangibles que son la realización de esos sistemas.

Otro ámbito que caracteriza a la ingeniería de sistemas es la interrelación con otras disciplinas en un trabajo transdisciplinario.

Ámbito

Esta área comenzó a desarrollarse en la segunda parte del siglo XX con el veloz avance de la ciencia de sistemas. Las empresas empezaron a tener una creciente aceptación de que la ingeniería de sistemas podía gestionar el comportamiento impredecible y la aparición de características imprevistas de los sistemas (propiedades emergentes). Las decisiones tomadas al comienzo de un proyecto, cuyas consecuencias pueden no haber sido entendidas claramente, tienen una enorme implicación más adelante en la vida del sistema. Un ingeniero de sistemas debe explorar estas cuestiones y tomar decisiones críticas. No hay métodos que garanticen que las decisiones tomadas hoy serán válidas cuando el sistema entre en servicio años o décadas después de ser concebido, pero hay metodologías que ayudan al proceso de toma de decisiones. Ejemplos como la metodología de sistemas blandos (Soft Systems Methodology), la dinámica de sistemas, modelo de sistemas viables (Viable System Model), teoría del Caos, teoría de la complejidad, y otros que también están siendo explorados, evaluados y desarrollados para apoyar al ingeniero en el proceso de toma de decisiones que se puede llegar a ser por medio de el CENAL

¿Qué es Ingeniería de Sistemas?

Ingeniería de Sistemas es la aplicación de las ciencias matemáticas y físicas para desarrollar sistemas que utilicen económicamente los materiales y fuerzas de la naturaleza para el beneficio de la humanidad.

Page 6: algoritmos y programacion

Una definición especialmente completa -y que data de 1974- nos la ofrece un estándar militar de las fuerzas aéreas estadounidenses sobre gestión de la ingeniería. Ingeniería de Sistemas es la aplicación de esfuerzos científicos y de ingeniería para:

(1) transformar una necesidad de operación en una descripción de parámetros de rendimiento del sistema y una configuración del sistema a través del uso de un proceso interactivo de definición, síntesis, análisis, diseño, prueba y evaluación;

(2) integrar parámetros técnicos relacionados para asegurar la compatibilidad de todos las interfaces de programa y funcionales de manera que optimice la definición y diseño del sistema total;

(3) integrar factores de fiabilidad, mantenibilidad, seguridad, supervivencia, humanos y otros en el esfuerzo de ingeniería total a fin de cumplir los objetivos de coste, planificación y rendimiento técnico.

Campos relacionados

Muchos de los campos relacionados podrían ser considerados con estrechas vinculaciones a la ingeniería de sistemas. Muchas de estas áreas han contribuido al desarrollo de la ingeniería de sistemas como área independiente.

] Sistemas de Información

Un Sistema de Información o (SI) es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio. No siempre un Sistema de Información debe estar automatizado (en cuyo caso se trataría de un sistema informático), y es válido hablar de Sistemas de Información Manuales. Normalmente se desarrollan siguiendo Metodologías de Desarrollo de Sistemas de Información....

El equipo computacional: el hardware necesario para que el sistema de información pueda operar. El recurso humano que interactúa con el Sistema de Información, el cual está formado por las personas que utilizan el sistema. Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información. es la actualizacion de datos reales y especificos para la agilizacion de operaciones e un a empresA

Investigación de operaciones

La Investigación de Operaciones o (IO) se enseña a veces en los departamentos de ingeniería industrial o de matemática aplicada, pero las herramientas de la IO son enseñadas en un curso de estudio en Ingeniería de Sistemas. La IO trata de la optimización de un proceso arbitrario bajo múltiples restricciones. (Para artículos de discusión (en inglés) ver: [1] y [2]).

Page 7: algoritmos y programacion

Ingeniería de sistemas cognitivos

La ingeniería de sistemas cognitivos es una rama de la ingeniería de sistemas que trata los entes cognitivos, sean humanos o no, como un tipo de sistemas capaces de tratar información y de utilizar recursos cognitivos como la percepción, la memoria o el procesamiento de información. Depende de la aplicación directa de la experiencia y la investigación tanto en psicología cognitiva como en ingeniería de sistemas. La ingeniería de sistemas cognitivos se enfoca en cómo los entes cognitivos interactúan con el entorno. La ingeniería de sistemas trabaja en la intersección de:

1. El desarrollo de la sociedad en esta nueva era 2. Los problemas impuestos por el mundo 3. Las necesidades de los agentes (humano, hardware, software) 4. La interacción entre los varios sistemas y tecnologías que afectan (y/o son

afectados por) la situación.

Algunas veces designados como ingeniería humana o ingeniería de factores humanos, esta rama además estudia la ergonomía en diseño de sistemas. Sin embargo, la ingeniería humana suele tratarse como otra especialidad de la ingeniería que el ingeniero de sistemas debe integrar.

Habitualmente, los avances en ingeniería de sistemas cognitivos se desarrollan en los departamentos y áreas de Informática, donde se estudian profundamente e integran la inteligencia artificial, la ingeniería del conocimiento y el desarrollo de interfaces hombre-máquina (diseños de usabilidad).de la ciencia

Page 8: algoritmos y programacion

1. EXPOSICION NUMERO 1: REDES SATELITALES Nombre de expositor: Yesennia Medina. Hora de inicio: 4: 11 pm Hora de finalización: 4:19 pm.

DIAGRAMAS:

CLASIFICACION DE LAS TRANSMISIONES SATELITALES

Modelo de subida del satélite.

Page 9: algoritmos y programacion

Transponder del satélite.

DETALLE DE LA EXPOSICION:

REDES SATELITALES

Un satélite puede definirse como un repetidor radioeléctrico ubicado en el espacio, que recibe señales generadas en la tierra, las amplifica y las vuelve a enviar a la tierra, ya sea al mismo punto donde se origino la señal u otro punto distinto.

Una redsatelital consiste de un transponder (dispositivo receptor-transmisor), una estación basada en tierra que controlar su funcionamiento y una red de usuario, de las estaciones terrestres, que proporciona las facilidades para transmisión y recepción del tráfico de comunicaciones, a través del sistema de satélite.

ELEMENTOS DE LAS REDES SATELITALES

Transponders

Es un dispositivo que realiza la función de recepción y transmisión. Las señales recibidas son amplificadas antes de ser retransmitidas a la tierra. Para evitar interferencias les cambia la frecuencia.

Estaciones terrenas

Las estaciones terrenas controlan la recepción con el satélite y desde el satélite, regula la interconexión entre terminales, administra los canales de salida, codifica los datos y controla la velocidadde transferencia.

Consta de 3 componentes:

Page 10: algoritmos y programacion

Estación receptora: Recibe toda la información generada en la estación transmisora y retransmitida por el satélite.

Antena: Debe captar la radiación del satélite y concentrarla en un foco donde esta ubicado el alimentador. Una antena de calidaddebe ignorar las interferencias y los ruidos en la mayor medida posible.

Estos satélites están equipados con antenasreceptoras y con antenas transmisoras. Por medio de ajustes en los patrones de radiación de las antenas pueden generarse cubrimientos globales, cubrimiento a solo un país (satélites domésticos), o conmutar entre una gran variedad de direcciones.

Estación emisora: Esta compuesta por el transmisor y la antena de emisión.

La potenciaemitida es alta para que la señal del satélite sea buena. Esta señal debe ser captada por la antena receptora. Para cubrir el trayecto ascendente envía la información al satélite con la modulación y portadora adecuada.

Modelos de enlace del sistema satelital

Esencialmente, un sistema satelital consiste de tres secciones básicas: una subida, un transponder satelital y una bajada.

Modelo de subida

El principal componente dentro de la sección de subida, de un sistema satelital, es el transmisor de la estación terrena. Un típico transmisor de la estación terrena consiste de un modulador de IF, un convertidor de microondas de IF a RF, un amplificador de alta potencia (HPA) y algún medio para limitar la banda del espectro de salida (un filtro pasa-banda de salida).

El modulador de IF convierte las señales de banda base de entrada a una frecuencia intermedia modulada e FM, en PSK o en QAM. El convertidor (mezclador y filtro pasa-banda) convierte la IF a una frecuencia de portadora de RF apropiada. El HPA proporciona una sensibilidad de entrada adecuada y potencia de salida para propagar la señal al transponder del satélite. Los HPA comúnmente usados son klystons y tubos de onda progresiva.

Modelo de bajada

Un receptor de estación terrena incluye un BPF de entrada, un LNA y un convertidor de RF a IF. El BPF limita la potencia del ruido de entrada al LNA. El LNA es un dispositivo altamente sensible, con poco ruido, tal como un amplificador de diodo túnel o un amplificador parametrico. El convertidor de RF a IF es una combinación de filtro mezcador/pasa-bandas que convierte la señal de RF a una frecuencia de IF.

Page 11: algoritmos y programacion

(Las ondas electromagnéticas presentes en las transmisión de datos mediante las redes satelitales poseen frecuencias entre los 100 MHz hasta los 10ghz).

BIBLIOGRAFIA

DOCUMENTO IEEE "Características de una Radio LAN" 1992 LACE Inc. Chandos A. Rypinski.

Revista PC/Tips Byte articulo: "Redes Inalámbricas" Abril 1992 Nicolas Baran.

Revista PC/Magazine articulo: "Sin Conexión" Marzo 1995 Padriac Boyle.

Abstracto en ingles:

his work has as central axis the connections the, and inside this topic stress has been made in the characteristics of the communication and for satellite.

The work begins with a brief description of what understands each other for satellite and system satellite, it stops then to deepen the models of connection of the system satellite that are three: The gone up model of, the transponder and the slope pattern.

Later on the orbits satellite are analyzed, describing the satellite orbital in the first place or not synchronous, it stops then to continue with the satellites geoestacionarios, where the typical parameters of an orbit geoestacionaria have been included. The topic of the orbits satelitales concludes with the orbital patterns, for I finish the three types of possible orbits they are described: Equatorial, polar, and inclined.

Then a complete description has been made about the longitude and latitude, to be able to approach the topic of the angles of view that you/they are: The elevation angle and azimuth. Here a definition of this angles is provided and the attenuation of a radiated wave is analyzed when the elevation angle is too small, a diagram is also included for the I calculate of this angles.

For I finish inside the topic classifications of the satellites, under and assignments of Frequency, they are analyzed the satellites spinners and stabilizers of three axes shortly (inside what you/they understand the classifications). it is Also spoken of the space separation that should exist among the satellites and that this separation depends.

Finally the frequencies of more common have are named and a square is provided with the different bands of frequencies for use satellite.

Page 12: algoritmos y programacion

2. EXPOSICION NUMERO 2: CREACION DE ANTIVIRUS Nombre de expositor: Leidy Carolina Puerto Hora de inicio: 4: 21 pm Hora de finalización: 4:27 pm.

DIAGRAMA:

CREACION DE ANTIVIRUS

TIPOS DE VIRUS

TROYANOS

GUSANOS

SECTOR DE ARRANQUE

RETRO VIRUS

BOMBAS DE INTERNET

ANTIVIRUS

Los antivirus son una

herramienta simple cuyo

objetivo es detectar y eliminar

virus informáticos

Tipos de vacunas

CA:Sólo detección: Son vacunas que solo detectan archivos infectados sin embargo no pueden eliminarlos o desinfectarlos.

CA:Detección y desinfección: son vacunas que detectan archivos infectados y que pueden desinfectarlos.

CA:Detección y aborto de la acción: son vacunas que detectan archivos infectados y detienen las acciones que causa el virus

CB:Comparación por firmas: son vacunas que comparan las firmas de archivos sospechosos para saber si están infectados.

CB:Comparación de signature de archivo: son vacunas que comparan las signaturas de los atributos guardados en tu equipo.

CB:Por métodos heurísticos: son vacunas que usan métodos heurísticos para comparar archivos.

CC:Invocado por el usuario: son vacunas que se activan instantáneamente con el usuario.

CC:Invocado por la actividad del sistema: son vacunas que se activan instantáneamente por la actividad del sistema windows xp/vista

Firewalls

Filtrar contenidos y puntos de acceso. Eliminar

programas que no estén relacionados con la actividad.

Tener monitorizado los accesos de los usuarios a la

red, permite asimismo reducir la instalación de

software que no es necesario o que puede generar

riesgo para la continuidad del negocio. Su significado

es barrera de fuego y no permite que otra persona no

autorizada tenga acceso desde otro equipo al tuyo.

Page 13: algoritmos y programacion

Funcionamiento

El funcionamiento de un antivirus varía de uno a otro, aunque su comportamiento normal se basa en contar con una lista de virus conocidos y su formas de reconocerlos (las llamadas firmas o vacunas), y analizar contra esa lista los archivos almacenados o transmitidos desde y hacia un ordenador.

Adicionalmente, muchos de los antivirus actuales han incorporado funciones de detección proactiva, que no se basan en una lista de malware conocido, sino que analizan el comportamiento de los archivos o comunicaciones para detectar cuáles son potencialmente dañinas para el ordenador, con técnicas como heurística, HIPS, etc.

Usualmente, un antivirus tiene uno o varios componentes residentes en memoria que se encargan de analizar y verificar todos los archivos abiertos, creados, modificados, ejecutados y transmitidos en tiempo real, es decir, mientras el ordenador está en uso.

Asimismo, cuentan con un componente de análisis bajo demanda (los conocidos scanners, exploradores, etc.) y módulos de protección de correo electrónico, Internet, etc.

El objetivo primordial de cualquier antivirus actual es detectar la mayor cantidad de amenazas informáticas que puedan afectar un ordenador y bloquearlas antes de que la misma pueda infectar un equipo, o poder eliminarla tras la infección.

Actualmente hay una gran variedad de antivirus, pero no todos se asemejan al pretendido por todos: un antivirus eficaz en todos los sentidos.

Daños y perjuicios

Dado que una característica de los virus es el consumo de recursos, los virus ocasionan problemas tales como pérdida de productividad, baja en el rendimiento del equipo, cortes en los sistemas de información o daños a nivel de datos.

Otra de las características es la posibilidad que tienen de ir replicándose en otras partes del sistema de información. Las redes, en la actualidad, ayudan a dicha propagación.

Los daños que los virus causan a los sistemas informáticos son:

Pérdida de información (evaluable y actuable según el caso). Horas de contención (técnicos de SI, horas de paradas productivas, pérdida

productiva, tiempos de contención o reinstalación, cuantificables según el caso y horas de asesoría externa).

Pérdida de imagen (valor no cuantificable).

Hay que tener en cuenta que cada virus es una situación nueva, por lo que es difícil cuantificar en una primera valoración lo que puede costar una intervención.

Page 14: algoritmos y programacion

Métodos de contagio

Existen dos grandes grupos de propagación: los virus cuya instalación el usuario en un momento dado ejecuta o acepta de forma inadvertida, o los gusanos, con los que el programa malicioso actúa replicándose a través de las redes.

En cualquiera de los dos casos, el sistema operativo infectado comienza a sufrir una serie de comportamientos anómalos o no previstos. Dichos comportamientos son los que dan la traza del problema y tienen que permitir la recuperación del mismo.

Dentro de las contaminaciones más frecuentes por interacción del usuario están las siguientes:

Mensajes que ejecutan automáticamente programas (como el programa de correo que abre directamente un archivo adjunto).

Ingeniería social, mensajes como: «Ejecute este programa y gane un premio». Entrada de información en discos de otros usuarios infectados. Instalación de software que pueda contener uno o varios programas maliciosos. Unidades extraíbles de almacenamiento (USB).

Seguridad y métodos de protección

Existen numerosos medios para combatir el problema; Sin embargo, a medida que nuevos programas y sistemas operativos se introducen en el mercado, más difícil es tener controlados a todos y más sencillo va a ser que a alguien se le ocurran nuevas formas de infectar sistemas.

Ante este tipo de problemas, están los softwares llamados antivirus. Estos antivirus tratan de descubrir las trazas que ha dejado un software malicioso para detectarlo o eliminarlo, y en algunos casos contener o parar la contaminación (cuarentena).

Los métodos para contener o reducir los riesgos asociados a los virus pueden ser los denominados activos o pasivos.

Antivirus (activo)

Estos programas, como se ha mencionado, tratan de encontrar la traza de los programas maliciosos mientras el sistema esté funcionando.

Tratan de tener controlado el sistema mientras funciona parando las vías conocidas de infección y notificando al usuario de posibles incidencias de seguridad.

Como programa que esté continuamente funcionando, el antivirus tiene un efecto adverso sobre el sistema en funcionamiento. Una parte importante de los recursos se destinan al funcionamiento del mismo. Además, dado que están continuamente

Page 15: algoritmos y programacion

comprobando la memoria de la máquina, dar más memoria al sistema no mejora las prestaciones del mismo.

Otro efecto adverso son los falsos positivos; es decir, notificar al usuario de posibles incidencias en la seguridad. De esta manera, el antivirus funcionando da una sensación de falsa seguridad.

Tipos de vacunas

CA:Sólo detección: Son vacunas que solo detectan archivos infectados sin embargo no pueden eliminarlos o desinfectarlos.

CA:Detección y desinfección: son vacunas que detectan archivos infectados y que pueden desinfectarlos.

CA:Detección y aborto de la acción: son vacunas que detectan archivos infectados y detienen las acciones que causa el virus

CB:Comparación por firmas: son vacunas que comparan las firmas de archivos sospechosos para saber si están infectados.

CB:Comparación de signature de archivo: son vacunas que comparan las signaturas de los atributos guardados en tu equipo.

CB:Por métodos heurísticos: son vacunas que usan métodos heurísticos para comparar archivos.

CC:Invocado por el usuario: son vacunas que se activan instantáneamente con el usuario.

CC:Invocado por la actividad del sistema: son vacunas que se activan instantáneamente por la actividad del sistema windows xp/vista

Filtros de ficheros (activo)

Otra aproximación es la de generar filtros dentro de la red que proporcionen un filtrado más selectivo. Desde el sistema de correos, hasta el empleo de técnicas de firewall, proporcionan un método activo y eficaz de eliminar estos contenidos.

En general este sistema proporciona una seguridad donde el usuario no requiere de intervención, puede ser más tajante, y permitir emplear únicamente recursos de forma más selectiva.

Page 16: algoritmos y programacion

Copias de seguridad (pasivo)

Mantener una política de copias de seguridad garantiza la recuperación de los datos y la respuesta cuando nada de lo anterior ha funcionado.

Así mismo las empresas deberían disponer de un plan y detalle de todo el software instalado para tener un plan de contingencia en caso de problemas.

Planificación

La planificación consiste en tener preparado un plan de contingencia en caso de que una emergencia de virus se produzca, así como disponer al personal de la formación adecuada para reducir al máximo las acciones que puedan presentar cualquier tipo de riesgo. Cada antivirus puede planear la defensa de una manera, es decir, un antivirus puede hacer un escaneado completo, rápido o de vulnerabilidad según elija el usuario.

Consideraciones de software

El software es otro de los elementos clave en la parte de planificación. Se debería tener en cuenta la siguiente lista de comprobaciones:

1. Tener el software imprescindible para el funcionamiento de la actividad, nunca menos pero tampoco más. Tener controlado al personal en cuanto a la instalación de software es una medida que va implícita. Así mismo tener controlado el software asegura la calidad de la procedencia del mismo (no debería permitirse software pirata o sin garantías). En todo caso un inventario de software proporciona un método correcto de asegurar la reinstalación en caso de desastre.

2. Disponer del software de seguridad adecuado. Cada actividad, forma de trabajo y métodos de conexión a Internet requieren una medida diferente de aproximación al problema. En general, las soluciones domésticas, donde únicamente hay un equipo expuesto, no son las mismas que las soluciones empresariales.

3. Métodos de instalación rápidos. Para permitir la reinstalación rápida en caso de contingencia.

4. Asegurar licencias. Determinados softwares imponen métodos de instalación de una vez, que dificultan la reinstalación rápida de la red. Dichos programas no siempre tienen alternativas pero ha de buscarse con el fabricante métodos rápidos de instalación.

5. Buscar alternativas más seguras. Existe software que es famoso por la cantidad de agujeros de seguridad que introduce. Es imprescindible conocer si se puede encontrar una alternativa que proporcione iguales funcionalidades pero permitiendo una seguridad extra.

Page 17: algoritmos y programacion

Consideraciones de la red

Disponer de una visión clara del funcionamiento de la red permite poner puntos de verificación filtrado y detección ahí donde la incidencia es más claramente identificable. Sin perder de vista otros puntos de acción es conveniente:

1. Mantener al máximo el número de recursos de red en modo de sólo lectura. De esta forma se impide que computadoras infectadas los propaguen.

2. Centralizar los datos. De forma que detectores de virus en modo batch puedan trabajar durante la noche.

3. Realizar filtrados de firewall de red. Eliminar los programas que comparten datos, como pueden ser los P2P; Mantener esta política de forma rigurosa, y con el consentimiento de la gerencia.

4. Reducir los permisos de los usuarios al mínimo, de modo que sólo permitan el trabajo diario.

5. Controlar y monitorizar el acceso a Internet. Para poder detectar en fases de recuperación cómo se ha introducido el virus, y así determinar los pasos a seguir.

Antivirus

Es conveniente disponer de una licencia activa de antivirus. Dicha licencia se empleará para la generación de discos de recuperación y emergencia. Sin embargo no se recomienda en una red el uso continuo de antivirus.

El motivo radica en la cantidad de recursos que dichos programas obtienen del sistema, reduciendo el valor de las inversiones en hardware realizadas.

Aunque si los recursos son suficientes. Este extra de seguridad puede ser muy útil.

Sin embargo los filtros de correos con detectores de virus son imprescindibles, ya que de esta forma se asegurará una reducción importante de decisiones de usuarios no entrenados que pueden poner en riesgo la red.

Firewalls

Artículo principal: Cortafuegos (informática)

Filtrar contenidos y puntos de acceso. Eliminar programas que no estén relacionados con la actividad. Tener monitorizado los accesos de los usuarios a la red, permite asimismo reducir la instalación de software que no es necesario o que puede generar riesgo para la continuidad del negocio. Su significado es barrera de fuego y no permite que otra persona no autorizada tenga acceso desde otro equipo al tuyo.

Page 18: algoritmos y programacion

Reemplazo de software

Los puntos de entrada en la red son generalmente el correo, las páginas WEB, y la entrada de ficheros desde discos, o de PC que no están en la empresa (portátiles...) Muchas de estas computadoras emplean programas que pueden ser reemplazados por alternativas más seguras.

Es conveniente llevar un seguimiento de cómo distribuyen bancos, y externos el software, valorar su utilidad e instalarlo si son realmente imprescindibles.

Centralización y backup

La centralización de recursos y garantizar el backup de los datos es otra de las pautas fundamentales en la política de seguridad recomendada.

La generación de inventarios de software, centralización del mismo y la capacidad de generar instalaciones rápidas proporcionan métodos adicionales de seguridad.

Es importante tener localizado donde tenemos localizada la información en la empresa. De esta forma podemos realizar las copias de seguridad de forma adecuada.

Control o separación de la informática móvil, dado que esta está más expuesta a las contingencias de virus.

Empleo de sistemas operativos más seguros

Para servir ficheros no es conveniente disponer de los mismos sistemas operativos que se emplean dentro de las estaciones de trabajo, ya que toda la red en este caso está expuesta a los mismos retos. Una forma de prevenir problemas es disponer de sistemas operativos con arquitecturas diferentes, que permitan garantizar la continuidad de negocio.

BIBLIOGRAFIA:

Enlaces externos

Microsoft: Ayuda y soporte técnico - Lista de proveedores de software antivirus Centro de Respuesta a Incidentes de Seguridad (Información actualizada sobre

todas las amenazas que circulan por la red) del Gobierno de España - Software antivirus

Page 19: algoritmos y programacion

Abstracted en ingles:

THE ANTIVIRUSES

That it is an antivirus?

An antivirus is a computer program whose purpose is to combat and to eradicate the virus computer specialist. So that the antivirus is productive and cash is to configure it carefully in such a way that all the qualities that they possess take advantage. It is necessary to know which are their strengths and weaknesses and to keep them in mind when facing to the virus.

We should have clear that according to in the human life there is virus that you/they don't have cure, this also happens in the digital world and it is necessary to walk with a lot of caution. An antivirus is a solution to minimize the risks and it will never be a definitive solution, the main thing it is to maintain it up-to-date. To maintain the stable system and seguroel antivirus it should always be up-to-date, always taking preventive measures and correctivas and reading on the virus and new technologies to constantly be. Escanear

The antivirus usually escanea each file in the computer and it compares it with the virus charts that he/she keeps in disk. This means that most of the virus is eliminated of the system after they attack this. For this reason the antivirus should always be up-to-date, it is advisable that it is upgraded once per week so that it is able the virus that you/they are created every day to combat. Also, the antiviruses use the heuristic technique that allows to detect virus that not yet are in the database of the antivirus. It is extremely useful for the infections that have not still been upgraded in the charts because it tries to already locate the virus according to certain behaviors preset.

The most important aspect in an antivirus is to detect virus in the computer and to try somehow to take out it and to eliminate it of our system. The antiviruses, completely don't facilitate the things, because them when being the whole time activosy trying to find a virus, at once this makes them to consummate memory of the computer and perhaps they return her a little slow or of less acting.

A good antivirus is one that is adjusted to our necessities. We should not allow ourselves to seduce for so much propaganda of the antiviruses that say that they detect and they eliminate 56,432 virus or something for the style because most of those virus or they are families derivadaso they will never arrive to the country where we are. Many virus is only of some region or of some country in particular.

When buying a good antivirus we should know with which frequency that empresasaca upgrades of the virus charts since these they are created daily to infect the systems. The antivirus should consist of a detecting program of virus that always this asset in the memory and a program that it verifies the integrity of the critical sectors of the hard disk and its executable files. There is antivirus that cover those two processes, but if one cannot obtain one with those characteristics it is necessary to look for two programs for

Page 20: algoritmos y programacion

separate that make that function having very in bill that any type of conflicts doesn't take place among them.

An antivirus besides protecting us the system against virus, it should allow the user to make some copy of the file infected just in case he/she corrupts in the process of cleaning, the copy is also beneficial to attempt a second cleaning with another antivirus if the first flaw in achieving its objective.

At the present time it is not difficult to suppose that every time there is more people than it is aware of the necessity of making use of some antivirus like measure of basic protection. Nevertheless, in principle the desirable thing would be podertener a panorama of the different products that you/they exist and to be able to have an initial guide to proceed to evaluate them.

Page 21: algoritmos y programacion

3. EXPOSICION NUMERO 3: SISTEMAS DE VISUALIZACION: Nombre de expositor: FABIAN ANDRES PAIPILLA SALAMANCA Hora de inicio: 4: 27 pm Hora de finalización: 4:39 pm.

DIAGRAMA:

EXPLICACION DEL TEMA:

DirectX es una colección de APIs desarrolladas para facilitar las complejas tareas relacionadas con multimedia, especialmente programación de juegos y vídeo, en la plataforma Microsoft Windows.

DirectX consta de las siguientes APIs:

Direct3D: utilizado para el procesamiento y la programación de gráficos en tres dimensiones (una de las características más usadas de DirectX).

Direct Graphics: para dibujar imágenes en dos dimensiones (planas), y para representar imágenes en tres dimensiones.

DirectInput: para procesar datos del teclado, mouse, joystick y otros controles para juegos.

DirectPlay: para comunicaciones en red.

SISTEMAS DE VISUALIZACION

Componentes principales

Software Hardware

Directx depende de la versión de

Windows

Tarjeta grafica externa.

Software y drivers necesarios para la

tarjeta grafica

Page 22: algoritmos y programacion

DirectSound: para la reproducción y grabación de sonidos de ondas. DirectMusic: para la reproducción de pistas musicales compuestas con DirectMusic

Producer. DirectShow: para reproducir audio y vídeo con transparencia de red. DirectSetup: para la instalación de componentes DirectX. DirectCompute: lenguaje e instrucciones especiales para el manejo de cientos o

miles de hilos de procesamiento, especial para procesadores de nucleos masivos.

A pesar de ser desarrollado exclusivamente para la plataforma Windows, se está desarrollando una implementación de código abierto de su API para sistemas Unix (en particular Linux) y X Window System por el proyecto WineHQ, del cual existe fork propietario, Cedega, desarrollada por la empresa de software Transgaming y orientada a la ejecución de juegos desarrollados para Windows bajo sistemas Unix.

Historial de lanzamientos

Versión de DirectX

Número de versión Sistema Operativo Fecha de Lanzamiento

DirectX 5.2 4.05.01.1998 Windows 98 5 de mayo de 1998

DirectX 6.0 4.06.00.0318 Windows CE para la Dreamcast

7 de agosto de 1998

DirectX 8.0a 4.08.00.0400 (RC14) + parches de instalación

Última versión para Windows 95

7 de noviembre de 2000

DirectX 8.1 4.08.01.0810 4.08.01.0881 (RC7)

Windows XP

12 de noviembre de 2001

DirectX 9.0 4.09.00.0900 Windows Server 2003

19 de diciembre de 2002

DirectX 9.0a 4.09.00.0901 26 de marzo de 2003

Page 23: algoritmos y programacion

DirectX 9.0b 4.09.00.0902 (RC2) 13 de agosto de 2003

DirectX 9.0c 4.09.0000.0904 (RC0)

Windows XP SP2, Windows Server 2003 SP1, y Xbox 360. Última versión exclusiva para 32-bit.

13 de diciembre de 2004

DirectX 9.0c 4.09.0000.0904

Compatible con todos los Sistemas Windows que soporten 9.0c (RC0) Primera versión en incluir D3DX DLLs

9 de diciembre de 2005

DirectX 9.0c - actualizaciones bimensuales

4.09.0000.0904

Desde agosto del 2005 hasta el presente. Última versión: 30 de Noviembre de 2010

DirectX 10

6.00.6000.16386 Exclusivo de Windows Vista

30 de noviembre de 2006

6.00.6001.18000

Service Pack 1 para Windows Vista, Windows Server 2008 incluye Direct3D 10.1

4 de febrero de 2008

6.00.6002.18005

Service Pack 2 para Windows Vista, Windows Server 2008 incluye Direct3D 10.1

28 de abril de 2009

DirectX 11 6.01.7600.16385 Windows 7 y Windows Server 2008 R2

22 de octubre de 2009

Page 24: algoritmos y programacion

7.00.6002.18107

Windows Vista SP2 y Windows Server 2008 SP2, mediante la actualización de plataforma para Windows Vista y Windows Server 20081

27 de octubre de 2009

Nota: Las versiones y revisiones corresponden solo a las modificaciones en Windows XPSP3, en el cual fue instalado el 6 de Diciembre.

DirectX 10

Como cambio mayor en la API DirectX, DirectX 10 es lanzado junto a Windows Vista y es exclusivo de este sistema; versiones anteriores de Windows no pueden ejecutar aplicaciones exclusivas de DirectX 10 de manera oficial.2

Muchas partes de la API fueron sacadas en el último DirectX SDK y se mantienen únicamente con motivos de compatibilidad: DirectInput fue retirado en favor de XInput, DirectSound fue reemplazado por XACT con la consecuente pérdida de soporte de aceleración de hardware, debido a nuevas características en la pila de audio de Windows Vista, la cual renderiza el audio directamente al procesador.

Para mantener una compatibilidad hacia atrás, DirectX de Windows Vista contiene muchas versiones de Direct3D:3

Direct3D 9: emula el comportamiento de Direct3D 9 como lo era en Windows XP. Las ventajas del nuevo Windows Display Driver Model de Vista no son mostradas a la aplicación si no están instalados controladores WDDM.

Direct3D 9Ex: permite acceso total a las nuevas capacidades de WDDM (si están instalados controladores compatibles con WDDM) a la vez que se mantiene compatibilidad con aplicaciones Direct3D existentes. La interfaz de usuario Windows Aero trabaja en D3D 9Ex.

Direct3D 10: Diseñada alrededor del nuevo modelo de controlador de Windows Vista y proporcionando muchas mejoras a las capacidades y flexibilidad de renderizado, incluyendo el Shader Model 4.

Direct3D 10.1 es una actualización incremental de Direct3D 10, la cual se incluye y requiere de Windows Vista Service Pack 1. Esta release sólo determina algunos estándares de calidad para los fabricantes de tarjetas gráficas, a la vez que proporciona a desarrolladores más control en la calidad de la imagen.4 También incluye una serie de nuevos requerimientos mínimos al hardware, como Shader Model 4.1 y operaciones de punto flotante de 32-bit. Direct3D 10.1 soporta completamente el hardware Direct3D 10, pero para acceder a las nuevas características se necesita de una tarjeta nueva.

Page 25: algoritmos y programacion

Sin embargo hay que tener en consideración, que a pesar de que Microsoft trato de mantener en DirectX 10 cierta compatibilidad hacia atrás, hay programas (especialmente videojuegos creados antes de la aparición de DirectX 10) que requieren tener instalado algunos de los archivos de DirectX 9; pero los cuales no fueron considerados que estuvieran presentes en la versión DirectX 10. Debido a ello igualmente a los usuarios de Windows Vista, se les sugiere también haber instalado la última versión de DirectX 9.0c (actualizaciones bimensuales); con el objetivo de mejorar la compatibilidad entre Windows Vista y los programas que requieran DirectX 9 (ambas versiones de DirectX son compatibles, ya que solo serán instalados los archivos que no están presentes en la versión posterior de DirectX; con lo cual DirectX 10 aún permanecerá como la versión instalada en Windows Vista).

DirectX 11

DirectX ® 11, la próxima generación de tecnología de gráficos, llega con Windows 7. Esta es una gran noticia para los jugadores ya que muchos de los juegos más novedosos para Windows aprovechan al máximo esta tecnología para crear mundos de manera más inmersiva y detallada, tanto como para mejorar las experiencias visuales. Los desarrolladores de juegos utilizan las nuevas características para crear mundos ricos, personajes realistas, y hacer más fluido el juego.

DirectX 11 características, incluyen:

Teselación - Teselación se ejecuta sobre la GPU para calcular una superficie más suave curva que resulta en imágenes detalladas de manera más gráfica, incluyendo más personajes llenos de vida en los mundos de juego que explorar.

Multi-Threading - La capacidad de las escalas dentro de las CPUs Multinúcleo permitirá a los desarrolladores aprovechar mejor el poder dentro de ellas. El resultado sera FPS más rápidos para los juegos, sin dejar de apoyar el mayor detalle visual posible.

DirectCompute - Los desarrolladores pueden utilizar la potencia de las tarjetas gráficas discretas (De gama Baja) para acelerar los juegos y aplicaciones. Esto mejora los gráficos, al mismo tiempo permitiendo a los jugadores acelerar las tareas diarias, como la edición de vídeo, en su PC de Windows.

Mientras que Windows 7 es totalmente compatible con los juegos y el hardware que utilizan las versiones anteriores de DirectX, las características del nuevo DirectX 11 están disponibles sólo con las tarjetas gráficas compatibles con los juegos diseñados para Directx 11.

Page 26: algoritmos y programacion

Administrar la configuración 3D TARJETA GRAFICA NVIDIA:

La página Administrar configuración 3D le permite

establecer configuraciones 3D predeterminadas para usar con todas las aplicaciones Direct3D u OpenGL.

establecer una combinación única de configuraciones 3D para un juego o aplicación en particular.

Configuración global

En la ficha Configuración global, puede seleccionar a partir de una lista de configuraciones globales preinstaladas (para estaciones de trabajo) o crear sus propias configuraciones personalizadas para utilizarlas cuando esté ejecutando aplicaciones 3D.

Procesador de gráficos preferido (sólo en sistemas que utilizan tecnología NVIDIA® Optimus™). Entre las opciones de la lista, puede especificar

Usar el procesador NVIDIA de alto rendimiento para obtener el máximo rendimiento o para descodificar cualquier video reproducido en las pantallas conectadas a los gráficos integrados, o

Usar los gráficos integrados para que dure más la batería o para descodificar cualquier contenido de video que se reproduce en pantallas conectadas a los gráficos integrados, o

Permita que el controlador seleccione automáticamente el procesador de gráficos más compatible de acuerdo al programa o códec de video.

Notas:

o Los programas y videos que se inician en pantallas externas controladas por la GPU de NVIDIA siempre usarán la GPU de NVIDIA en vez del procesador de gráficos integrado.

o Cuando modifica una configuración Optimus, los programas que ya se están ejecutando continuarán utilizando el mismo procesador de gráficos ininterrumpidamente. Para permitir que los valores de configuración de "Procesador de gráficos preferido" surtan efecto, debe reiniciar el programa.

Configuración de programas

En la ficha Configuración de programas, puede crear un conjunto de configuraciones 3D para usar al ejecutar un juego o una aplicación en particular.

Page 27: algoritmos y programacion

Seleccionar un programa para personalizar contiene las aplicaciones y los juegos instalados a los cuales ha asignado combinaciones únicas de configuraciones 3D. Cada línea incluye el icono y el nombre del juego.

Mostrar sólo los programas que están en mi computadora. Seleccione esta casilla si desea que la lista muestre sólo los juegos que están instalados en su sistema. El controlador aún puede detectar los juegos en ejecución y aplicarles las configuraciones 3D correspondientes, incluso si el filtro de la lista de juegos instalados en el sistema no los encuentra.

Procesador de gráficos preferido (sólo en sistemas que utilizan tecnología NVIDIA® Optimus™). Entre las opciones de la lista, puede especificar

Usar el procesador NVIDIA de alto rendimiento para obtener el máximo rendimiento o para descodificar cualquier video reproducido en las pantallas conectadas a los gráficos integrados, o

Usar los gráficos integrados para que dure más la batería o para descodificar cualquier contenido de video que se reproduce en pantallas conectadas a los gráficos integrados, o

Permita que el controlador seleccione automáticamente el procesador de gráficos más compatible de acuerdo al programa o códec de video.

Funciones y configuraciones

Las fichas Configuración global y Configuración de programas incluyen una lista de las funciones que puede establecer. La lista exacta de funciones que aparecerá depende de la tarjeta de gráficos y de la aplicación.

Oclusión ambiental mejora la percepción de profundidad y añade realismo a las escenas en 3D al proporcionar un efecto de sombra suave a los objetos en función de sus posiciones en dicha escena. Seleccionar el nivel que proporcione el mejor equilibrio entre efectos realistas y rendimiento gráfico.

Esta función no es compatible con todas las aplicaciones. Consulte la información correspondiente a esta función en la ficha Configuración de programas para comprobar si es compatible con su aplicación.

El filtro anisotrópico consiste en una técnica utilizada para mejorar la calidad de las texturas aplicadas a las superficies de objetos 3D cuando se dibujan en un ángulo agudo. Si se activa esta opción, se mejora la calidad de la imagen a expensas del rendimiento. Puede elegir entre permitir que la aplicación determine la configuración del filtro anisotrópico, desactivarlo completamente o seleccionar entre una variedad de configuraciones disponibles. Los valores más altos producen mejor calidad de imagen pero reducen el rendimiento.

Desactivado desactiva el suavizado de líneas.

Page 28: algoritmos y programacion

Controlado por la aplicación permite que la aplicación controle el nivel del suavizado de líneas. Ésta es la configuración preferida para usar con aplicaciones que tienen incorporados controles de suavizado de líneas.

La opción Mejorar la configuración de la aplicación (con los valores indicados en Configuración de suavizado de líneas) ofrece el suavizado de líneas más confiable y con mayor calidad, si desea usar el suavizado de líneas de NVIDIA con aplicaciones que tienen controles incorporados para dicha técnica.

Para usar esta opción, debe establecer el suavizado de líneas de la aplicación en cualquier nivel (por ejemplo, 2x) y luego determinar el nivel de suavizado de NVIDIA mediante la función Configuración de suavizado de líneas. La configuración de suavizado de líneas de NVIDIA se aplica independientemente de la configuración de la aplicación.

Anular toda configuración de la aplicación (con los valores indicados en Configuración de suavizado de líneas) se puede usar si la aplicación no tiene controles incorporados para el suavizado de líneas, o bien si usa renderizado de alto rango dinámico (High Dynamic Range, HDR) y el suavizado de líneas incorporado no funciona cuando el HDR está activado.

Para usar el suavizado de líneas de NVIDIA con aplicaciones que tienen incorporados controles de suavizado de líneas, utilice Mejorar la configuración de la aplicación.

La Configuración de suavizado de líneas permite establecer el nivel de suavizado de líneas para utilizar en las aplicaciones 3D. Puede elegir entre permitir que la aplicación determine la configuración de suavizado de líneas, desactivar completamente el suavizado de líneas o seleccionar entre una variedad de configuraciones disponibles.

Controlado por aplicación permite que la aplicación controle el nivel de suavizado de líneas. Ésta es la configuración preferida para usar con aplicaciones que tienen incorporados controles de suavizado de líneas.

La opción Ninguno desactiva el suavizado de líneas. Configuración específica de suavizado de líneas: El valor más alto corresponde a un

nivel más alto de suavizado de líneas. Por ejemplo, 16x es una configuración de calidad más alta que 2x.

Gamma de suavizado de líneas mejora el color y la calidad de las líneas 3D en los programas OpenGL.

Suavizado de líneas con corrección gamma permite al usuario activar o desactivar el suavizado de líneas con corrección gamma para mejorar el color y la calidad de imágenes 3D en programas OpenGL.

Page 29: algoritmos y programacion

Suavizado de líneas - Transparencia permite minimizar las líneas visibles en los bordes de las imágenes con texturas transparentes.

Multimuestreo ofrece mejor rendimiento. Súpermuestreo ofrece mejor calidad. Con las nuevas GPU, hay disponibles configuraciones específicas de suavizado de

líneas, con límites establecidos por el valor elegido en Suavizado de líneas - Configuración. Por ejemplo, si eligió 4x AA, entonces los valores disponibles del suavizado de líneas con transparencia son 1x, 2x y 4x, pero no 8x.

Modo de volteo gráfico del búfer determina cómo se copia el búfer del vídeo a la pantalla en programas OpenGL.

CUDA - GPU permite especificar una o más GPU para utilizar con aplicaciones CUDA. Las GPU no seleccionadas no se utilizarán para aplicaciones CUDA.

Color intenso para aplicaciones 3D permite mostrar las aplicaciones 3D de OpenGL en colores más intensos que lo aceptado por el escritorio de Windows. La aplicación y el monitor deben tener la capacidad de renderizar contenido de color intenso.

Activar superposición permite utilizar planos superpuestos de OpenGL.

Tipos de píxeles exportados determina el formato de píxel superpuesto para exportar, de modo que las aplicaciones OpenGL puedan usar superposiciones. Las opciones de formato incluyen formatos identificados con color (8-bpp), RGB555, o ambos.

La Cantidad máxima de tramas previamente renderizadas limita la cantidad de tramas en los juegos DirectX que la CPU puede preparar antes de que la GPU las procese. Durante el juego, una cantidad elevada puede proporcionar un juego más fluido con velocidades de trama menores, mientras que una cantidad menor puede solucionar las respuestas lentas de dispositivos de entrada tales como el mouse o el teclado.

Aceleración de GPU multipantalla/mezclada. Determina las opciones avanzadas de renderizado de OpenGL al utilizar múltiples pantallas y tarjetas gráficas en función de diferentes clases de GPU de NVIDIA.

Modo de rendimiento de una sola pantalla: Especifique este parámetro si tiene problemas con los modos multipantalla.

El Modo de rendimiento de compatibilidad es útil si tiene dos o más pantallas activas al usar el modo de pantalla Dualview de nView o si está utilizando diferentes clases de tarjetas de gráficos basadas en GPU de NVIDIA.

El Modo de rendimiento multipantalla es útil si tiene dos o más pantallas activas al ejecutarse el modo Dualview de nView o si está utilizando diferentes clases de tarjetas de gráficos basadas en GPU de NVIDIA.

Page 30: algoritmos y programacion

Modo de rendimiento multi-GPU determina el modo de renderizado usado en el modo multi-GPU. Puede seleccionar el modo GPU única o uno de los diferentes modos de renderizado multi-GPU.

El modo Administración de energía permite establecer cómo cambia el nivel de rendimiento de la tarjeta de gráficos cuando se ejecutan la mayoría de las aplicaciones 3D DirectX u OpenGL.

Nota: Este control sólo está disponible con las GPU de la serie GeForce 9 y posteriores.

Adaptable: Ahorrar energía dejando que el controlador de gráficos reduzca el rendimiento de la GPU según las necesidades de la aplicación 3D.

Preferir rendimiento máximo: Utilizar la GPU sólo al máximo rendimiento cuando se ejecutan la mayoría de las aplicaciones 3D.

GPU de renderizado de OpenGL permite seleccionar la GPU a usar para las aplicaciones OpenGL. Si selecciona una GPU de un grupo SLI, se usan todas las GPU en el grupo SLI. Seleccione Selección automática para que el controlador decida qué GPU utilizar.

Frecuencia de actualización preferida (<nombre del monitor>) permite anular las limitaciones de la frecuencia de actualización impuestas por la aplicación 3D para el monitor indicado. Esto es especialmente útil para ver juegos en estéreo 3D.

Controlado por la aplicación: Permite que la aplicación 3D decida la frecuencia de actualización óptima.

Si la configuración 3D estereoscópica de NVIDIA se instala pero no se activa, la opción Controlado por la aplicación se fuerza y no se puede cambiar.

La más alta disponible: Sustituir la configuración de la aplicación 3D con la frecuencia de actualización más alta disponible para aprovechar las pantallas con mayor frecuencia de actualización y mejorar la calidad de la imagen.

Si su aplicación no tiene un rendimiento adecuado al utilizar la opción "La más alta disponible", seleccione "Controlado por la aplicación".

El Modo de rendimiento SLI determina el modo de renderizado usado en el modo SLI. Puede seleccionar el modo GPU única, uno de los diferentes modos de renderizado SLI, o el modo de suavizado de líneas SLI que combina la capacidad de varias GPU para ofrecer un suavizado de líneas de mayor calidad. Todos estos modos son mutuamente excluyentes.

Page 31: algoritmos y programacion

El Modo de pantalla estereoscópica permite seleccionar el modo de pantalla para lentes o demás hardware estereoscópico. Consulte la documentación del hardware para saber qué modo usar. Se aplica a los programas estéreo de OpenGL.

Estéreo - Activado. Active esta opción sólo si es necesario. Algunas aplicaciones eligen automáticamente un formato estéreo, mientras que otras aplicaciones pueden presentar problemas de funcionamiento en el formato de píxel estereoscópico. Se aplica a los programas estéreo de OpenGL.

Forzar obturador estéreo. Esta configuración fuerza la conmutación de la señal estéreo cuando no se detectan lentes obturadores ni ningún otro hardware de visión estereoscópica 3D. Se aplica a los programas estéreo de OpenGL.

Estéreo – Intercambiar ojos. Active esta opción para intercambiar las imágenes estereoscópicas izquierda y derecha, si el efecto de visión 3D no se ve correctamente con la configuración actual. Se aplica a los programas estéreo de OpenGL.

Filtro de textura - Optimización anisotrópica del filtro mejora el rendimiento limitando el filtrado trilineal a la fase de textura principal donde se determina la apariencia general y el color de los objetos. Esto mejora el rendimiento con una pérdida mínima de la calidad de la imagen. Esta configuración sólo afecta a los programas DirectX.

Filtro de textura - Optimización anisotrópica de muestras limita la cantidad de muestras anisotrópicas utilizadas según el tamaño del texel. Esta configuración sólo afecta a los programas DirectX.

Filtro de textura - Inclinación LOD negativa determina si se usa la inclinación negativa del nivel de detalle para que el filtrado de textura sea más nítido.

Filtro de textura - Calidad le permite decidir si desea privilegiar el rendimiento, la calidad o un balance entre los dos. El panel de control de NVIDIA realizará todos los ajustes correspondientes de las imágenes 3D según su preferencia.

Alto rendimiento ofrece la mayor velocidad de tramas posible, lo cual produce un rendimiento óptimo para las aplicaciones.

Rendimiento ofrece una mezcla óptima de calidad de imagen y rendimiento. El resultado es un rendimiento óptimo y una buena calidad de la imagen para las aplicaciones.

Calidad es la configuración predeterminada que produce calidad óptima de imagen para las aplicaciones.

Alta calidad produce la mejor calidad de imagen para las aplicaciones. Esta configuración no es necesaria para usuarios normales que ejecutan aplicaciones de juegos. Está diseñada para usuarios más avanzados que desean generar imágenes que no aprovechan la capacidad de programación del hardware de filtro de textura.

Page 32: algoritmos y programacion

Filtro de textura - Optimización trilineal mejora el rendimiento del del filtro de textura porque permite el filtrado bilineal en texturas de partes de la escena donde el filtrado trilineal no es necesario. Esta configuración sólo afecta a los programas DirectX.

Optimización de encaminado permite a las aplicaciones aprovechar las CPU múltiples.

Búfer triple permite al usuario activar o desactivar el búfer triple. Al activar esta configuración, se mejora el rendimiento cuando también está activada la sincronización vertical.

Búfer unificado de profundidad/fondo. Al activar esta opción, se asigna un búfer de fondo y un búfer de profundidad para aplicaciones que crean ventanas múltiples. Active esta opción para usar la memoria de video de manera más eficiente y mejorar el rendimiento.

Sincronización vertical permite al usuario activar o desactivar el modo de sincronización vertical. Puede activar la sincronización vertical si ve las imágenes seccionadas, desactivarla para mejorar el rendimiento, o bien usar las configuraciones que son parte de su aplicación 3D.

BIBLIOGRAFIA:

• www.Wikipedia.com.

• www.nvidia.com.

• - "Internet," Enciclopedia Microsoft® Encarta® Online 2010, http://es.encarta.msn.com ©

1997-2009 Microsoft Corporation.

Page 33: algoritmos y programacion

ABSTRACTOT EN INGLES:

He Graphic Design conforms a new vision as for the creation of objects, resulting in a change in the cultural order that is subtracted to an image that one has of the world. All the objects can be interpreted as a message icónico, established in a new outline of contents: posters, windows, steering wheels, phone guides, planes, books, maps, posters, containers, etc. This group of elements is distributed everywhere and it exercises a strong influence, with a reading dissimilar, as a great hypertext able to increase new habits.

Starting from this concept, it is possible to define it in a favorable field of activities. This new profession, arisen in 1945 - it dates established in an arbitrary way to understand that in this period the necessary conditions were given for their consolidation (Arfuch; 1999:15/19) -, it has facilitated the use of technological resources of advanced, multiplicand their reaches.

Today, it is necessary to see to the Graphic Design from a different optics. The calculation has entered to its lines, with a new theoretical contribution, in what is possible to fuse the traditional concepts of the design, with an establishment of technological court, in order to take advantage of to the maximum the possibilities of a more and more sophisticated resource.

For it, in this brief rehearsal the theoretical aspects, the technological resources and contributions technicians will be studied, the graphic interface and application practices to establish a new profile of "designer."

Page 34: algoritmos y programacion

4. EXPOSICION NUMERO 4: JAVA

Nombre de expositor: Nelson Enrique Blanco. Hora de inicio: 4: 42 pm Hora de finalización: 4:51 pm.

DIAGRAMA:

EXPLICACION DEL TEMA:

Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.

Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución,

Page 35: algoritmos y programacion

aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible.

La implementación original y de referencia del compilador, la máquina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y evolución del lenguaje a través del Java Community Process, si bien otros han desarrollado también implementaciones alternativas de estas tecnologías de Sun, algunas incluso bajo licencias de software libre.

Entre diciembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor parte de sus tecnologías Java bajo la licencia GNU GPL, de acuerdo con las especificaciones del Java Community Process, de tal forma que prácticamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java aún no lo es).

Historia

Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.

El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.

El término Java fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería cercana, de ahí que el icono de java sea una taza de cafe caliente. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos .class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teorías, el nombre fue sacado al parecer de una lista aleatoria de palabras.1

Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre John Gaga, James Gosling, Joy Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaic, propiciaría que Internet se convirtiese en un medio interactivo, como el que

Page 36: algoritmos y programacion

pensaban era la televisión por cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido como HotJava.

En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sería soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico. [1] Dos semanas más tarde la primera versión de Java fue publicada.

La promesa inicial de Gosling era Write Once, Run Anywhere (Escríbelo una vez, ejecútalo en cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de ejecución (la JVM) ligero y gratuito para las plataformas más populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma.

El entorno de ejecución era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las páginas web.

Java ha experimentado numerosos cambios desde la versión primigenia, JDK 1.0, así como un enorme incremento en el número de clases y paquetes que componen la biblioteca estándar.

Orientado a objetos

La primera característica, orientado a objetos (“OO”), se refiere a un método de programación y al diseño del lenguaje. Aunque hay muchas interpretaciones para OO, una primera idea es diseñar el software de forma que los distintos tipos de datos que usen estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. Un objeto puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos). El principio es separar aquello que cambia de las cosas que permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un cambio en el código que opera sobre los mismos, o viceversa. Esta separación en objetos coherentes e independientes ofrece una base más estable para el diseño de un sistema software. El objetivo es hacer que grandes proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número de proyectos fallidos. Otra de las grandes promesas de la programación orientada a objetos es la creación de entidades más genéricas (objetos) que permitan la reutilización del software entre proyectos, una de las premisas fundamentales de la Ingeniería del Software. Un objeto genérico “cliente”, por ejemplo, debería en teoría

Page 37: algoritmos y programacion

tener el mismo conjunto de comportamiento en diferentes proyectos, sobre todo cuando estos coinciden en cierta medida, algo que suele suceder en las grandes organizaciones. En este sentido, los objetos podrían verse como piezas reutilizables que pueden emplearse en múltiples proyectos distintos, posibilitando así a la industria del software a construir proyectos de envergadura empleando componentes ya existentes y de comprobada calidad; conduciendo esto finalmente a una reducción drástica del tiempo de desarrollo. Podemos usar como ejemplo de objeto el aluminio. Una vez definidos datos (peso, maleabilidad, etc.), y su “comportamiento” (soldar dos piezas, etc.), el objeto “aluminio” puede ser reutilizado en el campo de la construcción, del automóvil, de la aviación, etc.

La reutilización del software ha experimentado resultados dispares, encontrando dos dificultades principales: el diseño de objetos realmente genéricos es pobremente comprendido, y falta una metodología para la amplia comunicación de oportunidades de reutilización. Algunas comunidades de “código abierto” (open source) quieren ayudar en este problema dando medios a los desarrolladores para diseminar la información sobre el uso y versatilidad de objetos reutilizables y bibliotecas de objetos.

BIBLIOGRAFIA:

The Java Tutorial de Sun Microsystems (online) Thinking in Java, de Bruce Eckel (online) An introduction to Computer Science using Java por Bradley Kjell. Java Course, de A.B. Downey.

ABSTRACTOT EN INGLES:

JAVA (computer science), programming language guided to objects developed by the company Sun Microsystems in 1995 and that he/she has extended thoroughly in World Wide Web. It is a language of high level and similar general purpose to C++, with marked characteristics of security and portability. This language defines an independent virtual machine of the platform where it is executed that processes programs, called Applets, discharged from the servant Web. Also, due to the way of execution of the Applets, this language is very safe in front of the presence and attack of virus computer specialist.

Page 38: algoritmos y programacion

5. EXPOSICION NUMERO 5: ROBOTICA.

Nombre de expositor: Carlos Alberto Sanabria. Hora de inicio: 5:09 pm Hora de finalización: 5:20 pm.

DIAGRAMA:

ROBOTICA

CLASIFICACION MAQUINAS

Según su cronología

1ª Generación.

2ª Generación.

3ª Generación.

4ª Generación.

Según su arquitectura

hibridos

Poliarticulados

moviles

Androides

zoomorficos

Page 39: algoritmos y programacion

EXPLICACION DEL TEMA:

Robótica

La robótica es la ciencia y la tecnología de los robots. Se ocupa del diseño, manufactura y aplicaciones de los robots.1 2 La robótica combina diversas disciplinas como son: la mecánica, la electrónica, la informática, la inteligencia artificial y la ingeniería de control.3 Otras áreas importantes en robótica son el álgebra, los autómatas programables y las máquinas de estados.

El término robot se popularizó con el éxito de la obra RUR (Robots Universales Rossum), escrita por Karel Capek en 1920. En la traducción al inglés de dicha obra, la palabra checa robota, que significa trabajos forzados, fue traducida al inglés como robot.4

Historia de la robótica

La historia de la robótica ha estado unida a la construcción de "artefactos", que trataban de materializar el deseo humano de crear seres a su semejanza y que lo descargasen del trabajo. El ingeniero español Leonardo Torres Quevedo (GAP) (que construyó el primer mando a distancia para su automóvil mediante telegrafía sin hilo, el ajedrecista automático, el primer transbordador aéreo y otros muchos ingenios) acuñó el término "automática" en relación con la teoría de la automatización de tareas tradicionalmente asociadas a los humanos.

Karel Čapek, un escritor checo, acuñó en 1921 el término "Robot" en su obra dramática "Rossum's Universal Robots / R.U.R.", a partir de la palabra checa robota, que significa servidumbre o trabajo forzado. El término robótica es acuñado por Isaac Asimov, definiendo a la ciencia que estudia a los robots. Asimov creó también las Tres Leyes de la Robótica. En la ciencia ficción el hombre ha imaginado a los robots visitando nuevos mundos, haciéndose con el poder, o simplemente aliviando de las labores caseras.

Fecha Importancia Nombre del robot

Inventor

Siglo I a. C. y antes

Descripciones de más de 100 máquinas y autómatas, incluyendo un artefacto con fuego, un órgano de viento, una máquina operada mediante una moneda, una máquina de vapor, en Pneumatica y Automata de Herón de Alexandria

Autonoma

Ctesibius de Alexandria, Filón de Bizancio, Herón de Alexandria, y otros

Page 40: algoritmos y programacion

1206 Primer robot humanoide programable

Barco con cuatro músicos robotizados

Al-Jazari

c. 1495 Diseño de un robot humanoide Caballero mecánico

Leonardo da Vinci

1738

Pato mecánico capaz de comer, agitar sus alas y excretar.

Digesting Duck

Jacques de Vaucanson

1800s

Juguetes mecánicos japoneses que sirven té, disparan flechas y pintan.

Juguetes Karakuri

Hisashige Tanaka

1921

Aparece el primer autómata de ficción llamado "robot", aparece en R.U.R.

Rossum's Universal Robots

Karel Čapek

1930s

Se exhibe un robot humanoide en la World's Fairs entre los años 1939 y 1940

Elektro

Westinghouse Electric Corporation

1948

Exhibición de un robot con comportamiento biológico simple5

Elsie y Elmer William Grey Walter

1956

Primer robot comercial, de la compañía Unimation fundada por George Devol y Joseph Engelberger, basada en una patente de Devol6

Unimate George Devol

1961 Se instala el primer robot industrial Unimate George Devol

1963 Primer robot "palletizing"7 Palletizer Fuji Yusoki Kogyo

Page 41: algoritmos y programacion

1973

Primer robot con seis ejes electromecánicos

Famulus KUKA Robot Group

1975

Brazo manipulador programable universal, un producto de Unimation

PUMA Victor Scheinman

2000

Robot Humanoide capaz de desplazarse de forma bípeda e interactuar con las personas

ASIMO

Honda Motor Co. Ltd

Clasificación de los robots:

Según su cronología:

La que a continuación se presenta es la clasificación más común:

1ª Generación.

Manipuladores. Son sistemas mecánicos multifuncionales con un sencillo sistema de control, bien manual, de secuencia fija o de secuencia variable.

2ª Generación.

Robots de aprendizaje. Repiten una secuencia de movimientos que ha sido ejecutada previamente por un operador humano. El modo de hacerlo es a través de un dispositivo mecánico. El operador realiza los movimientos requeridos mientras el robot le sigue y los memoriza.

3ª Generación.

Robots con control sensorizado. El controlador es una computadora que ejecuta las órdenes de un programa y las envía al manipulador para que realice los movimientos necesarios.

4ª Generación.

Robots inteligentes. Son similares a los anteriores, pero además poseen sensores que envían información a la computadora de control sobre el estado del proceso. Esto permite una toma inteligente de decisiones y el control del proceso en tiempo real.

Según su arquitectura

Page 42: algoritmos y programacion

La arquitectura, es definida por el tipo de configuración general del Robot, puede ser metamórfica. El concepto de metamorfismo, de reciente aparición, se ha introducido para incrementar la flexibilidad funcional de un Robot a través del cambio de su configuración por el propio Robot. El metamorfismo admite diversos niveles, desde los más elementales (cambio de herramienta o de efecto terminal), hasta los más complejos como el cambio o alteración de algunos de sus elementos o subsistemas estructurales. Los dispositivos y mecanismos que pueden agruparse bajo la denominación genérica del Robot, tal como se ha indicado, son muy diversos y es por tanto difícil establecer una clasificación coherente de los mismos que resista un análisis crítico y riguroso. La subdivisión de los Robots, con base en su arquitectura, se hace en los siguientes grupos: Poliarticulados, Móviles, Androides, Zoomórficos e Híbridos.

1. Poliarticulados

En este grupo están los Robots de muy diversa forma y configuración cuya característica común es la de ser básicamente sedentarios (aunque excepcionalmente pueden ser guiados para efectuar desplazamientos limitados) y estar estructurados para mover sus elementos terminales en un determinado espacio de trabajo según uno o más sistemas de coordenadas y con un número limitado de grados de libertad". En este grupo se encuentran los manipuladores, los Robots industriales, los Robots cartesianos y se emplean cuando es preciso abarcar una zona de trabajo relativamente amplia o alargada, actuar sobre objetos con un plano de simetría vertical o reducir el espacio ocupado en el suelo.

2. Móviles

Son Robots con gran capacidad de desplazamiento, basados en carros o plataformas y dotados de un sistema locomotor de tipo rodante. Siguen su camino por telemando o guiándose por la información recibida de su entorno a través de sus sensores. Estos Robots aseguran el transporte de piezas de un punto a otro de una cadena de fabricación. Guiados mediante pistas materializadas a través de la radiación electromagnética de circuitos empotrados en el suelo, o a través de bandas detectadas fotoeléctricamente, pueden incluso llegar a sortear obstáculos y están dotados de un nivel relativamente elevado de inteligencia.

3. Androides

Son Robots que intentan reproducir total o parcialmente la forma y el comportamiento cinemática del ser humano. Actualmente los androides son todavía dispositivos muy poco evolucionados y sin utilidad práctica, y destinados, fundamentalmente, al estudio y experimentación. Uno de los aspectos más complejos de estos Robots, y sobre el que se centra la mayoría de los trabajos, es el de la locomoción bípeda. En este caso, el principal problema es controlar dinámica y coordinadamente en el tiempo real el proceso y mantener simultáneamente el equilibrio del Robot.

Page 43: algoritmos y programacion

4. Zoomórficos

Los Robots zoomórficos, que considerados en sentido no restrictivo podrían incluir también a los androides, constituyen una clase caracterizada principalmente por sus sistemas de locomoción que imitan a los diversos seres vivos. A pesar de la disparidad morfológica de sus posibles sistemas de locomoción es conveniente agrupar a los Robots zoomórficos en dos categorías principales: caminadores y no caminadores. El grupo de los Robots zoomórficos no caminadores está muy poco evolucionado. Los experimentados efectuados en Japón basados en segmentos cilíndricos biselados acoplados axialmente entre sí y dotados de un movimiento relativo de rotación. Los Robots zoomórficos caminadores multípedos son muy numeroso y están siendo experimentados en diversos laboratorios con vistas al desarrollo posterior de verdaderos vehículos terrenos, piloteando o autónomos, capaces de evolucionar en superficies muy accidentadas. Las aplicaciones de estos Robots serán interesantes en el campo de la exploración espacial y en el estudio de los volcanes.

5. Híbridos

Estos Robots corresponden a aquellos de difícil clasificación cuya estructura se sitúa en combinación con alguna de las anteriores ya expuestas, bien sea por conjunción o por yuxtaposición. Por ejemplo, un dispositivo segmentado articulado y con ruedas, es al mismo tiempo uno de los atributos de los Robots móviles y de los Robots zoomórficos. De igual forma pueden considerarse híbridos algunos Robots formados por la yuxtaposición de un cuerpo formado por un carro móvil y de un brazo semejante al de los Robots industriales. En parecida situación se encuentran algunos Robots antropomorfos y que no pueden clasificarse ni como móviles ni como androides, tal es el caso de los Robots personales.

BIBLIOGRAFIA:

Referencias

1. «Definición de robótica - RAE». Consultado el 02-12-2008. 2. «Definición de robótica - roboticspot.com». Consultado el 02-12-2008. 3. «Industry Spotlight: Robotics from Monster Career Advice». Consultado el 26-08-

2007. 4. Bermejo, Sergi (2003). Desarrollo de robots basados en el comportamiento.

Ediciones UPC. ISBN 84-8301-712-1. Págs. 26-27. 5. Imitation of Life: A History of the First Robots 6. Waurzyniak, Patrick (2006-07). «Masters of Manufacturing: Joseph F.

Engelberger». Society of Manufacturing Engineers 137 (1). http://www.sme.org/cgi-bin/find-articles.pl?&ME06ART39&ME&20060709#article.

7. «Company History». Fuji Yusoki Kogyo Co.. Consultado el 12-09-2008.

Page 44: algoritmos y programacion

ABSTRACTOT EN INGLES:

Definition

The robotics is a science or branch of the technology that he/she studies the design and construction of machines able to carry out tasks carried out by the human being or that they require of the intelligence use. The sciences and technologies of those that it derives could be: the algebra, the programmable robots, the machines of states, the mechanics or the computer science.

History

The history of the robotics has been together to the construction of "devices" that tried of materializing the human desire to create beings similar to us that discharges us of the work. The Spanish engineer Leonardo Torres Quevedo (that built the first control at distance for their torpedo automobile by means of telegraphy without automatic hilodrecista, the first air ferry and other many ingénios) it coined the term "automatic" in connection with the theory of the automation of tasks traditionally associated to the humans

Karel Capek, a Czech writer, I coin in 1921 the term Robot in their dramatic work "Rossum's Universal Robots / R.U.R"., starting from the Czech word Robbota that means servitude or forced work. The term robotics is coined by Isaac Asimov, defining to the science that he/she studies the robots. Asimov creó also the Three Laws of the Robotics. In the science fiction the man has imagined the robots visiting new worlds, being made with the power, or alleviating us of the works caseras.La Robotics has simply reached a quite high level of maturity in the last times, and it has a correct theoretical apparatus. However, when trying to reproduce some tasks that are very simple for the humans, as walking, to run or to catch an object without breaking it, it has not been obtained satisfactory results, especially in the field of the autonomous robotics. However it is expected that the continuous increase of the power of the computers and the investigations in artificial intelligence, artificial vision, the autonomous robotics and other parallel sciences allow to come closer a little more every time to the miracles dreamt by the first engineers and also to the dangers that it advances us the science fiction.

Page 45: algoritmos y programacion

6. TEMA NUMERO 6: INGENIERIA DEL SOFTWARE Nombre de expositor: Wilmer Hora de inicio: 5:21 pm Hora de finalización: 5:27 pm.

DIAGRAMA:

INGENIERIA DEL SOFTWARE

Es la disciplina o área de la Ingeniería que ofrece métodos y técnicas para desarrollar

y mantener software

En esta se relacionan campos fundamentales como

Implicaciones socioeconómicas Modelos de desarrollo de Software

Enfocado a

Matemáticas

Creación

Gestión de Objetos

Arte

Responsabilidad

Educación Etica

Page 46: algoritmos y programacion

EXPLICACION DEL TEMA:

Ingeniería de software

Ingeniería de software es la disciplina o área de la Ingeniería que ofrece métodos y técnicas para desarrollar y mantener software. La creación del software es un proceso intrínsecamente creativo y la Ingeniería del Software trata de sistematizar este proceso con el fin de acotar el riesgo del fracaso en la consecución del objetivo creativo por medio de diversas técnicas que se han demostrado adecuadas en base a la experiencia previa. Esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de la computación, tales como construcción de compiladores, sistemas operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información y aplicables a infinidad de áreas: negocios, investigación científica, medicina, producción, logística, banca, control de tráfico, meteorología, derecho, Internet, Intranet, etc.

Una definición precisa aún no ha sido contemplada en los diccionarios, sin embargo se pueden citar las enunciadas por algunos de los más prestigiosos autores:

Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)

Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como Desarrollo de Software o Producción de Software ( Bohem, 1976).

Ingeniería de Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).

Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).

En el 2004, en los Estados Unidos, la Oficina de Estadísticas del Trabajo (U. S. Bureau of Labor Statistics) contó 760.840 ingenieros de software de computadora.1 El término "ingeniero de software", sin embargo, se utiliza en forma genérica en el ambiente empresarial, y no todos los ingenieros de software poseen realmente títulos de Ingeniería de universidades reconocidas.

Algunos autores consideran que Desarrollo de Software es un término más apropiado que Ingeniería de Software (IS) para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.

Page 47: algoritmos y programacion

Indistintamente se utilizan los términos Ingeniería de Software o Ingeniería del Software. En Hispanoamérica el término usado normalmente es el primero de ellos.

Implicaciones socioeconómicas

La ingeniería de software afecta a la economía y las sociedades de variadas formas.

Económicamente

En los EEUU, el software contribuyó a 1/8 de todo el incremento del PIB durante los 90's (alrededor de 90,000 millones de dólares por año), y 1/9 de todo el crecimiento de productividad durante los últimos años de la década (alrededor de 33,000 millones de dólares por año). La ingeniería de software contribuyó a $1 billón de crecimiento económico y productividad en esa década. Alrededor del globo, el software contribuye al crecimiento económico en formas similares, aunque es difícil de encontrar estadísticas fiables. [cita requerida]

Además, con la industria del lenguaje está hallando cada vez más campos de aplicación a escala global.

Socialmente

La ingeniería de software cambia la cultura del mundo debido al extendido uso de la computadora. El correo electrónico (E-mail), la WWW y la mensajería instantánea permiten a la gente interactuar en nuevas formas. El software baja el costo y mejora la calidad de los servicios de salud, los departamentos de bomberos, las dependencias gubernamentales y otros servicios sociales. Los proyectos exitosos donde se han usado métodos de ingeniería de software incluyen a GNU/Linux, el software del transbordador espacial, los cajeros automáticos y muchos otros.

La IS se puede considerar como la ingeniería aplicada al software, esto es, por medios sistematizados y con herramientas preestablecidas, la aplicación de ellos de la forma más eficiente para la obtención de resultados óptimos; objetivos que siempre busca la ingeniería. No es sólo de la resolución de problemas, sino más bien teniendo en cuenta las diferentes soluciones, elegir la más apropiada.

Metodología

Un objetivo de décadas ha sido el encontrar procesos y metodologías, que sean sistemáticas, predecibles y repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del producto software.

Page 48: algoritmos y programacion

Etapas del proceso

La ingeniería de software requiere llevar a cabo numerosas tareas, dentro de etapas como las siguientes:

Análisis de requerimientos

Extraer los requisitos y requerimientos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniería de software para reconocer requerimientos incompletos, ambiguos o contradictorios. El resultado del análisis de requerimientos con el cliente se plasma en el documento ERS, Especificación de Requerimientos del Sistema, cuya estructura puede venir definida por varios estándares, tales como CMMI. Asimismo, se define un diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software.

La captura, análisis y especificación de requerimientos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aún no está formalizada, ya se habla de la Ingeniería de requerimientos, por ejemplo en dos capítulos del libro de Sommerville "Ingeniería del Software" titulados "Requerimientos del software" y "Procesos de la Ingeniería de Requerimientos".

La IEEE Std. 830-1998 normaliza la creación de las Especificaciones de Requerimientos de Software (Software Requirements Specification).

Especificación

La Especificación de Requisitos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de las necesidades del negocio (definidas por la alta dirección), así como la interacción con los usuarios funcionales para la recolección, clasificación, identificación, priorización y especificación de los requisitos del software.

Entre las técnicas utilizadas para la especificación de requisitos se encuentran:

Casos de Uso, Historias de usuario,

Siendo los primeros más rigurosas y formales, los segundas más ágiles e informales.

Arquitectura

La integración de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales, requieren de capacidad y liderazgo para poder ser

Page 49: algoritmos y programacion

conceptualizados y proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto. El Arquitecto de Software es la persona que añade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnológicas. La Arquitectura de Sistemas en general, es una actividad de planeación, ya sea a nivel de infraestructura de red y hardware, o de Software. La Arquitectura de Software consiste en el diseño de componentes de una aplicación (entidades del negocio), generalmente utilizando patrones de arquitectura. El diseño arquitectónico debe permitir visualizar la interacción entre las entidades del negocio y además poder ser validado, por ejemplo por medio de diagramas de secuencia. Un diseño arquitectónico describe en general el cómo se construirá una aplicación de software. Para ello se documenta utilizando diagramas, por ejemplo:

Diagramas de clases Diagramas de base de datos Diagramas de despliegue plegados Diagramas de secuencia multidireccional

Siendo los dos primeros los mínimos necesarios para describir la arquitectura de un proyecto que iniciará a ser codificado. Depende del alcance del proyecto, complejidad y necesidades, el arquitecto elige qué diagramas elaborar. Entre las herramientas para diseñar arquitecturas de software se encuentran:

Enterprise Architect Microsoft Visio for Enterprise Architects

Programación

Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, pero no necesariamente es la que demanda mayor trabajo y ni la más complicada. La complejidad y la duración de esta etapa está íntimamente relacionada al o a los lenguajes de programación utilizados, así como al diseño previamente realizado.

Prueba

Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación del problema. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral, para así llegar al objetivo. Se considera una buena práctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la programó, idealmente un área de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un área de pruebas, la primera es que esté compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa que la documentación entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. El segundo enfoque es tener un área de pruebas conformada por programadores con experiencia, personas que

Page 50: algoritmos y programacion

saben sin mayores indicaciones en qué condiciones puede fallar una aplicación y que pueden poner atención en detalles que personal inexperto no consideraría.

Documentación

Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.

Mantenimiento

Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 [cita requerida] de toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniería civil, arquitectura y trabajo de construcción es dar mantenimiento [cita requerida].

Modelos de desarrollo de software

La ingeniería de software tiene varios modelos, paradigmas o filosofías de desarrollo en los cuales se puede apoyar para la realización de software, de los cuales podemos destacar a éstos por ser los más utilizados y los más completos:

Modelo en cascada o Clásico (modelo tradicional) Modelo de prototipos Modelo en espiral (modelo evolutivo) Desarrollo por etapas Desarrollo iterativo y creciente o Iterativo e Incremental RAD (Rapid Application Development) Desarrollo concurrente Proceso Unificado RUP (Proceso Unificado de Rational)

Naturaleza de la IS

La Ingeniería de Software tiene que ver con varios campos en diferentes formas:

Matemáticas

Los programas tienen muchas propiedades matemáticas. Por ejemplo la corrección y la complejidad de muchos algoritmos son conceptos matemáticos que pueden ser rigurosamente probados. El uso de matemáticas en la IS es llamado métodos formales.

Page 51: algoritmos y programacion

Creación

Los programas son construidos en una secuencia de pasos. El hecho de definir propiamente y llevar a cabo estos pasos, como en una línea de ensamblaje, es necesario para mejorar la productividad de los desarrolladores y la calidad final de los programas. Este punto de vista inspira los diferentes procesos y metodologías que encontramos en la IS.

] Gestión de Proyectos

El software comercial (y mucho no comercial) requiere gestión de proyectos. Hay presupuestos y establecimiento de tiempos. Gente para liderar. Recursos (espacio de oficina, computadoras) por adquirir. Todo esto encaja apropiadamente con la visión de la Gestión de Proyectos.

Arte

Los programas contienen muchos elementos artísticos. Las interfaces de usuario, la codificación, etc. Incluso la decisión para un nombre de una variable o una clase. Donald Knuth es famoso porque ha argumentado que la programación es un arte.

Responsabilidad

La responsabilidad en la Ingeniería del Software es un concepto complejo, sobre todo porque al estar los sistemas informáticos fuertemente caracterizados por su complejidad, es difícil apreciar sus consecuencias.

En la Ingeniería del Software la responsabilidad será compartida por un grupo grande de personas, que comprende desde el ingeniero de requisitos, hasta el arquitecto software, y contando con el diseñador, o el encargado de realizar las pruebas. Por encima de todos ellos destaca el director del proyecto. El software demanda una clara distribución de la responsabilidad entre los diferentes roles que se dan en el proceso de producción.

El ingeniero del Software tiene una responsabilidad moral y legal limitada a las consecuencias directas.

Bibliografía

Ingeniería de Software (sexta edición), Ian Sommerville. Addison Wesley. Sitio en Inglés

Ingeniería del software. Un enfoque práctico (sexta edición), R. S. Pressman. McGraw Hill Higher Education. Sitio en Inglés

Page 52: algoritmos y programacion

ABSTRACTOT EN INGLES:

It is a discipline or area of the information or sciences of the calculation that he/she offers methods or techniques to develop and to maintain software of quality that you/they solve problems of all type. Nowadays it is more and more frequent the consideration of the Engineering of the Software like a new area of the Engineering and the Engineer of Software begins to be a profession implanted in the natural, labor world, international with rights.

The Engineering of the Software is about very diverse areas of the computer science and of the sciences computacionales, such as constant of compilers, operating systems or developments of Internet.

“The engineering of Software is the esablecimiento and suso of solid principles of the engineering to obtain a reliable software economically and that it works in an efficient way in real machines” (Fritz Baver)

The IEE defines it as the application from a systematic, disciplined and quantifiable focus to the development, operation and software maintenance, that is to say, the application of the engineering to the software.

Page 53: algoritmos y programacion

7. EXPOSICION NUMERO 7: PROGRAMACION ORIENTADA A OBJETOS: Nombre de expositor: Cristian Robles Hora de inicio: 5:31 pm Hora de finalización: 5:40 pm.

DIAGRAMA:

PROGRAMACION ORIENTADA A OBJETOS

Maneja conceptos fundamentales como

Abstracción

Encapsulamiento

Modularidad

Principio de ocultación

Polimorfismo

Herencia

Recolección de basura:

Orientados a la programación

CLASE

HERENCIA

OBJETO

METODO

EVENTO

MENSAJE

ATRIBUTO

ESTADO INTERNO

Page 54: algoritmos y programacion

EXPLICACION DEL TEMA:

Programación orientada a objetos

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, ABSTRACTOción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.

Los objetos son entidades que combinan estado (atributo), comportamiento (método) e identidad:

El estado está compuesto de datos, será uno o varios atributos a los que se habrán asignado unos valores concretos (datos).

El comportamiento está definido por los procedimientos o métodos con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.

La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).

Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.

Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una programación estructurada camuflada en un lenguaje de programación orientado a objetos.

La POO difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada sólo se escriben funciones que procesan datos.

Page 55: algoritmos y programacion

Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.

Origen

Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo. En este centro, se trabajaba en simulaciones de naves, que fueron confundidas por la explosión combinatoria de cómo las diversas cualidades de diferentes naves podían afectar unas a las otras. La idea ocurrió para agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamientos. Fueron refinados más tarde en Smalltalk, que fue desarrollado en Simula en Xerox PARC (cuya primera versión fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar "en marcha" (en tiempo de ejecución) en lugar de tener un sistema basado en programas estáticos.

La programación orientada a objetos tomó posición como el estilo de programación dominante a mediados de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.

Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, entre otros. La adición de estas características a los lenguajes que no fueron diseñados inicialmente para ellas condujo a menudo a problemas de compatibilidad y en la capacidad de mantenimiento del código. Los lenguajes orientados a objetos "puros", por su parte, carecían de las características de las cuales muchos programadores habían venido a depender. Para saltar este obstáculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en métodos orientados a objetos, pero permitiendo algunas características imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparición de Internet, y a la implementación de la máquina virtual de Java en la mayoría de navegadores. PHP en su versión 5 se ha modificado, soporta una orientación completa a objetos, cumpliendo todas las características propias de la orientación a objetos.

Page 56: algoritmos y programacion

Conceptos fundamentales

La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

Herencia: (por ejemplo, herencia de la clase C a la clase D) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de OOP.

Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

Evento: Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.

Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.

Componentes de un objeto: atributos, identidad, relaciones y métodos.

Page 57: algoritmos y programacion

Identificación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.

En comparación con un lenguaje imperativo, una "variable", no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.

Características de la POO

Existe un acuerdo acerca de qué características contempla la "orientación a objetos", las características siguientes son las más importantes:

ABSTRACTOción: denota las características esenciales de un objeto, donde se capturan sus comportamientos.Cada objeto en el sistema sirve como modelo de un "agente" Abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una ABSTRACTOción.El proceso de ABSTRACTOción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La ABSTRACTOción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de ABSTRACTOción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

Modularidad: Se denomina Modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la Modularidad de diversas formas.

Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e

Page 58: algoritmos y programacion

interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de ABSTRACTOción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.

Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple.

Recolección de basura: la recolección de basura o garbage collector es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse manualmente.

Lenguajes orientados a objetos

Simula (1967) es aceptado como el primer lenguaje que posee las características principales de un lenguaje orientado a objetos. Fue creado para hacer programas de simulación, en donde los "objetos" son la representación de la información más importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo canónico, y con el que gran parte de la teoría de la programación orientada a objetos se ha desarrollado.

Entre los lenguajes orientados a objetos se destacan los siguientes:

ABAP ABL Lenguaje de programación de OpenEdge de Progress Software

Page 59: algoritmos y programacion

ActionScript ActionScript 3 Ada C++ C# Clarion Clipper (lenguaje de programación) (Versión 5.x con librería de objetos Class(y)) D Object Pascal (Delphi) Gambas Harbour Eiffel Java JavaScript (la herencia se realiza por medio de la programación basada en

prototipos) Lexico (en castellano) Objective-C Ocaml Oz R Perl (soporta herencia múltiple. La resolución se realiza en preorden, pero puede

modificarse al algoritmo linearization C3 por medio del módulo Class::C3 en CPAN) PHP (a partir de su versión 5) PowerBuilder Python Ruby Smalltalk (Proyecto investigativo. Influenció a Java.) Magik (SmallWorld) Vala VB.NET Visual FoxPro (en su versión 6) Visual Basic 6.0 Visual Objects XBase++ Lenguaje DRP Lenguaje de programación Scala (lenguaje usado por Twitter) http://www.scala-

lang.org/page.jsp

Muchos de estos lenguajes de programación no son puramente orientados a objetos, sino que son híbridos que combinan la POO con otros paradigmas.

Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico.

Page 60: algoritmos y programacion

Un nuevo paso en la ABSTRACTOción de paradigmas de programación es la Programación Orientada a Aspectos (POA). Aunque es todavía una metodología en estado de maduración, cada vez atrae a más investigadores e incluso proyectos comerciales en todo el mundo.

BIBLIOGRAFIA:

WWW. Wikipedis.com.co

Encyclopedia estudiantil lexus, 2002 edición Mc gill

ABSTRACTOT EN INGLES:

The programming guided to objects is a paradigm that uses objects like fundamental

elements in the construction of the solution. It arises in the years 70. An object is an

ABSTRACTOtion of some fact or entity of the real world that he/she has attributes that

represent its characteristics or properties and methods that represent its behavior or

actions that you/they carry out. All the properties and methods common to the objects

are encapsulated or they group in classes. A class is an insole or a prototype to create

objects, for that reason it is said that the objects are instances of classes.

Page 61: algoritmos y programacion

8. EXPOSICION NUMERO 8: PAGINAS WEB:

Nombre de expositor: Hora de inicio: 8:14 am Hora de finalización: 8: 18am.

DIAGRAMA:

PAGINAS WEB

En informática, la World Wide Web es un sistema de distribución de

información basado en hipertexto

TECNOLOGIAS WEB

NAVEGADORES WEB

SERVIDORES WEB

OTRAS TECNOLOGIAS

ESTANDARES WEB

el Identificador de Recurso Uniforme (URI

Protocolo de Transferencia de Hipertexto

(HTTP

Lenguaje de Marcado de Hipertexto (HTML),

Lenguaje de Marcado Extensible (XML),

Page 62: algoritmos y programacion

EXPLICACION DEL TEMA:

En informática, la World Wide Web es un sistema de distribución de información basado en hipertexto o hipermedios enlazados y accesibles a través de Internet. Con un navegador web, un usuario visualiza sitios web compuestos de páginas web que pueden contener texto, imágenes, videos u otros contenidos multimedia, y navega a través de ellas usando hiperenlaces.

La Web fue creada alrededor de 1989 por el inglés Tim Berners-Lee y el belga Robert Cailliau mientras trabajaban en el CERN en Ginebra, Suiza, y publicado en 1992. Desde entonces, Berners-Lee ha jugado un papel activo guiando el desarrollo de estándares Web (como los lenguajes de marcado con los que se crean las páginas web), y en los últimos años ha abogado por su visión de una Web Semántica.

Funcionamiento de la Web

El primer paso consiste en traducir la parte nombre del servidor de la URL en una dirección IP usando la base de datos distribuida de Internet conocida como DNS. Esta dirección IP es necesaria para contactar con el servidor web y poder enviarle paquetes de datos.

El siguiente paso es enviar una petición HTTP al servidor Web solicitando el recurso. En el caso de una página web típica, primero se solicita el texto HTML y luego es inmediatamente analizado por el navegador, el cual, después, hace peticiones adicionales para los gráficos y otros ficheros que formen parte de la página. Las estadísticas de popularidad de un sitio web normalmente están basadas en el número de páginas vistas o las peticiones de servidor asociadas, o peticiones de fichero, que tienen lugar.

Al recibir los ficheros solicitados desde el servidor web, el navegador renderiza la página tal y como se describe en el código HTML, el CSS y otros lenguajes web. Al final se incorporan las imágenes y otros recursos para producir la página que ve el usuario en su pantalla.

La mayoría de las páginas web contienen hiperenlaces a otras páginas relacionadas y algunas también contienen descargas, documentos fuente, definiciones y otros recursos web.

Esta colección de recursos útiles y relacionados, interconectados a través de enlaces de hipertexto, es lo que ha sido denominado como 'red' (web, en inglés) de información. Al trasladar esta idea a Internet, se creó lo que Tim Berners-Lee llamó WorldWideWeb (un término escrito en CamelCase, posteriormente desechado) en 1990.1

Si un usuario accede de nuevo a una página después de un pequeño intervalo, es probable que no se vuelvan a recuperar los datos del servidor web de la forma en que se explicó en el apartado anterior. Por defecto, los navegadores almacenan en una caché del disco duro

Page 63: algoritmos y programacion

local todos los recursos web a los que el usuario va accediendo. El navegador enviará una petición HTTP sólo si la página ha sido actualizada desde la última carga, en otro caso, la versión almacenada se reutilizará en el paso de renderizado para agilizar la visualización de la página.

Esto es particularmente importante para reducir la cantidad de tráfico web en Internet. La decisión sobre la caducidad de la página se hace de forma independiente para cada recurso (imagen, hoja de estilo, ficheros JavaScript, etc, además de para el propio código HTML). Sin embargo en sitios de contenido muy dinámico, muchos de los recursos básicos sólo se envían una vez por sesión. A los diseñadores de sitios web les interesa reunir todo el código CSS y JavaScript en unos pocos ficheros asociados a todo el sitio web, de forma que pueden ser descargados en las cachés de los usuarios y reducir así el tiempo de carga de las páginas y las peticiones al servidor.

Aparte de las utilidades creadas en los servidores Web que pueden determinar cuándo los ficheros físicos han sido actualizados, los diseñadores de páginas web generadas dinámicamente pueden controlar las cabeceras HTTP enviadas a los usuarios, de forma que las páginas intermedias o sensibles a problemas de seguridad no sean guardadas en caché. Por ejemplo, en los bancos on line y las páginas de noticias se utiliza frecuentemente este sistema.

Esto nos ayuda a comprender la diferencia entre los verbos HTTP 'GET' y 'POST' - los datos solicitados con GET pueden ser almacenados en la caché, si se cumplen las otras condiciones, mientras que con los datos obtenidos después de enviar información al servidor con POST normalmente no se puede.

Historia

La idea subyacente de la Web se remonta a la propuesta de Vannevar Bush en los años 40 sobre un sistema similar: a grandes rasgos, un entramado de información distribuida con una interfaz operativa que permitía el acceso tanto a la misma como a otros artículos relevantes determinados por claves. Este proyecto nunca fue materializado, quedando relegado al plano teórico bajo el nombre de Memex. Es en los años 50 cuando Ted Nelson realiza la primera referencia a un sistema de hipertexto, donde la información es enlazada de forma libre. Pero no es hasta 1980, con un soporte operativo tecnológico para la distribución de información en redes informáticas, cuando Tim Berners-Lee propone ENQUIRE al CERN (refiriéndose a Enquire Within Upon Everything, en castellano Preguntando de Todo Sobre Todo), donde se materializa la realización práctica de este concepto de incipientes nociones de la Web.

En marzo de 1989, Tim Berners Lee, ya como personal de la divisón DD del CERN, redacta la propuesta,2 que referenciaba a ENQUIRE y describía un sistema de gestión de información más elaborado. No hubo un bautizo oficial o un acuñamiento del término web en esas referencias iniciales utilizándose para tal efecto el término mesh. Sin

Page 64: algoritmos y programacion

embargo, el World Wide Web ya había nacido. Con la ayuda de Robert Cailliau, se publicó una propuesta más formal para la world wide web3 el 12 de noviembre de 1990.

Berners-Lee usó un NeXTcube como el primer servidor web del mundo y también escribió el primer navegador web, WorldWideWeb en 1990. En las Navidades del mismo año, Berners-Lee había creado todas las herramientas necesarias para que una web funcionase:4 el primer navegador web (el cual también era un editor web), el primer servidor web y las primeras páginas web5 que al mismo tiempo describían el proyecto.

El 6 de agosto de 1991, envió un pequeño resumen del proyecto World Wide Web al newsgroup6 alt.hypertext. Esta fecha también señala el debut de la web como un servicio disponible públicamente en Internet.

El concepto, subyacente y crucial, del hipertexto tiene sus orígenes en viejos proyectos de la década de los 60, como el Proyecto Xanadu de Ted Nelson y el sistema on-line NLS de Douglas Engelbart. Los dos, Nelson y Engelbart, estaban a su vez inspirados por el ya citado sistema basado en microfilm "memex", de Vannevar Bush.

El gran avance de Berners-Lee fue unir hipertexto e Internet. En su libro Weaving the Web (en castellano, Tejiendo la Red), explica que él había sugerido repetidamente que la unión entre las dos tecnologías era posible para miembros de las dos comunidades tecnológicas, pero como nadie aceptó su invitación, decidió, finalmente, hacer frente al proyecto él mismo. En el proceso, desarrolló un sistema de identificadores únicos globales para los recursos web y también: el Uniform Resource Identifier.

World Wide Web tenía algunas diferencias de los otros sistemas de hipertexto que estaban disponibles en aquel momento:

WWW sólo requería enlaces unidireccionales en vez de los bidireccionales. Esto hacía posible que una persona enlazara a otro recurso sin necesidad de ninguna acción del propietario de ese recurso. Con ello se reducía significativamente la dificultad de implementar servidores web y navegadores (en comparación con los sistemas anteriores), pero en cambio presentaba el problema crónico de los enlaces rotos.

A diferencia de sus predecesores, como HyperCard, World Wide Web era no-propietario, haciendo posible desarrollar servidores y clientes independientemente y añadir extensiones sin restricciones de licencia.

El 30 de abril de 1993, el CERN anunció7 que la web sería gratuita para todos, sin ningún tipo de honorarios.

ViolaWWW fue un navegador bastante popular en los comienzos de la web que estaba basado en el concepto de la herramienta hipertextual de software de Mac denominada HyperCard. Sin embargo, los investigadores generalmente están de acuerdo en que el punto de inflexión de la World Wide Web comenzó con la introducción8 del navegador9

Page 65: algoritmos y programacion

web Mosaic en 1993, un navegador gráfico desarrollado por un equipo del NCSA en la Universidad de Illinois en Urbana-Champaign (NCSA-UIUC), dirigido por Marc Andreessen. Funding para Mosaic vino del High-Performance Computing and Communications Initiative, un programa de fondos iniciado por el entonces gobernador Al Gore High Performance Computing and Communication Act of 1991, también conocida como la Gore Bill.10 Antes del lanzamiento de Mosaic, las páginas web no integraban un amplio entorno gráfico y su popularidad fue menor que otros protocolos anteriores ya en uso sobre Internet, como el protocolo Gopher y WAIS. La interfaz gráfica de usuario de Mosaic permitió a la WWW convertirse en el protocolo de Internet más popular de una manera fulgurante...

Estándares Web

Destacamos los siguientes estándares:

el Identificador de Recurso Uniforme (URI), que es un sistema universal para referenciar recursos en la Web, como páginas web,

el Protocolo de Transferencia de Hipertexto (HTTP), que especifica cómo se comunican el navegador y el servidor entre ellos,

el Lenguaje de Marcado de Hipertexto (HTML), usado para definir la estructura y contenido de documentos de hipertexto,

el Lenguaje de Marcado Extensible (XML), usado para describir la estructura de los documentos de texto.

Berners Lee dirige desde 2007 el World Wide Web Consortium (W3C), el cual desarrolla y mantiene esos y otros estándares que permiten a los ordenadores de la Web almacenar y comunicar efectivamente diferentes formas de información.

Implicaciones sociológicas.

La web, tal y como la conocemos hoy día, ha permitido un flujo de comunicación global a una escala sin precedentes en la historia humana. Personas separadas en el tiempo y el espacio, pueden usar la Web para intercambiar- o incluso desarrollar mutuamente- sus pensamientos más íntimos, o alternativamente sus actitudes y deseos cotidianos. Experiencias emocionales, ideas políticas, cultura, idiomas musicales, negocio, arte, fotografías, literatura... todo puede ser compartido y diseminado digitalmente con el menor esfuerzo, haciéndolo llegar casi de forma inmediata a cualquier otro punto del planeta. Aunque la existencia y uso de la Web se basa en tecnología material, que tiene a su vez sus propias desventajas, esta información no utiliza recursos físicos como las bibliotecas o la prensa escrita. Sin embargo, la propagación de información a través de la Web (vía Internet) no está limitada por el movimiento de volúmenes físicos, o por copias manuales o materiales de información. Gracias a su carácter virtual, la información en la Web puede ser buscada más fácil y eficientemente que en cualquier medio físico, y mucho más rápido de lo que una persona podría recabar por sí misma a través de un viaje, correo, teléfono, telégrafo, o cualquier otro medio de comunicación.

Page 66: algoritmos y programacion

La web es el medio de mayor difusión de intercambio personal aparecido en la Historia de la Humanidad, muy por delante de la imprenta. Esta plataforma ha permitido a los usuarios interactuar con muchos más grupos de personas dispersas alrededor del planeta, de lo que es posible con las limitaciones del contacto físico o simplemente con las limitaciones de todos los otros medios de comunicación existentes combinados.

Como bien se ha descrito, el alcance de la Red hoy día es difícil de cuantificar. En total, según las estimaciones de 2010, el número total de páginas web, bien de acceso directo mediarte URL, bien mediante el acceso a través de enlace, es de más de 27.000 millones; es decir, unas 3 páginas por cada persona viva en el planeta.11 A su vez, la difusión de su contenido es tal, que en poco más de 10 años, hemos codificado medio billón de versiones de nuestra historia colectiva, y la hemos puesto frente a 1.900 millones de personas. Es en definitiva, la consecución de una de las mayores ambiciones del hombre: desde la antigua Mongolia, pasando por la Biblioteca de Alejandría o la mismísima Enciclopedia de Rousseau y Diderot el hombre ha tratado de recopilar en un mismo tiempo y lugar todo el saber acumulado desde sus inicios hasta ese momento. El hipertexto ha hecho posible ese sueño.

Como la web tiene un ámbito de influencia global, se ha sugerido su importancia en la contribución al entendimiento mutuo de las personas por encima de fronteras físicas o ideológicas. Además de todo lo reseñado, la red ha propiciado otro logro sin precedentes en la comunicación como es la adopción de una lengua franca, el inglés, como vehículo a través del cual hacer posible el intercambio de información.

Publicación de páginas

La web está disponible como una plataforma más englobada dentro de los mass media. Para "publicar" una página web, no es necesario acudir a un editor ni otra institución, ni siquiera poseer conocimientos técnicos más allá de los necesarios para usar un editor de texto estándar.

A diferencia de los libros y documentos, el hipertexto no necesita de un orden lineal de principio a final. No precisa de subdivisiones en capítulos, secciones, subsecciones, etc.

Aunque algunos sitios web están disponibles en varios idiomas, muchos se encuentran únicamente en su idioma local. Adicionalmente, no todos los softwares soportan todos los caracteres especiales, y lenguajes RTL. Estos factores son algunas de las puntualizaciones que faltan por unificarse en aras de una estandarización global. Por lo general, a exclusión de aquellas páginas que hacen uso de grafías no románicas, es cada vez más generalizado el uso del formato Unicode UTF-8 como codificador de caracteres.

Las facilidades gracias a las cuales hoy día es posible publicar material en web quedan patentes en el número al alza de nuevas páginas personales, en las aquellas con fines comerciales, divulgativas, bloggers, etc. El desarrollo de aplicaciones gratuitas capaces de generar páginas web de una manera totalmente gráfica e intuitiva, así como un número

Page 67: algoritmos y programacion

emergente de servicios de alojamiento web sin coste alguno han contribuido a este crecimiento sin precedentes.

En muchos países los sitios web publicados deben respetar la accesibilidad web, viniendo regulado dicho concepto por Normativas o Pautas que indican el nivel de accesibilidad de dicho sitio:

Pautas de accesibilidad al contenido Web 1.0 WCAG desarrolladas por el W3C dentro de la Iniciativa WAI (Web Accesibility Iniciative).

Norma UNE:139803

Estadísticas

Una encuesta de 2002 sobre 2.024 millones de páginas web12 determinó que la mayoría del contenido web estaba en inglés (56,4%), frente a un 7,7% de páginas en alemán, un 5,6% en francés y un 4,95% en japonés. Otro estudio más reciente que realizaba búsquedas de páginas en 75 idiomas diferentes, determinó que había sobre 11.500 millones de páginas web en la web pública indexable a finales de enero del 2005.13 No obstante, cabe reseñar que este dato ha sido extraído de los bancos de datos de Google atendiendo a los nombres de dominio y, por tanto, muchas de las referencias a las que apuntan son meros redireccionamientos a otras webs.

Problemas de velocidad

La frustración sobre los problemas de congestión en la infraestructura de Internet y la alta latencia que provoca la lenta navegación, ha llevado a crear un nombre alternativo para la World Wide Web: la World Wide Wait (en castellano, la Gran Espera Mundial). Aumentar la velocidad de Internet es una discusión latente sobre el uso de tecnologías de peering y QoS. Otras soluciones para reducir las esperas de la Web se pueden encontrar en W3C.

0,1 segundos (una décima de segundo). Tiempo de respuesta ideal. El usuario no percibe ninguna interrupción.

1 segundo. Tiempo de respuesta más alto que es aceptable. Los tiempos de descarga superiores a 1 segundo interrumpen la experiencia del usuario.

15 segundos. Tiempo de respuesta inaceptable. La experiencia de usuario es interrumpida y el usuario puede marcharse del sitio web o sistema.

Estos tiempos son útiles para planificar la capacidad de los servidores web.

Pronunciación de "www."

En inglés, WWW. es el acrónimo de tres letras más largo de pronunciar, necesitando nueve sílabas. En Douglas Adams puede recogerse la siguiente cita:

Page 68: algoritmos y programacion

"La World Wide Web es la única cosa que conozco cuya forma abreviada se tarda tres veces más en decir que su forma extendida." Douglas Adams The Independent on Sunday, 1999

La pronunciación correcta según la RAE es popularmente conocida como triple doble uve, punto" o "doble uve, doble uve, doble uve, punto" sin embargo muchas veces se abrevia como "tres uves dobles, punto". En algunos países de habla española, como en México y Colombia, se suele pronunciar "triple doble u, punto" o "doble u, doble u, doble u, punto". Mientras que en Cuba, Argentina, Venezuela, Chile, Ecuador, Paraguay y Uruguay, "triple doble ve, punto" o "doble ve, doble ve, doble ve, punto".

En chino, la World Wide Web normalmente se traduce por wàn wéi wǎng (万维网), que

satisface las "www" y que significa literalmente "red de 10 mil dimensiones".

En italiano, se pronuncia con mayor facilidad: "vu vu vu".

Estándares

Lo siguiente es una lista de los documentos que definen los tres estándars principales de la Web:

Uniform Resource Locators (URL) (en castellano, Localizador de Recursos Uniforme)

o RFC 1738, Localizador de Recursos Uniforme (URL) (Diciembre de 1994) o RFC 3986, Uniform Resource Identifier (URI) (en castellano, Identificador de

Recursos Uniforme): Sintaxis general (Enero de 2005)

Hypertext Transfer Protocol (HTTP) (en castellano, Protocolo de Transferencia de Hipertexto)

o RFC 1945, Especificación de HTTP/1.0 (Mayo de 1996) o RFC 2616, Especificación de HTTP/1.1 (Junio de 1999) o RFC 2617, Autenticación HTTP o HTTP/1.1 Especificación de errores de HTTP/1.1

Hypertext Markup Language (HTML) (en castellano, Lenguaje de Etiquetado de Hipertexto)

o Internet Draft, HTML version 1 o RFC 1866, HTML version 2.0 o Referencia de la especificación HTML 3.2 o Especificación de HTML 4.01 o Especificación de HTML Extensible (XHTML)

Page 69: algoritmos y programacion

Enlaces rotos y almacenamiento de la web

Con el paso del tiempo, muchos recursos web enlazados por hiperenlaces desaparecen, se cambia su localización, o son reemplazados con distinto contenido. Este fenómeno se denomina en algunos círculos como enlaces rotos y los hiperenlaces afectados por esto suelen llamarse "enlaces muertos".

La naturaleza efímera de la Web ha hecho aparecer muchos esfuerzos de almacenar la Web. El archivo de Internet es uno de los esfuerzos más conocidos, llevan almacenando la web desde 1996.

Conferencias académicas

El mayor evento académico relacionado con la WWW es la serie de conferencias promovidas por IW3C2. Hay una lista con enlaces a todas las conferencias de las series.

El prefijo WWW en las direcciones Web

Es muy común encontrar el prefijo "WWW" al comienzo de las direcciones web debido a la costumbre de nombrar a los host de Internet (los servidores) con los servicios que proporcionan. De esa forma, por ejemplo, el nombre de host para un servidor web normalmente es "WWW", para un servidor FTP se suele usar "ftp", y para un servidor de noticias USENET, "news" o "nntp" (en relación al protocolo de noticias NNTP). Estos nombres de host aparecen como subdominios de DNS, como en "www.example.com".

El uso de estos prefijos no está impuesto por ningún estándar, de hecho, el primer servidor web se encontraba en "nxoc01.cern.ch"14 e incluso hoy en día existen muchos sitios Web que no tienen el prefijo "www". Este prefijo no tiene ninguna relación con la forma en que se muestra el sitio Web principal. El prefijo "www" es simplemente una elección para el nombre de subdominio del sitio Web.

Algunos navegadores web añaden automáticamente "www." al principio, y posiblemente ".com"" al final, en las URL que se teclean, si no se encuentra el host sin ellas. Internet Explorer, Mozilla Firefox y Opera también añadirán "http://www." y ".com" al contenido de la barra de dirección si se pulsan al mismo tiempo las teclas de Control y Enter. Por ejemplo, si se teclea "ejemplo" en la barra de direcciones y luego se pulsa sólo Enter o Control+Enter normalmente buscará "http://www.ejemplo.com", dependiendo de la versión exacta del navegador y su configuración.

Tecnologías web

Las tecnologías web implican un conjunto de herramientas que nos facilitarán lograr mejores resultados a la hora del desarrollo de un sitio web.

Page 70: algoritmos y programacion

Navegadores web

Mozilla Firefox Google Chrome Amaya Epiphany Galeon Internet Explorer Konqueror sobre linux Lynx sobre linux Netscape Navigator Opera Safari Seamonkey Shiira Maik Navigator Flock Arora K-Meleon

Bibliografía

Libros :

Inicie su negocio en Web.

David Cook y Deborah Sellers

Prentice-Hall Hispanoamericana, S.A.

En Internet:

http://www.iac.es/galeria/westend/node1.htm http://www.iac.es/galeria/westend/node2.htm http://www.iac.es/galeria/westend/node3.htm. http://www.iac.es/galeria/westend/node4.htm, etc. http://www.ocea.es/forem/guiahtml.htm

ABSTRACTOT EN INGLES:

World Wide Web

World Wide Web, supplying mechanism of electronic information for connected users to

Internet. The access to each place Web is channeled through the URL or unique badge of

each page of contents. This system allows the users the access to a great quantity of

Page 71: algoritmos y programacion

information: to read periodic publications, to look for references in libraries, to carry out

virtual walks for pinacotecas, electronic purchases or auditions of concerts, to look for

work and other many functions. Thanks to the shape in that it is organized the World

Wide Web (WWW), the users can jump from a resource to another with easiness. The

connections among the servants that contain the information are made in an automatic

and transparent way for the user, because the means admits the hypertext functions and

hipermedia.

The users visualize these data by means of an application, denominated browser or

browser (as Navigator, of Netscape, or Internet Explorer, of Microsoft). The browser

shows in the screen a page with the text, the images, the sounds and the relative

animations to the topic that previously has been selected. The user can interactuar then

with the system pointing out with the mouse (mouse) those elements that he wants to

study in depth, because, if the page allows it, this objects will be linked to other pages

Web of that servant or others that contribute related information. They exist multiple you

connect Web all over the world that they form a base of information to great scale in

format multimedia, although the contents are still for the most part in English. More and

more companies implant corporate nets, well-known with the intranets name that

you/they are based on this technology but to smaller scale.

The pages Web can be written in HTML (initials of Hypertext Markup Language), DHTML

or XML (you Extend Markup Language), languages of marked of hypertext. The protocol

HTTP (initials of Hypertext Transfer Protocol) it is the one in charge of making arrive the

different pages from the remote servants to the user's team that he/she requests them.

The communications of inferior level usually settle down by means of TCP/IP (initials of

Transmission Control Protocol/Internet Protocol), although to the being an open system,

admits other protocols.

The World Wide Web was developed in 1989 by an English scientist, Timothy Berners-Lee.

The original purpose of the system was to allow that the teams of investigators of physics

of high energy of the CERN of Geneva, Switzerland, they could exchange information. With

the step of the time the WWW became a platform of development of programs related

with this environment. The number of connected teams grew quickly, serving from

support to many projects, I eat a market for example to great scale. The MIT (Institute of

Technology of Massachusetts), through the consortium WWW, tries to coordinate the

future development of this system, although the success of the last years makes difficult

to plan the expansion of the same one.

Page 72: algoritmos y programacion

9. EXPOSICION NUMERO 9: REALIDAD VIRTUAL

Nombre de expositor: Hora de inicio: 8: 19 am Hora de finalización: 8:26 pm.

DIAGRAMA:

REALIDAD VIRTUAL

sistema tecnológico, basado en el empleo de ordenadores y otros dispositivos, cuyo fin es

producir una apariencia de realidad que permita al usuario tener la sensación de estar

presente en ella.

VIRTUALIDAD

RELACION REAL/ IRREAL.

INMERCION Y NAVEGACION

Pueden ser de dos tipos

Inmersiva No inmersiva

Page 73: algoritmos y programacion

EXPLICACION DEL TEMA:

Realidad virtual

Realidad virtual es un sistema tecnológico, basado en el empleo de ordenadores y otros dispositivos, cuyo fin es producir una apariencia de realidad que permita al usuario tener la sensación de estar presente en ella. Se consigue mediante la generación por ordenador de un conjunto de imágenes que son contempladas por el usuario a través de un casco provisto de un visor especial. Algunos equipos se completan con trajes y guantes equipados con sensores diseñados para simular la percepción de diferentes estímulos, que intensifican la sensación de realidad. Su aplicación, aunque centrada inicialmente en el terreno de los videojuegos, se ha extendido a otros muchos campos, como la medicina o las simulaciones de vuelo.

Virtualidad

La virtualidad establece una nueva forma de relación entre el uso de las coordenadas de espacio y de tiempo, supera las barreras espaciotemporales y configura un entorno en el que la información y la comunicación se nos muestran accesibles desde perspectivas hasta ahora desconocidas al menos en cuanto a su volumen y posibilidades. La realidad virtual permite la generación de entornos de interacción que separen la necesidad de compartir el espacio-tiempo, facilitando en este caso nuevos contextos de intercambio y comunicación.

Autores como Lévy, han señalado la existencia de diferentes niveles de virtualidad en su relación con la dimensión bidimensional/tridimensional y su relación con la realidad. Yendo desde un continuo que comienza con una menor virtualidad de aquellos aspectos que nos alejan de la realidad o que categorizamos a priori como claramente imaginarios o ilusorios, aumentando con lo bidimensional, hasta las posibilidades que ofrece la tridimensionalidad en su relación de semejanza o analogía con lo real.

Relación real/irreal

La realidad virtual ha eliminado la frontera existente entre realidad e irrealidad. No se trata en este caso de la imposibilidad de separación entre lo real y aquello que no lo es, sino la difusión de los límites que los separan. La amplia variedad de posibilidades que ésta ofrece, ha facilitado el establecimiento de un estatus de realidad, sustentado fundamentalmente en tres aspectos:

La realidad virtual es compartida con otras personas. Se centra generalmente en la interacción interpersonal, que a pesar de no producirse en el mismo espacio-tiempo, si es percibida como un acto colectivo.

Tiene una estrecha relación con el mundo físico dada su interrelación e influencia mutua. La experiencia en la realidad virtual viene mediada por la experiencia en el mundo real y ésta es influida por lo que allí es experimentado.

Page 74: algoritmos y programacion

Está interconectada con la producción artística, ya que se convierte en un espacio más de creación con motivaciones estéticas.

La generación de nuevas oportunidades en entornos diversos ha facilitado la existencia de posibilidades emergentes para la reconstrucción de la propia identidad. Los entornos virtuales, y más concretamente la realidad virtual, han generado un espacio de moratoria para la construcción de la identidad sustentada en la creación de más de un yo. La existencia de estas identidades múltiples favorece la experimentación, pudiendo adoptar, potenciar o desestimar aspectos puestos en práctica en estos entornos, en la propia cotidianidad. Se trataría pues de un espacio de interrelación entre los espacios cotidianos y la realidad virtual, en que las propias experiencias en estos entornos producen una mutua influencia, generando una ruptura de las fronteras entre ambos.

Inmersión y navegación

La realidad virtual puede ser de dos tipos: inmersiva y no inmersiva. Los métodos inmersivos de realidad virtual con frecuencia se ligan a un ambiente tridimensional creado por un ordenador, el cual se manipula a través de cascos, guantes u otros dispositivos que capturan la posición y rotación de diferentes partes del cuerpo humano. La realidad virtual no inmersiva también utiliza el ordenador y se vale de medios como el que actualmente nos ofrece Internet, en el cual podemos interactuar en tiempo real con diferentes personas en espacios y ambientes que en realidad no existen sin la necesidad de dispositivos adicionales al ordenador. Nos acercamos en este caso a la navegación, a través de la cual ofrecemos al sujeto la posibilidad de experimentar (moverse, desplazarse, sentir) determinados espacios, mundos, lugares, como si se encontrase en ellos.

La realidad virtual no inmersiva ofrece un nuevo mundo a través de una ventana de escritorio. Este enfoque no inmersivo tiene varias ventajas sobre el enfoque inmersivo como son el bajo coste y fácil y rápida aceptación de los usuarios. Los dispositivos inmersivos son de alto coste y generalmente el usuario prefiere manipular el ambiente virtual por medio de dispositivos familiares como son el teclado y el ratón que por medio de cascos pesados o guantes.

El alto precio de los dispositivos inmersivos ha generalizado el uso de ambientes virtuales fáciles de manipular por medio de dispositivos más sencillos, como es el ejemplo del importante negocio de las videoconsolas o los juegos en los que numerosos usuarios interactúan a través de Internet. Es a través de Internet como nace VRML, que es un estándar para la creación de estos mundos virtuales no inmersivos, que provee un conjunto de primitivas para el modelaje tridimensional y permite dar comportamiento a los objetos y asignar diferentes animaciones que pueden ser activadas por los usuarios.

Por último hay que destacar algunas mejoras que facilitan los sistemas de realidad virtual, en lo que se refiere al tratamiento de enfermedades relativas a problemas de movilidad.

Page 75: algoritmos y programacion

Bibliografía

Gálvez Mozo, A. (2004) Posicionamientos y puestas en pantalla. Un análisis de la producción de sociabilidad en los entornos virtuales. Barcelona: UAB.

Turkle, S. (1997) La vida en la pantalla. La construcción de la identidad en la era de internet. Barcelona: Paidós.

ABSTRACTO EN INGLES:

Virtual reality, system that allows one or more users to see, to move and to react in an on-

line feigned world or computer. The different interface devices allow the user to see, to

play and until manipulating virtual objects. The virtual worlds and all that you/they

contain (including the participants' images computerizadas) they are represented with

mathematical models and computer programs. The simulations of virtual reality differ of

other computer simulations in the measure in that you/they require special interface

devices. These devices transmit the user the images, the sound and the sensations of the

feigned worlds. They also register and they send the speech and the movements from the

participants to the simulation programs. Instead of using a keyboard or a mouse or mouse

to communicate with the computer, these special devices allow the participant to move,

to act and to communicate with the computer in a similar way to as he/she makes it in

their daily life. This natural style of communication and the capacity to look to their

surroundings give the user the sensation of being inmerso in the feigned world.

DEVELOPMENT AND USES

Although the public knows the virtual reality for little time, the investigators take working

in these problems for many years. In the decade of 1960, Raymond Goertz and later on

Michael Noll of the laboratories Bell developed prototypes of devices of interaction of

forces with the user. The devices of the virtual reality have improved in a spectacular way

in the last years like consequence of several new advances of the technology. The power

and the capacity by heart of the computers it has increased, and their cost has decreased

in a considerable way. These factors, together with the appearance of better screens of

liquid glass for the HMD, allow the scientists of many laboratories to develop and to use

simulations of virtual reality, for example exploring and manipulating experimental data in

an impossible way previously. The therapists use the virtual reality to treat the victims of

abuses and people with fear to the heights. The patients of muscular dystrophy are

learning how to use a seat of wheels through the virtual reality. In the future the surgeons

will be able to use a system of virtual reality to plan and to carry out operations to a

virtual patient, instead of to a real person. The architects will be able to take to their

clients to visit a new house before it is built. A system of virtual reality will be able to be

good as an instrument of training for airplanes and another complex machinery. The

Page 76: algoritmos y programacion

virtual reality in net will allow several people of several continents to participate at the

same time in teleconferences, in virtual quirófanos or in feigned exercises of military

training.

Page 77: algoritmos y programacion

10. EXPOSICION NUMERO 10: SISTEMAS OPERATIVOS:

Nombre de expositor: Yesennia Medina. Hora de inicio: 8:25am Hora de finalización: 8. 35am

DIAGRAMA:

Page 78: algoritmos y programacion

EXPLICACION DEL TEMA:

Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones.1

Nótese que es un error común muy extendido denominar al conjunto completo de herramientas sistema operativo, es decir, la inclusión en el mismo término de programas como el explorador de ficheros, el navegador y todo tipo de herramientas que permiten la interacción con el sistema operativo, también llamado núcleo o kernel. Uno de los más prominentes ejemplos de esta diferencia, es el núcleo Linux, el cual es el núcleo del sistema operativo GNU, del cual existen las llamadas distribuciones GNU. Este error de precisión, se debe a la modernización de la informática llevada a cabo a finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los grandes computadores2 se rediseñó a fin de llevarla a los hogares y facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más sencillo de gestionar.3 (Véase AmigaOS, beOS o MacOS como los pioneros4 de dicha modernización, cuando los Amiga, fueron bautizados con el sobrenombre de Video Toasters5 por su capacidad para la Edición de vídeo en entorno multitarea round robin, con gestión de miles de colores e interfaces intuitivos para diseño en 3D.

Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. Se encuentran en la mayoría de los aparatos electrónicos que utilizan microprocesadores para funcionar. (teléfonos móviles, reproductores de DVD, computadoras, radios, etc.)

Perspectiva histórica

Los primeros sistemas (1945-1950) eran grandes máquinas operadas desde la consola maestra por los programadores. Durante la década siguiente (1950-1960) se llevaron a cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnéticas, etc. Esto a su vez provocó un avance en el software: compiladores, ensambladores, cargadores, manejadores de dispositivos, etc.

A finales de los años 80, una computadora Commodore Amiga equipada con una aceleradora Video Toaster era capaz de producir efectos comparados a sistemas dedicados que costaban el triple. Un Video Toaster junto a Lightwave ayudó a producir muchos programas de televisión y películas, entre las que se incluyen Babylon 5, Seaquest DSV y Terminator II.6

Page 79: algoritmos y programacion

Problemas de explotación y soluciones iniciales

El problema principal de los primeros sistemas era la baja utilización de los mismos, la primera solución fue poner un operador profesional que lo manejase, con lo que se eliminaron las hojas de reserva, se ahorró tiempo y se aumentó la velocidad.

Para ello, los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento por lotes (batch) sin automatizar.

Monitores residentes

Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución secuencial.

Según fue avanzando la complejidad de los programas, fue necesario implementar soluciones que automatizaran la organización de tareas sin necesidad de un operador. Debido a ello se crearon los monitores residentes: programas que residían en memoria y que gestionaban la ejecución de una cola de trabajos.

Un monitor residente estaba compuesto por un cargador, un Intérprete de comandos y un Controlador (drivers) para el manejo de entrada/salida.

Sistemas con almacenamiento temporal de E/S

Los avances en el hardware crearon el soporte de interrupciones y posteriormente se llevó a cabo un intento de solución más avanzado: solapar la E/S de un trabajo con sus propios cálculos, por lo que se creó el sistema de buffers con el siguiente funcionamiento:

Un programa escribe su salida en un área de memoria (buffer 1). El monitor residente inicia la salida desde el buffer y el programa de aplicación

calcula depositando la salida en el buffer 2. La salida desde el buffer 1 termina y el nuevo cálculo también. Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1. El proceso se puede repetir de nuevo.

Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado por la CPU) o si por el contrario hay muchas más operaciones de E/S que cálculo (limitado por la E/S).

Perspectiva histórica

Los primeros sistemas (1945-1950) eran grandes máquinas operadas desde la consola maestra por los programadores. Durante la década siguiente (1950-1960) se llevaron a cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnéticas, etc. Esto

Page 80: algoritmos y programacion

a su vez provocó un avance en el software: compiladores, ensambladores, cargadores, manejadores de dispositivos, etc.

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

Sistemas operativos multiprogramados

Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:

Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos. Se pueden mantener en memoria varios programas. Se asigna el uso de la CPU a los diferentes programas en memoria.

Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo que éste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados, los cuales cumplen con las siguientes funciones:

Administrar la memoria. Gestionar el uso de la CPU (planificación). Administrar el uso de los dispositivos de E/S.

Cuando desempeña esas tareas, el monitor residente se transforma en un sistema operativo multiprogramado.

Llamadas al sistema operativo

Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO.

Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es la interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no funcionará, a no ser que el nuevo SO tenga la misma interfaz. Para ello:

Las llamadas correspondientes deben tener el mismo formato. Cada llamada al nuevo SO tiene que dar los mismos resultados que la

correspondiente del anterior.

Page 81: algoritmos y programacion

Modos de ejecución en un CPU

Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el Sistema Operativo, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello, una CPU debe tener (al menos) dos modos de operación diferentes:

Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de las aplicaciones.

Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.

Llamadas al sistema

Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la llamada. Por lo que si ésta se codifica como una llamada de función, cualquier cambio en el SO haría que hubiera que reconstruir la aplicación.

Pero lo más importante es que una llamada de función no cambia el modo de ejecución de la CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que conocer su ubicación, y hacer que se fuerce un cambio de modo de operación de la CPU en la llamada (y la recuperación del modo anterior en el retorno).

Esto se hace utilizando instrucciones máquina diseñadas específicamente para este cometido, distintas de las que se usan para las llamadas de función.

Bibliotecas de interfaz de llamadas al sistema

Las llamadas al sistema no siempre tienen una expresión sencilla en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema. Las hay para distintos lenguajes de programación.

La aplicación llama a una función de la biblioteca de interfaz (mediante una llamada normal) y esa función es la que realmente hace la llamada al sistema.

Interrupciones y excepciones

El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:

Algún dispositivo de E/S necesita atención. Se ha producido una situación de error al intentar ejecutar una instrucción del

programa (normalmente de la aplicación).

Page 82: algoritmos y programacion

En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa.

Según los dos casos anteriores tenemos las interrupciones y la excepciones:

Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación de la que se estaba ocupando, ya ha terminado.

Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO.

Tratamiento de las interrupciones

Una interrupción se trata en todo caso, después de terminar la ejecución de la instrucción en curso.

El tratamiento depende de cuál sea el dispositivo de E/S que ha causado la interrupción, ante la cual debe poder identificar el dispositivo que la ha causado.

La ventaja de este procedimiento es que no se tiene que perder tiempo ejecutando continuamente rutinas para consultar el estado del periférico. El inconveniente es que el dispositivo debe tener los circuitos electrónicos necesarios para acceder al sistema de interrupciones del computador.

Importancia de las interrupciones

El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicación, mientras otra permanece a la espera de que concluya una operación en un dispositivo de E/S.

El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se continúe ejecutando.

En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).

Un ejemplo de sincronismo por interrupción es el almacenamiento de caracteres introducidos mediante el teclado. Cuando se introduce un carácter, se codifica en el registro de datos del dispositivo y además se activa un bit del registro de estado quien crea una interrupción en el hardware. El procesador deja temporalmente la tarea que estaba completando y ejecuta la rutina de atención a la interrupción correspondiente. El teclado almacena el carácter en el vector de memoria intermedia ( también llamado buffer) asociada al teclado y despierta el proceso que había en el estado de espera de la operación de entrada/salida.

Page 83: algoritmos y programacion

Excepciones

Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupción, la instrucción en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas.

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razones:

El código de operación puede ser incorrecto. Se intenta realizar alguna operación no definida, como dividir por cero. La instrucción puede no estar permitida en el modo de ejecución actual. La dirección de algún operando puede ser incorrecta o se intenta violar alguno de

sus permisos de uso.

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el tratamiento específico de una excepción lo realiza el SO.

Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el que trata la situación como convenga.

Es bastante frecuente que el tratamiento de una excepción no retorne al programa que se estaba ejecutando cuando se produjo la excepción, sino que el SO aborte la ejecución de ese programa. Este factor depende de la pericia del programador para controlar la excepción adecuadamente.

Gestión de procesos

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:

Crear y destruir los procesos. Parar y reanudar los procesos. Ofrecer mecanismos para que se comuniquen y sincronicen.

La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con

Page 84: algoritmos y programacion

las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.

Gestión de la memoria principal

La Memoria es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:

Conocer qué partes de la memoria están siendo utilizadas y por quién. Decidir qué procesos se cargarán en memoria cuando haya espacio disponible. Asignar y reclamar espacio de memoria cuando sea necesario.

Gestión del almacenamiento secundario

Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:

Planificar los discos. Gestionar el espacio libre. Asignar el almacenamiento. Verificar que los datos se guarden en orden

El sistema de E/S

Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.

Sistema de archivos

Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de:

Construir y eliminar archivos y directorios. Ofrecer funciones para manipular archivos y directorios. Establecer la correspondencia entre archivos y unidades de almacenamiento. Realizar copias de seguridad de archivos.

Page 85: algoritmos y programacion

Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT3, NTFS, XFS, etc.

Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS, que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes, sin embargo, en un sistema NTFS el tamaño es considerablemente mayor.

Sistemas de protección

Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:

Distinguir entre uso autorizado y no autorizado. Especificar los controles de seguridad a realizar. Forzar el uso de estos mecanismos de protección.

Sistema de comunicaciones

Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

Programas de sistema

Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:

Manipulación y modificación de archivos. Información del estado del sistema. Soporte a lenguajes de programación. Comunicaciones.

Gestor de recursos

Como gestor de recursos, el Sistema Operativo administra:

La CPU (Unidad Central de Proceso, donde está alojado el microprocesador).

Page 86: algoritmos y programacion

Los dispositivos de E/S (entrada y salida) La memoria principal (o de acceso directo). Los discos (o memoria secundaria). Los procesos (o programas en ejecución). y en general todos los recursos del sistema.

Administración de tareas

Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.

Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

Administración de usuarios

Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.

Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursos

Centralizado: Si permite utilizar los recursos de una sola computadora. Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de

más de una computadora al mismo tiempo.

Bibliografía

O´brien, James A. (2006). Sistemas de Información Gerencial. México DF.

Silberschatz, Abraham (2006). Sistemas Operativos. México. ISBN 968-18-6168-

Page 87: algoritmos y programacion

ABSTRACTO EN INGLES

Operating system, basic software that controls a computer. The operating system has

three big functions: it coordinates and it manipulates the hardware of the computer or

computer, as the memory, the printers, the disk units, the keyboard or the mouse; it

organizes the files in diverse storage devices, as floppy disks, hard disks, compact disks or

magnetic tapes, and it negotiates the hardware errors and the loss of data.

The operating systems control different processes of the computer. An important process

is the interpretation of the commands that you/they allow the user to communicate with

the computer. Some interpreters of instructions are based on text and they demand that

the instructions are typed. Others are based on graphics, and they allow the user to

communicate pointing out and making click in an icon. In general, the interpreters based

on graphics are simpler of using.

The operating systems can being of unique task or multitasking. The unique, more

primitive operating systems of task, they can only manage a process in each moment. For

example, when the computer is printing a document, it cannot begin another process

neither to respond to new instructions until the impression ends.

All the modern operating systems are multitasking and they can execute several processes

simultaneously. In most of the computers there is only an UCP; an operating system

multitasking believes the illusion that several processes are executed simultaneously in

the UCP. The mechanism that is more often used to achieve this illusion is the multitasking

for segmentation of times, in which each process is executed individually during a period

of certain time. If the process doesn't conclude in the assigned time, it is suspended and

another process is executed. This exchange of processes is denominated context

commutation. The operating system takes charge of controlling the state of the

suspended processes. Also bill with a planning called mechanism that determines the

following process that should be executed. The planner executes the processes being

based on its priority to minimize the delay perceived by the user. The processes seem to

be made simultaneously by the high speed of the context change.

The operating systems can use virtual memory to execute processes that demand more

main memory of the really available one. With this technique space is used in the hard

disk to simulate the necessary additional memory. However, the access to the hard disk

requires more time than the access to the main memory, for what the operation of the

computer is slower.

Page 88: algoritmos y programacion

11. EXPOSICION NUMERO 11: REDES

Nombre de expositor: Hora de inicio: 8: 37 am Hora de finalización: 8:43 am

DIAGRAMA:

Redes de computadoras Las redes están formadas por conexiones entre grupos de computadoras y dispositivos asociados que permiten a los usuarios la transferencia electrónica de información. La red de área local, representada en la parte izquierda, es un ejemplo de la configuración utilizada en muchas oficinas y empresas. Las diferentes computadoras se denominan estaciones de trabajo y se comunican entre sí a través de un cable o línea telefónica conectada a los servidores. Éstos son computadoras como las estaciones de trabajo, pero poseen funciones administrativas y están dedicados en exclusiva a supervisar y controlar el acceso de las estaciones de trabajo a la red y a los recursos compartidos (como las impresoras). La línea roja representa una conexión principal entre servidores de red; la línea azul muestra las conexiones locales. Un módem (modulador/demodulador) permite a las computadoras transferir información a través de las líneas telefónicas normales. El módem convierte las señales digitales a analógicas y viceversa, y permite la comunicación entre computadoras muy distantes entre sí.

Page 89: algoritmos y programacion

EXPLICACION DEL TEMA:

Red de computadoras

Una red de computadoras, también llamada red de ordenadores o red informática, es un conjunto de equipos informáticos conectados entre sí por medio de dispositivos físicos que envían y reciben impulsos eléctricos, ondas electromagnéticas o cualquier otro medio para el transporte de datos para compartir información y recursos.1 Este término también engloba aquellos medios técnicos que permiten compartir la información. [cita requerida]

La finalidad principal para la creación de una red de computadoras es compartir los recursos y la información en la distancia, asegurar la confiabilidad y la disponibilidad de la información, aumentar la velocidad de transmisión de los datos y reducir el coste general de estas acciones.2

La estructura y el modo de funcionamiento de las redes informáticas actuales están definidos en varios estándares, siendo el más importante y extendido de todos ellos el modelo TCP/IP basado en el modelo de referencia OSI. Este último, estructura cada red en 7 capas con funciones concretas pero relacionadas entre sí; en TCP/IP se reducen a 4 capas. Existen multitud de protocolos repartidos por cada capa, los cuales también están regidos por sus respectivos estándares.

Clasificación de las redes

Por alcance

Red de área personal o PAN (personal area network) es una red de ordenadores usada para la comunicación entre los dispositivos de la computadora (teléfonos incluyendo las ayudantes digitales personales) cerca de una persona.

Red de área local o LAN (local area network) es una red que se limita a un área especial relativamente pequeña tal como un cuarto, un solo edificio, una nave, o un avión. Las redes de área local a veces se llaman una sola red de localización.

Una red de área de campus o CAN (campus area network) es una red de computadoras que conecta redes de área local a través de un área geográfica limitada, como un campus universitario, o una base militar.

Una red de área metropolitana (metropolitan area network o MAN, en inglés) es una red de alta velocidad (banda ancha) que da cobertura en un área geográfica extensa.

Las redes de área amplia (wide area network, WAN) son redes informáticas que se extienden sobre un área geográfica extensa.

Una red de área de almacenamiento, en inglés SAN (storage area network), es una red concebida para conectar servidores, matrices (arrays) de discos y librerías de soporte.[cita requerida]

Una Red de área local virtual (Virtual LAN, VLAN) es un grupo de computadoras con un conjunto común de recursos a compartir y de requerimientos, que se

Page 90: algoritmos y programacion

comunican como si estuvieran adjuntos a una división lógica de redes de computadoras en la cuál todos los nodos pueden alcanzar a los otros por medio de broadcast (dominio de broadcast) en la capa de enlace de datos, a pesar de su diversa localización física. [cita requerida]

Red irregular es un sistema de cables y buses que se conectan a través de un módem, y que da como resultado la conexión de una o más computadoras. Esta red es parecida a la mixta, solo que no sigue los parámetros presentados en ella. Muchos de estos casos son muy usados en la mayoría de las redes. [cita requerida]

Por tipo de conexión

Medios guiados

El cable coaxial se utiliza para transportar señales eléctricas de alta frecuencia que posee dos conductores concéntricos, uno central, llamado vivo, encargado de llevar la información, y uno exterior, de aspecto tubular, llamado malla o blindaje, que sirve como referencia de tierra y retorno de las corrientes.

El cable de par trenzado es una forma de conexión en la que dos conductores eléctricos aislados son entrelazados para tener menores interferencias y aumentar la potencia y disminuir la diafonía de los cables adyacentes.

La fibra óptica es un medio de transmisión empleado habitualmente en redes de datos; un hilo muy fino de material transparente, vidrio o materiales plásticos, por el que se envían pulsos de luz que representan los datos a transmitir.

Medios no guiados

Red por radio Red por infrarrojos Red por microondas

Por relación funcional

Cliente-servidor es una arquitectura que consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta.

Peer-to-peer es aquella red de computadoras en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí.

Por topología

La red en bus se caracteriza por tener un único canal de comunicaciones (denominado bus, troncal o backbone) al cual se conectan los diferentes dispositivos.

En una red en anillo cada estación está conectada a la siguiente y la última está conectada a la primera.

Page 91: algoritmos y programacion

En una red en estrella las estaciones están conectadas directamente a un punto central y todas las comunicaciones se han de hacer necesariamente a través de éste.

En una red en malla cada nodo está conectado a todos los otros. En una red en árbol los nodos están colocados en forma de árbol. Desde una visión

topológica, la conexión en árbol es parecida a una serie de redes en estrella interconectadas salvo en que no tiene un nodo central.

En una red mixta se da cualquier combinación de las anteriores [cita requerida].

Por la direccionalidad de los datos [cita requerida]

Simplex o Unidireccional: un Equipo Terminal de Datos transmite y otro recibe. Half-Duplex o Bidireccional: sólo un equipo transmite a la vez. También se llama

Semi-Duplex. [cita requerida] Full-Duplex: ambos pueden transmitir y recibir a la vez una misma

información.[cita requerida]

Por grado de autentificación

Red Privada: una red privada se definiría como una red que puede usarla solo algunas personas y que están configuradas con clave de acceso personal. [cita requerida]

Red de acceso público: una red pública se define como una red que puede usar cualquier persona y no como las redes que están configuradas con clave de acceso personal. Es una red de computadoras interconectados, capaz de compartir información y que permite comunicar a usuarios sin importar su ubicación geográfica. [cita requerida]

Por grado de difusión

Una intranet es una red de computadoras que utiliza alguna tecnología de red para usos comerciales, educativos o de otra índole de forma privada, esto es, que no comparte sus recursos o su información con redes ilegítimas.

Internet es un conjunto descentralizado de redes de comunicación interconectadas que utilizan la familia de protocolos TCP/IP, garantizando que las redes físicas heterogéneas que la componen funcionen como una red lógica única, de alcance mundial.

Por servicio o función

Una red comercial proporciona soporte e información para una empresa u organización con ánimo de lucro.

Una red educativa proporciona soporte e información para una organización educativa dentro del ámbito del aprendizaje.

Page 92: algoritmos y programacion

Una red para el proceso de datos proporciona una interfaz para intercomunicar equipos que vayan a realizar una función de cómputo conjunta.[cita requerida]

Protocolos de redes

Modelos generales

Existen diversos protocolos, estándares y modelos que determinan el funcionamiento general de las redes. Destacan el modelo OSI y el TCP/IP. Cada modelo estructura el funcionamiento de una red de manera distinta: El modelo OSI cuenta con 7 capas muy definidas y con funciones diferenciadas y el TCP/IP con 4 capas diferenciadas pero que combinan las funciones existentes en las 7 capas del modelo OSI.4 Los protocolos están repartidos por las diferentes capas pero no están definidos como parte del modelo en sí sino como entidades diferentes de normativas internacionales, de modo que el modelo OSI no puede ser considerado una arquitectura de red.5

Modelo OSI

El modelo OSI (open systems interconnection) fue creado por la ISO y se encarga de la conexión entre sistemas abiertos, esto es, sistemas abiertos a la comunicación con otros sistemas. Los principios en los que basó su creación son, una mayor definición de las funciones de cada capa, evitar agrupar funciones diferentes en la misma capa y una mayor simplificación en el funcionamiento del modelo en general.6 Este modelo divide las funciones de red en 7 capas diferenciadas.

# Capa Unidad de intercambio

7. Aplicación APDU

6. Presentación PPDU

5. Sesión SPDU

4. Transporte TPDU

3. Red Paquete

Page 93: algoritmos y programacion

2. Enlace Marco / Trama

1. Física Bit

Modelo TCP/IP

Este modelo es el implantado actualmente a nivel mundial: Fue utilizado en ARPANET y es utilizado actualmente a nivel global en Internet y redes locales. Su nombre deriva de los dos principales protocolos que lo conforman: TCP en la Capa de transporte e IP en la Capa de red.7 Se compone de 4 capas.

# Capa Unidad de intercambio

4. Aplicación no definido

3. Transporte no definido

2. Red / Interred Paquete

1. Enlace / nodo a red ??

Otros estándares

Existen otros estándares, más concretos, que definen el modo de funcionamiento de diversas tecnologías de transmisión de datos:

Esta lista no es completa

Tecnología Estándar Año de primera publicación Otros detalles

Ethernet IEEE 802.3 1983

Page 94: algoritmos y programacion

Token Ring IEEE 802.5 1970s8

WLAN IEEE 802.11 19979

Bluetooth IEEE 802.15 200210

FDDI ISO 9314-x 1987 Reúne un conjunto de estándares.

PPP RFC 1661 199411

Componentes básicos de las redes de ordenadores

El ordenador

La mayoría de los componentes de una red media son los ordenadores individuales, también denominados host; generalmente son sitios de trabajo (incluyendo ordenadores personales) o servidores.

Tarjetas de red

Para lograr el enlace entre las computadoras y los medios de transmisión (cables de red o medios físicos para redes alámbricas e infrarrojos ó radiofrecuencias para redes inalámbricas), es necesaria la intervención de una tarjeta de red o NIC (Network Card Interface) con la cual se puedan enviar y recibir paquetes de datos desde y hacia otras computadoras, empleando un protocolo para su comunicación y convirtiendo esos datos a un formato que pueda ser transmitido por el medio (bits 0's/1's). Cabe señalar que a cada tarjeta de red le es asignado un identificador único por su fabricante, conocido como dirección MAC (Media Access Control), que consta de 48 bits (6 bytes). Dicho identificador permite direccionar el tráfico de datos de la red del emisor al receptor adecuado.

El trabajo del adaptador de red es el de convertir las señales eléctricas que viajan por el cable (ej: red Ethernet) o las ondas de radio (ej: red Wifi) en una señal que pueda interpretar el ordenador.

Estos adaptadores son unas tarjetas PCI que se conectan en las ranuras de expansión del ordenador. En el caso de ordenadores portátiles, estas tarjetas vienen en formato PCMCIA. En algunos ordenadores modernos, tanto de sobremesa como portátiles, estas tarjetas ya vienen integradas en la placa base.

Page 95: algoritmos y programacion

Adaptador de red es el nombre genérico que reciben los dispositivos encargados de realizar dicha conversión. Esto significa que estos adaptadores pueden ser tanto Ethernet, como Wireless, así como de otros tipos como fibra óptica, coaxial, etc. También las velocidades disponibles varían según el tipo de adaptador; éstas pueden ser, en Ethernet, de 10, 100 ó 1000 Mbps, y en los inalámbricos de 11 ó 55 Mbps.

Tipos de sitios de trabajo

Hay muchos tipos de sitios de trabajo que se pueden incorporar en una red particular: sistemas con varias CPU, con grandes cantidades de RAM y grandes cantidades de espacio de almacenamiento en disco duro, u otros componentes requeridos para las tareas de proceso de datos especiales, los gráficos, u otros usos intensivos del recurso. (Véase también la computadora de red).

Tipos de servidores

En las siguientes listas hay algunos tipos comunes de servidores y sus propósitos.

Servidor de archivos: almacena varios tipos de archivo y los distribuye a otros clientes en la red.

Servidor de impresiones: controla una o más impresoras y acepta trabajos de impresión de otros clientes de la red, poniendo en cola los trabajos de impresión (aunque también puede cambiar la prioridad de las diferentes impresiones), y realizando la mayoría o todas las otras funciones que en un sitio de trabajo se realizaría para lograr una tarea de impresión si la impresora fuera conectada directamente con el puerto de impresora del sitio de trabajo.

Servidor de correo: almacena, envía, recibe, enruta y realiza otras operaciones relacionadas con e-mail para los clientes de la red.

Servidor de fax: almacena, envía, recibe, enruta y realiza otras funciones necesarias para la transmisión, la recepción y la distribución apropiadas de los fax.

Servidor de la telefonía: realiza funciones relacionadas con la telefonía, como es la de contestador automático, realizando las funciones de un sistema interactivo para la respuesta de la voz, almacenando los mensajes de voz, encaminando las llamadas y controlando también la red o Internet; p. ej., la entrada excesiva del IP de la voz (VoIP), etc.

Servidor proxy: realiza un cierto tipo de funciones a nombre de otros clientes en la red para aumentar el funcionamiento de ciertas operaciones (p. ej., prefetching y depositar documentos u otros datos que se soliciten muy frecuentemente). También sirve seguridad; esto es, tiene un Firewall (cortafuegos). Permite administrar el acceso a Internet en una red de computadoras permitiendo o negando el acceso a diferentes sitios web.

Servidor del acceso remoto (RAS): controla las líneas de módem de los monitores u otros canales de comunicación de la red para que las peticiones conecten con la red de una posición remota, responden llamadas telefónicas entrantes o

Page 96: algoritmos y programacion

reconocen la petición de la red y realizan los chequeos necesarios de seguridad y otros procedimientos necesarios para registrar a un usuario en la red.

Servidor de uso: realiza la parte lógica de la informática o del negocio de un uso del cliente, aceptando las instrucciones para que se realicen las operaciones de un sitio de trabajo y sirviendo los resultados a su vez al sitio de trabajo, mientras que el sitio de trabajo realiza la interfaz operadora o la porción del GUI del proceso (es decir, la lógica de la presentación) que se requiere para trabajar correctamente.

Servidor web: almacena documentos HTML, imágenes, archivos de texto, escrituras, y demás material Web compuesto por datos (conocidos normalmente como contenido), y distribuye este contenido a clientes que la piden en la red.

Servidor de reserva: tiene el software de reserva de la red instalado y tiene cantidades grandes de almacenamiento de la red en discos duros u otras formas del almacenamiento (cinta, etc.) disponibles para que se utilice con el fin de asegurarse de que la pérdida de un servidor principal no afecte a la red. Esta técnica también es denominada clustering.

Impresoras: muchas impresoras son capaces de actuar como parte de una red de ordenadores sin ningún otro dispositivo, tal como un "print server", actuando como intermediario entre la impresora y el dispositivo que está solicitando un trabajo de impresión de ser terminado

Terminal: muchas redes utilizan este tipo de equipo en lugar de puestos de trabajo para la entrada de datos. En estos sólo se exhiben datos o se introducen. Este tipo de terminales, trabajan unido a un servidor, que es quien realmente procesa los datos y envía pantallas de datos a los terminales.

Otros dispositivos: hay muchos otros tipos de dispositivos que se puedan utilizar para construir una red, muchos de los cuales requieren una comprensión de conceptos más avanzados del establecimiento de una red de la computadora antes de que puedan ser entendidos fácilmente (e.g., los cubos, las rebajadoras, los puentes, los interruptores, los cortafuegos del hardware, etc.). En las redes caseras y móviles, que conectan la electrónica de consumo, los dispositivos, tales como consolas vídeojuegos, están llegando a ser cada vez más comunes.

Servidor de Autenticación: Es el encargado de verificar que un usuario pueda conectarse a la red en cualquier punto de acceso, ya sea inalámbrico o por cable, basándose en el estándar 802.1x y puede ser un servidor de tipo RADIUS.

Servidor DNS: Este tipo de servidores resuelven nombres de dominio sin necesidad de conocer su dirección IP.

Construcción de una red de ordenadores

Una red simple

Una red de ordenadores sencilla se puede construir de dos ordenadores, agregando un adaptador de la red (controlador de interfaz de red (NIC)) a cada ordenador y conectándolos mediante un cable especial llamado "cable cruzado" (el cual es un cable de red con algunos cables invertidos, para evitar el uso de un router o switch). Este tipo de red es útil para transferir información entre dos ordenadores que normalmente no se

Page 97: algoritmos y programacion

conectan entre sí por una conexión de red permanente o para usos caseros básicos del establecimiento de red.

Alternativamente, una red entre dos ordenadores se puede establecer sin aparato dedicado adicional, usando una conexión estándar, tal como el puerto serial RS-232 en ambos ordenadores, conectándolos entre sí vía un cable especial cruzado nulo del módem.

En este tipo de red solo es necesario configurar una dirección IP, pues no existe un servidor que les asigne IP automáticamente.

En el caso de querer conectar más de dos ordenadores, o con vista a una posible ampliación de la red, es necesario el uso de un concentrador que se encargará de repartir la señal y el ancho de banda disponible entre los equipos conectados a él.

Simplemente le llega el paquete de datos al concentrador, el cual lo reenvía a todos los equipos conectados a él; el equipo destinatario del paquete lo recoge, mientras que los demás simplemente lo descartan.

Esto afecta negativamente al rendimiento de la red, ya que solo se puede enviar un paquete a la vez, por lo que mientras ese paquete se encuentra en circulación ningún otro paquete será enviado.

Redes prácticas

Las redes prácticas constan generalmente de más de dos ordenadores interconectados y generalmente requieren dispositivos especiales además del controlador de interfaz de red con el cual cada ordenador se debe equipar. Ejemplos de algunos de estos dispositivos especiales son: los concentradores (hubs), multiplexores (switches) y enrutadores (routers).

Las características más importantes que se utilizan para describir una red son: velocidad, seguridad, disponibilidad, escalabilidad y confiabilidad. La consideración de estas características permite dimensionar de manera adecuada una red de computadoras solucionando las necesidades de los usuarios.

Velocidad: Es una medida de la rapidez con que los datos son transmitidos sobre la red.

Seguridad: Indica el grado de seguridad de la red incluyendo los datos que son transmitidos por ella.

Disponibilidad: Es una medida de la probabilidad de que la red va a estar disponible para su uso.

Escalabilidad: Indica la capacidad de la red de permitir más usuarios y requerimientos de transmisión de datos.

Confiabilidad: Es una medida de la probabilidad de falla.

Page 98: algoritmos y programacion

Bibliografía

Groth, David; Toby Skandier (2005). “Guía del estudio de redes, cuarta edición”. Sybex, Inc. ISBN 0-7821-4406-3.

ABSTRACTO EN INGLES:

Net (computer science), group of technical, physical connections and programs computer

employees to connect two or more computers or computers. The users of a net can share

files, printers and other resources, to send electronic messages and to execute programs

in other computers.

A net has three levels of components: software of applications, net software and net

hardware. The software of applications is formed by computer programs that

communicate with the users of the net and they allow to share information (as files of

databases, of documents, graphics or videotapes) and resources (as printers or disk units).

A type of software of applications is denominated client-servant. The computers client

send petitions of information or of use of resources to other computers, called servants

that control the flow of data and the execution of the applications through the net.

Another type of application software is known as "of similar to same" (to break wind to

break wind). In a net of this type, the computers are sent messages and petitions to each

other directly without using a servant like middleman. These nets are more restricted in

their capacities of security, audit and control, and they are usually used in work

environments with few computers and in those that he/she is not necessary a control so

strict of the use of applications and privileges for the access and modification of data; they

are used, for example, in domestic nets or in work groups inside a wider corporate net.