Ciertos
conceptos relativos a los procesadores, tales como detalles de implementación,
análisis de rendimiento, consumo de energía y fiabilidad son fundamentales en
los cursos orientados a arquitectura de computadoras. El procesador MIPS (del
inglés Microprocessor without Interlocked Pipeline Stages) se utiliza
actualmente en muchas Universidades para enseñar estas materias.
SIMULADOR MIPS
CONCEPTO
Un simulador
MIPS traduce el código en lenguaje ensamblador en lenguaje maquina, el simulador
recibe como entrada un código en assembler, permitiendo analizar el
comportamiento interno del procesador, el estado de los módulos y el valor de
las señales de control en cada momento de la ejecución.
MIPSIM2
MIPSim2 APIes unAPI muypequeño
y simplepero potente.Consiste
enun conjunto de funcionesútiles
quese pueden utilizar paraleery escribir enlos registrosy la memoriade la computadora. Esto permitea los programadores escribirprogramasque pueden controlarMIPSimen cierta medida yproporciona una gran flexibilidad.
Todos losprogramas
están escritospara manipular los datos. Estos datos sona vecestan simples como parámetrosenteros,pero por lo generales algún tipo deestructura de datos complejaque resideen la memoria.DesafortunadamenteMIPSimactualmente(en la versión2) noes
compatible conlas directivasdel
ensamblador. Así que no haymanera
fácil deconstruirestructuras de
datosen la queel programava a funcionar.
BIBLIOGRAFÍA
Calvo
V. F. A. - Roldán R. J. F. - San Miguel S.
A. (2010), Simulador
del procesador MIPS sobre el formalismo DEV, Universidad Complutence de Madrid: España, no publicado
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:
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
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:
ØÁrea/coste
del chip
ØConsumo
de energía
ØComplejidad
de la lógica
ØFacilidad
de la conectividad
ØFacilidad
de fabricación
ØFacilidad
de la depuración
Ø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:
Ø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.
ØLos
juegos de instrucciones también tienen que ser eficientes, esto significa que las
funciones más necesarias deben poder realizarse usando pocas instrucciones.
Ø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:
ØInstrucciones
de transferencia de datos.
ØInstrucciones
aritméticas.
ØInstrucciones
lógicas.
ØInstrucciones
de control del flujo del programa (bifurcaciones, bucles, procedimientos)
Ø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.
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. MRTGgenera 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 SNMPfuncionando 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:
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:
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:
$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');
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.