sábado, 23 de marzo de 2013

LOS SISTEMAS DE ALMACENAMIENTO ACTUALES


En la primera entrada del blog se explicó lo que era la información y hablamos sobre ella. Surge una necesidad de almacenarla, bien para transportarla, para su perseverancia o para su reutilización. En esta parte expondremos los distintos medios que hay en la actualidad para almacenarla.



Para comenzar, por una parte están los medios fijos, o no portátiles como la memoria RAM, la memoria Cache y las bases de datos y por otro los portatiles, por ejemplo, el disco duro, el disquete (aunque ya apenas se utiliza),CD-ROM, DVD, Blu-Ray, USB, tarjetas de memoria, almacenamiento en la nube.



  • La memoria RAM(Random Access Memory):  Es el componente de almacenamiento más importante de un ordenador, junto con el disco duro y se utiliza como memoria de trabajopara el sistema operativo, los programas,y la     mayoría del software. Es una memoria en la que se puede tanto leer como escribir, pero es volátil, es decir que pierde todo su contenido una vez se desconecta de la electricidad. La RAM se forma a partir de microchips con entradas de memoria y la información es almacenada en esas entradas de manera aleatoria, por eso su nombre. A finales de los 80 la capacidad rondaba los 4Mb mientras que hoy en día lo normal es tener más de 1Gb.


  • La memoria Cache: Es usada por al CPU para reducir el tiempo de acceso a la memoria. Es una memoria muy pequeña y muy rápida que almacena copias de la información que se usa con más frecuencia en la memoria principal. De esta manera es mucho menos costoso acceder a las copias guardadas en la memoria cache que a la información original. Se pueden diferenciar dos niveles, nivel principal o L1 es en el que se encuentra interna al procesador y trabaja a su misma frecuencia, y nivel secundario o L2.
  • Las bases de datos: Son un conjunto de datos coherentes pertenecientes a un mismo contexto y almacenados estructuradamente. Un sistema de gestión de bases de datos (SGBD) es un software que permite manipular estas bases de datos. Gracias a las bases de datos se consigue flexibilidad, rapidez, seguridad, consistencia, estandarización, productividad...aunque también son costosas, complejas y de gran tamaño.


