Está en la página 1de 28

El entorno

de trabajo
Josep Llus Marzo Lzaro
P05/75094/01085
Mdulo 1

FUOC P05/75094/01085 Mdulo 1

El entorno de trabajo

ndice

Introduccin ............................................................................................

Objetivos ...................................................................................................

1. Estructura interna de un sistema operativo ..............................


1.1. Estructura monoltica .....................................................................

7
7

1.2. Estructura por capas.........................................................................

1.3. Estructura por funciones ................................................................

1.4. Conclusiones .................................................................................. 10


2. El ncleo del sistema operativo ..................................................... 12
3. Requisitos y ayudas de hardware ................................................. 14
3.1. Registros de hardware ...................................................................... 14
3.2. Controladores de entrada/salida .................................................... 14
3.3. El dispositivo de acceso directo a la memoria (DMA) .................... 15
3.4. El reloj del sistema .......................................................................... 17
3.5. Mecanismos de acceso al ncleo del sistema operativo:
excepciones, interrupciones y saltos no programados (traps) ........ 18
3.6. Modos de ejecucin del procesador ............................................... 20
3.7. Registros de control ........................................................................ 21
3.8. La unidad de gestin de la memoria .............................................. 22
3.9. Instrucciones privilegiadas .............................................................. 23
Resumen .................................................................................................... 25
Actividades ............................................................................................... 27
Ejercicios de autoevaluacin ............................................................... 27
Solucionario ............................................................................................. 27
Glosario ..................................................................................................... 27
Bibliografa .............................................................................................. 28

FUOC P05/75094/01085 Mdulo 1

Introduccin

En este mdulo didctico se describen las diferentes estructuras que puede


tener el ncleo de un sistema operativo (SO) en funcin de cmo est organizado internamente. As, encontramos las tres modalidades siguientes:
organizacin monoltica, organizacin por capas y organizacin por funciones.
Una vez vistas las distintas estructuras del ncleo del SO, se estudia el ncleo
desde la vertiente de su capacidad para llevar a cabo una gestin del sistema
diferente de la que puede efectuar un usuario, especialmente en lo que se refiere a los procedimientos que gestionan recursos comunes del sistema de cierta importancia.
A partir de las peculiaridades que se dan en el modo de ejecucin del ncleo
del SO, justificamos la necesidad de disponer de una ayuda de hardware en el
momento de gestionar algunos procedimientos, tanto por la imposibilidad de
gestionarlos mediante software, como con la finalidad de aumentar notablemente su eficiencia.
Por ltimo, estudiamos algunas de las gestiones que hace el sistema y su correspondiente hardware. En este caso, no presentamos un estudio exhaustivo de
cada circuito o registro de soporte ni de las diferentes necesidades de los distintos procedimientos de gestin, pero veremos algunos ejemplos caractersticos.

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

Objetivos

Los materiales didcticos de este mdulo contienen los conocimientos fundamentales para que el estudiante alcance los siguientes objetivos:
1. Conocer las diferentes estructuras internas que puede tener el ncleo de un
SO y las respectivas caractersticas diferenciales, y saber diferenciarlas en
funcin de su especializacin.
2. Identificar los elementos de hardware necesarios para implementar algunos
servicios especficos del SO.
3. Conocer las modalidades de ejecucin de los procesos con respecto a sus
privilegios, especialmente el modo del ncleo del SO.
4. Conocer las razones por las que el SO necesita el soporte de hardware para
controlar el sistema. Algunas razones tienen que ver con la eficiencia y otras
se relacionan con la naturaleza del control.
5. Entender qu papel tiene el soporte de hardware del computador en el momento de efectuar determinadas funciones del SO y tambin saber qu tipos de procedimientos necesitan este soporte.
6. Poder diferenciar la ejecucin de operaciones normales de la ejecucin de
instrucciones privilegiadas, y saber qu tipo de gestin de los servicios de SO
permiten estas instrucciones.

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

El entorno de trabajo

1. Estructura interna de un sistema operativo

Podemos establecer una primera clasificacin de los sistemas operativos (SO)


en funcin del modo de trabajo que utilizan. Segn esta clasificacin, hay SO
por lotes, multiprogramados, de tiempo compartido, de tiempo real, distribui-

Podis ver la definicin de SO por


lotes, multiprogramado, distribuido,
en tiempo real, en tiempo compartido,
en el glosario del mdulo Introduccin
a los sistemas operativos de la
asignatura Sistemas operativos.

dos, etc. Sin embargo, en este mdulo nos interesa ms distinguirlos segn la
forma en que estn construidos como conjuntos de programas. As, a partir de
la estructura interna del ncleo, podemos clasificar los SO en monolticos, por
capas y por funciones. A continuacin describiremos cada una de las estructuras de los SO por separado.

1.1. Estructura monoltica

El SO se ha descrito como un conjunto de procedimientos que se pueden llamar entre s sin ninguna limitacin. Los sistemas operativos en

Podis ver la definicin de sistema


operativo en el apartado 1 del
mdulo Introduccin a los sistemas
operativos de la asignatura
Sistemas operativos.

que el ncleo presenta una organizacin monoltica se caracterizan porque no tienen una estructura clara y fijada para cada uno de los servicios
que han de proporcionar.
La forma de construir un ncleo con una estructura monoltica es editar
y compilar los diferentes programas por separado y enlazarlos todos al
final para formar un nico fichero objeto.

