miércoles, 19 de septiembre de 2012

Operaciones numéricas, Álgebra Booleana y Codificación


Introducción.- Las computadoras funcionan con electrónica digital, basándose en señales digitales para procesar información de forma muy compleja
La computadora tiene dos niveles en su electrónica:
·         Nivel Físico (Componentes y circuitos) .- Los circuitos están compuestos generalmente por resistencias, condensadores, transistores, inductores, etc.


Fig. 1 Circuitos

Los últimos tiempos el transistor ha ido evolucionando mucho, permitiendo su miniaturización y la creación de sistemas muy pequeños encapsulados muchas veces en pastillas de silicio, llamados circuitos integrados.

·          Nivel Lógico (Puertas Lógicas y Algebra de Boole).- Este nivel se basa en operaciones sobre las señales digitales, usando propiedades de números binarios.
El algebra booleana es la base para el funcionamiento de los circuitos digitales. Trabaja en base a estados lógicos, que se apoyan en circuitos ideales, estos circuitos son las Puertas Lógicas que al combinarse se pueden resolver problemas complejos.  
Las puertas lógicas tienen una o varias entradas y una salida, las señales digitales ingresan y allí dentro sufren transformaciones dependiendo de la puerta lógica, estas transformaciones se representan en una tabla de verdad.
Las tablas de verdad muestran como son las transformaciones de las señales digitales, a diferentes combinaciones de entradas, estas señales tienen que ser binarias (1 o 0).


Fig. 2 Tablas de verdad de algunas puertas lógicas usadas en las computadoras

·         Codificación.- Es el proceso por el cual a la señal se le asigna un valor. En las computadoras existe varios tipos de codificación
i)        Código binario.- Es un grupo de n bits, que puede combinarse en 2n veces, cada combinación representa un elemento. Existe un código especial dentro del código binario, que es el código binario codificado (BCD), que representa los números digito por digito.


Fig. 3 Tabla de representación en código binario y BCD en comparación con números decimales


i)        Representación alfanumérica.- Es un conjunto de 10 numeros y las 26 letras del abecedario  y algunos caracteres especiales. Existen dos conjuntos uno de letras mayúsculas y el otro de minúsculas, el código alfanumérico mas conocido es el ASCII (American Standard Code for Information Interchange)


Fig. 4 Tabla de código ASCII

 Bibliografía


Sánchez M. L. (2006), Informática I: Un enfoque constructivista, Naucalpan de Juárez: Estado de México: México
Desongles C. J. (2005), Ayudantes técnicos de informática de la junta de Andalucía, Sevilla: España, editorial MAD
Morris M. M. (1994), Arquitectura de computadoras, México, Publicado por Prentice Hall Hispanoamericana S.A.








COMPARACION Y USO DE BENCHMARKS

Introducción.-

El Benchmarking es una técnica utilizada para medir el rendimiento de un sistema o componente del mismo. Actualmente existe una variedad de Benchmarks, en el siguiente trabajo se dará a conocer dos de ellos y se hará una comparativa entre una laptop HP y una Sony Vaio, ambas de características similares.

Desarrollo.-

NovaBench:
Es un benchmark el cual ejecuta pruebas de CPU, memoria RAM, dibujo bidimensional y tasa de escritura del disco duro. Una vez finalizados los tests muestra un informe con una puntuación total y desglosada que puede compararse en la página web oficial con la de otras configuraciones.

Para poner a brueba este benchmark se utilizaron dos laptops con caracteristicas similares:






Performance Test:


Este benchmark permite establecer objetivamente puntos de referencia en un PC utilizando una variedad de pruebas de velocidad diferentes y comparar los resultados con otros ordenadores.

Para probar este benchmark se utilizaron las mismas laptops anteriores:




Sony Vaio VPCCA17FL/B



HP ENVY14 
 

Al igual que la mayoria de los benchmarks, este nos da un resultado numerico final:

Sony Vaio VPCCA17FL/B


HP ENVY14





