miércoles, 24 de octubre de 2012

DISCOS DUROS (HENRY)

INTRODUCCION.-


Un disco duro es un dispositivo que permite el almacenamiento y recuperación de grandes cantidades de información. Los discos duros forman el principal elemento de la memoria secundaria de un computador, llamada así en oposición a la memoria principal o memoria RAM (Random Access Memory, memoria de acceso aleatorio).








Tanto los discos duros como la memoria principal son memorias de trabajo (varían su contenido en una sesión con la PC). Sin embargo, presentan importantes diferencias: la memoria principal es volátil (su contenido se borra al apagar el computador ), muy rápida (ya que se trata de componentes electrónicos) pero de capacidad reducida. La memoria secundaria, en cambio, es no volátil, menos rápida (componentes mecánicos) y de gran capacidad. La memoria principal contiene los datos utilizados en cada momento por el computador pero debe recurrir a la memoria secundaria cuando necesite recuperar nuevos datos o almacenar de forma permanente los que hayan variado.

CARACTERISTICAS DE LOS DISCOS.-

PISTAS Y SECTORES:
Los sectores son las unidades mínimas de información que puede leer o escribir un disco duro. Generalmente, cada lado de un disco duro o flexible contiene varias pistas concentricas, numeradas empezando por (00 -> para la pista mas externa). Cada pista esta formateada en sectores de 512 bytes, en donde se almacena la información. Los dispositivos de los discos se hacen funcionar por medio de un controlador que se ocupa de localizar los cabezales de lectura/escritura sobre la superficie del disco para la transferencia de información entre el disco y la memoria RAM de la PC. Por otro lado existe un cabezal para cada superficie del disco. Para cualquier cara del discoduro/fexible, una petición de lectura o escritura hace que el controlador del disco mueva los cabezales (si es necesario), a la pista requerida. Una vez finalizada este procedimiento recién se realiza la operación de lectura o escritura.


CILINDROS: 
El cilindro es el conjunto vertical de todas las pistas con el mismo numero esto en cada cara del disco duro. Por tanto el cilindro cero es el conjunto de pistas numeradas por 0, cilindro uno es el conjunto de pistas numeradas por 1 y asi sucesivamente. Entonces en un disco el cilindro cero consiste de la pista 0 en el lado 1 y la pìsta 0 en el lado 2, etc. Cuando se escribe un archivo el sistema llena todas las pistas de un cilindro y después avanza los cabezales al siguiente cilindro. Una referencia a las caras de un disco, pistas y sectores es por medio de un numero. Los numeros de lado y pista empiezan con cero, pero los sectores pueden ser numerados de una de dos formas:

1. DIRECCION PISTA- CILINDRO: Los números de sector en cada pista inician con 1, asi que el primer sector en el disco tiene la dirección cilindro 0, pista 0, sector 1.
2. NUMERO DE SECTOR RELATIVO: Los sectores pueden ser enumerados de manera relativa al inicio del disco, de modo que el primer sector en el disco esta sobre el cilindro 0, pista 0, y tiene la dirección relativa de sector 0.

GRUPOS: 
Un grupo es un conjunto de sectores que el DOS trata como unidad de espacio de almacenamiento El tamaño de un grupo siempre es potencia de 2 . Por lo general un disco tiene cuatro sectores por grupo (en un disco donde se utiliza un sector por grupo, el sector y grupo son lo mismo). Si un archivo llega a ocupar la frontera de un grupo automáticamente el grupo queda reservado aunque el archivo solo ocupe uno de los cuatro sectores (desperdiciándose por defecto el resto de los sectores).

Un disco con dos sectores por grupo se vería así:
Un disco con cuatro sectores por grupo se vería así:

DIRECCIONAMIENTO DE BLOQUES DE DATOS EN EL DISCO DURO/ DISCOFLEXIBLE

Se refiere a la estructura del soporte físico que le da al usuario, donde: Elemento base es el sector o bloque:

  • Espacio disco duro se expresa en sectores
  • Los sectores son de 512 bytes Diferentes tipos sistemas archivos se apoyan sobre diferentes formas:
  • Cada grupo reagrupa los bloques físicos en bloques lógicos de diferente tamaño

El número total de sectores de un disco duro se puede calcular:




martes, 23 de octubre de 2012