Aunque este sistema parezca poco organizado, hay unos puntos de entrada
en el SO bien definidos. Las llamadas al ncleo y los parmetros que se pasan tambin tienen que estar bien fijados, independientemente de la forma
como se haya programado el ncleo del SO. (Podis ver el grfico en la pgina siguiente.)

La misma lgica de funcionamiento nos sugiere una estructura mnima:

a) Hay un programa principal que atiende las peticiones de servicio y las enva a los procedimientos de servicio, que forman una segunda parte del SO.

b) Los procedimientos de servicio llaman programas de utilidades mucho ms


especficos que se pueden ejecutar desde cualquier procedimiento de servicio que
lo solicite.

Si se hace una extensin y una formalizacin ms detallada de estas funciones,


ya se pasa a una estructura por capas ms independientes unas de otras.

Los mecanismos bsicos de acceso


al SO se han descrito en el apartado
4 del mdulo El sistema operativo:
una mquina virtual de la asignatura
Sistemas operativos.

FUOC P05/75094/01085 Mdulo 1

El entorno de trabajo

1.2. Estructura por capas

El SO se puede construir en forma de una jerarqua de capas. La idea bsica es que una capa slo se puede comunicar con las capas contiguas.
Dentro de esta jerarqua, las funciones ms cercanas al hardware estn
en las capas inferiores, y las implicaciones de usuario, a las superiores.
As, la asignacin del procesador y de la memoria ir a capas bajas y
las utilidades de usuario o la gestin de ficheros irn a capas altas.

Como en el caso de los SO monolticos, las capas tienen definidos unos puntos
de entrada para hacer llamadas, y tambin tienen fijados los parmetros que
hay que pasar.

La ventaja fundamental de esta organizacin es la independencia existente entre capas. Esto significa que se puede modificar el cdigo de una capa sin la
obligacin de tener en cuenta el cdigo del resto de las capas, excepto en los
puntos de entrada. Una excepcin sera cuando el cdigo de una capa no es
necesario: entonces, en lugar de crear un procedimiento vaco, se puede saltar
la capa y hacer la llamada directamente a una capa ms lejana.

La estructura por capas permite describir un SO de forma ms clara que la


estructura monoltica, aunque el sistema no est estrictamente separado
por capas.

Aplicaciones
de la estructura por capas
La tcnica que se utiliza en la
estructura por capas tambin
se aplica a otros sistemas informticos, como los protocolos
de comunicaciones.

FUOC P05/75094/01085 Mdulo 1

1.3. Estructura por funciones

Podemos organizar el cdigo del SO por sus funciones. En este caso, las
agrupaciones se hacen segn el tipo de servicio que se desea dar, sin tener en cuenta la proximidad o la distancia del hardware, como hemos
hecho en el caso de la estructura por capas que hemos descrito antes.
Estas agrupaciones se pueden crear a partir de servicios de entrada/salida, la gestin de procesos, la gestin de la memoria, etc. A la hora de
construir el SO, esta organizacin da una estructura vertical.

Ahora bien, la particin vertical no se puede hacer de una forma muy estricta;
hay servicios que tienen fronteras difusas como, por ejemplo, el de gestin de
entrada/salida y el de ficheros, o los de gestin de procesos y de gestin de la
memoria. Lo que s se tiene que fijar, como en los modelos de SO que se han
explicado, son los puntos de acceso a las llamadas y los parmetros que se tienen que pasar y su disposicin.

Desde el punto de vista de la implementacin, los SO con estructura funcional


se pueden construir con el modelo cliente/servidor o con la programacin de
objetos. En ambos casos, el objetivo es el mismo: dar a las aplicaciones una coleccin de servicios que son servidos por ciertos procedimientos con entidad
propia, sean servidores, sean objetos.

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

10

1.4. Conclusiones
Normalmente los SO no siguen estrictamente uno de los modelos que hemos
presentado. Los SO comerciales utilizan lo mejor de cada estructura para cada
funcin:
a) As, cuando los servicios tienen que controlar principalmente dispositivos de
hardware, es conveniente que las funciones estn divididas por capas. De esta
forma se dispone de cdigo independiente del hardware y se facilita la configuracin de los equipos.
b) En cambio, en la gestin ms interna de los recursos del sistema (procesador,
memoria, etc.), lo ms importante es que el cdigo sea eficiente. Entonces, la estructuracin se puede hacer por funciones.

La mayora de los sistemas operativos son bsicamente monolticos,


pero estn dotados de una cierta estructura interna, por capas o por funciones, adecuada a cada servicio.

Un aspecto muy importante para todos los tipos de SO es que la definicin de


las fronteras entre los distintos mdulos del software tienen que ser precisas,
ya que estas fronteras tienen que determinar los puntos de entrada a las rutinas de servicio. Tambin es importante que la definicin de los parmetros de
paso sea estricta. Adems, entre las diferentes versiones de un SO, las fronteras

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

11

El entorno de trabajo

tienen que ser estables. Esto hace que el cdigo sea mucho ms transportable
cuando se cambia de versin.
A continuacin presentamos, como ejemplo, el diagrama de bloques del ncleo de UNIX:

