Capítulo 3: Funcionamiento del Computador
Componentes de Entrada/Salida
Los datos e instrucciones deben ingresarse al computador de algún modo, por lo que se necesitan módulos que llamaremos componentes de entrada y salida. El módulo de entrada se encarga de recibir datos e instrucciones en cierto formato y los traduce al formato de señales que utiliza el sistema. El módulo de salida se encarga de proporcionar los resultados.
Principales Componentes del CPU
- Instruction Register (IR): Es el registro en donde se encuentra la instrucción a ejecutar.
- Program Counter (PC): Es el registro encargado de contener la dirección de la próxima instrucción a ejecutar.
- Memory Address Register (MAR): En él se encuentra la dirección de memoria en donde se encuentra el próximo dato a ser escrito en o leído de memoria.
- Memory Buffer Register (MBR): Es el registro que contiene el dato que se va a escribir en memoria o donde se escribe el dato leído de memoria.
- E/S Address Register (E/S AR): Contiene la dirección de un dispositivo de entrada y salida.
- E/S Buffer Register (E/S BR): Se encarga de transferir datos del módulo E/S al CPU.
Cache y Buffers
Buffer: Es una memoria intermedia a la cual un dispositivo envía datos y estos se escriben temporalmente para ser leídos por otro dispositivo.
Cache: Es una memoria interna del CPU en la que se guardan los datos de uso frecuente para reducir los accesos a memoria y aumentar la velocidad con la que se leen estos datos.
Ciclo de Captación y Ejecución
- El CPU capta la instrucción y la almacena en el IR.
- Actualiza el PC con la dirección de la próxima instrucción a ejecutar.
- El CPU interpreta la instrucción y lleva a cabo la acción requerida, que puede ser una de estas cuatro:
- Procesador-Memoria: Se transfieren datos del CPU a la memoria o viceversa.
- Procesador-E/S: Se transfieren datos a o desde el exterior mediante un dispositivo E/S al CPU o viceversa.
- Procesamiento de Datos: La CPU realiza una operación aritmética o lógica con los datos.
- Control: Una instrucción puede indicar que la secuencia de instrucciones se altere o que realice un salto.
Clases de Interrupciones
Programa: Generadas por alguna condición que se genera como resultado de la ejecución de una instrucción. Pueden ser: Overflow, división por cero, intentar ejecutar una instrucción inexistente o acceder fuera del espacio de memoria permitido para el usuario.
Temporización: Son generadas por un temporizador interno del procesador.
E/S: Generadas por un controlador de entrada y salida para indicar la finalización de una operación o para avisar condiciones de error.
Fallo de Hardware: Generadas por falta de potencia en la alimentación o un error de paridad en la memoria.
Interrupciones y Ciclo de Instrucción
Con el uso de interrupciones, el procesador puede dedicarse a ejecutar otras instrucciones mientras una operación de E/S está en curso. Cuando se hace una llamada al sistema para realizar una operación de escritura, el programa de E/S que se llama está constituido por el código de preparación y la orden de E/S. Una vez ejecutadas estas pocas instrucciones el control se devuelve al programa, mientras que el dispositivo externo espera la entrada por el usuario y la imprime, el programa de usuario va ejecutando instrucciones hasta que el dispositivo de entrada y salida indica que está listo para aceptar más datos enviando una petición de interrupción al procesador. Una vez hecha la petición, el procesador responde suspendiendo la operación y salta a un gestor de interrupciones que le da el servicio al dispositivo de E/S hasta que termine y luego sigue con las instrucciones del programa original.
¿Qué es un Overhead?
Se refiere a cierta penalización que se obtiene al utilizar una interrupción, ya que implica una cantidad de instrucciones adicionales por el gestor de interrupción.
Interrupciones Múltiples
Se pueden manejar de dos perspectivas:
- Deshabilitar las interrupciones cuando se está tratando con una interrupción.
Ventaja: Correcta y simple, las interrupciones se manejan secuencialmente.
Desventaja: No tiene en cuenta las prioridades relativas.
- Definir prioridades en las interrupciones: Permitir que una interrupción de prioridad más alta pueda interrumpir a un gestor de interrupción de prioridad menor.
Interconexión con Buses
¿Qué es un Bus?
Es un camino de conexión entre dos o más dispositivos, es un medio de transmisión compartido donde cualquier señal transmitida por un usuario del bus está disponible para todos los demás. El bus del sistema conecta el procesador, la memoria y los dispositivos de E/S.
Está constituido generalmente por entre 50 y 100 líneas, las cuales se clasifican en tres categorías: líneas de datos, líneas de dirección y líneas de control. También puede haber líneas de alimentación que suplen energía a los módulos conectados al bus.
Líneas de Datos: Proporcionan el camino para transmitir datos entre los módulos del sistema.
Líneas de Dirección: Se utilizan para designar la dirección de fuente o destino para el dato situado en el bus de datos.
Líneas de Control: Se utilizan para controlar el acceso de las líneas de datos y las líneas de dirección. Como las líneas son compartidas entre todos los usuarios del bus, tiene que haber una forma de controlar su uso.
Capítulo 6: Memoria Externa
Discos Magnéticos
Disco Magnético: Es uno o varios platos circulares construidos con un material no magnético, y cubierto con un material magnetizable. Cada plato tiene dos superficies.
Cabeza: Instrumento con el que se leen y graban datos en los discos mediante impulsos magnéticos que están en la superficie del plato.
Pista: Es un recorrido circular en la superficie del disco donde la información es grabada y leída.
Sector: Es la unidad más pequeña de espacio en un disco. Un sector es el área encerrada entre dos líneas radiales de una pista.
Cilindro: Es el conjunto de pistas que se encuentran directamente una encima o debajo de la otra en diferentes superficies.
Sectores Continuos: Los sectores del disco están situados físicamente adyacentes.
Sectores Interleaving: Los sectores están separados según cierta proporción de forma que si el disco tiene cierto tiempo de espera para leer entre sector y sector aparezcan lógicamente continuos.
Clúster (Racimo): Número fijo de sectores continuos. Si hay interleaving no están físicamente continuos. Mejoran el acceso secuencial.
Extent (Grado): Es un grupo de clústeres continuos.
Fragmentación: Es el proceso del sistema operativo al almacenar datos de manera discontinua en el disco duro, por lo que un archivo puede estar dividido a lo largo de una partición.
Tiempo de Búsqueda: Es el tiempo requerido para desplazar la cabeza hasta la pista donde se encuentra el dato a buscar.
Retardo Rotacional: El tiempo que tarda el disco en girar para que el cabezal esté justo encima del sector de donde se leerá el dato.
Tiempo de transferencia: Tiempo de una revolución / # de sectores por pista.
Cintas Magnéticas
Cintas Magnéticas: Trozos de plástico cubiertos en óxido ferroso capaz de ser magnetizado.
Frame: Trozo de 1 bit de ancho de cinta que corresponde a 9 bits (1 byte + Bit de paridad).
Bloque de datos: Son corrientes finitas de datos de tamaño variable separados por Inter Block Gates.
Inter Block Gate: Es quien se encarga de comenzar y frenar la máquina, señalizado con un frame de todos los bits en 0.
Bits de Paridad: El bit de paridad indica si la suma de los bits de datos es impar se prende, si no, está apagado. Permite detectar embasuramiento en los bits.
Densidad de Cinta: Bits por pulgada de cinta.
Velocidad de cinta: Pulgadas por segundo.
Disco vs. Cinta
En el pasado, las cintas eran preferidas para acceso secuencial y los discos para acceso aleatorio. Hoy en día los discos dominan el almacenamiento secundario.
Discos Ópticos CD-ROM
En los discos ópticos la data es escrita y leída a través de un láser óptico. La data está representada como niveles en donde un cambio de nivel representa un 1, y los sectores planos representan un intervalo de 0.
NOTA: No pueden haber un par de 1 juntos, tienen que haber como mínimo dos 0 y como máximo diez 0 entre cada 1.
Comparación entre Discos Ópticos y Discos Magnéticos
CR-ROM | Magnetic Disks |
CLV = Constant Linear Velocity | CAV = Constant Angular Velocity |
Sectores organizados a lo largo de una espiral. | Sectores organizados en pistas concéntricas. |
Los sectores tienen la misma longitud lineal (datos empaquetados a su máxima densidad permitida). | Los sectores tienen la misma longitud angular (datos escritos con menor densidad en las pistas exteriores). |
Ventaja: Aprovecha todo el espacio de almacenamiento disponible. | Ventaja: Opera a velocidad constante, marcas de tiempo para delimitar pistas. |
Desventaja: Tiene que cambiar la velocidad de rotación al buscar (más lento hacia el exterior). | Desventaja: No utiliza todo el almacenamiento disponible. |