Del mismo modo se pusieron a prueba otras dos laptops de características similares:

   HP 620                                                        TOSHIBA SATELLITE L505-S6946

CARACTERISTICAS

Se utilizo el benchmark de windows para obtener las características de las computadoras 



HP 620



TOSHIBA SATELLITE 

NovaBench:

TOSHIBA SATELLITE                                       HP 620
Como se puede observar el resultado que saco el Nova Bench en la toshica es de 319 e hizo 50509254 operaciones por segundo. 

Mientas que en la HP el resultado que saca fue de 338 haciendo 50775152 operaciones por segundo 

Performance Test:

TOSHIBA SATELLITE
          

HP 620
Conclusiones.-

Llegamos a la conclusión que mediante el uso de los benchmarks podemos determinar mediante software la capacidad que tiene un computador de manera real, ya que hoy en día es bueno saber el rendimiento y las prestaciones de nuestro equipo computacional y así de esta manera conocer la capacidad del mismo y como se comporta el sistema en distintas tareas.

REPRESENTACION DE DATOS

Las instrucciones de un programa se representan mediante una secuencia de bits, de acuerdo a una tabla  que asocia una de estas secuencias a cada código de operación del conjunto de instrucciones del procesador. Los datos deben codificarse de alguna forma, para que de esa forma sea posible almacenarlos en la memoria.
 
La forma en que esto se hace depende del tipo de datos, ya sean estos números enteros, números reales, caracteres, figuras, imágenes, animaciones, audio o video. Para cada tipo de datos existen múltiples estándares de codificación.
 
Representación de enteros positivos.-
 
Toda la información y los programas deben convertirse a unos y ceros para que sean tratables. Esta restricción obliga al uso de un sistema de numeración distinto al que estamos acostumbrados, conocido como sistema decimal, o base 10.
 
Representación de números reales.-
 
Los computadores representan los números reales, es decir, aquellos que tienen decimales, de una forma muy similar a como lo hacen las calculadoras científicas. La forma más usual de lograr esto, es seguir un estándar establecido por el Institute of Electrical anid Electronics Engineers,  IEEE. Por su complejidad solo se tratara las generalidades de la representación en punto flotante.

Un número en punto flotante tiene 3 componentes:
 
      ·         Signo

·         Mantisa (numero positivo)

·         Exponente (con signo)
 
La Fig. 1 muestra los tres componentes que forman un número de punto flotante. El signo determina si el número es positivo o negativo, y corresponde a un ¶único bit al inicio de la representación. Tanto la mantisa como el exponente pueden codificarse de distintas maneras. Sin embargo, la cantidad de bits que se utilizan para cada uno determina el rango de números reales que se podría representar.
 
Fig.1: Componentes de un número real representado con punto flotante



 
Cuando se usa 2 como la base de la representación  que es lo más común |, el número representado se puede interpretar como:


Por ejemplo, si el bit de signo es un uno, el exponente es ¡2 y la mantisa es 1, el número representado seria:
 

Los estándares actuales definen dos tipos de números de punto flotante: Los de precisión simple y los de doble precisión. Según el estándar de la IEEE, los números de precisión simple utilizan 24 bits para la mantisa y 8 bits para el exponente, por lo que este último puede variar desde 126 hasta 127. Por otra parte, los de doble precisión utilizan 53 bits para la mantisa y 11 para el exponente, por lo que este último puede variar en el rango de 1022 a 1023.
 

Representación de caracteres.- 

Los caracteres son los símbolos que manipula el computador para representar letras, digitos y otros elementos de puntuación o con sindicados específicos. Básicamente, todos los simbolos que aparecen en el teclado del computador son caracteres, pero también hay otros caracteres que no aparecen en el teclado.

Originalmente existían dos estándares de codificación para representar los caracteres en un computador. Estos códigos asignan un número entero con cada carácter, el cual después puede representarse en notación binaria.

 El primero de ellos, el EBCDIC, toma su nombre de las siglas de Extended Binary Coded Decimal Interchange Code, y era el esquema de codificación utilizado en los primeros mainframes que fabricaba IBM. El EBCDIC utiliza 8 bits para codicar los caracteres. Su uso es muy limitado en la actualidad.

El segundo estándar, que todavia se utiliza en la actualidad es el ASCII, que toma su nombre de las siglas de American Standard Code for Information Interchange. Originalmente, el código utilizaba solo 7 bits, lo que le permitía representar 128 caracteres distintos. En la actualidad, el código ASCII utiliza 8 bits, lo que le permite representar 256 caracteres distintos, incluyendo símbolos de lenguajes distintos al Ingles.

Algunos de los caracteres ASCII no son visibles, y se utilizan para controlar dispositivos de entrada y salida, como modems, terminales e impresoras. Las letras minúsculas y mayúsculas  sin considerar las vocales con acento  así como los dígitos decimales, se encuentran consecutivos en el código, por lo que el código de una letra es muy similar al de su sucesora.

Más recientemente, la International Stantard Organization, ISO, estableció un estándar para la representación universal de caracteres, llamado Unicode. La idea es que el nuevo código permita representar símbolos provenientes de cualquier lenguaje, así como su correcta comunicación a través de Internet, por ejemplo, en mensajes de correo electrónico. El Unicode utiliza 16 bits para representar hasta 65536 caracteres distintos. Sus códigos se expresan normalmente como 4 dígitos hexadecimales.

Los primeros 128 códigos del Unicode coinciden con los 128 códigos que asigna el ASCII de 7 bits. A este subconjunto se le conoce como el Basic Latín, y abarca los códigos que van desde el 000016 hasta el 007F16. Posteriormente existen el Latin-1 (008016 al 00FF16) y el Latín Extended (010016 al 024F16). Para denotar que el código de un carácter se está expresando según el Unicode, se agregan los símbolos U+ antes del código hexadecimal. Por ejemplo, U + 0041, para representar la letra A.

Fig2: Fragmento de la tabla ASCII de 8 bits
 


 

Fig3: Representación de caracteres según distintos estándares de codificación





REPRESENTACION DE IMAGENES

La calidad de una imagen representada en un computador esta determinada por la resolución con la que fue digitalizada es el proceso mediante el cual una imagen es transformada en información numérica. Básicamente la imagen se representa en una matriz de puntos, llamados pixels, manipulables en forma independiente. En una imagen a color, los pixels tienen información de color. En una imagen en blanco y negro los pixels pueden estar únicamente encendidos o apagados

Una misma imagen puede digitalizarse en distintas resoluciones. Por ejemplo, una fotografía de 10x5 cms. Podría digitalizarse en una matriz de 512 x 512 pixels, o en una de 1024 x 1024 pixels. En el segundo caso, existen más pixels por cada centímetro cuadrado de la fotografía, por lo que la calidad de la imagen digitalizada ser la mayor.

La forma más simple para representar una imagen es mediante un mapa de bits, también conocido como bitmap. En un bitmap, se asigna una cantidad constante de bits a cada pixel de la imagen, y en esos bits se almacena la información de color, o de tonalidades de gris, que representan al pixel. En el caso de imágenes en blanco y negro, basta con asociar un bit con cada pixel. Así, una imagen de 1024 x 1024 pixels, en blanco y negro, puede representarse utilizando 2e20 bits, lo que equivale a 128 Kbytes.

Con las imágenes a color el tamaño de los bitmaps aumenta, dependiendo de la cantidad de colores distintos que se quiera manipular, lo que se conoce como la paleta de colores. Por ejemplo, si se utilizan 256 colores distintos, cada pixel requiere de 8 bits para representar su color. Así, una imagen de 1024 x 1024 pixels, con una paleta de 256 colores, requiere de 3 x 2e23 bits, es decir, 1 Mbyte. La paleta de colores preferida es la de 24 bits, que puede formar alrededor de 16 millones de colores diferentes. A este modo de representación se le conoce como color verdadero, o true color. En esta paleta se utilizan 8 bits para representar una tonalidad de cada uno de los tres colores básicos, con los que se forma el color en un computador: Rojo, verde y azul. En este caso, la imagen de 1024 x 1024 pixels requiere de 3 x 2e23 bits, es decir, 3 Mbytes.