Sistema operativo UNIX


UNIX es un sistema monoltico, aunque se presenta estructurado por funciones.

FUOC P05/75094/01085 Mdulo 1

12

El entorno de trabajo

2. El ncleo del sistema operativo

El ncleo es la parte del sistema operativo que se encuentra permanentemente cargada en la memoria, es decir, el conjunto de procesos activos propiedad del sistema que pueden ofrecer un servicio de forma
inmediata.

El ncleo es un rea de ejecucin privilegiada y, por tanto, est dotado de unas


protecciones fuertes. Cuando una rutina que se est ejecutando en el rea de

Podis ver la utilizacin de los traps


en el apartado 4 del mdulo El
sistema operativo: una mquina virtual
de la asignatura Sistemas operativos.

usuario pide un servicio de sistema, accede al ncleo mediante un salto no


programado (trap). Como sabemos, un trap es una interrupcin del software y,
por tanto, utiliza un vector de interrupciones. Cuando hay un cambio de contexto de estas caractersticas, el procesador cambia el estado de ejecucin a
modo sistema (tiene ms privilegios).

Es necesario que las rutinas del ncleo tengan estos privilegios, ya que desde
las rutinas del ncleo se cambias las protecciones de los ficheros, se crean y se

Por qu es necesario que las


rutinas del ncleo tengas estos
privilegios?

borran nuevos usuarios, se gestionan los PCB y las tablas de gestin de la memoria y se llevan a cabo muchas acciones de envergadura similar. Dada la gran
capacidad de gestin que se pide del ncleo, y teniendo en cuenta las partes
tan importantes que puede modificar, el acceso a estas rutinas debe estar totalmente controlado.

La siguiente figura muestra que hay un aumento de los privilegios cuando se


ejecutan rutinas del ncleo. El cambio de modo de ejecucin, de usuario a sistema, no es visible ni manipulable por el usuario; se necesita un soporte de
hardware para hacerlo.

Podis ver el cambio de modo


de ejecucin en el subapartado 3.6.
de este mdulo didctico.

FUOC P05/75094/01085 Mdulo 1

13

El entorno de trabajo

Para simplificarlo, presentamos un caso con dos nicas modalidades de ejecucin, usuario y sistema, pero los procesadores pueden gestionar ms. En general,
cada modalidad tambin tiene todos los privilegios de la modalidad de nivel inferior.

VAX
Bajo el sistema operativo VMS,
el VAX soporta cuatro modos
de ejecucin: usuario, supervisor, ejecutivo y ncleo.

FUOC P05/75094/01085 Mdulo 1

14

El entorno de trabajo

3. Requisitos y ayudas de hardware

El concepto de mquina virtual que implementa el sistema operativo engloba dos importantes aspectos que requieren una ayuda del hardware. Por una
lado, se tiene que mantener un entorno de trabajo fiable y seguro y, por

Podis ver el concepto de mquina


virtual en el apartado 1 del mdulo
El sistema operativo: una mquina
virtual de la asignatura Sistemas
operativos.

otro lado, se tiene que hacer una gestin eficiente de los recursos. Los
ejemplos de hardware que presentamos a continuacin se orientan a alcanzar estos objetivos.
Mientas se est ejecutando cdigo de usuario, con la finalidad de que el SO cumpla funciones de control, se necesitan circuitos fsicos (hardware) auxiliares que
informen de la aparicin de acontecimientos asncronos (no se puede prever,
sin embargo, cundo se producirn). El SO no dispone del procesador en estas
circunstancias, por lo que se tiene que hacer cargo de ello una parte ajena al procesador.

La atencin
a las interrupciones
... de dispositivos perifricos o
la deteccin de accesos ilegales
a la memoria son ejemplos de
acontecimientos que deber
atender este hardware auxiliar.

Otros acontecimientos de los que se tendr que ocupar el hardware auxiliar se


dan al aplicar privilegios en ciertas operaciones mquina. Para gestionar estos
aspectos se necesitan registros de hardware.

3.1. Registros de hardware


Para ejecutar programas se necesita la informacin que, de forma automtica,
gestiona una serie de registros de hardware del computador. Hay registros
que hasta las mquinas ms simples deben tener, como el contador de programa (PC), el registro de instrucciones (IR) o los registros generales (Rn).
Sin embargo, hay otros que son ms especficos, sirven para controlar la memoria o el sistema de interrupciones y estn ms relacionados con el SO.

3.2. Controladores de entrada/salida


Basaremos la exposicin del hardware de los controladores entrada/salida en el
ejemplo del SCSI (Small Computer System Interface). Este controlador fue estan-

Podis ver los detalles de estos


controladores en el apartado 1 del
mdulo didctico La gestin de las
entradas/salidas de esta asignatura.

darizado en 1984 por el American National Standards Institute (ANSI), y ms


recientemente, en 1994, apareci el SCSI-2. Ocupa una nica ranura (slot) de
la placa madre que lo conecta con los buses del sistema y puede gestionar hasta siete dispositivos diferentes (identificados del 0 al 6) por medio de un nico
hilo cinta que forma el bus SCSI.
Las velocidades de transferencia de estos dispositivos son del orden de 5 Mb/s
en el estndar de 8 bits y llegan a los 40 Mb/s en el ultra SCSI de 16 bits*. Hay