MICROARQUITECURA Y ARQUITECTURA DE COMPUTADORES (HENRY)

MICROARQUITECTURA:

En computación, una microarquitectura es una descripción del circuito eléctrico de una computadora, de la unidad central de proceso o del procesador digital de señal, que es suficiente para describir completamente el funcionamiento del hardware.


En ámbitos académicos, suele emplearse el término "organización de la computadora", mientras que en la industria de la computación suele utilizarse el término microarquitectura. Ambas palabras son sinónimas.
La microarquitectura y la arquitectura de conjunto de instrucciones constituyen la arquitectura de computadora.

 

Microarquitectura de un computador básico


ARQUITECTURA:


La arquitectura de computadoras es el diseño conceptual y fundamental de un sistema de computadoras. Podemos decir que es una descripción fundamental de los requerimientos y las implementaciones de diseño para varias partes de una computadora. “La arquitectura de computadoras se interesa por la estructura y desempeño de los diferentes módulos funcionales de procesamiento del usuario.”   

 

 

TRADEOFFS:


El concepto trade-off tiene difícil denominación en español. Significa gestión de situaciones en que aparecen efectos contrapuestos; pero en computadoras nos referimos al periodo desarrollado de una logística que trata particularmente del ciclo pedido-entrega, servicio al cliente y sistema logístico, tradeoff es un criterio de desempeño, que evalúa a la arquitectura de una determinada compudatdora, con respecto a su tecnología empleada. Los principales aspectos que se toman son los de capacidad y velocidad. 

VENTAJAS:

Al tener un set de instrucciones base, ya no es necesario diseñar un sistema de instrucciones para cada tipo de computador, en cambio solo se realizan mejoras

DESVENTAJAS:

Surgimiento de problemas de intereses de las empresas fabricantes de dispositivos haciendo que el avance tecnológico sea lento. Estancamiento en la creación de nuevas arquitecturas.

 

BIBLIOGRAFIA:

M. Morris Mano (1994), Arquitectura de computadoras 3ra Edicion.

Universidad Catolica de Chile, Aquitectura de computadoras, recuperado de http://www.aaecheve.com/files/7.ArquitecturaComputadorBasico.pdf 

Universidad Jose Antonio Paez, Arquitectura del Power PC, recuperado de http://arquitectura-powerpc.blogspot.com/2008/04/la-arquitectura-de-powerpc.html

 

 

sábado, 20 de octubre de 2012

MICROARQUITECTURA VS ARQUITECTURA (JUMER)


En ingeniería de computación, la microarquitectura también llamada como organización de la computadora, es la manera que una arquitectura del conjunto de instrucciones (ISA) es implementada por el procesador.
La arquitectura de computadora es la combinación del diseño determinado de la micro arquitectura y del conjunto de instrucciones.

Aspectos de la microarquitectura y arquitectura
La trayectoria de datos intubada es el diseño más común de la trayectoria de datos en la microarquitectura de hoy.
La arquitectura entubada permite solapar diferentes instrucciones durante la misma ejecución, siendo algo muy similar a la línea de montaje de una fábrica. El intubado incluye varias etapas fundamentales en diseños de las microarquitecturas,como pueden ser la lectura de la instrucción (fetch), el decodificado de la instrucción, la ejecución, y la escritura (write back) de los resultados.
Las unidades de ejecución son también esenciales para la microarquitectura. Estas unidades incluyen las unidades aritmético lógicas (ALU), las unidades de coma flotante (FPU), las unidades de la lectura/escritura (load/store), la predicción de bifurcación, y SIMD. Estas unidades realizan las operaciones o los cálculos del procesador. La selección del número de unidades de ejecución, su latencia y rendimiento es otra de las tareas centrales del diseño microarquitectónico. El tamaño, latencia, el rendimiento y la conectividad de las memorias dentro del sistema son también decisiones de dicho diseño.
A diferencia del diseño arquitectónico, donde lo que se pretende es lograr un nivel de desempeño óptimo, el diseño microarquitectónico presta una atención más cercana a otras necesidades. Puesto que las decisiones de diseño microarquitectónico afectan directamente a lo que va dentro de un sistema, se debe prestar atención a cosas como:
  1. Ø  Área/coste del chip
  2. Ø  Consumo de energía
  3. Ø  Complejidad de la lógica
  4. Ø  Facilidad de la conectividad
  5. Ø  Facilidad de fabricación
  6. Ø  Facilidad de la depuración
  7. Ø  Facilidad de hacer pruebas


