martes, 6 de diciembre de 2011

VON NEWMAN

John Von Newman observo que la torpeza de la aritmética decimal utilizadas en la computadora ENIAC podia remplazarse utilizando la aritmatica binaria.Realizo un diseño básico llamado la máquina de Von Newman y se utilizo en la computadora EDVAC que fue la primer computadora que almacenaba el programa.La máquina de Von Newman tenia 5 partes principales y son las siguientes:
LA MEMORIA: Constaba de 4096 palabras cada una de 40 bits.Y cada palabra podia contener 2 instrucciones de 20 bits cada una o un número entero de 39 bits y su signo.
UNIDAD DE CONTROL:Es la que supervisaba la transferencia de información y la indicaba a la unidad aritmetica lógica cual operación debia ejecutar.
UNIDAD DE ARITMATICA LÓGICA: Es aquella que se encarga de realizar las operaciones aritméticas y lógicas necesarias para la ejecución de una instrucción.
ENTRADA:Es cualquier dispositivopor el que se introduce información a la computadora.
SALIDA:Es cualquier dispositivo que recibe información de la máquina para ser utilizadas por el usuario.
Centrándonos en los ordenadores sobre los que vamos a trabajar desarrollaré a grandes rasgos la arquitectura Von Newman que, si bien no es la primera en aparecer, sí que lo hizo prácticamente desde el comienzo de los ordenadores y se sigue desarrollando actualmente. Claro es que está siendo desplazada por otra que permiten una mayor velocidad de proceso, la RISC.En los primeros tiempos de los ordenadores, con sistemas de numeración decimal, una electrónica sumamente complicada muy susceptible a fallos y un sistema de programación cableado o mediante fichas, Von Newman propuso dos conceptos básicos que revolucionarían la incipiente informática:

a) La utilización del sistema de numeración binario. Simplificaba enormemente los problemas que la implementación electrónica de las operaciones y funciones lógicas planteaban, a la vez proporcionaba una mayor inmunidad a los fallos (electrónica digital).
b) Almacenamiento de la secuencia de instrucciones de que consta el programa en una memoria interna, fácilmente accesible, junto con los datos que referencia. De este forma la velocidad de proceso experimenta un considerable incremento; recordemos que anteriormente una instrucción o un dato estaban codificados en una ficha en el mejor de los casos.
Tomando como modelo las máquinas que aparecieron incorporando las anteriores características, el ordenador se puede considerar compuesto por las siguientes partes:
- La Unidad Central de Proceso, U.C.P., más conocida por sus siglas en inglés (CPU).
- La Memoria Interna, MI.
- Unidad de Entrada y Salida, E/S.
- Memoria masiva Externa, ME.
Realicemos a continuación una descripción de lo que se entiende por cada una de estas partes y cómo están relacionadas entre si:
- La Unidad Central de Proceso (CPU) viene a ser el cerebro del ordenador y tiene por misión efectuar las operaciones aritmético-lógicas y controlar las transferencias de información a realizar.
- La Memoria Interna (MI) contiene el conjunto de instrucciones que ejecuta la CPU en el transcurso de un programa. Es también donde se almacenan temporalmente las variables del mismo, todos los datos que se precisan y todos los resultados que devuelve.
- Unidades de entrada y salida (E/S) o Input/Output (I/O): son las encargadas de la comunicación de la máquina con el exterior, 
proporcionando al operador una forma de introducir al ordenador tanto los programas como los datos y obtener los resultados.Como es de suponer, estas tres partes principales de que consta el ordenador deben estar íntimamente conectadas; aparece en este momento el concepto de bus: el bus es un conjunto de líneas que enlazan los distintos componentes del ordenador, por ellas se realiza la transferencia de datos entre todos sus elementos.
Se distinguen tres tipos de bus:
- De control: forman parte de él las líneas que seleccionan desde dónde y hacia dónde va dirigida la información, también las que marcan la secuencia de los pasos a seguir para dicha transferencia.
- De datos: por él, de forma bidireccional, fluyen los datos entre las distintas partes del ordenador.
- De direcciones: como vimos, la memoria está dividida en pequeñas unidades de almacenamiento que contienen las instrucciones del programa y los datos. El bus de direcciones consta de un conjunto de líneas que permite seleccionar de qué posición de la memoria se quiere leer su contenido. También direcciona los puertos de E/S.
La forma de operar del ordenador en su conjunto es direccionar una posición de la memoria en busca de una instrucción mediante el bus de direcciones, llevar la instrucción a la unidad central de proceso -CPU- por medio del bus de datos, marcando la secuencia de la transferencia el bus de control. En la CPU la instrucción se decodifica, interpretando qué operandos necesita: si son de memoria, es necesario llevarles a la CPU; una vez que la operación es realizada, si es preciso se devuelve el resultado a la memoria.