* En la actualidad se trabaja
en versiones de controladores
an ms rpidas.

FUOC P05/75094/01085 Mdulo 1

15

que decir que por cuestiones tecnolgicas del bus, y para que ste trabaje sin
errores, el primer dispositivo y el ltimo deben tener unas terminaciones que
acten como impedancias que equilibran el bus desde el punto de vista de la
transmisin de seales a gran velocidad. La longitud mxima del bus SCSI
completo no tiene que superar los 6 7 metros, pero es recomendable utilizar
tramos mucho ms cortos, de 20 30 centmetros (2 metros como mximo).

Los dispositivos que controla el SCSI pueden ser internos o externos. El hilo
permite montar unidades de disco, por ejemplo, dentro de una unidad central;
mediante un conector normalizado tambin hace posible conectar otros dispositivos desde el exterior, como impresoras, escneres, etc.

3.3. El dispositivo de acceso directo a la memoria (DMA)

A menudo se inician transferencias de informacin entre los perifricos de


bloques (normalmente discos) y la memoria. El proceso que se tiene que
llevar a cabo es muy sencillo; se trata de copiar una cantidad determinada
de palabras desde el perifrico hacia posiciones consecutivas de memoria.
En este caso, la intervencin del procesador presenta diferentes inconvenientes:

Por un lado, dedicamos el procesador a una tarea sencilla y para la que


no es eficiente: toda la informacin tiene que pasar por necesidad por
los registros internos del procesador, accin que comporta dos utiliza-

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

16

ciones del bus de datos, una para llevar la palabra desde el perifrico hacia el registro del procesador y otra para llevarla desde el procesador
hacia la memoria.
Por otro lado, mientras no haya llegado toda la informacin a la memoria,
no puede continuar la ejecucin del proceso (est pendiente de una operacin de entrada/salida); por tanto, el procesador se puede dedicar a ejecutar
un proceso preparado.
La solucin para estos problemas es permitir que el controlador de un perifrico
pueda acceder directamente a la memoria y vaya copiando la informacin a posiciones de memoria correlativas. El dispositivo DMA solicitar utilizar el canal
(bus), pero el procesador tiene prioridad.
La utilizacin del bus no supone una interrupcin
Tenemos que diferenciar entre el tiempo de espera de un ciclo de utilizacin del bus
del sistema y una interrupcin. Cuando el dispositivo DMA captura el bus, no hay un
cambio de contexto por parte del procesador; simplemente tiene que esperar que el
bus se libere para volver a tenerlo. Aunque la actividad del procesador disminuye en
cierta medida, esto es mucho ms eficiente que tener que cambiar de contexto para
atender una interrupcin.

Cuando un proceso pide datos de un perifrico gobernado por un controlador


DMA, se inicia el siguiente procedimiento:

1) En primer lugar, el procesador ordena la operacin de lectura/escritura del


dispositivo correspondiente.

2) Despus carga los registros del controlador DMA que indican la posicin de
memoria inicial y la cantidad de palabras que se tiene que transferir.

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

17

3) Una vez cargados los registros del controlador, el proceso principal pasa al
estado de espera, y se hace cargo de la gestin del dispositivo y de las rutinas
correspondientes del sistema operativo.
4) Cuando la memoria intermedia (buffer) del controlador del dispositivo est
llena, se inicia la transferencia de la informacin de forma autnoma.
5) Al finalizar la operacin, el proceso principal es informado por medio de una
interrupcin.
6) Cuando el proceso principal vuelve a disponer del procesador, los datos que
quera ya estn en la memoria.
Eliminacin de la memoria intermedia (buffer) del dispositivo DMA
Podramos pensar que si existe la posibilidad de enviar los datos directamente del dispositivo a la memoria, la memoria intermedia del controlador DMA es innecesaria. Sin embargo, no se puede prescindir de ella; no olvidemos que los buses son compartidos con
el procesador, de forma que si se tiene que esperar demasiado tiempo para enviar la palabra que se acaba de leer, podramos tener ya la palabra siguiente leda y se podra perder
informacin. Un caso claro es el de un disco magntico: se accede a la informacin a medida que gira el disco, y si no podemos transferir la informacin suficientemente rpido,
podemos perderla.

Los controladores de los dispositivos que operan por bloques pueden verificar de
forma autnoma que la informacin se ha ledo correctamente. Para hacerlo
pueden verificar el CRC; as no se inicia una transferencia de datos incorrectos.
Si se detectan errores, el mismo dispositivo puede hacer nuevas operaciones de
lectura para intentar recuperar la informacin. Si, por ltimo, no se puede leer
sin errores, se informa de ello al SO.

3.4. El reloj del sistema


El reloj del sistema es un caso especial de dispositivo de entrada. Lo gestionamos como el resto de los dispositivos, pero podemos decir que es prcticamente
cien por cien hardware. Consta de un circuito electrnico que genera impulsos
de alta frecuencia basado en un cristal de cuarzo para que sea estable. Es muy
similar a los circuitos de un reloj de pulsera convencional. La velocidad de estos
impulsos de alta frecuencia se va reduciendo hasta llegar a unas decenas de impulsos por segundo. A partir de esta base, el sistema mantiene actualizados unos
registros con el tiempo (en segundo o en impulsos) que ha estado funcionando.
El reloj tiene la misin de mantener una referencia temporal en el sistema.
Trabaja de forma autnoma e independiente del funcionamiento del computador como mquina de ejecutar programas. Podemos diferenciar dos tareas a
las que est dedicado su funcionamiento:
Mantener un reloj interno convencional, en el sentido de que indique el da y
la hora de forma constante (aunque el sistema se detenga de forma temporal).

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