VENTAJAS DE LAS ARQUITECTURAS
Pila: Modelo sencillo para evaluación de expresiones (notación polaca inversa). Instrucciones cortas pueden dar una buena densidad de código.
Acumulador: Instrucciones cortas. Minimiza estados internos de la máquina (unidad de control sencilla).
Registro: Modelo más general para el código de instrucciones parecidas. Automatiza generación de código y la reutilización de operandos. Reduce el tráfico a memoria. Una computadora actualmente tiene como estándar 32 registros. El acceso a los datos es más rápido.

DESVENTAJAS DE LAS ARQUITECTURAS

Pila: A una pila no se puede acceder aleatoriamente. Esta limitación hace difícil generar código eficiente. También dificulta una implementación eficiente, ya que la pila llega a ser un cuello de botella es decir que existe dificultad para la transferencia de datos en su velocidad mk.

Acumulador: Como el acumulador es solamente almacenamiento temporal, el tráfico de memoria es el más alto en esta aproximación.

Registro: Todos los operadores deben ser nombrados, conduciendo a instrucciones más largas.

TRADE-OFF

Trade-off o simplemente tradeoff es una situación en la cual se debe perder cierta cualidad a cambio de otra cualidad. Implica una decisión en la cual se comprende totalmente las ventajas y desventajas de cada elección.
Trade-off se refiere, generalmente, a perder un tipo de cualidad, pero ganando otro tipo de cualidad. Un ejemplo clásico de trade-off ocurre en el caso del juego de Damas. Un jugador puede dejar que el adversario le coma una pieza en su juego. Pero esa acción le va a permitir obtener el doble o triple de piezas en su jugada. 
Esto significa, para que el jugador pueda conseguir un buen resultado es preciso sacrificar una pieza.

SET DE INSTRUCCIONES
Los conjuntos de instrucciones de las máquinas deben tender a poseer una serie de propiedades, bastante ideales e imprecisas, que pueden resumirse en las siguientes:
  1. Ø  El conjunto de instrucciones de un computador debe ser completo en el sentido de que se pueda construir un programa para evaluar una función computable usando una cantidad de memoria razonable y empleando un tiempo moderado, es decir, el número de instrucciones de ese programa no debe ser demasiado elevado.
  2. Ø  Los juegos de instrucciones también tienen que ser eficientes, esto significa que las funciones más necesarias deben poder realizarse usando pocas instrucciones.
  3. Ø  El conjunto de instrucciones de una máquina debe ser regular, es decir debe ser simétrico (por ejemplo, si existe una instrucción de desplazamiento a la izquierda, debe haber otra de desplazamiento a la derecha, etc.) y ortogonal, es decir, deben poder combinarse, en la medida de lo posible, todos las operaciones con todos los tipos de datos y modos de direccionamiento.

Es necesario encontrar un compromiso entre la simplicidad del hardware y del software. Un mínimo para llegar a ese compromiso se consigue con los tipos de instrucciones siguientes:
  1. Ø  Instrucciones de transferencia de datos.
  2. Ø  Instrucciones aritméticas.
  3. Ø  Instrucciones lógicas.
  4. Ø  Instrucciones de control del flujo del programa (bifurcaciones, bucles, procedimientos) 
  5. Ø  Instrucciones de entrada y salida.
     REFERENCIA BIBLIOGRAFICA
   Miles Murdocca and Vincent Heuring (2007). Computer Architecture and Organization, An Integrated Approach.

    Michael J. Flynn (2007). Computer Architecture Pipelined and parallel Processor Design. Jones  and Bartlett. 

  Wikipedia. (09 de octubre de 2012). Recuperado el 20 de octubre de 2012, de http://es.wikipedia.org/wiki/Trade-off

    Hennessy, J.L., & Patterson, D.A. (2003). Computer Architecture. A Quantitative Approach. 3 edn. Morgan Kaufmann Publishers.




martes, 16 de octubre de 2012

Tutorial de Monitoreo MRTG


¿Que es ICMP?

