Sistemas operativos – Máquina multinivel

El sistema operativo separa al programador de trabajar directamente con el hardware a bajo nivel (bits, transistores, puertas lógicas, etc) y presenta una interfaz sencilla ocultando asuntos desagradables como interrupciones, temporizadores, administración de memoria, etc. Desde esta perspectiva, una de las funciones del sistema operativo es presentar al usuario el equivalente de una máquina virtual, que es más fácil de programar que el hardware.

Las máquinas interpretan más fácilmente las señales on y off, lo que equivale a interpretar la presencia o ausencia de voltaje. Por lo tanto, el lenguaje empleado por las máquinas consta de dos símbolos, el 1 y el 0, lo que equivale a verdadero o true, y falso o false respectivamente. Este lenguaje se conoce como lenguaje binario, y es éste lenguaje el empleado para construir todos los comandos e instrucciones necesarias para comunicarnos con la máquina. Las instrucciones que se ejecutan en un computador, son colecciones de bits, por ejemplo, el siguiente patrón indica al computador que debe sumar dos números: 1000110010100000. Escribir un programa a base de bits, es muy complicado para los programadores, para solucionar este problema existe lo que llamamos máquina multinivel. Éste concepto es una estructuración de capas bajo una serie de abstracciones, donde cada capa se apoya en la que está debajo de ella, y facilita el trabajo con el sistema operativo. Ejemplo de máquina multinivel:

MaquinaMultinivel

Lenguaje de alto nivel

Con el fin de expresar los programas en un lenguaje más cercano a la forma de pensar de los programadores, surgen los lenguajes de alto nivel, que en la anterior imagen se ubica en el nivel 5. Para que los computadores puedan procesar el software escrito en lenguajes de alto nivel, se desarrollaron otros programas que traducen programas escritos en alto nivel a un lenguaje de nivel más bajo llamado ensamblador (nivel 4). A estos programas los llamamos compiladores. En la siguiente imagen se muestra un ejemplo de un software escrito en un lenguaje de alto nivel como C, que es traducido a un programa en lenguaje en ensamblador por medio de un compilador.

lenguajes

Ensamblador

El lenguaje ensamblador aún no es un lenguaje entendible por la máquina. Ensamblador es un tipo de programa que se encarga de traducir un fichero fuente escrito en lenguaje ensamblador (nivel 4) a lenguaje máquina (nivel 3 y 2). Según la arquitectura del microprocesador y el número de registros de éste, la traducción a lenguaje máquina puede ser diferente. Cada fabricante publica el conjunto de instrucciones que su microprocesador emplea. En los niveles 3 y 2, existen las mismas instrucciones, sólo que en estos niveles, el sistema operativo debe hacer determinadas reorganizaciones de las instrucciones a nivel de memoria, posible ejecución en paralelo de programas, etc.

En el lenguaje ensamblador para un procesador x86, la sentencia:

MOV AL, 61h

Asigna el valor hexadecimal 61 (97 en decimal) al registro AL. El programa ensamblador lee la sentencia y produce su equivalente en binario:

10110000 01100001

El código máquina generado por el ensamblador consiste en 2 bytes, el primer byte contiene empaquetada la instrucción MOV y el código del registro hacia donde se va a mover el dato:

1011   0000   01100001
   |     |         |
   |     |         +---- Número 61h en binario
   |     +--- Registro AL
   +--------- Instrucción MOV

En el segundo byte se especifica el número 61h escrito en binario, que se asignará al registro AL. En la máquinas que no existe el nivel de microprogramación, las instrucciones a nivel de máquina son realizadas directamente por los circuitos electrónicos (el hardware, nivel 0). El funcionamiento del sistema operativo y las funciones que lo rigen, está codificado a nivel de instrucciones, es decir, en código máquina.

Microprogramación

El diseño de microprocesadores de propósito general conoce dos técnicas que conducen a una clasificación de éstos en dos grupos:

  • Microprocesadores cableados: Son aquellos que tienen una unidad de control específicamente diseñada sobre el silicio para un juego de instrucciones concreto. En este caso, es el hardware el que se encarga de ejecutar las instrucciones de nivel 2.
  • Microprocesadores microprogramados: Son aquellos que tienen una unidad de control genérica o prediseñada y que implementan un juego de instrucciones u otro dependiendo de un microprograma software (paso de nivel 2 a nivel 1).

Hoy en día, la microprogramación ha desaparecido casi por completo. Esto se debe a:

  • Existen herramientas avanzadas para diseñar complejos microprocesadores con millones de transistores litografiados. Estas herramientas prácticamente garantizan la ausencia de errores de diseño.
  • Los microprocesadores cableados tienen un rendimiento mayor que cualquier unidad microprogramada, resultando así más eficientes y competitivas.
Anuncios
Publicado en Sistemas operativos, Varios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

Sobre mi…

Soy Técnico en Explotación de Sistemas Informáticos y Técnico Superior en Administración de Sistemas Informáticos en Red. Actualmente estudiando el Grado de Ingeniería Informática en la Universidad de Córdoba (España).

Enamorado de la ciencia en general y de la computación en particular.

Música: Heavy, Rock, Celta, New Age, Electrónica, etc...
Libros:Isaac Asimov, Richard Dawkins, Stephen Hawking, Carl Sagan...

Estoy interesado en la programación de videojuegos. Políticamente de izquierdas, escéptico y ateo. En definitiva, mala gente.

Sígueme en Twitter

Introduce tu dirección de correo electrónico para seguir este Blog y recibir las notificaciones de las nuevas publicaciones en tu buzón de correo electrónico.

Únete a otros 24 seguidores

Usa Linux Mint
The Bit Developer Box
A %d blogueros les gusta esto: