Trabajo maquina turnin y von neumann

25

Click here to load reader

Transcript of Trabajo maquina turnin y von neumann

Page 1: Trabajo maquina turnin y von neumann

República bolivariana de Venezuela

Ministerio del popular para la educación superior

Universidad nacional experimental Rómulo Gallegos “UNERG”

San Juan de los morros – Edo-Guárico.

Facilitador(a): Bachilleres: Virginia Castellano Zonny Garcia 22.041.443

Carlos Perez 20.884.416

Jesus Richards 24.183.725

Joneikel Solorzano 21.203.360

Zioreyni ramos 20.336.850

Elealy Pumero 17.512.676

Carmen Galindo 22.116.639

Luis Valeri 20.330.026

Sección: 01

San Juan de los Morros 06 de noviembre de 2012

Page 2: Trabajo maquina turnin y von neumann

La máquina de Von Neumann

 es un concepto teórico formulado por el matemático húngaro  - estadounidense John Von Neumann.

Supóngase a un determinado problema simple, repetitivo y prolongado en el tiempo: por ejemplo, la extracción de mineral de hierro en la superficie de Marte.

Una solución posible es enviar máquinas robotizadas que, de forma autónoma, extraigan el mineral y lo conviertan en lingotes de hierro, bien para su envío a la Tierra, bien para su uso por colonias locales. Si una máquina extrae n toneladas en un determinado período de tiempo (ciclo), en m ciclos se tendrá m x n toneladas.

Supóngase ahora un segundo tipo de máquina: una máquina que, además de producir lingotes de hierro, los trabaja para autorreplicarse, construyendo una máquina igual a ella misma. El rendimiento será menor que el de la primera máquina, pues parte del hierro lo utiliza en producir la segunda máquina, pero al cabo de un tiempo (generación), no se tendrá una sino dos máquinas trabajando. Tras dos generaciones se tendrá cuatro máquinas, tras tres generaciones ocho máquinas, etcétera. Se trata de una población que crece de forma exponencial.

Así, aunque el rendimiento sea menor, la producción tenderá a crecer hasta superar la de la primera máquina. Como ejemplo, tras diez generaciones habrá más de mil máquinas de Von Neumann (exactamente 1.024 = 210), de manera que, aunque su rendimiento fuera del 5% de la primera máquina, la producción total sería más de 50 veces mayor.

Este concepto no es solamente teórico: los virus informáticos son máquinas de Von Neumann. Ante el ingente trabajo de infectar el mayor número posible de ordenadores, los virus se autorreplican pasando de ordenador a ordenador, aumentando su población de forma exponencial e infectando así millones de ordenadores en pocas horas.

Sin embargo, no sólo hay aplicaciones negativas de este concepto. Los autómatas celulares tienen alto rango de aplicaciones en la ciencia, modelando y simulando gran cantidad de sistemas físicos, como fluidos, flujo de tráfico, etc.

Diagrama de la arquitectura Von Neumann.

La arquitectura de von Neumann es una familia de arquitecturas de computadoras que

utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los

datos (a diferencia de la arquitectura Harvard).

La mayoría de computadoras modernas están basadas en esta arquitectura, aunque pueden

incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de

dispositivos externos como ratón, teclado, etc).

Page 3: Trabajo maquina turnin y von neumann

Origen

El nacimiento u origen de la arquitectura Von Neumann surge a raíz de una colaboración en el proyecto ENIAC del matemático de origen húngaro, John Von Neumann. Este trabajaba en 1945 en el Laboratorio Nacional Los Álamos cuando se encontró con uno de los constructores de la ENIAC. Compañero de Albert Einstein, Kurt Gödel y Alan Turing en Princeton, Von Neumann se interesó por el problema de la necesidad de recablear la máquina para cada nueva tarea.

En 1949 había encontrado y desarrollado la solución a este problema, consistente en poner la información sobre las operaciones a realizar en la misma memoria utilizada para los datos, escribiéndola de la misma forma, es decir en código binario. Su "EDVAC" fue el modelo de las computadoras de este tipo construidas a continuación. Se habla desde entonces de la arquitectura de Von Neumann, aunque también diseñó otras formas de construcción. El primer computador comercial construido en esta forma fue el UNIVAC I, fabricado en 1951 por la Sperry-Rand Corporation y comprado por la Oficina del Censo de Estados Unidos.

Organizacion

Los ordenadores con esta arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.