En cuanto a los portátiles:



  • Disco duro(HDD): El medio de almacenamiento por excelencia a nivel de ususario. Es un dispositivo de datos no volátil que emplea un sistema de grabación magnética para almacenar datos digitales. La organización de el disco duro es responsabilidad del sistema operativo. Los hay internos (dentro del PC) o externos, conectados al PC mediante una conexión USB o SATA. Hoy en día es común verlos de entre 500 Gb - 2 Tb.


  • Disquete: Prácticamente extinguidos, pero todavía se pueden seguir viendo. El primer sistema de almacenamiento extraible que se instalo en el PC, consisten en un estuche de plástico rígido y en su interior un disco de plástico recubierto de material magnetizado, el primero tenía capacidad para 1Mb. En 1995 SONY lanzo unos discos llamados LS-120, con una capacidad de 120 Mb.




  • CD-ROM: (Compact disc - disco compacto) Desde que salieron en 1985 han evolucionado muy poco, simplemente se ha ido aumentando su capacidad. Los cd's se convirtieron en el medio standar para distribuir programas, copias de seguridad, grabaciones, etc, gracias a su capacidad y a su bajo coste. Existen dos tipos principales de cd's, los regrabables CD-RW y los no regrabables CD-R, en los cuales una vez el disco ha sido cerrado no se pueden hacer modificaciones. Se graba mediante laser. La capacidad normal de un cd son 700Mb.

  • DVD: Es similar a los cd's, la principal diferencia es su capacidad, es aumentada de los 700Mb a 4'7Gb (8'5 Gb en los de doble capa). Un DVD es mucho mas duradero, su calidad de imagen y sonido es mucho mayor. Aunque son mas caros que los cd's probablemente acaben sustituyéndolos, pero hoy en día la venta de cd's vírgenes sigue siendo abrumadora.

  • Blu-Ray disc: Es un formato de disco óptico de nueva generación, empleado para vídeo de de alta definición (1080p.) y con una capacidad de almacenamiento de datos mayor que un DVD. Guardaba 25Gb por capa, hasta que SONY y Panassonic desarrollaron un nuevo modelo de 33'4Gb por capa.





  • USB: Creados por IBM en 1998. Son pequeños dispositivos con apariencia de un mechero que actúan como si de un disquete se tratara, pudiendo leer, escribir y borrar datos sobre él. Es la forma más cómoda de trasportar datos. Tienen una gran relación capacidad/precio y están ganando mucha popularidad gracias a sus ventajas, como su resistencia a golpes, a humedad, a polvo, su rapidez y su estabilidad de datos. Las capacidades más habituales son                                          de 4,8 o 16 Gb, aunque ya los hay de 60Gb.



  • Tarjetas de memoria: Basadas en memorias del tipo flash, pero a diferencia de los USB, sin controladores, por lo que necesitan de unidades lectoras para funcionar. Son unidades no volátiles. Son derivadas de las EEPROM. Se utilizan principalmente en dispositivos portátiles como cámaras, móviles, reproductores, GPS... Hay diferentes tipos de tarjetas por ejemplo , SD, MicroSD, MMC, CF, XD... sus diferencias son la tasa de transmisión de datos, la forma y el tamaño.


  • Almacenamiento en la nube: Es un modelo basado en redes, donde los datos están almacenados en espacios de almacenamiento virtualizados y por lo general alojados por terceros. Es barato, no requiere instalación, tiene sistemas de backup y recuperación, no requiere presencia física, personal ni mantenimiento... por lo que son muchas las ventajas, este medio dará mucho de que hablar de aquí en adelante.




Y tú, ¿Qué medio de almacenamiento es el que más utilizas?


sábado, 9 de marzo de 2013

LENGUAJES DE PROGRAMACIÓN

LENGUAJES DE PROGRAMACIÓN

En esta entrada explicaré, a mi juicio, los 5 lenguajes de programación más actuales. Aunque para comenzar veremos los conceptos básicos.

Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Los lenguajes tienen en común una estructura básica formada por variables, condicionantes, bucles, funciones y procedimientos.

Dentro de la programación podemos distinguir entre programación modular y programación estructurada


La programación modular se rige por el principio de divide y vencerás, divide en subprogramas el problema llamados funciones y procedimientos. 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.


Se basa en objetos (se pueden entender como moldes),  formados por un conjunto de variables que tienen atributos en común, ejemplos son Java, Phyton, C, C++, C#...

Mientras, en la programación estructurada todas sus variables son independientes pero pueden asociarse en cualquier momento con otras, esto lo hace más sencillo pero el código se vuelve mucho más extenso, ejemplos de este tipo de programación son ALGOL y Pascal, entre otros.

De acuerdo a un ranking publicado en septiembre de 2012, los lenguajes más demandados son C, Java, C++, PHP y Visual Basic, por lo que me centraré en ellos.



LENGUAJE C


 Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas características de bajo nivel. Sirve para desarrollar tanto software del sistemas como aplicaciones.

Uno de los objetivos de diseño del lenguaje C es que sólo sean necesarias unas pocas instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, sin que haga falta un soporte intenso en tiempo de ejecución.


Es un lenguaje muy flexible, contiene un sistema de tipos que impide operaciones sin sentido, usa un lenguaje pre-procesado, tiene acceso a memorias de bajo nivel mediante el uso de punteros, y aunque no soporta programación orientada a objetos es el lenguaje más utilizado hoy en día.



LENGUAJE JAVA

El lenguaje de programación Java, fue diseñado por la compañía Sun Microsystems Inc, con el 
propósito de crear un lenguaje que pudiera funcionar en redes computacionales heterogéneas
,y que fuera independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un
programa de Java puede ejecutarse en cualquier máquina o plataforma.

El lenguaje deriva mucho de su sintaxis de C y C++, es un lenguaje de programación de propósito generalconcurrente,basado en clases, y orientado a objetos, que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. 


LENGUAJE C++


Es una extensión de C con mecanismos que permiten la programación orientada a objetos
En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.

Son pocas las diferencias con C, una de ellas es el estilo de declaración de las variables, en C++ no importa en que parte de código se realicen mientras en C, si. Otra diferencia son las funciones en forma de prototipo.



LENGUAJE PHP

Es uno de los lenguajes de programación más populares, la gran fluidez y rapidez de sus scripts y su prometedor futuro lo hacen idóneo para desarrollar aplicaciones Web de contenido dinámico.
Es un lenguaje de código abierto creado en 1995 y fue uno de los primeros lenguajes de programación que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos.
 PHP puede ser usado en la mayoría de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.
El código fuente escrito en PHP es invisible al navegador web y al cliente, lo que lo hace una programación segura y fiable, es fácil de aprender, maneja excepciones, permite la expansión mediante el uso de módulos y además permite la programación orientada a objetos.

LENGUAJE VISUAL BASIC

Desarrollado por Microsoft y orientado a eventos, diseñado para facilitar el desarrollo de aplicaciones en un entorno gráfico como Windows 98.  Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo completamente gráfico que facilitara la creación de interfaces gráficas y, en cierta medida, también la programación misma.

Se utiliza para diseñar entorno de datos, asistente de formularios y barras de herramientas, admite el polimorfismo mediante interfaces, permite generar librerías de forma activa  pero no soporta  el uso de punteros.




Cada uno tiene sus ventajas e inconvenientes pero ¿Cuál creéis que es el mejor lenguaje de programación actualmente?