ICMP (Protocolo de mensajes de control de Internet) es un protocolo que permite administrar información relacionada con errores de los equipos en red. Si se tienen en cuenta los escasos controles que lleva a cabo el protocolo IP, ICMP no permite corregir los errores sino que los notifica a los protocolos de capas cercanas. Por lo tanto, el protocolo ICMP es usado por todos los routers para indicar un error.

ICMP difiere del propósito de TCP y UDP ya que generalmente no se utiliza directamente por las aplicaciones de usuario en la red. La única excepción es la herramienta ping y traceroute, que envían mensajes de petición Echo ICMP (y recibe mensajes de respuesta Echo) para determinar si un host está disponible, el tiempo que le toma a los paquetes en ir y regresar a ese host y cantidad de hosts por los que pasa.





¿Que es snmp?

SNMP (Simple Network Management Protocol o Protocolo Simple de administración de red) es uno protocolos del conjunto definido por la Fuerza de Trabajo en Ingeniería de Internet (IETF o Internet Engineering Task Force), clasificada en el nivel de aplicación del modelo TCP/IP y que está diseñado para facilitar el intercambio de información entre dispositivos de red y es ampliamente utilizado en la administración de redes para supervisar el desempeño, la salud y el bienestar de una red, equipo de computo y otros dispositivos.

Los dispositivos administrados son supervisados y controlados usando cuatro comandos SNMP básicos: lectura, escritura, notificación y operaciones transversales.

El comando de lectura es usado por un NMS para supervisar elementos de red. El NMS examina diferentes variables que son mantenidas por los dispositivos administrados.

El comando de escritura es usado por un NMS para controlar elementos de red. El NMS cambia los valores de las variables almacenadas dentro de los dispositivos administrados.

El comando de notificación es usado por los dispositivos administrados para reportar eventos en forma asíncrona a un NMS. Cuando cierto tipo de evento ocurre, un dispositivo administrado envía una notificación al NMS.

Las operaciones transversales son usadas por el NMS para determinar qué variables soporta un dispositivo administrado y para recoger secuencialmente información en tablas de variables, como por ejemplo, una tabla de rutas.
MRTG



MRTG (Multi Router Traffic Grapher) es una herramienta, escrita en C y Perl por Tobias Oetiker y Dave Rand, que se utiliza para supervisar la carga de tráfico de interfaces de red. MRTG  genera los resultados en archivos HTML con gráficos, que proveen una representación visual de este tráfico.

MRTG utiliza SNMP (Simple Network Management Protocol o Protocolo Simple de administración de red) para recolectar los datos de tráfico de un determinado dispositivo (dispositivos encaminamiento o servidores), por tanto es requisito contar con al menos un sistema a supervisar con SNMP  funcionando y con dicho servicio correctamente configurado.

FUNCIONAMIENTO

MRTG ejecuta como un demonio o invocado desde las tareas programadas del cron. Por defecto, cada cinco minutos recolecta la información de los dispositivos y ejecuta los scripts que se le indican en la configuración.

En un primer momento, MRTG consultaba la información, la procesaba y generaba el informe y las gráficas. En las últimas versiones, esta información es almacenada en una base de datos gestionada por RRDtool a partir de la cual, y de forma separada, se generan los informes y las gráficas

Instalación y configuración de MRTG