18

El entorno de trabajo

Generar una serie de interrupciones de hardware que activan una rutina del
ncleo de manera sncrona (cada cierta cantidad de milisegundos).

El reloj es el dispositivo que permite hacer un sistema en tiempo compartido. Para hacerlo, en cada interrupcin del reloj comprobamos si el proceso an no ha agotado su cuota de procesador. As se van contabilizando los

Podis ver los sistemas en tiempo


compartido en el subapartado 2.3
del mdulo Introduccin a los sistemas
operativos de la asignatura Sistemas
operativos.

tiempos antes de hacer un cambio de contexto y de asignar el procesador


a otro proceso.

Para asignar el procesador a otro proceso se activa una importante rutina de


servicio que se ejecuta muchas veces: el distribuidor del procesador entre los
procesos de bajo nivel. El reloj tambin permite contabilizar en el PCB el tiempo real de procesador que ha consumido cada uno de los procesos.

Reloj del sistema y del procesador


No tenis que confundir el reloj del sistema con el reloj del procesador. Este ltimo es
ms rpido, marca la cadencia de ejecucin de las instrucciones mquina (ciclos) y no se
puede manipular de ninguna forma. El reloj del sistema suele tener una batera para funcionar autnomamente; el reloj del procesador, en cambio, se detiene si no le llega la alimentacin del computador.

3.5. Mecanismos de acceso al ncleo del sistema operativo:


excepciones, interrupciones y saltos no programados (traps)

Los tres mecanismos de acceso al ncleo del sistema operativo se basan esencialmente en la tcnica de la interrupcin de la ejecucin de un programa. Para
atender estas interrupciones, el computador debe tener capacidad para llevar a
cabo las siguientes acciones:

Detectar la interrupcin durante la ejecucin de un cdigo cualquiera.

Reorientar la peticin hacia la rutina correspondiente.

Continuar la ejecucin justo en el punto en que se ha dejado.

Los mecanismos de acceso al ncleo


del sistema operativo se vieron en el
apartado 4 del mdulo El sistema
operativo: una mquina virtual
de la asignatura Sistemas operativos.

FUOC P05/75094/01085 Mdulo 1

19

El entorno de trabajo

Para hacerlo de forma independiente del cdigo y del punto preciso en que se
est ejecutando, el computador debe tener un hardware determinado.

Los sistemas de interrupcin varan en los detalles, pero muchas de sus caractersticas son comunes a todos los computadores. A continuacin describimos
el mtodo de interrupciones de un sistema computador genrico orientado en
exclusiva a la parte del computador que afecta al SO.

El sistema computador debe tener una o ms lneas de interrupcin que activan el indicador (flag) de interrupciones. En algunos sistemas, el indicador seala cualquier activacin momentnea de la lnea, mientras que en otros la
lnea se tiene que mantener activada si queremos que la interrupcin sea atendida. La diferencia es un detalle de la electrnica, pero el resultado final es el
mismo.

Una vez se ha producido la interrupcin, para gestionarla tienen lugar una serie de operaciones que describimos a continuacin:

1) Para detectar una interrupcin activa, el procesador, al finalizar el ciclo de ejecucin completo de una instruccin, consulta el estado de un indicador que, como sabemos, avisa si hay un circuito de interrupcin activo.
Este indicador es un bit del registro de estado del procesador. Si hay una interrupcin, el procesador consulta otro indicador del registro de estado del
procesador: el indicador de interrupciones habilitadas. Supondremos que la
etiqueta de este indicador es ief (interruption enabled flag). As, si ief = 1, la interrupcin es atendida, pero si ief = 0, la interrupcin es ignorada. El indicador
ief, como el carry (bit de desbordamiento), se activa y se desactiva por orden
del procesador.
Gestin prioritaria de interrupciones
Hay que plantearse tambin si durante la ejecucin de una rutina de interrupcin se tiene
que atender a una nueva. Imaginemos que en esta circunstancia llega una interrupcin
de la impresora para pedir ms lneas para imprimir, y comparmoslo con el caso de una
interrupcin de reloj por un error grave al leer el rea del sistema de disco. Ni que decir
tiene que todo depende de la prioridad de la nueva interrupcin con respecto a la que se
est sirviendo. Los sistemas de interrupcin tienen que permitir gestionar las interrupciones por prioridades.

2) El ciclo de interrupcin es bsicamente un salto de hardware a una subrutina. Ahora bien, en el caso de las interrupciones, la direccin de la subrutina
no es un parmetro; el nico parmetro utilizado es el nmero de interrupcin, que el mismo hardware pone en el bus de direcciones cuando empieza a
atender la interrupcin. El nmero de interrupcin es utilizado como ndice
del vector de interrupciones, que est ubicado en la parte baja de la memoria
y que, como sabemos, contiene las direcciones de todas las rutinas de servicio
de interrupcin*.

