11 de septiembre de 2009

EXTENSIONES

*.JPEG (Joint Photographic Experts Group)
Es el método de compresión más utilizado actualmente para la compresión de imágenes. Este método utiliza la transformada discreta del coseno (DCT), que se calcula empleando números enteros, por lo que se aprovecha de algoritmos de computación veloces.

TRASFORMADA DISCRETA DEL COSENO
La imagen de entrada es dividida en bloques de NxN píxeles. El tamaño del bloque se escoge considerando los requisitos de compresión y la calidad de la imagen. En general, a medida que el tamaño del bloque es mayor, la relación de compresión también resulta mayor. Esto se debe a que se utilizan más píxeles para eliminar las redundancias.

*.MPEG (Moving Picture Experts Group)
MPEG es un grupo de la ISO y la familia de estándares de compresión y de formatos de archivo de video digital desarrollados por el grupo y produce generalmente vídeos de mejor calidad que otros formatos.

-MPEG 1: es el estándar inicial de compresión de audio y vídeo. Proporciona video con una resolución de 352x240 a 30 frames por segundo (fps)

-MPEG 2: estándar para audio y vídeo para difusión de calidad de televisión . Ofrece resoluciones de 720x480 y de 1280x720 a 60 fps, con calidad CD de audio.

-MPEG 3: fue diseñado para HDTV pero fue abandonado a favor de MPG-2.

-MPEG 4: basado en la tecnología de Mpeg-1 y de Mpeg-2 y de Apple QuickTime y son más pequeños que archivos JPEG o QuickTime.

-MPEG 7:llamado Multimedia Content Description Interface, se diseña para ser genérico y no apunta a un uso específico.

-MPEG 21:incluye un Rights Expression Language (REL) y un Rights Data Dictionary. Describe un estándar que define la descripción del contenido y también los procesos para acceder, buscar, almacenar y proteger el copyright del contenido.

*.GIF (Graphics Interchange Format)
Es un formato de compresión de imágen limitado a 256 colores.Extencion y formato de imagen creado por CompuServe en 1987 soportable en múltiples plataformas. Suele utilizarse para graficos, especialmente pequeños, que pueden ser animados, con un máximo de 256 colores. Es muy utilizado en Internet. Es un formato que utiliza compresion sin pérdida de información.

*.RAW
Formato gráfico que contiene todos los datos tal cual han sido obtenidos por el sensor de la cámara fotográfica digital. Por lo general no utiliza compresion y posee una profunidad de color de 30 o 36 bits por pixeles, esto hace que los archivos en este forma ocupen gran cantidad de almacenamiento.

*.AVI (Audio Video Interleave)
Formato de Microsoft para ficheros de video y audio.

*.CDR
Fomato de graficos vectoriales para la aplicación CorelDraw.

*.WMA (Windows Media Audio)
Formato y extension del mismo desarrollado por Microsoft para codificar archivos de audio digital similar al mp3, aunque pueden comprimir archivos con un ratio más alto que estos.

*.MP3
Es una forma de codificar audio usando un algoritmo de compresión que genera pérdida de datos reduciendo la cantidad de información requerida para representar una grabación de audio, pero de modo en que a su vez sea muy similar a la calidad del archivo original para la mayoría de los oyentes.

La compresión efectuada al audio remueve ciertas partes del sonido que están por fuera de la normal capacidad auditiva del ser humano. Utiliza modelos psicoacústicos para descartar componentes menos audibles a nuestro oído, guardando el resto de la información de modo eficiente.

*.ZIP
Es un formato correspondiente a los ficheros comprimidos con la herramienta WinZip. Los ficheros comprimidos (en cualquier formato) contendrán a otros ficheros en su interior. Si alguno de éstos estuviese infectado, podría producirse infecciones al descomprimir o trabajar con el fichero comprimido.

*.PCD
Formato grafico propiedad de Kodak con pérdida de calidad por compresion y con una profundidad de color de 24 bits.

*.PCX (PiCture eXchange)
Formato Grafico Digital que utiliza compresion por run-lenght (RLE), que es sin pérdida de calidad. Fue desarrollado por Zsoft Corporation y era el formato nativo para el antiguo programa Paintbrush (presentado en 1985) para DOS, que fue uno de los programsa gráficos más populares para las primeras PC's.



7 de septiembre de 2009

PARALELISMO

El paralelismo es una forma de computación en la cual varios procesos o instrucciones pueden realizarse simultaneamente, basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en paralelo. Hay varios tipos diferentes de paralelismo: nivel de bit, nivel de instruccion, de datos, y de tarea. El paralelismo ha sido empleado durante muchos años, sobre todo para la Computación de alto rendimiento.

MULTITAREA

Características de un sistema operativo que permite ejecutar varios procesos al mismo tiempo usando uno o más microprocesadores.

Existen diferentes tipos de multitarea:
1) Multitarea Nula:
Aquel sistema operativo que carece de multitarea. Aún así puede simularla implementándola en un espacio de usuario o usando trucos como los TSR en MS-DOS. Justamente la familia DOS son ejemplos de sistemas operativos de multitarea nula.

TSR: (Terminate and Stay Resident - Termina y Permanece Residente). Forma de simulación de multitarea en sistemas operativos de la familia DOS.

Se refiere a que ciertas tareas permanecen en memoria luego de ser cargados al iniciar el sistema, utilizando los archivos
config.sys y autoexec.bat, o cargados desde la linea de comandos.

2) Multitarea Cooperativa
Tipo de multitarea en donde los procesos de usuario son quieres ceden la CPU al sistema operativo a intervalos regulares.

Es sumamente problemático porque si por algún motivo el proceso de usuario es interrumpido, no cede la CPU al sistema operativo que lo ejecuta y, por lo tanto, quedará trabado (tildado).

3) Multitarea Preferente
Tipo de multitarea en donde el sistema operativo se encarga de administrar uno o más procesadores, repartiendo el tiempo de uso del mismo entre los distintos procesos que esperan utilizarlo (tareas en ejecución).

En el caso de un solo procesador, cada proceso o tarea lo utiliza en períodos cortísimos de tiempo, lo que, en la práctica, da la sensación de que estuviesen ejecutándose al mismo tiempo.

Los sistemas operativos que utilizan este tipo de multitareas son los unix y sus clones (FreeBSD, Linux, etc), VMS, AmigaOS, Windows NT, etc.

4) Multitarea Real
Tipo de multitarea en donde el sistema operativo ejecuta los procesos realmente al mismo tiempo haciendo uso de múltiples procesadores (más de dos).

La ejecución realmente se realiza en distintos procesadores para cada proceso o tarea. Obviamente en el caso de que los procesos o tareas sean más que la cantidad de procesadores, éstos comienzan a ejecutarse en procesadores "en uso" en la forma de multitarea preferente

Todos los sistemas operativos modernos soportan esta capacidad.

6 de septiembre de 2009

OS2 / WARP

OS 2 (Operating System 2) sistema operativo no libre desarrollado por IBM que intentó suceder a DOS.

OS/2 ya tenía incorporada desde esa primera versión la multitarea real. Se podían ejecutar varias sesiones simultáneamente, en cada una de ellas se podían tener múltiples programas, y cada uno de ellos podía tener múltiples threads en ejecución. Se trataba de una multitarea jerárquica, con cuatro niveles de prioridad: Crítico (útil para programas que requieran atención casi constante por parte de la CPU, como un módem), Primer plano (correspondiente al programa que tiene acceso a la pantalla, teclado y ratón), Medio (programas lanzados por el usuario que se ejecutan en BackGround) y Desocupado (tareas de poca importancia o lentas, como el Spooler de impresión). Dentro de cada nivel (a excepción del de Primer plano), existen 32 niveles de prioridad, los cuales son asignados dinámicamente a cada programa por el S.O. en función del porcentaje de uso de la CPU, de los puertos de E/S

Microsoft sugirió hacer una versión de 32 bits (que obligaría a ejecutarla en ordenadores 386 o superiores), pero IBM insistió en perfeccionar la de 16 bits. Sobre quien dijo cada cosa realmente solo se puede especular. Lo único que se sabe a ciencia cierta es que la versión de OS/2 de 32 bits presentada por MicroSoft en 1990 era casi igual que la versión 1.3, con la única diferencia de que el kernel era de 32 bits. IBM, por su parte, quería un escritorio orientado a objetos, y no el clásico shell de OS/2 1.x (el cual MicroSoft copiaría para su Windows 3.0). Puestas así las cosas, finalmente se rompió el acuerdo entre ambos.

OS/2 es ampliamente utilizado en múltiples empresas, bancos sobre todo, en donde su estabilidad es la mayor garantía (los propios cajeros automáticos funcionaban inicialmente con OS/2 1.0, si bien actualmente usan OS/2 Warp).

PROYECTO NATAL

El nombre "Proyecto Natal" tiene varios orígenes. Microsoft suele utilizar ciudades para sus nombres en clave. Y el encargado de elegir el nombre esta vez era Alex Kipman, un tipo muy majo que incubó el proyecto en Xbox. Alex es de Brasil, así que eligió Natal, una ciudad situada en la costa nororiental de Brasil, como tributo a su país. Además, Alex sabía que Natal significa "perteneciente o relativo al nacimiento", por lo que expresa perfectamente las nuevas posibilidades del Proyecto Natal.

El "Proyecto Natal" es el primer sistema del mundo que combina una cámara RGB, un sensor de profundidad, un micrófono de múltiples matrices y un procesador personalizado con software patentado.

El nombre Project Natal sigue la tradición de Microsoft de usar ciudades como nombres clave. El director de Microsoft Alex Kipman, quien incubó el proyecto, decidió llamarlo según la ciudad brasileña Natal como un homenaje a su país de origen, y porque la palabra natal significa "relativo al nacimiento", lo que refleja la visión de Microsoft del proyecto como "el nacimiento de la próxima generación de entrenimiento casero".