Para poder utilizar MRTG es necesario primero instalar un agente SNMP en los equipos que se desea monitorear. Para instalar dicho agente en Windows 7 debemos seguir los siguientes pasos:
1.    Vamos a Panel de Control (Categorias) -> Programas -> Turn Windows Features on or off.
2.    En la lista activamos Simple Network Management Protocol (SNMP) y hacemo click en Ok.
3.    Una vez instalado debemos configurarlo, para lo cual hacemos click derecho en Mi PC y seleccionamos Administrar.En la lista de la izquierda seleccionamos Servicios y Aplicaciones -> Servicios, y buscamos Servicio SNMP. Hacemos click derecho y seleccionamos propiedades. Seleccionamos la pestaña Seguridad y añadimos una nueva comunidad. Por defecto las comunidades son public para acceso READ_ONLY y private para acceso READ_WRITE.
Una vez hecho esto ya tenemos configurada nuestra computadora para monitorearla utilizando SNMP. Ahora es necesario configurar MRTG para realizar el monitoreo. MRTG utiliza scripts de Perl para su funcionamiento, por lo que es necesario instalar un intérprete de Perl. El intérprete que se utilizó es ActivePerl, el cual se instala como cualquier programa normal.
Para la utilización de MRTG se utilizan principalmente 3 scripts: cfgmaker, indexmaker y mrtg.
Cfgmaker genera un archivo de configuración utilizando información del host que se desea monitorear, esta información se obtiene a través de SNMP. Este comando debe ejecutarse con varios parámetros: la comunidad y el IP de la máquina que se desea monitorear, el directorio donde se generarán los reportes y el archivo de configuración que se desea crear. Estos parámetros se especifican de la siguiente manera:
perl cfmaker public@192.168.1.100 –global "WorkDir: c:\mrtghtml" –output pc1.cfg
Mrtg es el script que obtiene la información de monitoreo del equipo correspondiente, simplemente debe especificarse el archivo de configuración de dicha máquina:
perl mrtg pc1.cfg
Este script genera varios archivos para cada interfaz del dispositivo. Es conveniente, cuando se desea monitorear muchos equipos, obtener todos los reportes en una misma página html, para esto se utiliza el script indexmaker, al cual debe especificarse el archivo en el que se desea tener un resumen del monitoreo, y los archivos de configuración de los equipos a monitorear:
perl indexmaker –output resumen.html pc1.cfg pc2.cfg pc3.cfg
Una vez ejecutado el indexmaker debe ejecutarse el mrtg para cada uno de los archivos de configuración.
Es necesario tomar en cuenta que todos los archivos generados por mrtg deben encontrarse en la misma carpeta, y que esta sea accesible desde el servidor apache si se desea ejecutar el monitoreo desde la nube.

Utilización de MRTG desde PHP

Para la realización del monitoreo desde php se siguieron los siguientes pasos:
1.    Primeramente se creó la página principal (index.php) con un formulario para seleccionar una opción para monitoreo: agregar un nuevo equipo, remover un equipo y mostrar gráficas. Este formulario envía sus datos a la página snmp.php.
2.    Para tener una lista de los equipos a monitorear se utilizó una base de datos MySql.
3.    En caso de que se desee agragar un nuevo usuario, se muestra un formulario para llenar los datos correspondientes. Estos datos se envían a la misma página y se ejecuta el siguiente código para introducirlo a la base de datos y crear el archivo de configuración:
                if(isset($_POST['agregar'])){
                               exec("perl c:\AppServ\www\mrtg\bin\cfgmaker $_POST[comunidad]@$_POST[ip] --global \"WorkDir: c:\\AppServ\\www\\archivos\\practicas\\System\\snmp\" --output $_POST[archivo].cfg");
                               $db = new mysqli("localhost", "root", "yi2junte", "monitoreo");
                              $db->query("insert into equipos values(0, '$_POST[nombre]', '$_POST[ip]', '', '$_POST[archivo].cfg', '$_POST[comunidad]')");
                               echo "<p>El archivo de configuración ha sido creado correctamente.</p>";
                               echo '<p><a href=".">Volver</a></p>';
                }
4.    Para mostrar las gráficas de monitoreo se ejecuta el indexmaker para todos los equipos almacenados en la base de datos, y luego se ejecuta mrtg para cada uno de ellos:
                               elseif($_POST['action'] == 2){
                                               $db = new mysqli("localhost", 'root', 'yi2junte', 'monitoreo');
                                               $res = $db->query("select * from equipos");
                                               $aux = "";
                                               while($fila = $res->fetch_array()){
                                                               $aux .= ' '.$fila['Conf'];
                                               }
                                              echo $aux;
                                               exec('perl "c:\AppServ\www\mrtg\bin\indexmaker" --output "c:\AppServ\www\archivos\practicas\System\snmp\monitoreo.html"'.$aux);
                                               $res = $db->query("select * from equipos");
                                               while($fila = $res->fetch_array()){
                                                               exec('perl "c:\AppServ\www\mrtg\bin\mrtg" '.$fila[Conf]);
                                               }
                                               echo '<p><a href="snmp/monitoreo.html">Gráficas</a></p>';
                               }
Es necesario observar que como los archivos de mrtg y los de la interfaz php se encuentran en diferentes directorios es necesario especificar la ruta completa a los scripts de mrtg. También se observó que desde php la salida de los scripts no puede ser observada, esto es un problema de compatibilidad entre perl y php en windows, el cual no soporta redirecciones de la salida estándar.