Un ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente:

1. Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.

2. Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.

3. Decodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.

4. Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores.

Page 4: Trabajo maquina turnin y von neumann

Origen de termino Arquitectura Von Neumann

El término arquitectura de von Neumann se acuñó a partir del memorando First Draft of a Report on the EDVAC (1945) escrito por el conocido matemático John von Neumann en el que se proponía el concepto de programa almacenado. Dicho documento fue redactado en vistas a la construcción del sucesor de la computadora ENIAC y su contenido fue desarrollado por John Presper Eckert, John William Mauchly, Arthur Burks y otros durante varios meses antes de que von Neumann redactara el borrador del informe. Es por ello que otros tecnólogos como David A. Patterson y John L. Hennessy promueven la sustitución de este término por el de arquitectura Eckert-Mauchly.

Desarrollo del concepto del programa de desarrollo

El matemático Alan Turing, quien había sido alertado de un problema de lógica matemática por las lecciones de Max Newman en laUniversidad de Cambridge, escribió un artículo en 1936 titulado “On Computable Numbers, with an Application to the Entscheidungs problem”, que fue publicado en los “Proceedings of the London Mathematical Society”. En él describía una máquina hipotética que llamó “máquina computadora universal”, y que ahora es conocida como la “Máquina de Turing”. La máquina hipotética tenía un almacenamiento infinito (memoria en la terminología actual) que contenía tanto las instrucciones como los datos. El ingeniero alemánKonrad Zuse escribió de forma independiente sobre este concepto en 1936. Von Neumann conoció a Turing cuando ejercía de profesor sustituto en Cambridge en 1935 y también durante el año que Turing pasó en la Universidad de Princeton en 1936-37. Cuándo supo del artículo de 1936 de Turing no está claro.

Independientemente, J. Presper Eckert y John Mauchly, quienes estaban desarrollando el ENIAC en la Escuela Moore de Ingeniería Eléctrica en la Universidad de Pennsylvania, escribieron sobre el concepto de “programa almacenado” en diciembre de 1943. Mientras diseñaba una nueva máquina, EDVAC, Eckert escribió en enero de 1944 que se almacenarían datos y programas en un nuevo dispositivo de memoria direccionable, una línea de retardo de mercurio. Esta fue la primera vez que se propuso la construcción de un programa almacenado práctico. Por esas fechas, no tenían conocimiento del trabajo de Turing.

Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los Alamos, el cual requería ingentes cantidades de cálculos. Esto le condujo al proyecto ENIAC, en verano de 1944. Allí se incorporó a los debates sobre el diseño de un ordenador con programas almacenados, el EDVAC. Como parte del grupo, se ofreció voluntario a escribir una descripción de él. El término “von Neumann architecture” surgió del primer artículo de von Neumann: “First Draft of a Report on the EDVAC”, fechado el 30 de junio de 1945, el cual incluía ideas de Eckert y Mauchly. Estaba inconcluso cuando

Page 5: Trabajo maquina turnin y von neumann

su compañero Herman Goldstine lo hizo circular con solo el nombre de von Neumann en él, para consternación de Eckert y Mauchly. El artículo fue leído por docenas de compañero de trabajo de von Neumann en América y Europa, e influenció la siguiente hornada de diseños de computadoras.

Posteriormente, Turing desarrolló un informe técnico detallado, “Proposed Electronic Calculator”, describiendo el Motor de Computación Automático (Automatic Computing Engine, ACE). Presentó éste al Laboratorio Nacional de Física Británico el 19 de febrero de 1946. A pesar de que Turing sabía por su experiencia de guerra en el Parque Bletchley que su propuesta era factible, el secretismo mantenido durante muchas décadas acerca de los ordenadores Colossus le impidió manifestarlo. Varias implementaciones exitosas del diseño ACE fueron producidas.

Los trabajos de ambos, von Neumann y Turing, describían ordenadores de programas almacenados, pero al ser anterior el artículo de von Neumann, consiguió mayor circulación y repercusión, así que la arquitectura de computadoras que esbozó adquirió el nombre de “arquitectura von Neumann”.

En 1945, el profesor Neumann que estaba trabajando en la escuela Moore de ingeniería de Filadelfia, donde el ENIAC había sido construido, emitió en nombre de un grupo de sus compañeros de trabajo un informe sobre el diseño lógico de los ordenadores digitales. El informe contenía una propuesta muy detallada para el diseño de la máquina que desde entonces se conoce como el EDVAC (electronic discrete variable automatic computer). Esta máquina ha sido recientemente completada en América, pero el informe de Von Neumman inspiró la construcción de la EDSAC (electronic delay-storage automatic calculator) en Cambridge.

