A un nivel muy alto, un sistema informático que implemente la arquitectura Von Neuman clásica consta de 3 componentes básicos: memoria principal, unidad central de proceso y dispositivos de entrada/salida. La unidad central de proceso, a su vez, está constituida por la unidad aritmético-lógica, la unidad de control y un conjunto de registros. Los componentes básicos mencionados se encuentran interconectados para llevar a cabo la función principal del computador, que consiste en la ejecución de las sentencias que forman los procesos. Así pues, se tienen cuatro elementos estructurales principales.
Sistemas Operativos on Prezi
Registros del Procesador
Dentro del procesador hay un conjunto de registros que ofrecen un nivel de memoria que es más rápido pequeño que la memoria principal. Los registros del procesador pueden clasificarse de la siguiente forma:
Dentro del procesador hay un conjunto de registros que ofrecen un nivel de memoria que es más rápido pequeño que la memoria principal. Los registros del procesador pueden clasificarse de la siguiente forma:
- Registros visibles de usuario: Un registro visible al usuario es aquél que puede ser referenciado por medio de lenguaje máquina que ejecuta el procesador, siendo, por lo general, accesible a todos los programas, tanto de aplicación como de sistema. Un programador de lenguaje de máquina o ensamblador puede minimizar las referencias a memoria principal mediante un uso ´optimo de estos registros. Los tipos de registro normalmente disponibles son: registros de datos, registros de dirección y registros de códigos de condición.
- Los registros de control y estado: son utilizados por el procesador para el control de las operaciones o por rutinas privilegiadas del sistema operativo para controlar la ejecución de os programas. En la mayoría de las maquinas, la mayor parte de estos registros no son visibles para los usuarios. Además de los registros MAR, MBR, IOAR, IOBR, que se utilizan en funciones de direccionamiento e intercambio de datos entre la unidad procesadora y la memoria principal y los dispositivos de E/S, la unidad de control tiene asociados una serie de registros, entre los que cabe destacar el contador de programa (PC, program counter), que indica la dirección de la siguiente instrucción maquina a ejecutar, el puntero de pila (SP, stack pointer), que sirve para manejar la pila del sistema en memoria principal, el registro de instrucción (RI) que permite almacenar la instrucción maquina a ejecutar, y el registro de estado (SR) o palabra de estado del programa (PSW, program status word) que almacena junto con el contador de programa (PC) diversa información producida por la ultima instrucción del programa ejecutada (bits de estado aritmético) e información sobre la forma en que ha de comportarse la computadora (bits de nivel de ejecución que determinan el modo en que la computadora ejecuta las instrucciones, usuario o sistema o supervisor, y bits de control de interrupciones que establecen las instrucciones que se pueden aceptar).
Ejecución de Instrucciones
La tarea básica que realiza un computador es la ejecución de instrucciones. El punto de vista más sencillo es considerar que el procesamiento de instrucciones consiste en una secuencia sencilla que se repite a alta velocidad (cientos de millones de veces por segundo). Esta secuencia consiste en 3 pasos: lectura de memoria de la instrucción máquina apuntada por el PC, incremento del contador del programa - para que apunte a la siguiente instrucción máquina - y ejecución de la instrucción.
Esta secuencia tiene 2 prioridades fundamentales: es lineal, es decir, ejecuta de forma consecutiva las instrucciones que están en direcciones consecutivas, y forma un bucle La tarea básica que realiza un computador es la ejecución de instrucciones. El punto de vista más sencillo es considerar que el procesamiento de instrucciones consiste en una secuencia sencilla que se repite a alta velocidad (cientos de millones de veces por segundo). Esta secuencia consiste en 3 pasos: lectura de memoria de la instrucción máquina apuntada por el PC, incremento del contador del programa - para que apunte a la siguiente instrucción máquina - y ejecución de la instrucción. Esta secuencia tiene 2 prioridades fundamentales: es lineal, es decir, ejecuta de forma consecutiva las instrucciones que están en direcciones consecutivas, y forma un bucle infinito. Esto significa que la unidad de control de la computadora está continua e ininterrumpidamente realizando esta secuencia.
Podemos decir, por tanto, que lo único que sabe hacer la computadora es repetir a gran velocidad esta secuencia. Esto quiere decir, que para que realice algo útil, se ha de tener cargados en memoria un programa máquina con sus datos y hemos de conseguir que el contador de program apunte a la instrucción máquina inicial del programa.
El esquema de ejecución lineal es muy limitado, por lo que se añaden unos mecanismos que permiten alterar esta ejecución lineal. En esencia, todos ellos se basan en algo muy simple; modifican el contenido del programa, con lo que se consigue que se salir o bifurque a otro segmento del programa o a otro programa (que, lógicamente, también ha de residir en memoria). Los tres mecanismos básicos de ruptura de secuencia son los siguientes.
Si desde el punto de vista de la programación son especialmente interesantes las instrucciones de salto, desde el punto de vista de los SO son mucho más importantes las interrupciones y las interrupciones de TRAP. Por tanto, centraremos nuestro interés en resaltar los aspectos fundamentales de estos dos mecanismos.
Interrupciones
La tarea básica que realiza un computador es la ejecución de instrucciones. El punto de vista más sencillo es considerar que el procesamiento de instrucciones consiste en una secuencia sencilla que se repite a alta velocidad (cientos de millones de veces por segundo). Esta secuencia consiste en 3 pasos: lectura de memoria de la instrucción máquina apuntada por el PC, incremento del contador del programa - para que apunte a la siguiente instrucción máquina - y ejecución de la instrucción.
Esta secuencia tiene 2 prioridades fundamentales: es lineal, es decir, ejecuta de forma consecutiva las instrucciones que están en direcciones consecutivas, y forma un bucle La tarea básica que realiza un computador es la ejecución de instrucciones. El punto de vista más sencillo es considerar que el procesamiento de instrucciones consiste en una secuencia sencilla que se repite a alta velocidad (cientos de millones de veces por segundo). Esta secuencia consiste en 3 pasos: lectura de memoria de la instrucción máquina apuntada por el PC, incremento del contador del programa - para que apunte a la siguiente instrucción máquina - y ejecución de la instrucción. Esta secuencia tiene 2 prioridades fundamentales: es lineal, es decir, ejecuta de forma consecutiva las instrucciones que están en direcciones consecutivas, y forma un bucle infinito. Esto significa que la unidad de control de la computadora está continua e ininterrumpidamente realizando esta secuencia.
Podemos decir, por tanto, que lo único que sabe hacer la computadora es repetir a gran velocidad esta secuencia. Esto quiere decir, que para que realice algo útil, se ha de tener cargados en memoria un programa máquina con sus datos y hemos de conseguir que el contador de program apunte a la instrucción máquina inicial del programa.
El esquema de ejecución lineal es muy limitado, por lo que se añaden unos mecanismos que permiten alterar esta ejecución lineal. En esencia, todos ellos se basan en algo muy simple; modifican el contenido del programa, con lo que se consigue que se salir o bifurque a otro segmento del programa o a otro programa (que, lógicamente, también ha de residir en memoria). Los tres mecanismos básicos de ruptura de secuencia son los siguientes.
- Las instrucciones máquina de salto o bifurcación, que permiten que el programa rompa su secuencia lineal de ejecución pasando a otro fragmento de sí mismo.
- Las interrupciones externas o internas, que hacen que la unidad de control modifique el valor del contador de programa saltando a otro programa.
- La instrucción de máquina “TRAP”, que produce un efecto similar a la interrupción, haciendo que se salte a otro programa.
Si desde el punto de vista de la programación son especialmente interesantes las instrucciones de salto, desde el punto de vista de los SO son mucho más importantes las interrupciones y las interrupciones de TRAP. Por tanto, centraremos nuestro interés en resaltar los aspectos fundamentales de estos dos mecanismos.
Interrupciones
Casi todos los computadores tienen un mecanismo mediante el cual otros módulos
(E/S, memoria) pueden interrumpir la ejecución normal del procesador. Las interrupciones
aparecen, principalmente, como una vía para mejorar la eficiencia del
procesamiento debido a que la mayoría de los dispositivos externos son mucho más
lentos que el procesador.
Con las interrupciones, el procesador se puede dedicar a la ejecución de
otras instrucciones mientras una operación de E/S está en proceso. Cuando el
dispositivo de E/S esté disponible, es decir, cuando esté preparado para
aceptar más datos del procesador, el módulo de E/S de dicho dispositivo enviará
una señal de solicitud de interrupción al procesador. El procesador responde suspendiendo la operación del programa
en curso y saltando a un programa que da servicio al dispositivo de E/S en
particular, conocido como rutina de tratamiento de
interrupciones (Interrupt handler), reanudando la ejecución
original después de haber atendido al dispositivo.
Desde el punto de vista del programa de usuario una interrupción es
solamente eso: una interrupción de la secuencia normal de ejecución. Cuando el
tratamiento de la interrupción termina, la ejecución continúa. El programa no
tiene que disponer de ningún código especial para dar cabida a las
interrupciones; el procesador y el sistema operativo son los responsables de
suspender el programa de usuario y de reanudarlo después en el mismo punto.
Para dar cabida a las interrupciones, se añade un ciclo de interrupción
al ciclo de instrucci´on. En el ciclo de interrupción el procesador comprueba
si ha ocurrido alguna interrupción, lo que se indicará con la presencia de
alguna señal de interrupción. Si no hay interrupciones pendientes, el procesador
sigue con el ciclo de lectura y trae la próxima instrucci´on del programa en
curso. Si hay una interrupción pendiente, el programador suspende la ejecución
del programa en curso y ejecuta una rutina de tratamiento de interrupción. Esta
rutina, generalmente, forma parte del sistema operativo, determina la naturaleza
de la interrupción y realiza cuantas acciones sean necesarias. Una interrupción
desencadena una serie de sucesos tanto en el hardware del procesador como en el
software.
No hay comentarios:
Publicar un comentario