domingo, 7 de octubre de 2012

MEMORIA



MEMORIA (JORGE LUJAN)

Jerarquía de memoria
Niveles de la jerarquía de memoria.
Nivel 0: Registros
Nivel 1: Memoria caché
Nivel 2: Memoria Principal
Nivel 3: Disco duro
Registros
Es una memoria de alta velocidad y poca capacidad, esta integrada en el microprocesador y permite guardar y acceder a valores muy usados, por lo general en operaciones matemáticas. Los registros se miden por lo general por el número de bits que almacena. 
Tipos de registros
De datos. Usados para guardar números enteros.
De memoria. Usados para guardar exclusivamente direcciones de memoria.
De propósito general. Pueden guardar tanto datos como direcciones.
De punto flotante. Usados para guardar datos en formato de punto flotante.
De propósito específico. Guardan información específica del estado del sistema.
Memoria caché
Es una memoria rápida y pequeña, situada entre la memoria principal y el microprocesador, especialmente diseñada para contener información que se utiliza con frecuencia en un proceso con el fin de evitar accesos a otras memorias, reduciendo considerablemente el tiempo de acceso al ser más rápida que el resto de la memoria principal.
La memoria caché es una memoria en la que se almacena un serie de datos para su rápido acceso. La memoria caché de un microprocesador es de tipo volátil (del tipo RAM), pero de una gran velocidad. Su objetivo es almacenar una serie de instrucciones y datos a los que el microprocesador accede continuamente, con el fin de que estos accesos sean instantáneos.
La operación básica de caché es: Cuando la CPU necesita accesar memoria, se revisa la caché. Si se encuentra la palabra en cache, se lee de la memoria rápida. Si la palabra direccionada de la CPU no se encuentra en caché, se accesa la memoria principal para leer la palabra. Después, se transfiere un bloque de palabras que contiene la que se acaba de accesar, de la memoria principal a la memoria caché. El tamaño de bloque puede variar de una palabra a cerca de 16 palabras adyacentes a la que se acceso. En esta manera, se trasfieren algunos datos caché para quelas futuras referencias a memoria encuentren la palabra requerida en la memoria rápida caché. Hay tres tipos diferentes de memoria caché para microprocesadores
Caché de 1er nivel (L1)
Integrada en el núcleo del microprocesador, trabajando a la misma velocidad que este. La cantidad de memoria caché L1 varía de un microprocesador a otro, estando normalmente entra los 64KB y los 256KB. Esta memoria suele a su vez estar dividida en dos partes dedicadas, una para instrucciones y otra para datos.
Caché de 2º nivel (L2)
Integrada en el microprocesador, no directamente en el núcleo, es algo más lenta que la caché L1.La caché L2 suele ser mayor que la caché L1, pudiendo llegara superar los 2MB.Utilización está más encaminada a programas que al sistema.
Caché de 3er nivel (L3)
Es un tipo de memoria caché más lenta que la L2, muy poco utilizada en la actualidad. En un principio esta caché estaba incorporada a la placa base, no al microprocesador, y su velocidad de acceso era bastante más lenta que una caché de nivel 2 o 1, ya que si bien sigue siendo una memoria de una gran rapidez (muy superior a la RAM, y mucho más en la época en la que se utilizaba),depende de la comunicación entre el microprocesador y la placa base.