TICS

Las tecnologías de la comunicación (TIC), se encargan del estudio, desarrollo, implementación, almacenamiento y distribución de la información mediante la utilización de hardware y software como medio de sistema informático.
Las tecnologías de la información y la comunicación son una parte de las tecnologías emergentes que habitualmente suelen identificarse con las siglas TIC y que hacen referencia a la utilización de medios informáticos para almacenar, procesar y difundir todo tipo de información o procesos de formación educativa.

PYTHON





Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y multiplataforma.
Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License,que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.






http://es.wikipedia.org/wiki/Python

¿Que es bases de datos?

Bases de datos

Una base de datos o banco de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos tienen formato electrónico, que ofrece un amplio rango de soluciones al problema de almacenar datos.
En informática existen los sistemas gestores de bases de datos (SGBD), que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de los sistemas gestores de bases de datos se estudian en informática.
Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental.
Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por las leyes de varios países. Por ejemplo en España, los datos personales se encuentran protegidos por la Ley Orgánica de Protección de Datos de Carácter Personal (LOPD).

Tipos de bases de datos

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su clasificación:

Bases de datos estáticas

Éstas son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones.

Bases de datos dinámicas

Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub, etc.

¿Que es una memoria ROM?

 ¿Cómo funciona la memoria ROM?

La memoria ROM, también conocida como firmware, es un circuito integrado programado con unos datos específicos cuando es fabricado. Los chips de características ROM no solo se usan en ordenadores, sino en muchos otros componentes electrónicos también. Hay varios tipos de ROM, por lo que lo mejor es empezar por partes.
Tipos de ROM
Hay 5 tipos básicos de ROM, los cuales se pueden identificar como:
  • ROM
  • PROM           
  • EPROM
  • EEPROM
  • Memoria Flash
Cada tipo tiene unas características especiales, aunque todas tienen algo en común:
  • Los datos que se almacenan en estos chips son no volátiles, lo cual significa que no se pierden cuando se apaga el equipo.
  • Los datos almacenados no pueden ser cambiados o en su defecto necesitan alguna operación especial para modificarse. Recordemos que la memoria RAM puede ser cambiada en al momento.
Todo esto significa que quitando la fuente de energía que alimenta el chip no supondrá que los datos se pierdan irremediablemente.
Funcionamiento ROM
De un modo similar a la memoria RAM, los chips ROM contienen  una hilera de filas y columnas, aunque la manera en que interactúan es bastante diferente. Mientras que RAM usualmente utiliza transistores para dar paso a un capacitador en cada intersección, ROM usa un diodo para conectar las líneas si el valor es igual a 1. Por el contrario, si el valor es 0, las líneas no se conectan en absoluto.
Un diodo normalmente permite el flujo eléctrico en un sentido y tiene un umbral determinado, que nos dice cuanto fluido eléctrico será necesario para dejarlo pasar. Normalmente, la manera en que trabaja un chip ROM necesita la perfecta programación y todos los datos necesarios cuando es creado. No se puede variar una vez que está creado. Si algo es incorrecto o hay que actualizar algo, hay que descartarlo y empezar con uno nuevo. Crear la plantilla original de un chip ROM es normalmente laborioso dando bastantes problemas, pero una vez terminado, los beneficios son grandes. Una vez terminada la plantilla, los siguientes chips pueden costar cantidades ridículas.
 Estos chips no consumen apenas nada y son bastante fiables, y pueden llevar toda la programación para controlar el dispositivo en cuestión. Los ejemplos más cercanos los tenemos en algunos juguetes infantiles los cuales hacen actos repetitivos y continuos.