La enorme cantidad de espacio que requieren las imágenes representadas como bitmaps ha llevado al desarrollo de técnicas de compresión. Los algoritmos mas populares de compresión de datos, como por ejemplo el conocido como zip, pertenecen a una categoría llamada compresión sin perdida de información. Esto quiere decir que la información comprimida, una vez recuperada, es exactamente la original. Estos algoritmos son muy útiles para compresión de caracteres, documentos, etc., pero no logra buenos radios de compresión con las imágenes.

Para la compresión de imágenes se acostumbra utilizar algoritmos de compresión con perdida de información.

Estos algoritmos desechan información que no es útil, con el objetivo de reducir el tamaño de las imágenes. A pesar de la perdida de información, por lo general los cambios no son perceptibles por los sentidos humanos.

La idea es explotar el hecho de que el ojo humano no percibe con exactitud ligeros cambios en el color, pero si lo hace ante cambios en el brillo.

Uno de los formatos de representación de imágenes, con compresión con pérdida de información, lo constituye el jpeg, que toma su nombre del grupo de expertos que lo diseño: Joint Photographic Experts Group. Este formato funciona muy bien con imágenes a color o en escala de grises, principalmente en escenas del mundo real. Sin embargo, no se recomienda su uso en dibujos generados a base de líneas. El radio de compresión puede alcanzar 20 : 1, pudiendo comprimir una imagen de 2 MBytes en 100 KBytes. Su funcionamiento se basa en el registro de las variaciones existentes entre pixels cercanos.

Otro formato que es muy popular es el gif, el cual es superior al jpeg cuando se tratan imágenes que no son del mundo real, por ejemplo, figuras o gráficos generados por computador, así como imágenes en blanco y negro. También puede encontrarse formatos como el tiff y el eps.

Representación de sonido

La digitalización de sonidos, es decir, la traducción de ondas a números, se lleva acabo utilizando la transformada de Fourier. Dada la gran cantidad de información que resulta es necesario, en primera instancia, eliminar aquellos sonidos que están fuera del rango de frecuencias que el oído humano puede percibir. Aun así, la cantidad de datos es muy grande, incluso para unos pocos segundos de sonido.

Al igual que para el caso de las imágenes, existen estándares de compresión que se basan en la eliminación de información redundante. Este es el caso del formato mpeg, que corresponde a la versión para audio del jpeg. Su nombre proviene de las siglas de Moving Picture Experts Group y no se limita al almacenamiento de audio. En realidad, el mpeg comprende una diversidad de estándares para la representación de audio y video. En la actualidad se utiliza el mpeg de nivel 4, conocido como MPEG-4, a partir del cual han surgido formatos muy populares como el DivX.

En la Internet, los formatos más populares para la transmisión de audio son RealAudio, un estándar propietario de una empresa comercial, y WMA, el estándar de Microsoft.

Representación de video

El video, así como el cine y la televisión, se basa en una serie de cuadros que se pasan rápidamente frente a la vista del espectador. El video es uno de los tipos de datos que requieren mayor cantidad de espacio para su representación. Por esta razón, la compresión es un factor determinante. Incluso los formatos comerciales, como el DVD, existen gracias a complicados esquemas de compresión. La compresión de video puede llevarse a cabo dentro de cada cuadro, registrando diferencias dentro del cuadro, o entre cuadros, registrando diferencias entre un cuadro y el siguiente.

Dentro del ámbito de los computadores, el formato MOV se origino en el mundo de los computadores

