Buscar este blog

martes, 2 de agosto de 2011

Fundamentos básicos de diseño de una red de área local

1) ALCANCE DE LAS REDES
El alcance de una red hace referencia a su tamaño geográfico. El tamaño de una red puede variar desde unos pocos equipos en una oficina hasta miles de equipos conectados a través de grandes distancias. Importante
Cuando se implementa correctamente una WAN, no se puede distinguir de una red de área local, y funciona como una LAN. El alcance de una red no hace referencia sólo al número de equipos en la red; también hace referencia a la distancia existente entre los equipos. El alcance de una red está determinado por el tamaño de la organización o la distancia entre los usuarios en la red.
El alcance determina el diseño de la red y los componentes físicos utilizados en su construcción. Existen dos tipos generales de alcance de una red:
• Redes de área local
• Redes de área extensa
Red de área local
Una red de área local (LAN) conecta equipos ubicados cerca unos de otros. Por ejemplo, dos equipos conectados en una oficina o dos edificios conectados mediante un cable de alta velocidad pueden considerarse una LAN. Una red corporativa que incluya varios edificios adyacentes también puede considerarse una LAN.

Protocolo TCP/IP

DEFINICION TCP / IP
Se han desarrollado diferentes familias de protocolos para comunicación por red de datos para los sistemas UNIX. El más ampliamente utilizado es elInternet Protocol Suite, comúnmente conocido como TCP / IP.
Es un protocolo DARPA que proporciona transmisión fiable de paquetes de datos sobre redes. El nombre TCP / IP Proviene de dos protocolos importantes de la familia, el Transmission Contorl Protocol (TCP) y el Internet Protocol (IP). Todos juntos llegan a ser más de 100 protocolos diferentes definidos en este conjunto.
El TCP / IP es la base del Internet que sirve para enlazar computadoras que utilizan diferentes sistemas operativos, incluyendo PC, minicomputadoras y computadoras centrales sobre redes de área local y área extensa. TCP / IP fue desarrollado y demostrado por primera vez en 1972 por el departamento de defensa de los Estados Unidos, ejecutándolo en el ARPANET una red de área extensa del departamento de defensa.
LAS CAPAS CONCEPTUALES DEL SOFTWARE DE PROTOCOLOS
Pensemos los módulos del software de protocolos en una pila vertical constituida por capas. Cada capa tiene la responsabilidad de manejar una parte del problema.

Modelo OSI

El modelo de interconexión de sistemas abiertos, también llamado OSI (en inglés open system interconnection) es el modelo de red descriptivo creado por la Organización Internacional para la Estandarización en el año 1984. Es decir, es un marco de referencia para la definición de arquitecturas de interconexión de sistemas de comunicaciones.

Historia

A principios de 1980 el desarrollo de redes surgió con desorden en muchos sentidos. Se produjo un enorme crecimiento en la cantidad y tamaño de las redes. A medida que las empresas tomaron conciencia de las ventajas de usar tecnologías de conexión, las redes se agregaban o expandían a casi la misma velocidad a la que se introducían las nuevas tecnologías de red.
Para mediados de 1980, estas empresas comenzaron a sufrir las consecuencias de la rápida expansión. De la misma forma en que las personas que no hablan un mismo idioma tienen dificultades para comunicarse, las redes que utilizaban diferentes especificaciones e implementaciones tenían dificultades para intercambiar información. El mismo problema surgía con las empresas que desarrollaban tecnologías de conexiones privadas o propietarias. "Propietario" significa que una sola empresa o un pequeño grupo de empresas controlan todo uso de la tecnología. Las tecnologías de conexión que respetaban reglas propietarias en forma estricta no podían comunicarse con tecnologías que usaban reglas propietarias diferentes.
Para enfrentar el problema de incompatibilidad de redes, la Organización Internacional para la Estandarización (ISO) investigó modelos de conexión como la red de Digital Equipment Corporation (DECnet), la Arquitectura de Sistemas de Red (Systems Network Architecture) y TCP/IP a fin de encontrar un conjunto de reglas aplicables de forma general a todas las redes. Con base en esta investigación, la ISO desarrolló un modelo de red que ayuda a los fabricantes a crear redes que sean compatibles con otras redes.

Infraestructura de una red de datos