PROM
Crear chips desde la nada lleva mucho tiempo. Por ello, los desarrolladores crearon un tipo de ROM conocido como PROM (programmable read-only memory). Los chips PROM vacíos pueden ser comprados económicamente y codificados con una simple herramienta llamada programador.
La peculiaridad es que solo pueden ser programados una vez. Son más frágiles que los chips ROM hasta el extremo que la electricidad estática lo puede quemar. Afortunadamente, los dispositivos PROM vírgenes son baratos e ideales para hacer pruebas para crear un chip ROM definitivo.
EPROM
Trabajando con chips ROM y PROM puede ser una labor tediosa. Aunque el precio no sea demasiado elevado, al cabo del tiempo puede suponer un aumento del precio con todos los inconvenientes. Los EPROM (Erasable programmable read-only memory) solucionan este problema. Los chips EPROM pueden ser regrabados varias veces.
Borrar una EEPROM requiere una herramienta especial que emite una frecuencia determinada de luz ultravioleta. Son configuradas usando un programador EPROM que provee voltaje a un nivel determinado dependiendo del chip usado.
Para sobrescribir una EPROM, tienes que borrarla primero. El problema es que no es selectivo, lo que quiere decir que borrará toda la EPROM. Para hacer esto, hay que retirar el chip del dispositivo en el que se encuentra alojado y puesto debajo de la luz ultravioleta comentada anteriormente.
EEPROM y memoria flash
Aunque las EPROM son un gran paso sobre las PROM en términos de utilidad, siguen necesitando un equipamiento dedicado y un proceso intensivo para ser retirados y reinstalados cuando un cambio es necesario. Como se ha dicho, no se pueden añadir cambios a la EPROM; todo el chip sebe ser borrado. Aquí es donde entra en juego la  EEPROM(Electrically erasable programmable read-only memory).
Algunas peculiaridades incluyen:
  • Los chips no tienen que ser retirados para sobre escribirse.
  • No se tiene que borrar el chip por completo para cambiar una porción del mismo.
  • Para cambiar el contenido no se requiere equipamiento adicional.
En lugar de utilizar luz ultra violeta, se pueden utilizar campos eléctricos para volver a incluir información en las celdas  de datos que componen circuitos del chip. El problema con la EEPROM, es que, aunque son muy versátiles, también pueden ser lentos con algunos productos lo cuales deben realizar cambios rápidos a los datos almacenados en el chip.
Los fabricantes respondieron a esta limitación con la memoria flash, un tipo de EEPROM que utiliza un “cableado” interno que puede aplicar un campo eléctrico para borrar todo el chip, o simplemente zonas predeterminadas llamadas bloques.

¿Que es una memoria RAM?

Memoria RAM es un sistema de almacenamiento de datos. RAM significa Random Access Memory, Memoria de Acceso Aleatorio, y esta nomenclatura se debe al hecho de que el sistema accede a datos almacenados de forma no secuencial, a diferencia de otros tipos de memoria. La memoria RAM es volátil, esto quiere decir que no graba de modo permanente los datos contenidos. Cuando la alimentación del sistema es cortada, todo lo que estaba en la memoria se pierde.


