EL BIOS COMO PARTE PRINCIPAL DE UNA COMPUTADORA

1
CONCEPTOS ARQUITECTÓNICOS DEL
COMPUTADOR
En este capítulo se presentan los conceptos de arquitectura de computadores más relevantes desde el punto de vista de los sistemas operativos. El capítulo no pretende convertirse en un tratado de arquitectura, puesto que su objetivo es el de recordar y destacar los aspectos arquitectónicos que afectan de forma directa al sistema operativo.
Para alcanzar este objetivo el capítulo se estructura en los siguientes grandes temas:
         Funcionamiento básico de los computadores y estructura de los mismos.
         Modelo de programación con énfasis en su secuencia de ejecución.
         Concepto de interrupción y sus tipos.
         Diversas acepciones de reloj.
         Aspectos más relevantes de la jerarquía de memoria y, en especial, de la memoria virtual.        Concurrencia de la E/S con el procesador.
         Mecanismos de protección.
         Multiprocesador y multicomputador.


         Prestaciones del sistema.                                                                                                                                                                                                                                                                                                                                                                                                                       1.1. ESTRUCTURA Y FUNCIONAMIENTO DEL COMPUTADOR                                                                                                                                                      El computador es una máquina destinada a procesar datos. En una visión esquemática, como la que muestra la figura 1.1, este procesamiento involucra dos flujos de información: el de datos y el de instrucciones. Se parte del flujo de datos que han de ser procesados. Este flujo de datos es tratado mediante un flujo de instrucciones máquina, generado por la ejecución de un programa, produciendo el flujo de datos resultado.
Para llevar a cabo la función de procesamiento, un computador con arquitectura von Neumann está compuesto por los cuatro componentes básicos representados en la figura 1.2.
Figura 1.2 Componentes básicos del computador con arquitectura von Neumann: Memoria principal, unidad aritmética, unidad de control y unidades de entrada/salida.
Se denomina procesador o unidad central de proceso (UCP) al conjunto de la unidad aritmética y de la unidad de control. Actualmente, en un único circuito integrado se puede incluir varios procesadores (llamados núcleos o cores), además de la unidad de gestión de memoria que se describe en la sección “4.2.7 Concepto de memoria virtual y memoria real”.
Desde el punto de vista de los sistemas operativos, nos interesa más profundizar en el funcionamiento interno del computador que en los componentes físicos que lo constituyen.

1.2. MODELO DE PROGRAMACIÓN DEL COMPUTADOR
El modelo de programación a bajo nivel de un computador, que también recibe el nombre de arquitectura ISA (Instruction Set Architecture) del computador, define los recursos y características que éste ofrece al programador de bajo nivel. Este modelo se caracteriza por los siguientes aspectos, que se muestran gráficamente en la figura 1.5.
         Elementos de almacenamiento. Son los elementos de almacenamiento del computador que son visibles a las instrucciones máquina. En esta categoría están incluidos los registros generales, el contador de programa, el o los punteros de pila, el registro de estado, la memoria principal y los registros de los controladores de E/S. La memoria principal se ubica en el mapa de memoria, mientras que los registros de E/S se ubican en el mapa de E/S. Véase aclaración 1.2.
         Juego de instrucciones, con sus correspondientes modos de direccionamiento. El juego de instrucciones máquina define las operaciones que es capaz de hacer el computador. Los modos de direccionamiento determinan la forma en que se especifica la localización de los operandos, es decir, los elementos de almacenamiento que intervienen en las instrucciones máquina.
         Secuencia de funcionamiento. Define el orden en que se van ejecutando las instrucciones máquina.
         Modos de ejecución. Un aspecto crucial de los computadores, que está presente en todos ellos menos en los modelos más simples, es que disponen de más de un modo de ejecución, concepto que se analiza en la sección siguiente y que es fundamental para el diseño de los sistemas operativos.

1.2.1.     Modos de ejecución
La mayoría de los computadores de propósito general actuales presentan dos o más modos de ejecución. En el modo menos permisivo, generalmente llamado modo usuario, el computador ejecuta solamente un subconjunto de las instrucciones máquina, quedando prohibidas las demás, que se consideran “privilegiadas”. Además, el acceso a determinados registros, o a partes de esos registros, y a determinadas zonas del mapa de memoria y de E/S también queda prohibido. En el modo más permisivo, denominado modo núcleo o modo privilegiado, el computador ejecuta todas sus instrucciones sin restricción, y permite el acceso a todos los registros y mapas de direcciones.
Se puede decir que el computador presenta más de un modelo de programación. Uno más restrictivo, que permite realizar un conjunto limitado de acciones, y otros más permisivos, que permiten realizar un mayor conjunto de acciones. Uno o varios bits del registro de estado establecen el modo en el que está ejecutando. Modificando estos bits se cambia de modo de ejecución.
Como veremos más adelante, los modos de ejecución se incluyen en los computadores para dar soporte al sistema operativo. Los programas de usuario, por razones de seguridad, no podrán realizar determinadas acciones, al ejecutar en modo usuario. Por su lado, el sistema operativo, que ejecuta en modo privilegiado, podrá ejecutar todo tipo de acciones. Cuando arranca el computador lo hace en modo privilegiado, puesto que lo primero que se debe hacer es cargar el sistema operativo, que debe ejecutar en modo privilegiado. El sistema operativo se encargará de poner en ejecución en modo usuario a los programas que ejecuten los usuarios.
Generalmente, el modo usuario no permite operaciones de E/S, ni modificar una gran parte del registro de estado, ni modificar los registros de soporte de gestión de memoria. La figura 1.6 muestra un ejemplo de dos modelos de programación de un computador. También es frecuente que el procesador incluya dos punteros de pila (SP y SP'), el SP para usarlo en modo usuario y el SP' para usarlo en modo privilegiado.
Figura 1.6 Modelos de programación de usuario y de privilegiado.
       1.2.2.    Secuencia de funcionamiento del procesador
La unidad de control del procesador es la que establece el funcionamiento del mismo. Este funcionamiento está basado en una secuencia sencilla, que se repite sin cesar y a muy alta velocidad (miles de millones de veces por segundo). Como muestra la figura 1.7, esta secuencia consiste en tres pasos: a) lectura de memoria principal de la instrucción máquina apuntada por el contador de programa, b) incremento del contador de programa —para que apunte a la siguiente instrucción máquina— y c) ejecución de la instrucción (que puede incluir la lectura de operandos en memoria o el almacenamiento de resultados en memoria). Esta secuencia tiene dos propiedades 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 del procesador está continua e ininterrumpidamente realizando esta secuencia (advertencia 1.1).


Advertencia 1.1. Algunos procesadores tienen una instrucción de parada (p. ej.: HALT) que hace que la unidad de control se detenga hasta que llegue una interrupción. Sin embargo, esta instrucción es muy poco utilizada (salvo en equipos portátiles en los que interesa ahorrar batería), por lo que, a efectos prácticos, podemos considerar que la unidad de control no para nunca de realizar la secuencia de lectura de instrucción, incremento de PC y ejecución de la instrucción.
  a) Lectura de la instrucción apuntada por PC
Secuencia lineal: ejecuta
  b) Incremento del PC     instrucciones consecutivas
Bucle infinito
  c) Interpretación y ejecución de la instrucción
Figura 1.7 Secuencia de ejecución del procesador.
Podemos decir, por tanto, que lo único que sabe hacer el procesador es repetir a gran velocidad esta secuencia. Esto quiere decir que, para que realice algo útil, se ha de tener, adecuadamente cargado en memoria, un programa máquina con sus datos, y se ha de conseguir que el contador de programa apunte a la instrucción máquina inicial de dicho 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. Todos ellos se basan en algo muy simple: modifican el contenido del contador de programa, con lo que se consigue que se salte o bifurque a otra sección 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 otra sección 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 (que deberá ser el sistema operativo).
         Una instrucción máquina de llamada al sistema (p. ej.: TRAP, INT o SC), que produce un efecto similar a la interrupción, haciendo que se salte a otro programa (que deberá ser el sistema operativo).
Si desde el punto de vista de la programación el interés se centra en las instrucciones de salto, y, en especial en las de salto a procedimiento y retorno de procedimiento, desde el punto de vista de los sistemas operativos son mucho más importantes las interrupciones y las instrucciones máquina de llamada al sistema. Por tanto, centraremos nuestro interés en resaltar los aspectos fundamentales de estas dos últimas.
1.2.3.     Registros de control y estado
Como se ha indicado anteriormente, la unidad de control tiene asociada una serie de registros que denominamos de control y estado. Estos registros dependen de la arquitectura del procesador. Muchos de ellos se refieren a aspectos que se analizarán a lo largo del texto, por lo que no se intentará explicar aquí su función. Entre los más importantes se pueden encontrar los siguientes:
         Contador de programa PC. Contiene la dirección de la siguiente instrucción máquina.
         Puntero de pila SP. Contiene la dirección de la cima de la pila. En algunos procesadores existen dos punteros de pila: uno para la pila del sistema operativo y otra para la del usuario.
         Registro de instrucción RI. Contienen la instrucción en curso de ejecución.    Registro de estado, que contiene, entre otros, los bits siguientes:
       Bits de estado aritméticos como: Signo, Acarreo, Cero y Desbordamiento.
       Bits de modo de ejecución. Indican el modo en el que ejecuta el procesador.
       Bits de control de interrupciones. Establecen las interrupciones que se pueden aceptar.
         Registros de gestión de memoria, como pueden ser los registros de protección de memoria o el registro identificador del espacio de direccionamiento (véase la sección “1.7.2 Mecanismos de protección de me-
moria”).
Algunos de estos registros son visibles en el modo de ejecución de usuario, como el PC, el SP y parte del estado, pero otros no lo son, como los de gestión de memoria.
Al contenido de todos los registros del procesador en un instante determinado le denominamos estado del procesador, término que utilizaremos profusamente a lo largo del libro. Un subconjunto del estado del procesador lo constituye el estado visible del procesador, formado por el conjunto de los registros visibles en modo usuario.
        

    Comentarios