Red de Datos
La arquitectura de la red de datos es la que se presenta en la Figura 1, consiste de una dorsal basada en fibra óptica que conecta a todos los edificios del CICESE, y utiliza la tecnología Fast Ethernet para el transporte de la información a 100 Mbps. El equipo central de la dorsal es un switch router de 24 puertos Cisco Catalyst 3750, que interconecta todos los edificios del CICESE, así como algunos de los servidores (Proxy cache, Telefonía IP Nortel, Telefonía IP Cisco (para CPIC), Firewall y Detección de intrusos, servidor de correo, DHCP, tarificador telefónico, contestador telefónico). También se conectan los conmutadores de datos administrables que se localizan en cada uno de los edificios, y de esos conmutadores administrables se derivan las subredes dentro de los edificios mediante conmutadores de datos sencillos con velocidad final de usuarios de 100 Mbps, y en algunos casos de 1000 Mbps.


Hay un total de 2651 puertos de datos instalados en toda la red CICESE, de los cuales se están ocupando 2145.
Se tienen 6 enlaces hacia el exterior, el Enrutador Juniper M5 provee el acceso a Internet2 al CICESE, a la UABC (Campus Ensenada), al Instituto de Astronomía de la UNAM y al Centro de Ciencias de la Materia Condensada de la UNAM. También es donde se conecta el MCU, el cual permite las videoconferencias multipunto entre todos los Centros CONACYT. La conexión a Internet se hace a través de: el enrutador Cisco 2600, con dos enlaces de 2 Mbps cada uno; y el proxy-adsl, con 8 enlaces ADSL de 2 Mbps de bajada cada uno. El acceso por modems es a través del enrutador Cisco 3640, el cual cuenta con 16 modems de hasta 56 Kbps.
El enrutador SmartSwitch Router 8000 permite separar el tráfico de paquetes de la red de datos de CICESE entre Internet e Internet2.Los equipos de Calidad de Servicio Packet Shaper y QoSWorks asignan calidad de servicio para las aplicaciones requeridas, tales como videocoferencias y telefonía IP, y también limitan el tráfico de aplicaciones no permitidas (bajar música y películas, por ejemplo). 
En algunos edificios se han instalado puntos de acceso inalámbrico para extender los servicios de red a áreas públicas como auditorios, biblioteca, salas de juntas, y salones de clases. Estos puntos de acceso soportan los protocolos 802.11a, 802.11b y 802.11g.
Se cuenta con un solo proveedor de servicios (Telnor) el cual nos hace llegar por enlaces de fibra óptica utilizando la tecnología SDH los servicios de telefonía (60 troncales digitales), dos enlaces a Internet de 2 Mbps, un enlace a Internet2 de 34 Mbps y 8 lineas ADSL de 2.048 Mbps cada una, además se tiene la capacidad para recibir otros 14 enlaces E1 de 2 Mbps, para aumentar los anchos de banda del acceso a Internet o conectar a otras instituciones a CICESE para acceder la red académica Internet2.
Mbps, y en algunos casos de 

Clasificacion de las redes de datos

REDES DE ÁREA LOCAL: las redes de área local (local area networks ) llevan mensajes a velocidades relativamente grande entre computadores conectados a un único medio de comunicaciones : un cable de par trenzado. Un cable coaxial o una fibra óptica. Un segmento es una sección de cable que da servicio y que puede tener varios computadores conectados, el ancho de banda del mismo se reparte entre dichas computadores. Las redes de área local mayores están compuestas por varios segmentos interconectados por conmutadores(switches) o concentradores(hubs. El ancho de banda total del sistema es grande y la latencia pequeña, salvo cuando el tráfico es muy alto. En los años 70s se han desarrollado varias tecnologías de redes de área local, destacándose Ethernet como tecnología dominante para las redes de área amplia; estando esta carente de garantías necesarias sobre latencia y ancho de banda necesario para la aplicación multimedia. Como consecuencia de esta surge ATM para cubrir estas falencias impidiendo su costo su implementación en redes de área local. Entonces en su lugar se implementan las redes Ethernet de alta velocidad que resuelven estas limitaciones no superando la eficiencia de ATM.
REDES DE ÁREA EXTENSA: estas pueden llevar mensajes entre nodos que están a menudo en diferentes organizaciones y quizás separadas por grandes distancias, pero a una velocidad menor que las redes LAN. El medio de comunicación esta compuesto por un conjunto de círculos de enlazadas mediante computadores dedicados, llamados rotures o encaminadores. Esto gestiona la red de comunicaciones y encaminan mensajes o paquetes hacia su destino. En la mayoría de las redes se produce un retardo en cada punto de la ruta a causa de las operaciones de encaminamiento, por lo que la latencia total de la transmisión de un mensaje depende de la ruta seguida y de la carga de trafico en los distintos segmentos que atraviese. La velocidad de las señales electrónicas en la mayoría de los medios es cercana a la velocidad de la luz, y esto impone un límite inferior a la latencia de las transmisiones para las transmisiones de larga distancia.
REDES DE ÁREA METROPOLITANA: las redes de área metropolitana (metropolitan area networks)se basan en el gran ancho de banda de las cableadas de cobre y fibra óptica recientemente instalados para la transmisión de videos, voz, y otro tipo de datos. Varias han sido las tecnologías utilizadas para implementar el encaminamiento en las redes LAN, desde Ethernet hasta ATM. IEEE ha publicado la especificación 802.6[IEEE 1994], diseñado expresamente para satisfacer las necesidades de las redes WAN. Las conexiones de línea de suscripción digital ,DLS( digital subscribe line) y los MODEM de cable son un ejemplo de esto. DSL utiliza generalmente conmutadores digitales sobre par trenzado a velocidades entre 0.25 y 6.0 Mbps; la utilización de este par trenzado para las conexiones limita la distancia al conmutador a 1.5 kilómetros . una conexión de MODEM por cable utiliza una señalización análoga sobre el cable coaxil de televisión para conseguir velocidades de 1.5 Mbps con un alcance superior que DSL.
REDES INALÁMBRICAS: la conexión de los dispositivos portátiles y de mano necesitan redes de comunicaciones inalámbricas(wireless networks). Algunos de ellos son la IEEE 802?.11(wave lan) son verdaderas redes LAN inalámbricas (wireless local área networks;WLAN) diseñados para ser utilizados en vez de los LAN . También se encuentran las redes de area personal inalámbricas, incluida la red europea mediante el Sistema Global para Comunicaciones Moviles, GSM( global system for mobile communication). En los Estados Unidos , la mayoría de los teléfonos móviles están actualmente basados en la análoga red de radio celular AMPS, sobre la cual se encuentra la red digital de comunicaciones de Paquetes de Datos Digitales Celular, CDPD( Cellular Digital Packet Data). Dado el restringido ancho de banda disponible y las otras limitaciones de los conjuntos de protocolos llamados Protocolos de Aplicación Inalámbrica WAP(Wireless Aplication Protocol)

miércoles, 20 de julio de 2011

Programación Estructurada

La programación estructurada es una técnica para escribir programas (programación de computadora) de manera clara. Para ello se utilizan únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.

Tipos de programación

Existen varias clases de programación, dependiendo de los métodos utilizados y las técnicas empleadas.
Los tipos o técnicas de programación son bastante variados, aunque puede que muchos de los lectores sólo conozcan una metodología para realizar programas. En la mayoría de los casos, las técnicas se centran en programación modular y programación estructurada, pero existen otros tipos de programación. Los explicaremos a lo largo del artículo. 
Programación estructurada (PE)

La programación estructurada esta compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo.

Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores.


Esta técnica incorpora:


  • Diseño descendente (top-dow): el problema se descompone en etapas o estructuras jerárquicas.
  • Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras más simples capaces de ser resueltas con mayor facilidad.
  • Estructuras básicas: existen tres tipos de estructuras básicas:
    • Estructuras secuénciales: cada acción sigue a otra acción secuencialmente. La salida de una acción es la entrada de otra.
    • Estructuras selectivas: en estas estructuras se evalúan las condiciones y en función del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas.
    • Estructuras repetitivas: son secuencias de instrucciones que se repiten un número determinado de veces.
    • Las principales ventajas de la programación estructurada son:

  • Los programas son mas fáciles de entender
  • Se reduce la complejidad de las pruebas
  • Aumenta la productividad del programador
  • Los programas queden mejor documentados internamente.
Un programa esta estructurado si posee un único punto de entrada y sólo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos.

Programación modular

En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad.
En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros.
A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones.
Programación orientada a objetos (POO)

Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos.

El elemento principal de la programación orientada a objetos es el objeto.
El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.
El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.
En DesarrolloWeb.com hemos publicado anteriormente una explicación de lo que es la programación orientada a objetos.


Programación concurrente

Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez.
Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultanea.
Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.


Programación funcional

Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.

Programación lógica

Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).