El sistema es bastante útil para el procesamiento de datos, ya que proporciona espacio para informaciones cruciales, que pueden ser accedidas de forma casi inmediata, a diferencia de otras formas de almacenamiento, como discos duro, CDs o DVDs. El sistema operativo, así como aplicaciones de datos en uso son almacenados en la memoria RAM, permitiendo que el procesador trabaje estas informaciones rápidamente.
Para la ejecución de juegos, por ejemplo, una buena cantidad de memoria RAM de alta calidad es esencial, ya que en este tipo de aplicación los archivos son accedidos a todo momento, para que sean cargados texturas, modelos, animaciones y otros tipos de datos exhibidos continuamente. Si el procesador depende de acceso al disco duro o a otro tipo de almacenamiento, la velocidad y agilidad características de un juego pueden ser comprometidas.
Vale la pena destacar que no todos los tipos de memoria RAM proporcionan el mismo nivel de desempeño. Existen diversos modelos con frecuencias diferentes y capacidades de transferencia de datos cada vez mayores. Verifica debajo una comparación entre tres modelos de RAM con frecuencia de clock de 200Mhz, y nota como el desempeño se duplica con cada versión del hardware.


La memoria RAM es indispensable para cualquier tipo de usuario, desde aquellos que tienen interés en juegos hasta los que utilizan procesadores de texto más pesados. El acceso de datos directamente en el disco duro no trae agilidad, la cual es necesaria en la mayor parte de las aplicaciones utilizadas actualmente, y el hecho de que una memoria no es un componente caro garantiza que todo usuario debe intentar mantener su sistema actualizado en este aspecto.

¿Que es un hardware?

La definición más simple de lo que es un hardware, es que todo lo físico que podemos ver en una computadora, es considerado como hardware. Todo lo que usted puede llegar a tocar de una computadora, es el hardware. O sea, el monitor, el teclado, el mouse, la impresora, etc. Cada uno de estos elementos por separados, no son nada. Pero al unirlos de manera conjunta, para formar una computadora, pasan a ser parte del hardware de nuestro terminal computacional.


Dentro de todo hardware, existe una categorización específica. Categorías que siempre van a ser cinco. La primera de procesamiento, la segunda de entrada, la tercera de salida, la cuarta de almacenamiento y la quinta de comunicación.


En la primera categoría, podemos destacar la unidad central de procesamiento (CPU) cuyo corazón es un microprocesador de silicio, conformado por una unidad aritmético-lógica, la cual realiza todos los cálculos y toma de decisiones. Por otra parte, tenemos la memoria del computador o RAM.


En la segunda categoría, tenemos al teclado, por ejemplo. Medio por el cual, podemos ejecutar todos los programas inherentes a Office, por colocar un caso. El teclado es uno de los medios por los cuales, el ser humano se puede comunicar con la computadora. De es manera, ordenarle que ejecute ciertos programas, bajo la voluntad del primero. Y como no, el segundo dispositivo de entrada, es el mouse. Con el cual se cierra el círculo, de las maneras en que el ser humano, puede ordenar a una computadora que ejecute lo que él desee.


La tercera categoría se refiere al monitor y la impresora. Medios por los cuales, la computadora se entiende con el ser humano.


En la cuarta categoría, podemos señalar al disco duro, parte fundamental de toda memoria de computador. Sin éste, sería imposible trabajar en un computador. Ya que no tendríamos donde guardar tanta información y tenerla al mismo tiempo, en constante disposición. Hay que pensar, que un disco duro, llega a tener 40gigabytes de almacenamiento. Nada se le compara. Por otra parte, tenemos al CD-ROM, donde la estrella es el disco compacto. El cual puede llegar a almacenar hasta 700 megabytes. Por último, los discos flexibles, los cuales, a diferencia de los discos duros, poseen una capacidad muy limitada de almacenamiento. Aparte que hay que tener mucho cuidado con ellos, ya que es muy fácil que se estropeen con el calor, campos magnéticos, etc.