Macintosh de Apple, aunque actualmente se utiliza en todo tipo de computadores Esta basado en MPEG-4 y es utilizado por conocidos programas como el Quicktime. En esta gama de formatos se encuentra también el formato RealVideo, que es bastante popular para transferir video por la Internet, junto con el Windows Media de Microsoft.

El formato AVI fue creado por Microsoft, para manipular video dentro de su sistema operativo Windows, e incluye niveles muy bajos de compresión de datos. Su nombre proviene de las siglas de Audio Video Interleave.

Este formato permite representar video compuesto de cuadros de hasta 160 x 120 pixels, con una tasa de refrescamiento de 15 cuadros por segundo.



REFERENCIAS BIBLIOGRAFICAS

Universidad De Talca Facultad De Ingeniería. Computación y Programación


 

sábado, 15 de septiembre de 2012

PRIMERA COMPUTADORA VS COMPUTADORA ACTUAL

Mi primera computadora la compramos en 1999, era Pentium III, funcionaba con un sistema operativo Windows 98, no me dejaban usarlo mucho, ya que yo era muy pequeño cuando la compraron (tenía 8 años), los juegos que conocía corrían en símbolo de sistema, que anteriormente lo conocía como MS-DOS. No era muy rápida en los procesamientos, recuerdo que tenía que esperar mucho tiempo para que el sistema operativo arranque.
El case tenia como 5 leds parpadeantes, se usaba mucho los disketts para guardar información. El monitor era de 17 pulgadas que venía con protector de pantalla.

Computadora:



Tarjeta Madre

La computadora actual que tengo, la compraron en 2010, es Pentium IV, procesador Intel Core 2 Quad, memoria RAM de 2 Gb, disco duro de 500 Gb, memoria de video de 1 Gb, lector-quemador de CD-DVD. Funciona con Windows 7 de 32 bits, hasta el momento no me quejo del desempeño de esta computadora, generalmente la uso para jugar y hacer trabajos.
Si se hace una comparación la primera con la actual, hay muchas cosas que destacar de la segunda como ser la velocidad de procesamiento, gráficos mejorados, un mejor monitor de pantalla plana HD, pero la primera computadora que tuve también era buenísima para su época…….


Procesador Intel Core 2 Quad




Disco Duro





By Cesar M. Cabrera Vasquez

miércoles, 12 de septiembre de 2012

Ley de Amdahl



Ley de Amdahl

Definición.- Eugene Amdahl analizo el problema del rendimiento de las computadoras en 1967 y propuso lo que en la actualidad se conoce como las leyes de Amdahl. Estas leyes toman en cuenta la parte “secuencial” del proceso para evaluar el rendimiento de una computadora al mejorar un aspecto de ella.
Amdahl presento en la primavera de 1967 durante una reunión de “American Federation of Information Processing Societies” (AFIPS), su trabajo "Validity of the Single Processor Approach to Achieving Large-Scale Computin Capabilities" donde explica lo que ahora se conoce como la ley de Amdahl. De esta exposición se sacan las siguientes formulas :



Reemplazando tenemos:


Donde:
·         A= (speedup) aceleración o ganancia en velocidad conseguida en el sistema completo debido a la mejora de uno de sus subsistemas.

       f= fraccion de tiempo que utiliza el susbsistema mejorado

       k= factor de mejora que se ha introducido en el sub-sistema mejorado.

EJEMPLO
Se tiene un servidor Web. Se le cambia la CPU por una CPU que es 10 veces más rápida que la antigua. La CPU antigua estaba 40% del tiempo haciendo cálculos y 60% ociosa esperando I/O. ¿Cuál es el speedup con la nueva CPU?
f=0.4
k=10
Usando la ley de Amdahl:
El speedup es:


El servidor con la nueva CPU es 1.56 veces más rápido que el servidor con la antigua CPU.

Referencia Bibliográfica

·         Introducción a la evaluación del rendimiento, UNICEN ARGENTINA, Recuperado (12/09/12)
·         Padua D. (2011), Encyclopedia of Parallel Computing, Spring Street: New York: USA, Edit Springer