* Los traps y las excepciones utilizan


mecanismos similares a los que
hemos descrito para
las interrupciones.

FUOC P05/75094/01085 Mdulo 1

20

El entorno de trabajo

3) El final del servicio de la interrupcin es muy similar al final del uso de


las subrutinas: se recuperan los valores del contador del programa y los de los
registros internos, y se prepara la pila para que el proceso la encuentre exactamente igual que cuando se produjo la interrupcin.

3.6. Modos de ejecucin del procesador

Un procesador tpico tiene diferentes modalidades de ejecucin; por ejemplo, usuario, supervisor, ncleo, etc. Para simplificarlo, hablaremos de dos
modalidades: el modo usuario y el modo sistema. El modo de ejecucin
determina los privilegios que tiene un proceso para acceder a la memoria
o para ejecutar ciertas instrucciones privilegiadas, como la instruccin halt
(parada) que sirve para detener el procesador.

Para tener estos modos de ejecucin, el procesador tiene que estar dotado de
unos registros de hardware que le permitan una gestin eficiente de los cambios
de modo. En general, las rutinas que se ejecutan en un determinado modo pueden proteger su cdigo y datos de otro cdigo de rango inferior. As, cada tipo
de ejecucin engloba las capacidades de todas las capas inferiores.
Una primera consecuencia de ello es que cada proceso puede tener tantas pilas
como posibles modos de ejecucin, y se puede acceder a cada pila slo desde su
propio modo de ejecucin y, como es lgico, tambin desde los modos que tienen
ms privilegios. Puede haber una pila exclusiva para el SO, que se utilizar de for-

Algunas instrucciones privilegiadas


se estudian en el subapartado 3.9
de este mdulo didctico.

FUOC P05/75094/01085 Mdulo 1

21

El entorno de trabajo

ma exclusiva para los servicios de interrupcin asncronos. Esta pila se debe manipular desde el modo de mximos privilegios (modos sistema o ncleo).
La informacin del modo actual de ejecucin se guarda en el registro de estado
del procesador, en tantos bits como sea necesario (en un solo bit si nicamente tenemos dos posibles modos). Los bits de estados son manipulados por unas
ciertas instrucciones privilegiadas. Normalmente, el procesador ejecuta el cdigo en el nivel de privilegio ms bajo, el modo usuario. Para ejecutar ciertas
funciones, por ejemplo la entrada/salida, el usuario llama un servicio de sistema. Si la rutina se debe ejecutar en un modo que tenga ms privilegios, porque
tiene que acceder a reas restringidas de la memoria, o por imperativos similares, desde las rutinas del ncleo se puede ejecutar una orden para aumentar
el nivel de privilegios.
Estos cambios se hacen con la ayuda del hardware; la instruccin INT n del trap
restaura el registro de estado del procesador con el modo de ejecucin correspondiente. Esto se puede hacer porque el registro de estado se ha recuperado
desde la pila correspondiente al nuevo modo de ejecucin. De forma similar,
cuando se termina la rutina de servicio del ncleo se restaura el registro del estado original por orden de la instruccin IRET (instruccin de retorno de una
interrupcin).

3.7. Registros de control


En general, los registros de control son una parte de la informacin del entorno guardada en el bloque de control de proceso (PCB).
No podemos hacer una descripcin general de los registros de control, porque
dependen de la arquitectura de cada computador, pero a continuacin mostramos una breve relacin de los registros de control ms comunes:
Registros de control de acceso a la memoria (Memory Addres Registrer o
MAR). Estos registros facilitan la tarea de la unidad de gestin de la memoria.

Podis ver con detalle la unidad


de gestin de la memoria en el
subapartado 3.8 de este mdulo
didctico.

FUOC P05/75094/01085 Mdulo 1

22

El entorno de trabajo

Apuntador de pila (Strack Pointer o SP). Como sabis, los procesos trabajan
continuamente con una estructura de datos de tipo vector gestionada como
una pila. El procesador tiene un registro que apunta a la pila activa; este registro se actualiza con el entorno general de cada proceso.

Registro de estado del procesador (Program Status Word o PSW). Este registro agrupa una serie de bits asociados a diferentes estados del procesador que conviene consultar en cualquier instante. Entre estos indicadores,
podemos destacar los que informan el modo de ejecucin actual del procesador.

3.8. La unidad de gestin de la memoria

Para gestionar la memoria necesitamos un conjunto de circuitos capaces de transformar las direcciones que salen del procesador, o direcciones lgicas, en direcciones de la memoria fsica, o direcciones fsicas.
Estos circuitos forman la llamada unidad de gestin de la memoria (que se
suele denominar MMU*).

La traduccin de memoria en un sistema segmentado es una sencilla operacin de suma: la direccin del procesador ms la direccin base del segmento

* MMU es la sigla que corresponde


al trmino ingls Memory
Management Unit.

El sistema de traduccin de
direcciones se explica en el apartado
1 del mdulo La gestin de la memoria
de la asignatura Sistemas operativos.

correspondiente. Sin embargo, adems, la MMU es responsable de la deteccin


