lunes, 8 de diciembre de 2008

1.-Arquitectura de una PC bajo el esquema de Von Newman


La arquitectura Von Neumann consta de las siguientes partes e instrucciones, las mismas que deben responder a un determinado esquemas de ejecución. Así una secuencia de órdenes constituirá lo que se llamara programa el cual debe disponer de algún tipo de rutina que permita romper su propia ejecución: 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 arquitectura Von Neumann realiza o emula los siguientes pasos secuencialmente:

1) 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) Descodifica 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.

5) Vuelve al paso N° 1.

VIII. UNIDADES FUNCIONALES.

5.-Memoria virtual.


La Memoria virtual es un concepto que permite al software usar más memoria principal que la que realmente posee el ordenador. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria cache (tanto dentro como fuera del CPU), la memoria física (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es mucho más lento, pero también más grande y barato.

Muchas aplicaciones requieren el acceso a más información (código y datos) que la que se puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su información en disco, moviéndola a la memoria principal cuando sea necesario. Hay varias formas de hacer esto. Una opción es que la aplicación misma sea responsable de decidir qué información será guardada en cada sitio (segmentación), y de traerla y llevarla. La desventaja de esto, además de la dificultad en el diseño e implementación del programa, es que es muy probable que los intereses sobre la memoria de dos o varios programas generen conflictos entre sí: cada programador podría realizar su diseño teniendo en cuenta que es el único programa ejecutándose en el sistema. La alternativa es usar memoria virtual, donde la combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Este método es invisible a los procesos. La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da aproximadamente 4000 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria.

Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el procesador.

4.-Memoria caché.


La memoria caché es una clase de memoria RAM estática (SRAM) de acceso aleatorio y alta velocidad, situada entre el CPU y la RAM; se presenta de forma temporal y automática para el usuario, que proporciona acceso rápido a los datos de uso más frecuente.

La ubicación de la caché entre el microprocesador y la RAM, hace que sea suficientemente rápida para almacenar y transmitir los datos que el microprocesador necesita recibir casi instantáneamente.

La memoria caché es rápida, unas 5 ó 6 veces más que la DRAM (RAM dinámica), por eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 ó 20 veces más que la memoria principal dinámica para la misma cantidad de memoria.

3.2.-Organización de memoria.


Una memoria principal se compone de un conjunto de celdas básicas dotadas de una determinada organización. Cada celda soporta un bit de información. Los bits se agrupan en unidades direccionables denominadas palabras. La longitud de palabra la determina el número de bits que la componen y constituye la resolución de la memoria (mínima cantidad de información direccionable). La longitud de palabra suele oscilar desde 8 bits (byte) hasta 64 bits.

Cada celda básica es un dispositivo físico con dos estados estables (o semi-estables) con capacidad para cambiar el estado (escritura) y determinar su valor (lectura). Aunque en los primeros computadores se utilizaron los materiales magnéticos como soporte de las celdas de memoria principal (memorias de ferritas, de película delgada, etc.) en la actualidad sólo se utilizan los materiales semiconductores.

3.1.-Memoria expandida y extendida.



La memoria expandida fue un método desarrollado alrededor de 1984 que proporcionaba memoria paginada extra a los programas de MS-DOS.

Éstos programas, que corrían en la IBM PC original, y sus sucesores como el IBM XT y el IBM AT, eran típicamente aplicaciones como hojas de cálculo y bases de datos que necesitaban una gran cantidad de memoria para trabajar correctamente.

El IBM PC y el IBM XT tenían una arquitectura de memoria de modo real, que solo permitía a los programas usar 1 megabyte de espacio de dirección, de los cuales solo hasta 640 KB estaba disponible como RAM normal para las aplicaciones. El resto entre 640 KB y 1 megabyte era reservado para periféricos, destacándose la memoria para las tarjetas de vídeo. El IBM AT, con su microprocesador Intel 80286 soportaba un modo protegido lo que le permitía direccionar hasta 16 MB, pero este computador también usaba el MS-DOS, un sistema operativo que no usaba la memoria extendida (por arriba del megabyte) directamente.

La idea detrás de la memoria expandida era usar, también para la memoria del programa, parte de los 384 KB restantes normalmente dedicados a los periféricos. Para poder usar potencialmente mucho más memoria que los 384 KB que el espacio de direccionamiento permitía, fue ideado un esquema conmutación de bancos, donde solamente estarían accesibles a un mismo tiempo, porciones seleccionadas de la memoria adicional. Originalmente, era posible una sola ventana de 64 KB de memoria, más adelante esto fue más flexible. Las aplicaciones tuvieron que ser escritas de una manera específica para tener acceso a la memoria expandida.

En un IBM PC o compatible con un microprocesador 80286 o posterior, la memoria extendida se refiere a la memoria por arriba del primer megabyte de espacio de dirección.

La memoria extendida está solamente disponible en PCs basadas en el Intel 80286 o un procesador más alto. Solamente estos chips pueden accesar más de 1 MB de RAM. En un microprocesador 286 o posterior, en PCs equipados con más que 640 KB de RAM, la memoria adicional por arriba de esos 640 KB es generalmente remapeada por arriba de 1MB, haciendo que toda ella sea disponible a programas corriendo en modo protegido. Incluso sin este remapeo, las máquinas con más de 1 MB de RAM pueden tener acceso a la memoria sobre el 1 MB.

En modo real, la memoria extendida está disponible solamente por medio de EMS, UMA, XMS, o HMA. Solamente las aplicaciones ejecutándose en modo protegido pueden usar directamente la memoria extendida. En este caso, la memoria extendida es proporcionada por un sistema operativo en modo protegido que la supervisa, como Microsoft Windows o Linux. El procesador hace disponible esta memoria a través de la Global Descriptor Table (GDT) (Tabla Descriptor Global) y de una o más Local Descriptor Tables (LDTs) (Tablas de Descriptor Local). La memoria es "protegida" en el sentido que los segmentos de memoria asignados a un descriptor local no pueden ser accesadors por otro programa porque éste utiliza un LDT dfiferente, y los segmentos de memoria asignados a un descriptor global pueden tener sus derechos de acceso restringidos, causando un hardware trap (trampa de hardware), típicamente una violación General protection fault (falla de protección general). Esto evita que los programas corriendo en modo protegido interfieran con la memoria de otros.

Un sistema operativo de modo protegido como Windows puede también correr programas en modo real y proporcionarles memoria expandida. El DOS Protected Mode Interface (Interface DOS de Modo Protegido) es el método prescrito de Microsoft para que un programa de MS-DOS tenga acceso a memoria extendida bajo un ambiente Multitarea.

3.-Mapa de memoria