REVISIÓN
DE ASPECTOS HARDWARE
Un sistema operativo
está íntimamente relacionado con el hardware del ordenador sobre el que se
ejecuta pues extiende el conjunto de instrucciones del ordenador y administra
sus recursos. Para poder realizar su trabajo debe conocer muy bien el hardware,
o al menos la apariencia que el hardware presenta al programador. La CPU, la
memoria y los dispositivos de E/S están todos conectados por el bus del sistema
y se comunican entre sí a través de él. Los ordenadores personales modernos
tienen una estructura más complicada en la que intervienen varios buses.
Procesadores
El “cerebro” del
ordenador es la CPU, la cual toma instrucciones de la memoria y las ejecuta. El
ciclo básico de toda CPU consiste en tomar la primera instrucción de la
memoria, decodificarla para determinar su tipo y operandos, ejecutarla, y luego
tomar, decodificar y ejecutar las instrucciones subsiguientes. Es así como se
ejecutan los programas. Cada CPU ejecuta un repertorio de instrucciones
específico. Por lo tanto, un Pentium no puede ejecutar programas para un SPARC,
y un SPARC no puede ejecutar programas para un Pentium. Puesto que acceder a la
memoria para extraer una instrucción o una palabra de datos tarda mucho más que
la ejecución de una instrucción, todas las CPUs contienen algunos registros
internos para guardar variables importantes y resultados temporales. El
repertorio de instrucciones incluye por lo general instrucciones para cargar
una palabra de la memoria en un registro, y para almacenar en la memoria una
palabra que está en un registro. Otras instrucciones combinan dos operandos
tomados de los registros, de la memoria o de ambos, para producir un resultado.
Otro registro es el puntero
de pila, que apunta a la parte superior (cima) de la pila actual en la
memoria. La pila contiene una trama (o registro de activación) por cada procedimiento
al que se ha llamado pero del cual no se ha retornado todavía. La trama de pila
de un procedimiento contiene los parámetros de entrada, las variables locales y
variables temporales que no se guardan en registros.
Otro registro más es
la PSW (Program Status Word; palabra de estado del programa)
(también se le llama el registro de estado del procesador). Este
registro contiene los bits de código de condición (también denominados
indicadores o flags), que se activan cuando se ejecutan instrucciones de
comparación, junto con la prioridad de ejecución de la CPU, el modo (usuario o
supervisor (núcleo)) y otros bits de control. Los programas de usuario por lo
general pueden leer la PSW entera, pero sólo pueden escribir en algunos de sus
campos. La PSW desempeña un papel muy importante en las llamadas al sistema y
la E/S.
Muchas CPUs modernas
cuentan con los recursos necesarios para ejecutar más de una instrucción al
mismo tiempo. Por ejemplo, una CPU podría tener unidades individuales para
extraer, decodificar y ejecutar, de manera que mientras esté ejecutando la instrucción
n, también puede estar decodificando la instrucción n+1 y
extrayendo la instrucción n+2. Tal organización se denomina pipeline (o
segmentación encauzada).En casi todos los diseños de pipelines, una vez que una
instrucción entra en el pipeline, debe ejecutarse necesariamente, aunque la
instrucción anterior haya sido un salto condicional que haya dado lugar a una
ruptura de secuencia. Los pipelines provocan grandes dolores de cabeza a
quienes escriben compiladores y sistemas operativos, porque les obligan a tener
en cuenta aspectos muy complejos de la máquina en cuestión.
Un diseño todavía más
avanzado que el pipeline es una CPU superescalar. Cuenta con varias
unidades de ejecución, por ejemplo, una para aritmética de enteros, una para
aritmética de punto flotante y una para operaciones booleanas. Se extraen dos o
más instrucciones a la vez, se decodifican y se dejan en un búfer de retención hasta
que puedan ejecutarse. Cuando queda libre una unidad de ejecución, se busca en
el búfer de retención una instrucción que pueda ejecutarse en ella y, si la
hay, se la saca del búfer y se ejecuta. Una implicación de este diseño es que
las instrucciones del programa a menudo se ejecutan desordenadas.
La mayoría de las
CPUs, salvo las más simples que se utilizan en los sistemas empotrados, tienen
dos modos de operación: modo núcleo y modo usuario, como se mencionó antes. Por
lo regular, un bit de la PSW controla el modo. Cuando la CPU opera en modo núcleo
puede ejecutar cualquiera de las instrucciones que componen su repertorio de
instrucciones y realizar todas las funciones del hardware. El sistema operativo
se ejecuta en modo núcleo, y eso le permite acceder a todo el hardware.
En contraste, los
programas de usuario se ejecutan en modo usuario, que sólo permite ejecutar un
subconjunto del repertorio de instrucciones y tener acceso a un subconjunto de
las funciones del hardware. En general, todas las instrucciones que implican
E/S y protección de memoria están deshabilitadas en modo usuario. Desde luego,
también está prohibido cambiar el bit de modo de la PSW para pasar de modo
usuario a modo núcleo.
No hay comentarios:
Publicar un comentario