PROGAMACION ORIENTADA A "ASPECTOS"

El concepto de programación orientada a aspectos fue introducido por Gregor
Kiczales y su grupo, aunque el equipo Demeter había estado utilizando ideas orientadas
a aspectos antes incluso de que se acuñara el término.

La programación orientada a aspectos (POA) es una nueva metodología de
programación que aspira a soportar la separación de competencias para los aspectos
antes mencionados. Es decir, que intenta separar los componentes y los aspectos unos
de otros, proporcionando mecanismos que hagan posible abstraerlos y componerlos para
formar todo el sistema.

POA es un desarrollo que sigue al paradigma de la orientación a objetos, y como
tal, soporta la descomposición orientada a objetos, además de la procedimental y la
descomposición funcional. Pero, a pesar de esto, POA no se puede considerar como una
extensión de la POO, ya que puede utilizarse con los diferentes estilos de programación

*Que es un aspecto?
Una de las primeras definiciones que aparecieron del concepto de aspecto fue
publicada en 1995, y se describía de la siguiente manera: Un aspecto es una unidad
que se define en términos de información parcial de otras unidades.

La definición de aspecto ha evolucionado a lo largo del tiempo, pero con la que
se trabaja actualmente es la siguiente: Un aspecto es una unidad modular que se
disemina por la estructura de otras unidades funcionales. Los aspectos existen tanto
en la etapa de diseño como en la de implementación.

Un aspecto de diseño es una unidad modular del diseño que se entremezcla en la estructura de otras partes del
diseño. Un aspecto de programa o de código es una unidad modular del programa que
aparece en otras unidades modulares del programa (G. Kiczales).

De manera más informal podemos decir que los aspectos son la unidad básica de
la POA, y pueden definirse como las partes de una aplicación que describen las
cuestiones claves relacionadas con la semántica esencial o el rendimiento. También
pueden verse como los elementos que se diseminan por todo el código y que son
difíciles de describir localmente con respecto a otros componentes.

Se puede diferenciar entre un componente y un aspecto viendo al primero como
aquella propiedad que se puede encapsular claramente en un procedimiento, mientras
que un aspecto no se puede encapsular en un procedimiento con los lenguajes
tradicionales


PROGRAMACION ORIENTADA A "OBLETOS"


Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generacion.

Existen una serie de principios fundamentales para comprender cómo se modeliza la realidad al crear un programa bajo el paradigma de la orientación a objetos:

a.) Principio de Abstracción

Mediante la abstracción la mente humana modeliza la realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible implementación deobjetos del programa que simulen el funcionamiento de los objetos reales.

b.) Principio de Encapsulamiento

El encapsulamiento permite a los objetos elegir qué información es publicada y qué información es ocultada al resto de los objetos. Para ello los objetos suelen presentar sus métodos como interfaces públicas y sus atributos como datos privados e inaccesibles desde otros objetos.

Para permitir que otros objetos consulten o modifiquen los atributos de los objetos, las clases suelen presentar métodos de acceso. De esta manera el acceso a los datos de los objetos es controlado por el programador, evitando efectos laterales no deseados.

Con el encapsulado de los datos se consigue que las personas que utilicen un objeto sólo tengan que comprender su interfaz, olvidándose de cómo está implementada, y en definitiva, reduciendo la complejidad de utilización.

c) Principio de Modularidad

Mediante la modularidad, se propone al programador dividir su aplicación en varios módulos diferentes (ya sea en forma de clases, paquetes o bibliotecas), cada uno de ellos con un sentido propio.

Esta fragmentación disminuye el grado de dificultad del problema al que da respuesta el programa, pues se afronta el problema como un conjunto de problemas de menor dificultad, además de facilitar la comprensión del programa.

La modularidad se considera de la siguiente manera: Un programa grande siempre sera más complicado que la suma de varios programas pequeños, con lo que se considera ventajoso dividir un gran sistema en diversos modulos.

d.) Principio de Jerarquía

Las distintas clases de un programa se organizan mediante la jerarquía. La representación de dicha organización da lugar a los denominados árboles de herencia:


Mediante la herencia una clase hija puede tomar determinadas propiedades de una clase padre. Así se simplifican los diseños y se evita la duplicación de código al no tener que volver a codificar métodos ya implementados.

Al acto de tomar propiedades de una clase padre se denomina heredar.

e.) Principio del Paso de Mensajes

Mediante el denominado paso de mensajes, un objeto puede solicitar de otro objeto que realice una acción determinada o que modifique su estado. El paso de mensajes se suele implementar como llamadas a los métodos de otros objetos.

f.) Principio de Polimorfismo

Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un objeto presente diferentes comportamientos en función del contexto en que se encuentre. Por ejemplo un método puede presentar diferentes implementaciones en función de los argumentos que recibe, recibir diferentes números de parámetros para realizar una misma operación, y realizar diferentes acciones dependiendo del nivel de abstracción en que sea llamado.