¿Qué es la arquitectura Von Neumann?
Este describe una arquitectura de diseño para un computador digital electrónico con partes que constan de una unidad de procesamiento que contiene una unidad aritmético lógica y registros del procesador, una unidad de control que contiene un registro de instrucciones y un contador de programa, una memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de entrada y salida. El significado ha evolucionado hasta ser cualquier computador de programa almacenado en el cual no pueden ocurrir una extracción de instrucción y una operación de datos al mismo tiempo, ya que comparten un bus en común. Esto se conoce como el cuello de botella Von Neumann y muchas veces limita el rendimiento del sistema.
El diseño de una arquitectura Von Neumann es más simple que la arquitectura Harvard más moderna, que también es un sistema de programa almacenado, pero tiene un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma, y otro conjunto de direcciones y buses de datos para ir a buscar instrucciones.
Un computador digital de programa almacenado es uno que mantiene sus instrucciones de programa, así como sus datos, en memoria de acceso aleatorio (RAM) de lectura-escritura. Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados por programas de la década de 1940, como la Colossus y la ENIAC, que fueron programadas ajustando interruptores e insertando parches, conduciendo datos de la ruta y para controlar las señales entre las distintas unidades funcionales. En la gran mayoría de las computadoras modernas, se utiliza la misma memoria tanto para datos como para instrucciones de programa, y la distinción entre Von Neumann vs. Harvard se aplica a la arquitectura de memoria caché, pero no a la memoria principal.
Una máquina de Von Neumann tenia 5 partes básicas: La memoria, la unidad Aritmética lógica, la unidad de control del programa y los equipos de entrada y salida. La memoria constaba de 4096 palabras, cada una con 40 bits (0 o 1). Cada palabra podía contener 2 instrucciones de 20 bits o un número entero de 39 bits y su signo. Las instrucciones tenían 8 bits dedicados a señalar el tiempo de la misma y 12 bits para especificar alguna de las 4096 palabras de la memoria.
Dentro de la unidad aritmética/lógica, el antecedente directo actual CPU, había un registro interno especial de 40 bits llamado acumulador. Una instrucción típica era sumar una palabra de la memoria al acumulador o almacenar este en la memoria.
TIPOS DE ARQUITECTURA.
En 1966 Michael Flynn propuso un mecanismo de clasificación de las computadoras. La taxonomía de Flynn es la manera clásica de organizar las computadoras, y aunque no cubre todas las posibles arquitecturas, proporciona una importante penetración en varias arquitecturas de computadoras. El método de Flynn se basa en el número de instruccciones y de la secuencia de datos que la computadora utiliza para procesar información. Puede haber secuencias de instrucciones sencillas o múltiples y secuencias de datos sencillas o múltiples. Esto da lugar a 4 tipos de computadoras, de las cuales solamente dos son aplicables a las computadoras paralelas.
SISD (Single Instruction Single Data).
Este es el modelo tradicional de computación secuencial donde una unidad de procesamiento recibe una sola secuencia de instrucciones que operan en una secuencia de datos.

Modelo SISD (Single Instruction Single Data).
Ejemplo: Para procesar la suma de N números a1, a2, ... aN, el procesador necesita accesar a memoria N veces consecutivas (para recibir un número). También son ejecutadas en secuencia N-1 adiciones. Es decir los algoritmos para las computadoras SISD no contienen ningún paralelismo, éstas están constituidas de un procesador.
SIMD (Single Instruction Multiple Data).
A diferencia de SISD, en este caso se tienen múltiples procesadores que sincronizadamente ejecutan la misma secuencia de instrucciones, pero en diferentes datos. El tipo de memoria que estos sistemas utilizan es distribuida.

Modelo SIMD(Single Instruction Multiple Data).
Aquí hay N secuencias de datos, una por procesador, así que diferentes datos pueden ser utilizados en cada procesador. Los procesadores operan sincronizadamente y un reloj global se utiliza para asegurar esta operación. Es decir, en cada paso todos lo procesadores ejecutan la misma instrucción, cada uno en diferente dato.
Máquinas con arreglos de procesadores tales como ICL DAP (Distributed Array Processor) y computadoras vectoriales canalizadas como CRAY 1 & 2 y CIBER 205 son de arquitectura SIMD.
Ejemplo: Sumando dos matrices A + B = C. Siendo A y B de orden 2 y teniendo 4 procesadores:
A11 + B11 = C11 A12 + B12 = C12
A21 + B21 = C21 A22 + B22 = C22
La misma instrucción es ejecutada en los 4 procesadores (sumando dos números) y los 4 ejecutan las instrucciones simultáneamente. Esto toma un paso en comparación con cuatro pasos en una máquina secuencial.
MIMD (Multiple Instruction Multiple Data).
Este tipo de computadora es paralela al igual que las SIMD, la diferencia con estos sistemas es que MIMD es asíncrono. No tiene un reloj central. Cada procesador en un sistema MIMD puede ejecutar su propia secuencia de instrucciones y tener sus propios datos. Esta caracteristica es la más general y poderosa de esta clasificación.