lunes, 18 de julio de 2011

Compilador

Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.

Pseudocódigo

El pseudocódigo es utilizado por programadores para describir algoritmos en un lenguaje humano simplificado que no es dependiente de ningún lenguaje de programación. Por este motivo puede ser implementado en cualquiera lenguaje por cualquier programador que utilice el pseudocódigo.

Definición de datos del pseudocódigo

La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del algoritmo, y naturalmente cuando empleemos el pseudocódigo para definir estructuras de datos, esta parte la desarrollaremos adecuadamente.


miércoles, 13 de julio de 2011

Diagramas de flujo

Un diagrama de flujo es una representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de término.

lunes, 11 de julio de 2011

Metodología de Programación

El desarrollo de un programa que resuelva un problema dado es una tarea compleja, ya que es necesario tener en cuenta de manera simultánea muchos elementos. Por lo tanto, es indispensable usar una metodología de programación.
Una metodología de programación es un conjunto o sistema de métodos, principios y reglas que permiten enfrentar de manera sistemática el desarrollo de un programa que resuelve un problema algorítmico. Estas metodologías generalmente se estructuran como una secuencia de pasos que parten de la definición del problema y culminan con un programa que lo resuelve. 
 
A continuación se presenta de manera general los pasos de una metodología:

El Diálogo
Con la cual se busca comprender totalmente el problema a resolver.
 
La Especificación Con la cual se establece de manera precisa las entradas, salidas y  las condiciones que deben cumplir.
 
Diseño En esta etapa se construye un algoritmo que cumpla con la especificación.
 
Codificación Se traduce el algoritmo a un lenguaje de programación.
 
Prueba y Verificación Se realizan pruebas del programa implementado para determinar su validez en la resolución del problema.

domingo, 10 de julio de 2011

Fases para la creación de un programa

El desarrollo de un programa o de un conjunto de aplicaciones se basa en un concepto llamado ciclo de vida. Son una serie de etapas o fases que hay que seguir secuencialmente.
Las fases o etapas son: 
Análisis.
Diseño. 
Codificación o construcción. 
Implantación o explotación. 
Mantenimiento.
 
Analisis: En esta fase se establece el producto a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear. Debe existir una gran comunicación entre el usuario y el analista para poder conocer todas las necesidades que precisa la aplicación. En el caso de falta de información por parte del usuario se puede recurrir al desarrollo de prototipos para saber con más precisión sus requerimientos.
En el análisis estructurado se pueden emplear varias técnicas como:  
Diagramas de flujo de datos: Sirven para conocer el comportamiento del sistema mediante representaciones gráficas.
Modelos de datos: Sirven para conocer las estructuras de datos y sus características. (Entidad relación y formas normales)
Diccionario de datos: Sirven para describir todos los objetos utilizados en los gráficos, así como las estructuras de datos.
Definición de los interfaces de usuario: Sirven para determinar la información de entrada y salida de datos.
Al final de esta fase tenemos que tener claro las especificaciones de la aplicación.


Diseño: En esta fase se alcanza con mayor precisión una solución optima de la aplicación, teniendo en cuenta los recursos físicos del sistema (tipo de ordenador, periféricos, comunicaciones, etc…) y los recursos lógicos. (sistema operativo., programas de utilidad, bases de datos, etc…)
En el diseño estructurado se pueden definir estas etapas:

Diseño externo: Se especifican los formatos de información de entrada y salida. (pantalla y listados)
Diseño de datos: Establece las estructuras de datos de acuerdo con su soporte físico y lógico. (estructuras en memoria, ficheros y hojas de datos)
Diseño modular: Es una técnica de representación en la que se refleja de forma descendente la división de la aplicación en módulos. Está basado en diagramas de flujo de datos obtenidos en el análisis.
Diseño procedimental: Establece las especificaciones para cada modulo, escribiendo el algoritmo necesario que permita posteriormente una rápida codificación. Se emplean técnicas de programación estructurada, normalmente ordinogramas y pseudocódigo.
Al final de esta etapa se obtiene el denominado cuaderno de carga.



Codificacion: consiste en traducir los resultados obtenidos a un determinado lenguaje de programación, teniendo en cuenta las especificaciones obtenidas en el cuaderno de carga. Se deben de realizar las pruebas necesarias para comprobar la calidad y estabilidad del programa.
Las pruebas se pueden clasificar en:

Pruebas unitarias: Sirven para comprobar que cada módulo realice bien su tarea.
Pruebas de interconexión: Sirven para comprobar en el programa el buen funcionamiento en conjunto de todos sus módulos.
Pruebas de integración: Sirven para comprobar el funcionamiento correcto del conjunto de programas que forman la aplicación. (el funcionamiento de todo el sistema)


Explotación: En esta fase se realiza la implantación de la aplicación en el sistema o sistemas físicos donde van a funcionar habitualmente y su puesta en marcha para comprobar el buen funcionamiento.

Actividades a tener en cuenta o realizar:
• Instalación del/los programa/s. 

• Pruebas de aceptación al nuevo sistema.
• Conversión de la información del antiguo sistema al nuevo (si hay una aplicación antigua) 
• Eliminación del sistema anteriorAl final de esta fase se debe de completar la información al usuario respecto al nuevo sistema y su uso. Así como facilitarle toda la documentación necesaria para una correcta explotación del sistema (manual de ayuda, manual de uso, guía de la aplicación, etc.) 

 Mantenimiento:
Esta es la fase que completa el ciclo de vida y en ella nos encargaremos de solventar los posibles errores o deficiencias de la aplicación. Existe la posibilidad de que ciertas aplicaciones necesiten reiniciar el ciclo de vida.
Tipos de mantenimiento:

Mantenimiento correctivo: Consiste en corregir errores no detectados en pruebas anteriores y que aparezcan con el uso normal de la aplicación. Este mantenimiento puede estar incluido en la garantía o mantenimiento de la aplicación.
Mantenimiento adaptativo: Consiste en modificar el programa a causa de cambio de entorno gráfico y lógico en el que estén implantados. (nuevas generaciones de ordenadores, nuevas versiones del sistema operativo, etc.)
Mantenimiento perfectivo: Consiste en una mejora sustancial de la aplicación al recibir por parte de los usuarios propuestas sobre nuevas posibilidades y modificaciones de las existentes.
Los tipos de mantenimiento adaptativo y perfectivo reinician el ciclo de vida, debiendo proceder de nuevo al desarrollo de cada una de sus fases para obtener un nuevo producto.



    

Lenguaje de programación

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.

lunes, 4 de julio de 2011