de accesos ilegales a la memoria. En el modelo segmentado tambin se compara simultneamente el tamao del segmento con la misma direccin lgica,
y si el proceso intenta acceder fuera de su espacio de segmento asignado, se
produce un error. El error por acceso ilegal a la memoria se notifica mediante

Podis ver el sistema de


segmentacin de la memoria en el
subapartado 3.1 del mdulo didctico
La gestin de la memoria
de la asignatura Sistemas operativos.

una excepcin (una interrupcin del hardware).

Tiempo de acceso
a las tablas de la memoria

El resultado de la gestin segmentada de la memoria es la creacin de espacios


de memoria disyuntos. De esta forma, los usuarios no pueden acceder ni al rea
del ncleo del SO ni al rea de otros procesos.

El acceso a las tablas de segmentos, o a estructuras similares, tiene que ser muy rpido
para no reducir la velocidad de
ejecucin de los programas en
funcin de la poltica de gestin de la memoria utilizada.
Por este motivo, es habitual
guardar en registros de la MMU
la parte ms utilizada de las
mencionadas estructuras de
datos. Es un modelo de gestin
similar a la utilizacin de la memoria cach.

FUOC P05/75094/01085 Mdulo 1

23

Como es lgico, el ncleo puede acceder tanto al rea de sistema como al rea
del usuario para manipular los datos. El cambio de punto de vista de espacio de
memoria usuario a sistema, y viceversa, est vinculado a los cambios de modo
de ejecucin. En funcin del valor del campo de estado que indica el modo de
ejecucin, el procesador se dirige a una parte de la memoria o a otra.

3.9. Instrucciones privilegiadas

En general, las instrucciones privilegiadas son utilizadas por el SO; si se ejecutan desde fuera del ncleo se provoca un error. Algunos de los procedimientos
que necesitan instrucciones privilegiadas son los siguientes:

1) Cambio de modo de ejecucin

Ya se ha explicado que las rutinas del ncleo del sistema se tienen que ejecutar
necesariamente en un modo privilegiado, y tambin se ha precisado en qu
consiste este modo. Ahora nos centraremos en las instrucciones destinadas a
provocar de forma directa un cambio de modo de ejecucin.

Normalmente no es el usuario el encargado de especificar el cambio de modo


de ejecucin, sino que ste hace una llamada a una rutina del ncleo para pedir un servicio del sistema, y es la rutina la que hace la llamada al cambio de
modo antes de reorientar el flujo de ejecucin hacia el procedimiento que ejecuta la rutina de servicio propiamente dicha. Es importante sealar que las rutinas de servicio del sistema se ejecutan dentro del contexto de usuario, como
si fuesen llamadas a subrutinas normales, pero con privilegios para direccionar
a todo el espacio de la memoria. La rutina comprueba los parmetros correspondientes antes de ejecutar el cdigo, y si no son correctos, devuelve el control al usuario y no hace nada aunque tenga los privilegios.

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

24

El entorno de trabajo

Cuando termina la rutina de ncleo, la instruccin IRET restaura el modo original al restaurar el registro de estado del procesador original. La instruccin
IRET siempre da lugar a una disminucin de los privilegios. No se puede utilizar para aumentarlos.
2) Habilitacin/inhabilitacin de interrupciones
En este mismo apartado ya hemos hablado de los requisitos necesarios para
efectuar interrupciones, traps y excepciones, as como de la posibilidad de inhabilitar de forma temporal la atencin a las interrupciones, aunque la manipulacin de los indicadores del registro de estado del procesador se tiene que
hacer con privilegios.
3) Gestin de la memoria
La gestin de la memoria, especialmente los aspectos relacionados con la proteccin, se lleva a cabo con los registros de control de las unidades de gestin de
la memoria. No podemos generalizar esta forma de actuar en este caso, ya que
habr tantos conjuntos de registros diferentes como modalidades de gestin.
Imaginemos una sencilla gestin basada en registros base lmite para una gestin de la memoria basada en segmentos. Es obvio que las instrucciones de manipulacin de los valores de estos registros se tienen que ejecutar en el modo
ncleo, ya que de lo contrario cualquier usuario podra modificar los valores de
los registros de base lmite para acceder al rea de la memoria que quisiese. El
modo de ejecucin tambin est ligado a la gestin de la memoria de forma ms
directa: la parte del registro de estado del procesador que indica el modo actual
de ejecucin se puede utilizar para determinar si los accesos a la memoria son
correctos en cada caso.
Para llevar a cabo gestiones de la memoria ms complejas, como la segmentacin, paginacin, modelos mixtos, memoria virtual, etc., la manipulacin de
las tablas de segmentos, pginas y marcos (frames), con los campos correspondientes se hace utilizando instrucciones privilegiadas. Como es habitual, slo
los modos ncleo o sistema tienen privilegios para manipular estas estructuras
de datos. Si un proceso de usuario necesita ms memoria, la pide al sistema.
La rutina del ncleo es la que manipula los registros adecuados para dar el servicio al usuario, nunca lo hace el proceso de usuario de forma directa.
4) Modificacin del reloj del sistema
Las rdenes para cambiar el da y la hora del reloj del sistema se ejecutan slo
en modo privilegiado y, por tanto, no pueden ejecutarse por un proceso de
usuario cualquiera. Pese a todo, las instrucciones para obtener informacin temporal (da, hora, etc.) son un servicio del SO, y puesto que no tienen que modificar los valores del reloj, no piden ningn privilegio especial.