Composición interna
La memoria caché está estructurado por celdas, donde cada celda almacena un byte. La entidad básica de almacenamiento la conforman las filas, llamados también líneas de caché. Cuando se copia o se escribe información de la RAM por cada movimiento siempre cubre una línea de caché. La memoria caché tiene incorporado un espacio de almacenamiento llamado Tag RAM, que indica a qué porción de la RAM se halla asociada cada línea de caché, es decir, traduce una dirección de RAM en una línea de caché concreta
Memoria principal
Son circuitos integrados capaces de almacenar información digital, a los que tiene acceso el microprocesador del equipo de computación. Poseen una menor capacidad de almacenamiento que la memoria secundaria, pero una velocidad millones de veces superior. La memoria principal esta divida en:
Memoria ROM
Memoria de sólo lectura (Read Only Memory) son utilizadas como medio de almacenamiento de datos en las computadoras. En ella no se puede escribir y conserva intacta la información almacenada, incluso en el caso de que se interrumpa la corriente (memora no volátil).La ROM suele almacenar la configuración del sistema o el programa de arranque de la computadora. Uso principal reside en la distribución de programas que estén estrechamente ligados al soporte físico de la computadora, y que seguramente no necesita actualización. La memoria RAM normalmente es más rápida para lectura que la mayoría de las memorias ROM, por lo tanto el contenido ROM se suele traspasar normalmente a la memoria RAM cuando se utiliza
El software de la ROM se divide en dos partes
Rutina de arranque
Realiza el chequeo de los componentes de la computadora por ejemplo circuitos controladores de video, de acceso a memoria, el teclado, unidades de disco. Se encarga de determinar cuál es el hardware que está presente y de la puesta a punto de la computadora. Mediante un programa de configuración, el SETUP, lee una memoria llamada CMOS RAM (RAM de Semiconductor de óxido metálico). Ésta puede mantener su contenido durante varios años, aunque la computadora está apagada, con muy poca energía eléctrica suministrada por una batería, guarda la fecha, hora, la memoria disponible, capacidad de disco rígido, si tiene disquetera o no. Se encarga en el siguiente paso de realizar el booteo(arranque): lee un registro de arranque 'BR' (Boot Record) del disco duro o de otra unidad (como CD, USB, etc), donde hay un programa que carga el sistema operativo a la RAM. A continuación cede el control a dicho sistema operativo y el ordenador queda listo para trabajar.
Rutina BIOS
Sistema básico de entrada salida (Basic inputoutput system): permanece activa mientras se está usando la PC. Permite la activación de los periféricos de entrada/salida: teclado, monitor, etc.
Memoria RAM
La memoria de acceso aleatorio, o memoria de acceso directo (Random Access Memory).Se compone de uno o más chips y se utiliza como memoria de trabajo para programas y datos. Es un tipo de memoria temporal que pierde sus datos cuando se queda sin energía (al apagar la computadora),por lo cual es una memoria volátil. Se trata de una memoria de semiconductor en la que se puede tanto leer como escribir información. Se utiliza normalmente como memoria temporal para almacenar resultados intermedios y datos similares no permanentes. Se dicen "de acceso aleatorio" o "de acceso directo" porque los diferentes accesos son independientes entre sí.
La RAM se dividen en:
Estáticas: mantiene su contenido inalterado mientras esté alimentada.
Dinámica: la lectura es destructiva, es decir que la información se pierde al leerla, para evitarlo hay que restaurar la información contenida en sus celdas, operación denominada refresco.
Memoria virtual
Es un concepto que permite al software usar más memoria principal que la que realmente posee el ordenador. 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. 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 microprocesador
Operación básica
Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software(direcciones virtuales) en:
•La dirección real de memoria (la dirección de memoria física): la referencia a la memoria es completada, como si la memoria virtual no hubiera estado involucrada: el software accede donde debía y sigue ejecutando normalmente.
•Una indicación de que la dirección de memoria deseada no se encuentra en memoria principal (llamado excepción de memoria virtual): el sistema operativo es invocado para manejar la situación y permitir que el programa siga ejecutando o aborte según sea el caso. La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Esta "ilusión" permite que los programas se ejecuten sin tener en cuenta el tamaño exacto de la memoria física
La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los sistemas operativos actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cómo gestionar este esquema


Bus
Conjunto de líneas de señal que enlaza la CPU, la memoria y los periféricos de Entrada y Salida, permitiendo la transferencia de información entre ellos. El funcionamiento a través de un dispositivo debe obtener el uso del bus y transferir el dato a través del bus, todo ello siguiendo un determinado protocolo
Ciclo de bus. Tiempo necesario para realizar una transferencia elemental de un dato entre dos dispositivos
Anchura del bus. Numero de líneas de datos en el bus
Anchura de banda del bus. Parámetro que expresa el máximo numero de elementos de información (bytes) que se pueden transmitir por el bus en unidad de tiempo
Protocolo del bus. Pautas que tienen que seguir los dispositivos conectados al bus para lograr una comunicación correcta
Jerarquía de buses
o   Bus interno. Comunicación interna dentro de la CPU
o   Bus del procesador. Fundamentalmente, comunicación entre la CPU y la cache externa
o   Bus local. Buses para la conexión procesador DRAM y dispositivos de E/S con altas prestaciones. Pueden ser buses de carácter general, como el PCI, o dedicados como IDE, SCSI, AGP, USB
o   Bus de expansión. Conexión entre dispositivos de E/S con menores prestaciones como los módems, fax, puerto serie, etc.
o   Bus del sistema. Conexión entre distintos sistemas procesador que forman un mismo sistema.