Modelo SIMD(Single Instruction Multiple Data).
Se tienen N procesadores, N secuencias de instrucciones y N secuencias de datos. Cada procesador opera bajo el control de una sencuencia de instrucciones, ejecutada por su propia unidad de control, es decir cada procesador es capaz de ejecutar su propio programa con diferentes datos. Esto significa que los procesadores operan asíncronamente, o en terminos simples, pueden estar haciendo diferentes cosas en diferentes datos al mismo tiempo.
Los sistemas MIMD se clasifican en:
Sistemas de Memoria Compartida.
Sistemas de Memoria Distribuida.
Sistemas de Memoria Compartida Distribuida.
Sistemas de Memoria Compartida.
En este tipo de sistemas cada procesador tiene acceso a toda la memoria, es decir hay un espacio de direccionamiento compartido. Se tienen tiempos de acceso a memoria uniformes ya que todos los procesadores se encuentran igualmente comunicados con la memoria principal y las lecturas y escrituras de todos los procesadores tienen exactamente las mismas latencias; y además el acceso a memoria es por medio de un ducto común. En esta configuración, debe asegurarse que los procesadores no tengan acceso simultáneamente a regiones de memoria de una manera en la que pueda occurrir algún error.
Desventajas:
El acceso simultáneo a memoria es un problema.
Poca escabilidad de procesadores, debido a que se puede generar un cuello de botella al incrementar el numero de CPU's.
En computadoras vectoriales como Crays, etc.
Todos los CPUs tienen un camino libre a la memoria. No hay interferencia entre CPUs.
La razón principal por el alto precio de Cray es la memoria.
Ventaja:
La facilidad de la programación. Es mucho más fácil programar en estos sistemas que en sistemas de memoria distribuida.

Las computadoras MIMD con memoria compartida son sistemas conocidos como de multiprocesamiento simétrico (SMP) donde múltiples procesadores comparten un mismo sistema operativo y memoria. Otro término con que se le conoce es máquinas firmemente juntas o de multiprocesadores. Ejemplos son: SGI/Cray Power Challenge, SGI/Cray C90, SGI/Onyx, ENCORE, MULTIMAX, SEQUENT y BALANCE, entre otras.
Sistemas de Memoria Distribuida.
Estos sistemas tienen su propia memoria local. Los procesadores pueden compartir información solamente enviando mensajes, es decir, si un procesador requiere los datos contenidos en la memoria de otro procesador, deberá enviar un mensaje solicitándolos. Esta comunicación se le conoce como Paso de Mensajes.
Ventajas:
La escalabilidad. Las computadoras con sistemas de memoria distribuida son fáciles de escalar, mientras que la demanda de los recursos crece, se puede agregar más memoria y procesadores.
Desventajas:
El acceso remoto a memoria es lento.
La programación puede ser complicada.

Sistemas de Memoria Distribuida.
Las computadoras MIMD de memoria distribuida son conocidas como sistemas de procesamiento en paralelo masivo (MPP) donde múltiples procesadores trabajan en diferentes partes de un programa, usando su propio sistema operativo y memoria. Además se les llama multicomputadoras, máquinas libremente juntas o cluster. Algunos ejemplos de este tipo de máquinas son IBM SP2 y SGI/Cray T3D/T3E.
Sistemas de Memoria Compartida Distribuida.
Es un cluster o una partición de procesadores que tienen acceso a una memoria compartida común pero sin un canal compartido. Esto es, físicamente cada procesador posee su memoria local y se interconecta con otros procesadores por medio de un dispositivo de alta velocidad, y todos ven las memorias de cada uno como un espacio de direcciones globales.
El acceso a la memoria de diferentes clusters se realiza bajo el esquema de Acceso a Memoria No Uniforme (NUMA), la cual toma menos tiempo en accesar a la memoria local de un procesador que accesar a memoria remota de otro procesador.
Ventajas:
Presenta escalabilidad como en los sistemas de memoria distribuida.
Es fácil de programar como en los sistemas de memoria compartida.
No existe el cuello de botella que se puede dar en máquinas de sólo memoria compartida.