En 1947, Burks, Goldstine y Von Neumann, publicaron un informe en el que describen el diseño de otro tipo de máquina (una máquina paralela en este momento) que debería ser muy rápida, capaz de hacer 20.000 operaciones por segundo. Señalaron que el problema persistente en la construcción de tal máquina estaba en el desarrollo de una memoria adecuada, todos los contenidos de los cuales fueron instantáneamente accesibles, y al principio se sugirió el uso de un tubo especial -llamado Selectron- que había sido inventado por los laboratorios de Princeton de la RCA. Estos tubos son caros y difíciles para fabricar, así Von Neumman decidió construir una máquina basada en la memoria de Williams. Esa máquina que se completó en junio de 1952 en Princeton se ha conocido comoMANIAC I. El diseño de esta máquina que ha sido inspirado de una docena o más de máquinas que están actualmente en construcción en América.

Cálculo automático en el laboratorio nacional de física. Uno de los equipos digitales más modernos que incorpora novedades y mejoras en la técnica de la computación electrónica ha sido demostrado en el laboratorio nacional de física, Teddington, donde ha sido diseñado y construido por un pequeño equipo de matemáticos e ingenieros electrónicos investigadores sobre el personal del laboratorio, asistido por ingenieros de producción de la

Page 6: Trabajo maquina turnin y von neumann

compañía eléctrica inglesa. El equipo construido hasta ahora en el laboratorio es solo el modelo piloto de muchas instalaciones muy grandes que se va a conocer como el motor de cálculo automático, pero aunque es relativamente pequeño en volumen y contiene solo 800 válvulas termoiónicas, es una máquina de cálculo muy rápido y versátil. Los conceptos básicos y principios abstractos de la computación por una máquina fueron formuladas por el Dr A. M. Turing, pero el trabajo en dichas máquinas en el Reino Unido se retrasó por la guerra. En 1945, se hizo una revisión al problema en el laboratorio nacional de Física por el profesor J. R. Womersley. Se le adjuntó al Dr. Turing un pequeño equipo de especialistas, y en 1947 la planificación preliminaria era lo suficientemente avanzada para justificar el establecimiento del grupo especial ya mencionado. En abril de 1948, estos últimos se convirtieron en la sección de electrónica del laboratorio, bajo el cargo del Sr. F. M. Colebrook.

Descripcion del concepto de programa almacenado

Los primeros computadores constaban de programas almacenados. Algunos muy simples siguen utilizando este diseño, por ejemplo, una calculadora es un computador que tiene un programa almacenado. Puede hacer operaciones matemáticas simples, pero no puede ser usada como procesador de textos o videoconsola.

Cambiar el programa que contenían los dispositivos que usaban esta tecnología requería reescribir, reestructurar y/o rediseñar el dispositivo. Los primeros computadores no estaban lo suficiente programados cuando fueron diseñados. La tarea de reprogramar, cuando era posible, era un proceso laborioso, empezando con notas en papel y siguiendo con detallados diseños de ingeniería. Y tras esto llegaba el a veces complicado proceso de reescritura y reestructuramiento físico del computador.

El concepto de programa almacenado cambió por completo, se pensó en un computador que en su diseño contenía un conjunto de instrucciones que podían ser almacenadas en memoria, o sea, un programa que detallaba la computación del mismo.

El diseño de un programa almacenado también daba la posibilidad a los programas de ser modificados ellos mismos durante su ejecución. Uno de los primeros motivos para su creación fue la necesidad de un programa que incrementara o modificara las direcciones de memoria de algunas instrucciones, las cuales tenían que ser hechas manualmente en los primeros diseños.

Esto se volvió menos importante cuando el índice de registros y el direccionamiento indirecto se convirtieron en algo habitual en laarquitectura de computadores. El código automodificable fue en gran parte ganando posiciones.

A gran escala, la habilidad de tratar instrucciones como datos es lo que hacen los ensambladores, compiladores y otras herramientas de programación automáticas. Se pueden "escribir programas para escribir programas".

Page 7: Trabajo maquina turnin y von neumann

