Sistemas operativos – Ejecución de instrucciones

Un programa que va a ejecutarse en un procesador consta de un conjunto de instrucciones almacenadas en memoria. Podemos decir que la ejecución consta de dos pasos: el procesador lee (busca) instruciones de la memoria, una cada vez, y ejecuta cada una de ellas. La ejecución del programa consiste en repetir este proceso de búsqueda y ejecución hasta que se ejecute la última instrucción del programa. Llamamos ciclo de instrucción al procesamiento requerido por una única instrucción.

CicloInstrucción

Búsqueda y ejecución de una instrucción

Al principio de cada ciclo de instrucción, el procesador lee una instrucción de la memoria. En un procesador típico, el contador de programa (PC) almacena la dirección de la siguiente instrucción que se va a leer. Salvo que se indique lo contrario, el procesador leerá las instrucciones de forma secuencial, aunque esta secuencia puede ser alterada. La instrucción leída se carga dentro del procesador en un registro llamado registro de instrucción (IR). El procesador interpreta la instrucción y lleva a cabo la acción requerida. En general, estas acciones se dividen en cuatro categorías:

  • Procesador-memoria: Se pueden transferir datos del procesador a la memoria y viceversa.
  • Procesaor-E/S: Se pueden enviar datos a un dispositivo periférico o recibirlos desde el mismo, transfiriéndolos entre el procesador y un módulo E/S.
  • Procesamiento de datos: El procesador puede realizar algunas operaciones aritméticas básicas sobre los datos.
  • Control: Una instrucción puede especificar que se va a alterar la secuencia de ejecución. Por ejemplo, si una instrucción que se encuentra en la posición 114, indica que la siguiente instrucción se encuentra en la posición 197, el procesador almacenará en el contador de programa la posición 197. De esta forma, al finalizar la ejecución no pasará a la posición 115 y sí lo hará a la posición 197.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

diecisiete − ocho =