Sistema Operativo

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.
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, que 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 computadores 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. (Véase AmigaOS, beOS o MacOS como los pioneros de dicha modernización, cuando los Amiga, fueron bautizados con el sobrenombre de Video Toasters 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. La mayoría de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo. (teléfonos móviles, reproductores de DVD, computadoras, radios, enrutadores, etc).

Software de Aplicacion

SOFTWARE DE APLICACIÓN:
El software de aplicación ha sido escrito con el fin de realizar casi cualquier tarea imaginable. Esté puede ser utilizado en cualquier instalación informática, independiente del empleo que vayamos a hacer de ella. Existen literalmente miles de estos programas para ser aplicados en diferentes tareas, desde procesamiento de palabras hasta cómo seleccionar una universidad. Como existen muchos programas se dividen en cuatro categorías de software de aplicaciones: 

lunes, 27 de junio de 2011

Codificación de caracteres ASCII y UNICODE

ASCII

 

Por estar íntimamente ligado al octeto (y por consiguiente a los enteros que van del 0 al 127, el problema que presenta es que no puede codificar más que 128 símbolos diferentes (128 es el número total de diferentes configuraciones que se pueden conseguir con 7 dígitos binarios o digitales (0000000, 0000001,..., 1111111), usando el octavo dígito de cada octeto (bit o dígito de paridad) para detectar algún error de transmisión). Un cupo de 128 es suficiente para incluir mayúsculas y minúsculas del abecedario inglés, además de cifras, puntuación, y algunos "caracteres de control" (por ejemplo, uno que instruye a una impresora que pase a la hoja siguiente), pero el ASCII no incluye ni los caracteres acentuados ni el comienzo de interrogación que se usa en castellano, ni tantos otros símbolos (matemáticos, letras griegas,...) que son necesarios en muchos contextos.La conexion que se otorga del contexto ASCII es referente al lenguaje de maquina

ASCII Extendido

Debido a las limitaciones del ASCII se definieron varios códigos de caracteres de 8 bits, entre ellos el ASCII extendido. Sin embargo, el problema de estos códigos de 8 bits es que cada uno de ellos se define para un conjunto de lenguas con escrituras semejantes y por tanto no dan una solución unificada a la codificación de todas las lenguas del mundo. Es decir, no son suficientes 8 bits para codificar todos los alfabetos y escrituras del mundo.

Unicode

 

Como solución a estos problemas, desde 1991 se ha acordado internacionalmente utilizar la norma Unicode, que es una gran tabla, que en la actualidad asigna un código a cada uno de los más de cincuenta mil símbolos, los cuales abarcan todos los alfabetos europeos, ideogramas chinos, japoneses, coreanos, muchas otras formas de escritura, y más de un millar de símbolos especiales.

Conversión entre sistemas numericos

En informática, la conversión alude al proceso de transformación de datos informáticos de una representación concreta a otra, cambiando los bits de un formato a otro, normalmente para lograr la interoperatibilidad de aplicaciones o sistemas diferentes. Al nivel más simple, la conversión de datos puede ejemplificarse por la conversión de un fichero de texto desde una codificación de caracteres a otra. Son conversiones más complejas las de los formatos de ficheros ofimáticos y multimedia, a veces fuera de las capacidades de ordenadores domésticos (o a expensas de tiempos de proceso muy altos).

Conceptos básicos

Antes de que pueda efectuarse cualquier conversión de datos el usuario o programador de aplicaciones debe tener en mente unos cuantos conceptos básicos de teoría de la información e informática:
  • Es fácil descartar información usando un ordenador, pero añadirla requiere esfuerzo.
  • El ordenador puede usarse para añadir información sólo con base en reglas; la mayoría de adiciones que interesa a los usuarios sólo puede lograrse con la ayuda de humanos.
  • Sobremuestrear los datos o convertirlos a un formato con más posibilidades no añade información: sólo hace hueco para dicha adición, que suele tener que hacer un humano.
Por ejemplo, una imagen truecolor puede ser convertida fácilmente a escala de grises, siendo la conversión opuesta un proceso concienzudo. Convertir un fichero de texto Unix a un fichero de texto Microsoftretorno de carro (CR) antes de cada salto de línea (LF), pero dicha adición puede hacerse con un ordenador gracias a que se basa en regles, mientras la adición de información de color a una imagen en escala de grises no puede hacer programáticamente, ya que sólo un humano sabe qué colores son necesarios para cada parte de la imagen, por lo que no hay reglas que puedan usarse para automatizar el proceso. Convertir un PNG de 24 bits a uno de 48 bits no añade información a la imagen, pues sólo rellenan los valores RGB de los píxeles con ceros. La conversión permite luego afinar estos valores «expandidos», pero sólo con posteriores manipulaciones manuales. Convertir una imagen o un fichero de sonido desde un formato comprimido con pérdida (como JPEG o Vorbis) a otro sin pérdida (como PNG o FLAC) o descomprimido (como BMP o WAV) sólo desperdicia espacio, ya que la imagen o sonido resultante será el mismo, con la información original perdida (los artefactos de la compresión con pérdida). Una imagen JPEG nunca puede recuperar la calidad de la imagen original anterior a la compresión, por mucho que se use la herramienta de «Eliminación de artefactos JPEG» (que retiran aún más información de la imagen) de los programas de edición gráfica. (DOS/Windows) implica añadir información, concretamente un
Debido a estas realidades, la conversión de datos es con mucha frecuencia un proceso complejo y propenso a errores, que requiere de la ayuda de expertos. Es seguro afirmar que sólo el éxito de la inteligencia artificial llevará a la quiebra a las compañías dedicadas a la conversión de datos.

 

Sistema numérico

En álgebra abstracta, un sistema numérico es un tipo de estructura algebraica

Definición

Un conjunto \mathbb S es un sistema numérico si en él están definidas dos operaciones matemáticas binarias asociativas y conmutativas, denominadas adición y multiplicación, y si además se cumple que la multiplicación es distributiva con respecto a la adición. Para a, b y c elementos de \mathbb S :
  • Propiedad conmutativa de la adición: a + b = b + a
  • Propiedad conmutativa de la multiplicación: a • b = b • a
  • Propiedad asociativa de la adición: (a + b) + c = a + (b + c)
  • Propiedad asociativa de la multiplicación: (a • b) • c = a • (b • c)
  • Propiedad distributiva de la multiplicación sobre la adición: a • (b + c) = a • b + a • c
La adición y la multiplicación no necesariamente deben ser las de la aritmética elemental.

 

.

Funcionamiento de los Buses de datos, dirección y control

La función del MICROBus es la de permitir la conexión lógica entre distintos subsistemas de un sistema digital, enviando datos entre dispositivos de distintos órdenes: desde dentro de los mismos circuitos integrados, hasta equipos digitales completos que forman parte de supercomputadoras.
La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las señales y entregarlas como datos útiles. Las señales digitales que se trasmiten son de datos, de direcciones o señales de control.
Los buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al ancho de los datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta frecuencia, el ancho de datos debe ser pequeño. Esto se debe a que la interferencia entre las señales (crosstalk) y la dificultad de sincronizarlas, crecen con la frecuencia, de manera que un bus con pocas señales es menos susceptible a esos problemas y puede funcionar a alta velocidad.
Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA que permiten que un dispositivo periférico acceda a una CPU o a la memoria usando el mínimo de recursos.

Primera generación


Bus Backplane del PDP-11 junto con algunas tarjetas.
Los primeros computadores tenían 2 sistemas de buses, uno para la memoria y otro para los demás dispositivos. La CPU tenía que acceder a dos sistemas con instrucciones para cada uno, protocolos y sincronizaciones diferentes.
La empresa DEC notó que el uso de dos buses no era necesario si se combinaban las direcciones de memoria con las de los periféricos en un solo espacio de memoria (mapeo), de manera que la arquitectura se simplificaba ahorrando costos de fabricación en equipos fabricados en masa, como eran los primeros minicomputadores.
Los primeros microcomputadores se basaban en la conexión de varias tarjetas de circuito impreso a un bus Backplane pasivo que servía de eje al sistema. En ese bus se conectaba la tarjeta de CPU que realiza las funciones de arbitro de las comunicaciones con las demás tarjetas de dispositivo conectadas; las tarjetas incluían la memoria, controladoras de diskette y disco, adaptadores de vídeo. La CPU escribía o leía los datos apuntando a la dirección que tuviera el dispositivo buscado en el espacio único de direcciones haciendo que la información fluyera a través del bus principal.
Entre las implementaciones más conocidas, están los buses Bus S-100 y el Bus ISA usados en varios microcomputadores de los años 70 y 80. En ambos, el bus era simplemente una extensión del bus del procesador de manera que funcionaba a la misma frecuencia. Por ejemplo en los sistemas con procesador Intel 80286 el bus ISA tenia 6 u 8 Mhz de frecuencia dependiendo del procesador.

Segunda generación


Jerarquía de diversos buses en un equipo relativamente moderno: SATA, FSB, AGP, USB entre otros.
El hecho de que el bus fuera pasivo y que usara la CPU como control, representaba varios problemas para la ampliación y modernización de cualquier sistema con esa arquitectura. Además que la CPU utilizaba una parte considerable de su potencia en controlar el bus.
Desde que los procesadores empezaron a funcionar con frecuencias más altas, se hizo necesario jerarquizar los buses de acuerdo a su frecuencia: se creó el concepto de bus de sistema (conexión entre el procesador y la RAM) y de buses de expansión, haciendo necesario el uso de un chipset.
El bus ISA utilizado como backplane en el PC IBM original pasó de ser un bus de sistema a uno de expansión, dejando su arbitraje a un integrado del chipset e implementando un bus a una frecuencia más alta para conectar la memoria con el procesador.
En cambio, el bus Nubus era independiente desde su creación, tenía un controlador propio y presentaba una interfaz estándar al resto del sistema, permitiendo su inclusión en diferentes arquitecturas. Fue usado en diversos equipos, incluyendo algunos de Apple y se caracterizaba por tener un ancho de 32 bits y algunas capacidades Plug and Play (autoconfiguración), que lo hacían muy versátil y adelantado a su tiempo. Entre otros ejemplos de estos buses autónomos, están el AGP y el bus PCI.

Tercera generación

Los buses de tercera generación se caracterizan por tener conexiones punto a punto, a diferencia de los buses arriba nombrados en los que se comparten señales de reloj. Esto se logra reduciendo fuertemente el número de conexiones que presenta cada dispositivo usando interfaces seriales. Entonces cada dispositivo puede negociar las características de enlace al inicio de la conexión y en algunos casos de manera dinámica, al igual que sucede en las redes de comunicaciones. Entre los ejemplos más notables, están los buses PCI-Express, el Infiniband y el HyperTransport.

Funcionamiento de la Memoria Cache

La memoria caché es una clase de memoria RAM estática (SRAM) de acceso aleatorio y alta velocidad, situada entre el CPU y la RAM; se presenta de forma temporal y automática para el usuario, que proporciona acceso rápido a los datos de uso más frecuente.
La ubicación de la caché entre el microprocesador y la RAM, hace que sea suficientemente rápida para almacenar y transmitir los datos que el microprocesador necesita recibir casi instantáneamente.
La memoria caché es rápida, unas 5 ó 6 veces más que la DRAM (RAM dinámica), por eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 ó 20 veces más que la memoria principal dinámica para la misma cantidad de memoria.
La utilización de la memoria caché se describe a continuación:
  • Acelerar el procesamiento de las instrucciones de memoria en la CPU.
  • Los ordenadores tienden a utilizar las mismas instrucciones y (en menor medida), los mismos datos repetidamente, por ello la caché contiene las instrucciones más usadas.
Por lo tanto, a mayor instrucciones y datos la CPU pueda obtener directamente de la memoria caché, tanto más rápido será el funcionamiento del ordenador.
La memoria caché se carga desde la RAM con los datos y/o instrucciones que ha buscado la CPU en las últimas operaciones. La CPU siempre busca primero la información en la caché, lo normal es que va encontrar ahí la mayoría de las veces, con lo que el acceso será muy rápido. Pero si no encuentra la información en la caché, se pierde un tiempo extra en acudir a la RAM y copiar dicha información en la caché para su disponibilidad.

Funcionamiento de la memoria de almacenamiento masivo

por ejemplo:
memoria USB
Estas memorias se han convertido en el sistema de almacenamiento y transporte personal de datos más utilizado, desplazando en este uso a los tradicionales disquetes y a los CD. Se pueden encontrar en el mercado fácilmente memorias de 1, 2, 4, 8, 16, 32, 64, 128 y hasta 256 GB (a partir de los 64 GB ya no resultan prácticas por su elevado costo). Esto supone, como mínimo, el equivalente a 180 CD de 700MB o 91.000 disquetes de 1,44 MB aproximadamente


Funcionamiento de la Memoria RAM

Se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software. Es allí donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Se denominan "de acceso aleatorio" porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible.

Periférico

En informática, se denomina periféricos a los aparatos o dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.
Se consideran periféricos tanto a las unidades o dispositivos a través de los cuales la computadora se comunica con el mundo exterior, como a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.
Se entenderá por periférico al conjunto de dispositivos que, sin pertenecer al núcleo fundamental de la computadora, formado por la CPU y la memoria central, permitan realizar operaciones de entrada/salida (E/S) complementarias al proceso de datos que realiza la CPU. Estas tres unidades básicas en un computador, CPU, memoria central y el subsistema de E/S, están comunicadas entre sí por tres buses o canales de comunicación:
  • el bus de direcciones, para seleccionar la dirección del dato o del periférico al que se quiere acceder,
  • el bus de control, básicamente para seleccionar la operación a realizar sobre el dato (principalmente lectura, escritura o modificación) y
  • el bus de datos, por donde circulan los datos.
A pesar de que el término periférico implica a menudo el concepto de “adicional pero no esencial”, muchos de ellos son elementos fundamentales para un sistema informático. El teclado y el monitor, imprescindibles en cualquier computadora personal de hoy en día (no lo fueron en los primeros computadores), son posiblemente los periféricos más comunes, y es posible que mucha gente no los considere como tal debido a que generalmente se toman como parte necesaria de una computadora. El mouse es posiblemente el ejemplo más claro de este aspecto. Hace menos de 20 años no todos las computadora personales incluían este dispositivo. El sistema operativo MS-DOS, el más común en esa época, tenía una interfaz de línea de comandos para la que no era necesaria el empleo de un mouse, todo se hacía mediante comandos de texto. Fue con la popularización de Finder, sistema operativo de la Macintosh de Apple y la posterior aparición de Windows cuando el mouse comenzó a ser un elemento imprescindible en cualquier hogar dotado de una computadora personal. Actualmente existen sistemas operativos con interfaz de texto que pueden prescindir del mouse como, por ejemplo, algunos sistemas básicos de UNIX y GNU/Linux.