Existen inconvenientes en el diseño de Von Neumann. Las modificaciones en los programas podía ser algo perjudicial, por accidente o por diseño. En algunos simples diseños de computador con programas almacenados, un mal funcionamiento del programa puede dañar el computador. Otros programas, o el sistema operativo, posiblemente puedan llevar a un daño total en el ordenador. La protección de la memoria y otras formas de control de acceso pueden ayudar a proteger en contra de modificaciones accidentales y/o maliciosas de programas.

Primeros ordenadores basados en arquitecturas Von Neumann

La primera saga se basaba en un diseño que fue utilizado por muchas universidades y empresas para construir sus equipos. Entre estos, sólo ILLIAC y ORDVAC tenían un conjunto de instrucciones compatible.

ORDVAC (U-Illinois) en Aberdeen Proving Ground, Maryland (completado en noviembre de 1951)

IAS machine en Princeton University (Ene 1952)

MANIAC I en Laboratorio Científico Los Alamos(Mar 1952)

ILLIAC en la Universidad de Illinois, (Sept 1952)

AVIDAC en Laboratorios Argonne National (1953)

ORACLE en Laboratorio Nacional de Oak Ridge (Jun 1953)

JOHNNIAC en RAND Corporation (Ene 1954)

BESK en Estocolmo (1953)

BESM-1 en Moscú (1952)

DASK en Dinamarca (1955)

PERM en Munich (1956?)

SILLIAC en Sydney (1956)

WEIZAC en Rehovoth (1955)

Primeros ordenadores de programa almacenado

SSEM

ENIAC

BINAC

Manchester Mark I

EDSAC

EDVAC

CSIRAC

SEAC

Page 8: Trabajo maquina turnin y von neumann

Pilot ACE

SWAC

Computadora Whirlwind

UNIVAC 1101

Maquina de turing

Una máquina de Turing es un dispositivo que manipula símbolos sobre una tira de cinta de

acuerdo a una tabla de reglas. A pesar de su simplicidad, una máquina de Turing puede ser

adaptada para simular la lógica de cualquier algoritmo de computador y es particularmente

útil en la explicación de las funciones de un CPU dentro de un computador.

La máquina de Turing fue descrita por Alan Turing como una «máquina automática» en

1936 en la revista Proceedings of the London Mathematical Society, La máquina de Turing

no está diseñada como una tecnología de computación práctica, sino como un dispositivo

hipotético que representa unamáquina de computación. Las máquinas de Turing ayudan a

los científicos a entender los límites del cálculo mecánico.

Turing dio una definición sucinta del experimento en su ensayo de 1948, «Máquinas

inteligentes». Refiriéndose a su publicación de 1936, Turing escribió que la máquina de

Turing, aquí llamada una máquina de computación lógica, consistía en:

una ilimitada capacidad de memoria obtenida en la forma de una cinta infinita marcada con

cuadrados, en cada uno de los cuales podría imprimirse un símbolo. En cualquier momento

hay un símbolo en la máquina; llamado el símbolo leído. La máquina puede alterar el

símbolo leído y su comportamiento está en parte determinado por ese símbolo, pero los

Page 9: Trabajo maquina turnin y von neumann

símbolos en otros lugares de la cinta no afectan el comportamiento de la máquina. Sin

embargo, la cinta se puede mover hacia adelante y hacia atrás a través de la máquina,

siendo esto una de las operaciones elementales de la máquina. Por lo tanto cualquier

símbolo en la cinta puede tener finalmente una oportunidad.

Una máquina de Turing que es capaz de simular cualquier otra máquina de Turing es

llamada una máquina universal de Turing (UTM, o simplemente una máquina universal).

Una definición más matemáticamente orientada, con una similar naturaleza "universal", fue

presentada por Alonzo Church, cuyo trabajo sobre el cálculo lambda se entrelaza con el de

Turing en una formal teoría de la computación conocida como la tesis de Church-Turing.

La tesis señala que las máquinas de Turing de hecho capturan la noción informal de un

método eficaz en la lógica y las matemáticas y proporcionan una precisa definición de un

algoritmo o 'procedimiento mecánico'.

Estudiando sus propiedades abstractas, la máquina de Turing produce muchas perspectivas

en las ciencias de la computación y en lateoría de la complejida

Historia

Alan Turing introdujo el concepto de máquina de Turing en el trabajo On computable

numbers, with an application to theEntscheidungsproblem, publicado por la Sociedad

Matemática de Londres en 1936, en el que se estudiaba la cuestión planteada porDavid

Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que

pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o

no. Turing ideó un modelo formal de computador, la máquina de Turing, y demostró que

existían problemas que una máquina no podía resolver.

Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un

computador digital sea capaz de realizar.

Mediante este modelo teórico y el análisis de la complejidad de los algoritmos, fue posible

la categorización de problemas computacionales de acuerdo a su comportamiento,

apareciendo así, el conjunto de problemas denominados P y NP, cuyas soluciones pueden

encontrarse en tiempo polinómico por máquinas de Turing deterministas y no

deterministas, respectivamente.

Precisamente, la tesis de Church-Turing formulada por Alan Turing y Alonzo Church, de

forma independiente a mediados del siglo XXcaracteriza la noción informal

de computabilidad con la computación mediante una máquina de Turing.

Page 10: Trabajo maquina turnin y von neumann

La idea subyacente es el concepto de que una máquina de Turing puede verse como un

autómata ejecutando un procedimiento efectivo definido formalmente, donde el espacio de

memoria de trabajo es ilimitado, pero en un momento determinado sólo una parte finita es

accesible.

Descripcion informal

Aquí se muestra el estado interno (q1) dentro del cabezal, y la ilustración describe la cinta

como siendo infinita y lledada previamente con '0', el símbolo sirviendo como blanco. El

estado completo del sistema (su configuración) consiste del estado interno, el contenido de

las casillas sombreadas incluyendo el blanco leído el cabezal ("11B") y la posición del

cabezal. (Dibujo después de Minsky (1967) p. 121).

Animación de la máquina de Turing

La máquina de Turing modela matemáticamente a una máquina que opera mecánicamente

sobre una cinta. En esta cinta hay símbolos que la máquina puede leer y escribir, uno a la

vez, usando un cabezal lector/escritor de cinta. La operación está completamente

determinada por un conjunto finito de instrucciones elementales como "en el estado 42, si

el símbolo visto es 0, escribe un 1; Si el símbolo visto es 1, cambia al estado 17; en el

estado 17, si el símbolo visto es 0, escribe un 1 y cambia al estado 6; etc". En el artículo

original ("Sobre números computables con una aplicación alEntscheidungsproblem"),

Turing no imagina un mecanismo, sino una persona a la que él llama la "computadora",