Tipos de sistemas operativos
Un Sistema Operativo (S.O.) es un software base que le posibilita al usuario la administración eficaz de los recursos de un ordenador. Además, actúa como nexo entre las aplicaciones, el hardware y el usuario.
Todo sistema operativo tiene cinco funciones:
A) Según la administración de tareas:
– Monotarea: este tipo de sistemas operativos son capaces de manejar un programa o realizar una sola tarea a la vez. Son los más antiguos. Por ejemplo, si el usuario está escaneando, la computadora no responderá a nuevas indicaciones ni comenzará un proceso nuevo.
– Multitarea: esta característica es propia de los S.O. más avanzados y permiten ejecutar varios procesos a la vez, desde uno o varios ordenadores, es decir que los pueden utilizar varios usuarios al mismo tiempo. Esto se puede realizar por medio de sesiones remotas una red o bien, a través de terminales conectadas a una computadora.
B) Según la administración de usuarios:
– Monousuario: Sólo pueden responder a un usuario por vez. De esta manera, cualquier usuario tiene acceso a los datos del sistema. Existe un único usuario que puede realizar cualquier tipo de operación.
– Multiusuario: esta característica es propia de aquellos S.O. en los que varios usuarios pueden acceder a sus servicios y procesamientos al mismo tiempo. De esta manera, satisfacen las necesidades de varios usuarios que estén utilizando los mismos recursos, ya sea memoria, programas, procesador, impresoras, scanners, entre otros.
Windows 3.1: Microsoft vuelve a tomar la iniciativa, y desarrolla un sistema operativo con interfaz gráfica, fácil de usar para el usuario promedio. Así nace Windows, con un sistema de ventanas con archivos identificables gráficamente a través de íconos. El mouse comienza a ser utilizado en la interacción con el sistema, agilizando y facilitando cualquier tipo de tarea.
Windows 95: Microsoft da nuevamente un gran salto y lanza una versión muy mejorada del Windows 3.1 allá por 1995 en pleno auge del mercado de las PCs, y lo llama Windows 95. Con los años, Microsoft fue actualizando este sistema, lanzando Windows 98, Windows Me, Windows XP, Windows 7, Windows 8, hasta llegar al recientemente lanzado Windows 10. Para más información, ver: Tipos de Windows.
Windows NT: Microsoft lanza la versión Windows NT (New Technology) orientada a estaciones de trabajo y servidores de red. Se distribuía en dos versiones, Workstation (para ser usado en estaciones de trabajo) y Server (para montarlo en servidores de redes).
OS/2: Este sistema, fabricado por IBM, intentó reemplazar a DOS como sistema operativo de las PCs. Su versión 1.0 fue lanzada con arquitectura de 16 bits en 1987, actualizada luego en su versión 2.0 a la arquitectura de 32 bits, gracias al procesador Intel 80386. No tuvo una buena recibida en el mercado, al no contar con el apoyo de gran parte de los desarrolladores de software, que se volcaron a la creación de programas para Windows.
Mac OS / Mac OS X. El Mac OS (Macintosh Operating System) es un sistema operativo creado por Apple Inc. y destinado exclusivamente a las computadoras Macintosh comercializadas por la misma compañía. Lanzado por primera vez en 1985, fue evolucionando hasta 2002, año en el que se lanza la versión 10 (conocida como Mac OS X), que cambió su arquitectura y pasó a basarse en UNIX. Es un sistema muy amigable para el usuario, se aprende a usar con bastante rapidez.
Unix: Desarrollado en 1969 por AT&T, se trata de un SO portable, multitarea y multiusuario, que corre en una variada clase de ordenadores (mainframes, PCs, Workstations, supercomputadoras).
- Administrar los recursos.
- Otorgar servicio de soporte y utilidad.
- Suministrar una interfaz al usuario.
- Administrar tareas y también archivos.
Tipos de sistemas operativos
Los sistemas operativos pueden ser clasificados de la siguiente manera:A) Según la administración de tareas:
– Multitarea: esta característica es propia de los S.O. más avanzados y permiten ejecutar varios procesos a la vez, desde uno o varios ordenadores, es decir que los pueden utilizar varios usuarios al mismo tiempo. Esto se puede realizar por medio de sesiones remotas una red o bien, a través de terminales conectadas a una computadora.
B) Según la administración de usuarios:
– Monousuario: Sólo pueden responder a un usuario por vez. De esta manera, cualquier usuario tiene acceso a los datos del sistema. Existe un único usuario que puede realizar cualquier tipo de operación.
– Multiusuario: esta característica es propia de aquellos S.O. en los que varios usuarios pueden acceder a sus servicios y procesamientos al mismo tiempo. De esta manera, satisfacen las necesidades de varios usuarios que estén utilizando los mismos recursos, ya sea memoria, programas, procesador, impresoras, scanners, entre otros.
Lista de sistemas operativos
D.O.S.: Fue el primer sistema desarrollado por Microsoft. Sus siglas corresponden a Sistema Operativo de Disco o Disk Operating System. En sus inicios, DOS ganó rápidamente una alta popularidad en el incipiente mercado de las PCs, allá por los 90. Practicamente todo el software desarrollado para PCs se creaba para funcionar en este S.O.Windows 3.1: Microsoft vuelve a tomar la iniciativa, y desarrolla un sistema operativo con interfaz gráfica, fácil de usar para el usuario promedio. Así nace Windows, con un sistema de ventanas con archivos identificables gráficamente a través de íconos. El mouse comienza a ser utilizado en la interacción con el sistema, agilizando y facilitando cualquier tipo de tarea.
Windows 95: Microsoft da nuevamente un gran salto y lanza una versión muy mejorada del Windows 3.1 allá por 1995 en pleno auge del mercado de las PCs, y lo llama Windows 95. Con los años, Microsoft fue actualizando este sistema, lanzando Windows 98, Windows Me, Windows XP, Windows 7, Windows 8, hasta llegar al recientemente lanzado Windows 10. Para más información, ver: Tipos de Windows.
Windows NT: Microsoft lanza la versión Windows NT (New Technology) orientada a estaciones de trabajo y servidores de red. Se distribuía en dos versiones, Workstation (para ser usado en estaciones de trabajo) y Server (para montarlo en servidores de redes).
OS/2: Este sistema, fabricado por IBM, intentó reemplazar a DOS como sistema operativo de las PCs. Su versión 1.0 fue lanzada con arquitectura de 16 bits en 1987, actualizada luego en su versión 2.0 a la arquitectura de 32 bits, gracias al procesador Intel 80386. No tuvo una buena recibida en el mercado, al no contar con el apoyo de gran parte de los desarrolladores de software, que se volcaron a la creación de programas para Windows.
Mac OS / Mac OS X. El Mac OS (Macintosh Operating System) es un sistema operativo creado por Apple Inc. y destinado exclusivamente a las computadoras Macintosh comercializadas por la misma compañía. Lanzado por primera vez en 1985, fue evolucionando hasta 2002, año en el que se lanza la versión 10 (conocida como Mac OS X), que cambió su arquitectura y pasó a basarse en UNIX. Es un sistema muy amigable para el usuario, se aprende a usar con bastante rapidez.
Unix: Desarrollado en 1969 por AT&T, se trata de un SO portable, multitarea y multiusuario, que corre en una variada clase de ordenadores (mainframes, PCs, Workstations, supercomputadoras).
Fuente: http://www.tiposde.org/informatica/15-tipos-de-sistemas-operativos/#ixzz5DGXxWHPU
La evolución del microprocesador:
El microprocesador surgió de la evolución de distintas tecnologías predecesoras, básicamente de la computación y de la tecnología de semiconductores. El inicio de esta última data de mitad de la década de 1950; estas tecnologías se fusionaron a principios de los años 1970, produciendo el primer microprocesador. Dichas tecnologías iniciaron su desarrollo a partir de la segunda guerra mundial; en este tiempo los científicos desarrollaron computadoras específicas para aplicaciones militares. En la posguerra, a mediados de la década de 1940, la computación digital emprendió un fuerte crecimiento también para propósitos científicos y civiles. La tecnología electrónica avanzó y los científicos hicieron grandes progresos en el diseño de componentes de estado sólido (semiconductores). En 1948 en los laboratorios Bell crearon el transistor.
En los años 1950, aparecieron las primeras computadoras digitales de propósito general. Se fabricaron utilizando tubos al vacío o bulbos como componentes electrónicos activos. Módulos de tubos al vacío componían circuitos lógicos básicos, tales como compuertas y flip-flops. Ensamblándolos en módulos se construyó la computadora electrónica (la lógica de control, circuitos de memoria, etc.). Los tubos de vacío también formaron parte de la construcción de máquinas para la comunicación con las computadoras.
Para la construcción de un circuito sumador simple se requiere de algunas compuertas lógicas. La construcción de una computadora digital precisa numerosos circuitos o dispositivos electrónicos. Un paso trascendental en el diseño de la computadora fue hacer que el dato fuera almacenado en memoria. Y la idea de almacenar programas en memoria para luego ejecutarlo fue también de fundamental importancia (Arquitectura de von Neumann).
La tecnología de los circuitos de estado sólido evolucionó en la década de 1950. El empleo del silicio (Si), de bajo costo y con métodos de producción masiva, hicieron del transistor el componente más usado para el diseño de circuitos electrónicos. Por lo tanto el diseño de la computadora digital se reemplazó del tubo al vacío por el transistor, a finales de la década de 1950.
A principios de la década de 1960, el estado de arte en la construcción de computadoras de estado sólido sufrió un notable avance; surgieron las tecnologías en circuitos digitales como: RTL (Lógica Transistor Resistor), DTL (Lógica Transistor Diodo), TTL (Lógica Transistor Transistor), ECL (Lógica Complementada Emisor).