Podis ver las interrupciones


en el subapartado 3.5 de este
mdulo didctico.

FUOC P05/75094/01085 Mdulo 1

25

Resumen

En este mdulo se ha explicado el sistema operativo desde el punto de vista de


su estructura, que puede ser de diferentes tipos: monoltica, por capas y por
funciones.
Hemos visto tambin el soporte de hardware destinado a mantener un entorno
de trabajo fiable y una gestin eficiente de los recursos del sistema. El mapa
conceptual recopila los elementos que forman este soporte de hardware:

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

27

Actividades
1. Un reloj que genera 18 impulsos por segundo utiliza un registro de sistema de 32 bits y
controla el tiempo que el sistema ha estado en servicio desde el ao 1980. Calculad el periodo
de tiempo que el registro puede controlar en funcin de si el tiempo est registrado en segundos o en impulsos. Comparad el caso con el efecto 2000.
2. Buscad en la bibliografa recomendada la unidad de gestin de la memoria de un procesador conocido. Observad los registros de control ms caractersticos.

Ejercicios de autoevaluacin
De seleccin
1. Suponed que un sistema operativo tiene una estructura interna monoltica. Entonces podis afirmar que este sistema
a) est formado por un conjunto de servicios en los que no se han definido ni los puntos de
entrada a los servicios ni los parmetros. La aplicacin de usuario puede definirlos.
b) se ha construido con una estructura mnima; prcticamente es una coleccin de procedimientos que se pueden comunicar.
c) agrupa los servicios segn su funcionalidad.
d) se ha programado a partir de un nico cdigo fuente. El inconveniente es que cualquier
modificacin implica la recompilacin de todo el cdigo.
e) est basado en una programacin orientada a objetos y en una construccin cliente/servidor.
2. Cuando un proceso de usuario pide un servicio de sistema ejecutando un trap, una vez entra en el ncleo,
a) entra en un modo de ejecucin sin privilegios, ya que an contina en el entorno del proceso de usuario.
b) el rea de la memoria a la que puede acceder queda reducida al espacio lgico del ncleo,
es decir, a las posiciones bajas de la memoria.
c) es necesario un soporte de hardware para cambiar el aumento de los privilegios correspondiente.
d) puede acceder a todo el espacio de memoria del sistema, dado que desde el ncleo tiene
todos los privilegios para hacerlo.
e) nunca puede pedir la ejecucin de cdigo del ncleo.
3. La tcnica de acceso directo a la memoria (DMA), en relacin con la gestin de la transferencia de informacin entre perifricos y memoria,
a) permite que el perifrico tenga prioridad para capturar los buses del sistema.
b) se encarga de crear diferentes espacios disyuntos de memoria para aumentar la eficiencia.
c) puede transferir los bloques de informacin entre el perifrico y la memoria principal sin
que tengan que intervenir los buses del sistema.
d) es utilizada para transferir los bloques de informacin de forma independiente de la actividad del procesador.
e) permite programar los comandos en los registros de control del perifrico de forma mucho
ms rpida.

El entorno de trabajo

FUOC P05/75094/01085 Mdulo 1

28

Solucionario
Ejercicios de autoevaluacin
De seleccin
1. b, 2. c, 3. d.

Glosario
Direct Acces to Memory Acceso directo a la memoria por parte de un perifrico. Operacin
que permite hacer transferencias de bloques de informacin entre un perifrico y la memoria
sin la intervencin del procesador utilizando los buses del sistema cuando no los utiliza el
procesador.
Sigla: DMA
DMA
Ved Direct Acces to Memory.
instruccin privilegiada Instruccin que slo se puede ejecutar en modo de ejecucin de
alto nivel, habitualmente en el modo sistema (o ncleo).
MMU
Ved unidad de gestin de la memoria (Memory Management Unit).
modo de ejecucin Modo de operar del procesador que permite el control de ejecucin de
ciertas instrucciones privilegiadas y el acceso a ciertas reas del sistema. Los diferentes modos
de ejecucin forman una estructura jerrquica.
reloj del sistema (clock) Conjunto de circuitos electrnicos que, de forma autnoma, mantienen el da y la hora del sistema y generan interrupciones peridicas de hardware que permiten activar las rutinas correspondientes del SO para hacer los cambios de contexto necesarios
en un SO de tiempo compartido.
SCSI
Ved Small Computer System Interface.
Small Computer System Interface Controlador mltiple de dispositivos que tiene su propio bus para gestionar hasta siete perifricos desde la misma ranura (slot) de la placa madre
del sistema. Es una interfaz de altas prestaciones.
Sigla: SCSI
unidad de gestin de la memoria (Memory Management Unit) Unidad que traduce las
direcciones lgicas facilitadas por el procesador a direcciones fsicas de la memoria del sistema
Siglas: MMU

Bibliografa
Morrison, M. (1994). Arquitectura de computadoras (3. ed.). Mxico: Prentice Hall Hispanoamericana.
Tanenbaum, A. (1993). Sistemas operativos modernos (trad. de O. Palmas). Mxico: Prentice
Hall Hispanoamericana.

El entorno de trabajo

También podría gustarte