quien ejecuta servilmente estas reglas mecánicas deterministas (o como Turing pone, "de

una manera desganada").

Más precisamente, una máquina de Turing consta de:

1. Una cinta que se divide en celdas, una al lado de la otra. Cada celda contiene un

símbolo de algún alfabeto finito. El alfabeto contiene un símbolo especial llamado

blanco (aquí escrito como 'B') y uno o más símbolos adicionales. La cinta se supone que

es arbitrariamente extensible hacia la izquierda y hacia la derecha, es decir, la máquina

de Turing siempre es suministrada con tanta cinta como necesite para su computación.

Las celdas que no se hayan escrito previamente se asumen que están rellenas con el

símbolo blanco. En algunos modelos la cinta tiene un extremo izquierdo marcado con

un símbolo especial; la cinta se extiende o es indefinidamente extensible hacia la

derecha.

Page 11: Trabajo maquina turnin y von neumann

2. Un cabezal que puede leer y escribir símbolos en la cinta y mover la cinta a la izquierda

y a la derecha una (y sólo una) celda a la vez. En algunos modelos el cabezal se mueve

y la cinta es estacionaria.

3. Un registro de estado que almacena el estado de la máquina de Turing, uno de los

estados finitos. Hay un especial estado inicial con que el registro de estado es iniciado.

Turing escribe que estos estados reemplazan el "estado de la mente" en que

ordinariamente estaría una persona realizando cálculos.

4. Una tabla finita de instrucciones (llamada ocasionalmente como tabla de

acción o función de transición). Las instrucciones son usualmente 5-tuplas:

qiaj→qi1aj1dk, (a veces 4-tuplas), que, dado el estado (qi) la máquina está actualmente

en y el símbolo(aj) se está leyendo en la cinta (el símbolo actualmente debajo del

cabezal) le indica a la máquina hacer lo siguiente en secuencia (para los modelos de 5-

tupla):

o Borra o escribe un símbolo (reemplazando aj con aj1), y entonces

o Mueve el cabezal (que es descrito por dk y puede tener los valores: 'L' para un

paso a la izquierda, o 'R' para uno paso a la derecha, o 'N' para permanecer en el

mismo lugar) y luego

o Asume el mismo o un nuevo estado como prescrito (ve al estado qi1).

En los modelos de 4-tupla, son especificadas como instrucciones separadas: borrar o

escribir un símbolo (aj1) y mover el cabezal a la izquierda o la derecha (dk).

Específicamente, la tabla indica a la máquina: (ia) borrar o escribir un símbolo o (ib) mover

el cabezal a la izquierda o a la derecha, y luego (ii) asumir el mismo o un nuevo estado,

pero no las dos acciones (ia) y (ib) en la misma instrucción. En algunos modelos, si no hay

ninguna entrada en la tabla para la actual combinación de símbolo y estado, la máquina se

detendrá; otros modelos requieren que estén llenas todas las entradas.

Note que cada parte de la máquina — su estado y colecciones de símbolos — y sus

acciones — imprimir, borrar, movimiento de la cinta — es finito, discreto y distinguible; es

la cantidad potencialmente ilimitada de cinta lo que le da una cantidad ilimitada de espacio

de almacenamiento.

Page 12: Trabajo maquina turnin y von neumann

Definicion formal

Una máquina de Turing es un modelo computacional que realiza una lectura/escritura de

manera automática sobre una entradallamada cinta, generando una salida en esta misma.

Este modelo está formado por un alfabeto de entrada y uno de salida, un símbolo especial

llamado blanco (normalmente b,  o 0), un conjunto de estados finitos y un conjunto de

transiciones entre dichos estados. Su funcionamiento se basa en una función de transición,

que recibe un estado inicial y una cadena de caracteres (la cinta, la cual puede ser infinita)

pertenecientes al alfabeto de entrada. La máquina va leyendo una celda de la cinta en cada

paso, borrando el símbolo en el que se encuentra posicionado su cabezal y escribiendo un

nuevo símbolo perteneciente al alfabeto de salida, para luego desplazar el cabezal a la

izquierda o a la derecha (solo una celda a la vez). Esto se repite según se indique en

la función de transición, para finalmente detenerse en un estado final o de aceptación,

representando así la salida.

Una máquina de Turing con una sola cinta puede definirse como una 7-tupla

donde:

 es un conjunto finito de estados.

 es un conjunto finito de símbolos distinto del espacio en blanco, denominado alfabeto

de máquina o de entrada.

 es un conjunto finito de símbolos de cinta, denominado alfabeto de cinta ().

 es el estado inicial.

 es un símbolo denominado blanco, y es el único símbolo que se puede repetir un

número infinito de veces.

 es el conjunto de estados finales de aceptación.

 es una función parcial denominada función de transición, donde  es un movimiento a la

izquierda y  es el movimiento a la derecha.

Existen en la literatura un abundante número de definiciones alternativas, pero todas

ellas tienen el mismo poder computacional, por ejemplo se puede añadir el

símbolo  como símbolo de "no movimiento" en un paso de cómputo.

Page 13: Trabajo maquina turnin y von neumann

Funcionamiento

La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el

cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las

operaciones que se pueden realizar en esta máquina se limitan a:

Mover el cabezal lector/escritor hacia la derecha.

Visualización de una máquina de Turing, en la que se ve el cabezal y la cinta

que se lee.

Mover el cabezal lector/escritor hacia la izquierda.

El cómputo se determina a partir de una tabla de estados de la forma:

(estado, valor)  (nuevo estado, nuevo valor, dirección)

Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la

cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a

escribir en la cinta.

La memoria es la cinta de la máquina que se divide en espacios de trabajo denominados

celdas, donde se pueden escribir y leer símbolos. Inicialmente todas las celdas contienen un

símbolo especial denominado "blanco". Las instrucciones que determinan el

funcionamiento de la máquina tienen la forma, "si estamos en el estado x leyendo la

posición y, donde hay escrito el símbolo z, entonces este símbolo debe ser reemplazado por

este otro símbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha".

La máquina de Turing puede considerarse como un autómata capaz de reconocer lenguajes

formales. En ese sentido, es capaz de reconocer los lenguajes recursivamente enumerables,

de acuerdo a la jerarquía de Chomsky. Su potencia es, por tanto, superior a otros tipos de

autómatas, como el autómata finito, o el autómata con pila, o igual a otros modelos con la

misma potencia computacional.

Representacion como diagrama de estado

Las maquinas de Turing pueden representarse mediante grafos particulares, también

llamados diagramas de estados finitos, de la siguiente manera:

Esta máquina de Turing está definida sobre el alfabeto , posee el conjunto de estados , con

las transiciones que se pueden ver. Su estado inicial es  y el estado final es , el lenguaje de

salida

 siendo  el símbolo denominado "blanco". Esta máquina reconoce la expresión regular de la

forma  con .

Page 14: Trabajo maquina turnin y von neumann

Los estados se representan como vértices, etiquetados con su nombre en el interior.

Una transición desde un estado a otro, se representa mediante una arista dirigida que une

a estos vértices, y esta rotulada por símbolo que lee el cabezal/símbolo que escribirá el

cabezal, movimiento del cabezal.

El estado inicial se caracteriza por tener una arista que llega a él y que no proviene de

ningún otro vértice.

El o los estados finales se representan mediante vértices que están encerrados a su vez

por otra circunferencia.

maquina de turing universal

Una máquina de Turing computa una determinada función parcial de carácter definido y unívoca, definida sobre las secuencias de posibles cadenas de símbolos de su alfabeto. En este sentido se puede considerar como equivalente a un programa de ordenador, o a un algoritmo. Sin embargo es posible realizar una codificación de la tabla que representa a una máquina de Turing, a su vez, como una secuencia de símbolos en un determinado alfabeto; por ello, podemos construir una máquina de Turing que acepte como entrada la tabla que representa a otra máquina de Turing, y, de esta manera, simule su comportamiento.

En 1947, Turing indicó:

Se puede demostrar que es posible construir una máquina especial de este tipo que pueda

realizar el trabajo de todas las demás. Esta máquina especial puede ser denominada

máquina universal.

Con esta codificación de tablas como cadenas, se abre la posibilidad de que unas máquinas de Turing se comporten como otras máquinas de Turing. Sin embargo, muchas de sus posibilidades son indecidibles, pues no admiten una solución algorítmica. Por ejemplo, un problema interesante es determinar si una máquina de Turing cualquiera se parará en un tiempo finito sobre una determinada entrada; problema conocido como problema de la parada, y que Turing demostró que era indecidible. En general, se puede demostrar que cualquier cuestión no trivial sobre el comportamiento o la salida de una máquina de Turing es un problema indecidible.

El concepto de Máquina de Turing universal está relacionado con el de un sistema operativo básico, pues puede ejecutar cualquier instrucción computable sobre él.

Page 15: Trabajo maquina turnin y von neumann

Maquina virtual

VirtualBox

En informática una máquina virtual es un software que simula a una computadora y puede

ejecutar programas como si fuese una computadora real. Este software en un principio fue

definido como "un duplicado eficiente y aislado de una máquina física". La acepción del

término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia

directa con ningún hardware real.

Una característica esencial de las máquinas virtuales es que los procesos que ejecutan

están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no

pueden escaparse de esta "computadora virtual".

Uno de los usos domésticos más extendidos de las máquinas virtuales esejecutar sistemas

operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que

queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac

OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin

miedo a que se desconfigure el sistema operativo primario.

Page 16: Trabajo maquina turnin y von neumann

Tipos de maquinas virtuales

Funcionamiento de la máquina virtual de Java, una de las máquinas virtuales de proceso

más populares.

Funcionamiento de VMWare, una de las máquinas virtuales de sistema más populares.

Las máquinas virtuales se pueden clasificar en dos grandes categorías según su

funcionalidad y su grado de equivalencia a una verdadera máquina.

Máquinas virtuales de sistema (en inglés System Virtual Machine)

Máquinas virtuales de proceso (en inglés Process Virtual Machine)

Page 17: Trabajo maquina turnin y von neumann

Maquinas virtuales de sistema

Las máquinas virtuales de sistema, también llamadas máquinas virtuales de hardware,

permiten a la máquina física subyacente multiplicarse entre varias máquinas virtuales, cada

una ejecutando su propio sistema operativo. A la capa de software que permite la

virtualización se la llama monitor de máquina virtual o hypervisor. Un monitor de máquina

virtual puede ejecutarse o bien directamente sobre el hardware o bien sobre un sistema

operativo ("host operating system").

Aplicaciones de las máquinas virtuales de sistema

Varios sistemas operativos distintos pueden coexistir sobre la misma computadora, en

sólido aislamiento el uno del otro, por ejemplo para probar un sistema operativo nuevo

sin necesidad de instalarlo directamente.

La máquina virtual puede proporcionar una arquitectura de instrucciones(ISA]) que sea

