martes, 6 de marzo de 2012

REVISIÓN DE ASPECTOS HARDWARE


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