Por último, tenemos a la quinta categoría. Donde se destacan tanto el módem y la tarjeta de red. El primero nos sirve para conectarnos a Internet. Sin éste dispositivo y sus similares, no tendríamos acceso alguno al ciberespacio. Y, con respecto a la tarjeta de red, es ésta la que facilita y permite crear las redes de área local (LAN).


  

¿Que es un ANDROID ?

Android es un sistema operativo basado en el núcleo Linux diseñado originalmente para dispositivos móviles, tales como teléfonos inteligentes, pero que posteriormente se expandió su desarrollo para soportar otros dispositivos tales como tablet, reproductores MP3, netbook, PC, televisores, lectores de e-book e incluso, se han llegado a ver en el CES, microondas y lavadoras.
Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005.Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio.Las unidades vendidas de teléfonos inteligentes con Android se ubican en el primer puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010,con una cuota de mercado de 43,6% en el tercer trimestre.
Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 250.000 aplicaciones disponibles para la tienda de aplicaciones oficial de Android: Android Market, sin tener en cuenta aplicaciones de otras tiendas no oficiales para Android, como pueden ser la App Store de Amazon o la tienda de aplicaciones de Samsung.Android Market es la tienda de aplicaciones en línea administrada por Google, aunque existe la posibilidad de obtener software externamente. Los programas están escritos en el lenguaje de programación Java.No obstante, no es un sistema operativo libre de malware, aunque la mayoría de ello es descargado de sitios de terceros.
El anuncio del sistema Android se realizó el 5 de noviembre de 2007 junto con la creación de la Open Handset Alliance, un consorcio de 78 compañías de hardware, software y telecomunicaciones dedicadas al desarrollo de estándares abiertos para dispositivos móviles.Google liberó la mayoría del código de Android bajo la licencia Apache, una licencia libre y de código abierto.20 Actualmente Android posee aproximadamente el 32,9% de cuota de mercado a escala mundial de los teléfonos inteligentes, por delante de Symbian OS que posee una cuota aproximada del 30,6%. En tercer lugar se sitúa iOS con una cuota de mercado del 16%.
La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++.


http://es.wikipedia.org/wiki/Android

¿Que es un interprete?

Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:
Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces).
Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.


http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html

¿Que es un compilador?

Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (código objeto).
Básicamente, existen dos grandes formas de ejecutar programas: programas compilados (previamente pasados por un compilador) y programas interpretados (necesitan pasar por un intérprete para ejecutarse en tiempo real).


Características de un compilador


Generalmente un compilador se divide en dos partes:
* Front End: parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Parte que suele ser independiente de la plataforma osistema operativo para el que funcionará.
* Back End: parte en donde se genera el código máquina exclusivo para una plataforma a partir de lo analizado en el front end.
Por lo general el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de enlazado (linker).
Existen varios tipos de compiladores: Compiladores cruzados, Compiladores optimizadores, Compiladores de una sola pasada, Compiladores de varias pasadas, Compiladores JIT (Just In Time).


Intérpretes vs compiladores


Cualquier lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente.


También puede darse que un programa contenga partes que son implementadas vía intérprete y otras vía compilador.
También existen intérpretes que incluyen cierta "compilación" en el medio. Son aquellos que compilan a un código intermedio llamado bytecode, que es más eficiente de ejecutar que hacerlo directamente desde el código fuente.
En general, la principal desventaja de los intérpretes, es que cuando un programa es interpretado, suele ejecutarse más lento que si el mismo programa estuviese compilado. Esto se debe a que el intérprete debe analizar cada sentencia en el programa en cada ejecución (un análisis en tiempo real). También el acceso a variables es más lento en un intérprete, porque mapear los identificadores para almacenar las localizaciones debe hacerse repetidas veces en tiempo real.










http://www.alegsa.com.ar/Dic/compilador.php