algo distinta de la verdadera máquina. Es decir, podemos simular hardware.

Varias máquinas virtuales (cada una con su propio sistema operativo llamado sistema

operativo "invitado" o "guest"), pueden ser utilizadas paraconsolidar servidores. Esto

permite que servicios que normalmente se tengan que ejecutar en computadoras

distintas para evitar interferencias, se puedan ejecutar en la misma máquina de manera

completamente aislada y compartiendo los recursos de una única computadora. La

consolidación de servidores a menudo contribuye a reducir el coste total de las

instalaciones necesarias para mantener los servicios, dado que permiten ahorrar en

hardware.

La virtualización es una excelente opción hoy día, ya que las máquinas actuales

(Laptops, desktops, servidores) en la mayoría de los casos están siendo "sub-utilizados"

(gran capacidad de disco duro, memoria RAM, etc.), llegando a un uso de entre 30% a

60% de su capacidad. Al virtualizar, la necesidad de nuevas máquinas en una ya

existente permite un ahorro considerable de los costos asociados (energía,

mantenimiento, espacio, etc).

Máquinas virtuales de proceso

Una máquina virtual de proceso, a veces llamada "máquina virtual de aplicación", se

ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo

proceso. La máquina se inicia automáticamente cuando se lanza el proceso que se desea