Protocolos de transmisión
o   Protocolo síncrono. Fácil de implementar, pero con poca flexibilidad (dispositivos con diferentes velocidades). Buses cortos. Mayor ancho de banda.
o   protocolo asíncrono. Permite adaptar la transferencia a la velocidad del dispositivo, compagina dispositivos lentos y rápidos.
EJEMPLO DE ALGUNOS BUSES COMERCIALES
o   Bus ISA, EISA, MCA. Industry Standard Architecture, Extended Chanel Adapter, Micro Chanel Adapter
o   Bus PCI. Peripheral Component Interconnect
o   Bus AGP. Accelerated Graphics Port
o   Bus IDE. Integrated Drive Electronics
o   Bus SCSI. Small Computer System Interface
o   Bus SATA. Serial ATA
o   Bus Serial Attached SCSI
o   Buses USB (Universal Serial Bus)
o   Bus PCMCIA. Personal Computer Memory Card International Association
o   Bus VME. Versa Module Europe



UNIDAD CENTRAL DE PROCESAMIENTO
También llamada CPU, la unidad central de procesamiento se encarga de realizar todos los cálculos matemáticos que se requieren para que un ordenador pueda funcionar correctamente.
La unidad central de procesamiento esta compuesta de esta manera:
Memoria
Unidad aritmética lógica
Unidad o procesador de control
Memoria
Se almacenan datos y programas, hay dos operaciones que se hacen en la memoria y son leer y escribir, entonces se dice que es donde almacena, se lee y se escribe. Es un conjunto de células numeradas y dos registros especiales con los que realiza su trabajo.
UNIDAD ARITMETICA LOGICA
Esta unidad opera los datos que recibe siguiendo las indicaciones por la unidad de control. Esta unidad puede realizar operaciones aritméticas lógicas, por ejemplo el de realizar la suma. La forma en que realiza la suma es la siguiente:
1.       Se debe tener el código de operación que indique la operación a efectuar en este caso el código de suma
2.       Dirección de la celula en la que se encuentra almacenado el primer sumando
3.       Dirección del segundo sumando
4.       Dirección de la celula en la que se almacena el resultado
Instrucciones para efectuar la suma.
1.       Cargar el primer operando en el acumulador
2.       Sumar el segundo operando con el contenido del acumulador
3.       Cargar el contenido del acumulador en la dirección del resultado
Unidad de control
La unidad de control es el autentico cerebro que controla y coordina el funcionamiento de la computadora. A raíz de la interpretación delas instrucciones que integran el programa esta unidad genera el conjunto de ordenes elementales necesarias para que se realice la tarea necesitada.
Pasos para la unidad de control.
1.       Se extrae de la memoria principal la instrucción a ejecutar esa información es almacenada en el contador de instrucciones, la información que se almacena es la próxima instrucción a ejecutar en el registro de instrucción propiamente dicha.
2.       Una vez conocido el código de la operación la unidad de control ya sabe que circuitos de la ALU deben de intervenir pueden establecerse las conexiones eléctricas necesarias a través del secuenciador
3.       Extrae de la memoria principal los datos necesarios para ejecutar la instrucción en proceso
4.       Ordena la ALU que efectúa las operaciones el resultado de este es depositado en el acumulador de la ALU
5.       Si la instrucción a proporcionado nuevos datos estos son almacenados en la memoria principal  
6.       Incrementa en una unidad el contenido del contador de instrucciones a ejecutar

DMA
Acceso directo a memoria (DMA) permite a cierto tipo de componentes del ordenador acceder a la memoria del sistema para leer o escribir independientemente de la CPU principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas graficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.
Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicies la transferencia, la transferencia se lleva acabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna mas rápida. Tal operación no ocupa el procesador y como resultado puedes ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieras muchos recursos.
 


Bibliografía
Acceso directo a la memoria http://es.scribd.com/doc/76550644/dma
Conexión entre subsistemas http://es.scribd.com/doc/96604304/Buses