Page 18: Trabajo maquina turnin y von neumann

ejecutar y se detiene para cuando éste finaliza. Su objetivo es el de proporcionar un

entorno de ejecución independiente de la plataforma de hardware y del sistema

operativo, que oculte los detalles de la plataforma subyacente y permita que un

programa se ejecute siempre de la misma forma sobre cualquier plataforma.

El ejemplo más conocido actualmente de este tipo de máquina virtual es la máquina

virtual de Java. Otra máquina virtual muy conocida es la del

entorno .Net de Microsoft que se llama "Common Language Runtime".

Emulación del hardware subyacente (ejecución nativa)

Esta técnica se suele llamar virtualización completa (full virtualization) del hardware, y se

puede implementar usando un hypervisor de Tipo 1 o de Tipo 2:

el tipo 1 se ejecuta directamente sobre el hardware.

el tipo 2 se ejecuta sobre otro sistema operativo.

Cada máquina virtual puede ejecutar cualquier sistema operativo soportado por el hardware

subyacente. Así los usuarios pueden ejecutar dos o más sistemas operativos distintos

simultáneamente en computadoras "privadas" virtuales.

El sistema pionero que utilizó este concepto fue la CP-40, la primera versión (1967) de

laCP/CMS de IBM (1967-1972) y el precursor de la familia VM de IBM (de 1972 en

adelante). Con la arquitectura VM, la mayor parte de usuarios controlan un sistema

operativo monousuario relativamente simple llamado CMS que se ejecuta en la máquina

virtual VM.

Actualmente tanto Intel como AMD han introducido prestaciones a sus

procesadores x86para permitir la virtualización de hardware.

Emulación de un sistema no nativo

Las máquinas virtuales también pueden actuar como emuladores de hardware, permitiendo

que aplicaciones y sistemas operativos concebidos para otras arquitecturas de procesador se

puedan ejecutar sobre un hardware que en teoría no soportan.

Algunas máquinas virtuales emulan hardware que sólo existe como una especificación. Por

ejemplo:

La máquina virtual P-Code que permitía a los programadores de Pascal crear

aplicaciones que se ejecutasen sobre cualquier computadora con esta máquina virtual

correctamente instalada.

La máquina virtual de Java.

Page 19: Trabajo maquina turnin y von neumann

La máquina virtual del entorno .NET.

Open Firmware

Esta técnica permite que cualquier computadora pueda ejecutar software escrito para la

máquina virtual. Sólo la máquina virtual en sí misma debe ser portada a cada una de las

plataformas de hardware.

Virtualización a nivel de sistema operativo

Esta técnica consiste en dividir una computadora en varios compartimentos independientes

de manera que en cada compartimento podamos instalar un servidor. A estos

compartimentos se los llama "entornos virtuales". Desde el punto de vista del usuario, el

sistema en su conjunto actúa como si realmente existiesen varios servidores ejecutándose

en varias máquinas distintas. Dos ejemplos son las zonas de Solaris (Solaris Zones) y la

técnica de Micro Partioning de AIX.