Professional Documents
Culture Documents
Ingeniera en Sistema
Computacionales
3er Semestre, Modalidad:
Sbados
Sistemas Operativos I
Unidad II: Concepto de
Microprogramacin
Unidad III: Estructura del Sistema
Alumno: Ricardo Arias Marn
Sistemas Operativos I
INDICE
Tema
Pag.
CONCEPTO DE MICROPROGRAMACIN
Introduccin
Conjunto de Instrucciones
..13
..23
Jerarquas de Almacenamiento
..25
..27
..28
..39
Llamadas al Sistema
..41
..43
Bibliografa
..46
Sistemas Operativos I
INTRODUCCION
MICROPROGRAMACION
Palabra de control: Es una palabra binaria cuyos bits indican los valores
de las seales de control de la mquina. Tambin recibe el nombre de
microinstruccin
Modelo de Wilkes
El concepto de microprogramacin es debido a Wilkes (1951), en este modelo las
palabras de control constan de dos campos:
Sistemas Operativos I
Un esquema general de este modelo le tenemos en la siguiente imagen donde
vemos que segn el cdigo de operacin que se almacena en el registro de
instruccin RI se genera la direccin inicial del microprograma dentro de la
memoria de control, recordemos que cada instruccin lleva aparejada la ejecucin
de un microprograma y que todos ellos estn almacenados en la memoria de
control.
Otro elemento que aparece es el registro de direccin de la memoria de control
CMAR encargado de seleccionar la direccin de la siguiente palabra de control
que recibe del multiplexor la seal correspondiente (en caso de ser la primera
instruccin selecciona la entrada del generador de direccin inicial y en otro caso
la entrada proveniente del campo de direccin siguiente de la palabra de control.
Sistemas Operativos I
bit. En este apartado vamos a ver las distintas formas de codificacin de la palabra
de control que nos permitirn disear memorias de control de diferentes tamaos.
Codificacin 1 bit- 1 seal de control: Es la que hemos estudiado en el apartado
anterior.
Codificacin por campos: Consiste en agrupar las seales de control que no se
puedan activar simultneamente, cada uno de estos grupos se codifican de modo
que la palabra de control consta de varios campos, en cada uno de los cuales se
codifican seales del mismo tipo. Evidentemente esto exige que para generar las
seales de control necesitemos un decodificador a la salida de cada campo.
Codificacin tipo instruccin: Consiste en que el formato de microinstruccin sea
similar al formato de instruccin en lenguaje mquina con un cdigo de operacin
y direccin del operando, en este caso se precisa de un decodificador que a partir
del campo de cdigo de operacin obtenga las micrordenes. Tiene la ventaja de
que al escribir un microprograma se trabaja de forma similar a la programacin de
nivel mquina. Como vemos los mtodos de codificacin que comprimen la
palabra de control nos llevan a incrementar el nmero de lneas de los
microprogramas. Por ello se habla de dos tipos de microprogramacin segn el
grado de codificacin de la palabra de control: microprogramacin horizontal y
microprogramacin vertical.
Sistemas Operativos I
campos de modo que contengan una direccin. Este modelo implica un
tamao de microinstruccin mas pequeo pero relentiza el funcionamiento
del sistema al exigir ciclos adicionales en las bifurcaciones.
En los dos casos anteriores vemos que la necesidad de realizar saltos en la
secuencia de microinstrucciones se traduce en la existencia de un campo en el
formato de microinstruccin especfico para saltos donde se codifican las
posibilidades que se puedan presentar (saltos incondicionales, secuencia habitual,
distintos tipos de saltos condicionales)
Sistemas Operativos I
Tabla de saltos: Otro mtodo a utilizar es generar un microsalto en el
microprograma de forma que sumando el cdigo de operacin a una direccin
dada se obtiene la direccin de los distintos microprogramas.
Sistemas Operativos I
Con el fin de comparar la microprogramacin con la unidad de control cableada
vamos a repetir el diseo de una unidad de control para un multiplicador de Booth
utilizando ahora microprogramacin:
A 0 , B Inbus , L 4
Saltar a desplaza ;
5
6
7
8
Suma: A A+ B ;
Saltar a desplaza ;
Resta: A A- B ;
Desplaza: ASR(A&Q) , L L- 1 ;
10
Outbus A ;
11
Ourbus Q[4:1] ;
12
Sistemas Operativos I
C0 = A 0 ; C1 = B Inbus ; C2 = L 4 ; C3 = Q[4:1] Inbus ;
C4 = F = L + R ; C5 = A F ; C6 = ASR(A&Q) ; C7 = L L -1 ;
C8 = Outbus A ; C9 = Outbus Q[4:1] ;
La memoria de control tiene 13 palabras, luego necesita un campo de direccin de
salto de 4 bits.
Los saltos presentan 5 casos posibles:
000
no saltar
001
010
011
saltar si Z = 0
100
salto incondicional
Sistemas Operativos I
Un esquema del hardware de la unidad de control microprogramada sera el
siguiente:
10
Sistemas Operativos I
En la mayor parte de los casos es conveniente optimizar el tamao de la memoria
de control, una de las tcnicas posibles a utilizar es el uso de formatos mltiples.
En el caso anterior vemos que en los casos en que tenemos saltos no se generan
seales de control, por lo que podemos utilizar el campo de funciones de control
para indicar la direccin del salto, con ello logramos reducir el tamao de la
memoria de control a 13x13 bits, aunque necesitamos alguna circuitera adicional.
Ejemplo de microprocesador microprogramado
Consideremos una ruta de datos correspondiente a una arquitectura en triple bus
con los registros habituales (contador de programa, registro de instruccin,
puntero de pila, MAR, MBR, acumulador, y otros registros de uso particular
(registro instruccin temporal, registros que contienen constantes como el 0,1.-1,
registros que contienen mscaras para aislar partes de la palabra de instruccin) y
tambin registros generales (A,B,C,D,E,F)
La unidad aritmtico-lgica permite realizar cuatro operaciones y dispone de un
desplazador adicional.
Con esta ruta de datos podemos pasar a disear el formato de microinstruccin a
partir de las seales de control necesarias para controlar la arquitectura.
Una vez diseado el formato de microinstruccin podemos pasar a ver la
arquitectura global (que incluye la microarquitectura de control)
La macroarquitectura a controlar incluye el formato de instruccin y el conjunto de
instrucciones y modos de direccionamiento.
Hemos visto hasta ahora dos tipos de memorias: la memoria principal y la
micromemoria, podemos aadir un nuevo tipo llamado nanomemoria que
contendr aquellas microinstrrucciones que aparezcan muy repetidas.
De esta forma pasamos a la situacin de la figura:
11
Sistemas Operativos I
Al repasar el microprograma inicial nos encontramos con que de las n lneas hay
m que son diferentes entre si. Esas lneas con microinstrucciones distintas se
almacenan en la nanomemoria. Podemos codificar esas m nanoinstrucciones y el
cdigo resultante ocupar log2 m y entonces usando microprogramacin vertical
con las microinstrucciones codificadas segn el modelo anterior tendremos un
microprograma con las mismas n lneas pero que ahora tienen un tamao de log2
m bits.
Esta tcnica se usa en el microprocesador Motorola 68000 y en funcin de los
valores de m, n y p puede traer consigo un ahorro de memoria considerable
aunque siempre tendr la dificultad de un mayor retardo en la ejecucin de las
instrucciones.
12
Sistemas Operativos I
CONJUNTOS DE INSTRUCCIONES
Los juegos de instrucciones tambin tienen que ser ecientes, esto signica
que las funciones ms necesarias deben poder realizarse usando pocas
instrucciones.
13
Sistemas Operativos I
Tipos de instrucciones
Una mquina puede llegar a funcionar con un juego de instrucciones muy limitado
(recurdese, por ejemplo, la mquina de Turing que slo tiene 4 instrucciones,
incluso se han diseado mquinas tericas con menos instrucciones), esto
simplicara mucho los circuitos de la mquina. Sin embargo, un conjunto de
instrucciones demasiado simplicado origina, como consecuencia, unos
programas demasiado complejos e inecientes. Es necesario encontrar un
compromiso entre la simplicidad del hardware y del software. Un mnimo para
llegar a ese compromiso se consigue con los tipos de instrucciones siguientes:
Sistemas Operativos I
estos lugares que pueden estar en tres sitios: registros del procesador, memoria o
cima de pila. Si el acceso es a una direccin de memoria habr que especicarla
de forma explcita, si se trata de la cima de pila normalmente la especicacin ser
implcita, lo mismo ocurrir si se trata del acumulador.
Existen algunas variantes de instrucciones de transferencia de datos que dieren
de la idea anterior de copiar informaciones de un lugar a otro. Por ejemplo, la
instruccin POP saca un dato de la cima de pila modicando el valor del apuntador
de pila, lo que signica que, si bien no destruye fsicamente el dato fuente, anula
su validez. Por otro lado, la mayora de las mquinas tambin disponen de
instrucciones de intercambio (SWAP). Tambin, en muchas mquinas, existen
instrucciones de transferencia de informacin entre bloques o cadenas en la que
deben especicarse las direcciones de fuente y destino y la longitud del bloque o
cadena.
En general, el dato a transferir podramos denirlo como una terna con las
siguientes componentes:
Direccin
Tipo
Valor
Normalmentelacomponentedeldatoquesetransereeselvalorperoexisteninstruccion
es especiales para transferir las dems componentes, en especial la direccin. La
extraccin de la direccin de un dato se hace necesaria para facilitar la
relocalizacin de los programas. Para aplicar muchos modos de direccionamiento
(indexados, autoindexados, etc.) es necesaria la transferencia de una direccin a
un registro. En muchos ordenadores esta direccin no se conoce a la hora de
compilar el programa (precisamente porque el programa es relocalizable), por
tanto, son necesarias instrucciones que calculen la direccin de un dato para
transferirla a un registro, actualmente la mayora de las mquinas poseen este tipo
de instruccin bajo el nombre de move address.
Dependiendo del nivel de ortogonalidad de la mquina, podemos tener ms o
menos instrucciones de transferencia. Por ejemplo el IBM-370 tiene ms de 20
instrucciones de transferencia por su falta de ortogonalidad; sin embargo, el PDP11 slo tiene 2 para datos enteros (MOV y MOVB) y 4 ms para datos en punto
otante, ya que en las instrucciones de punto otante se prescindi bastante de la
ortogonalidad por falta de espacio para la codicacin. El MC68000 est en un
punto intermedio, tiene varios formatos distintos dependiendo del direccionamiento
utilizado. El Z-80 en cuanto a instrucciones de transferencia entre registros es
15
Sistemas Operativos I
bastante ortogonal, pero esa ortogonalidad se pierde cuando se trata de otros
direccionamientos.
Instrucciones aritmticas y lgicas
Todos los ordenadores incorporan instrucciones aritmticas en sus juegos de
instrucciones; la utilidad de este tipo de operaciones es evidente y no la
comentaremos. En cuanto a las operaciones lgicas (AND, OR, NOT y XOR)
tienen un uso muy variado: desde operaciones con bits individuales (TEST, SET,
RESET y CHANGE) hasta el empaquetamiento y desempaquetamiento de
caracteres. Tambin pueden considerarse dentro de este grupo los
desplazamientos y rotaciones cuya utilidad queda fuera de toda duda.
En primer lugar, veremos cmo se emplean las instrucciones lgicas para realizar
operaciones de bit individual. La utilidad de estas operaciones es muy variada,
probablemente su aplicacin ms importante sea empaquetar en un byte varias
variables booleanas, ocupando cada una de ellas un solo bit.
Para analizar un determinado bit se debe tener en cuenta las siguientes
propiedades de la operacin AND (. o):
0 ... 0 1 0 ... 0
x ... x a x ... x
0 ... 0 a 0 ... 0
Mscara
Dato
Resultado
=0 si a =0 Z =1
=0 si a =1 Z =0
Anlisis de un bit.
1 ... 1 0 1 ... 1
x ... x x x ... x
x ... x0 x ... x
Mscara
Dato
Puesta a 0 de un bit.
1 x = x, x
0 x = 0, x
Para aplicarlas, se realiza una operacin AND del dato que se quiere analizar con
una mscara que tenga un 1 en el lugar cuyo bit se quiere probar con el resto de
16
Sistemas Operativos I
la mscara a 0. El resultado de la operacin ser 0 si el bit en cuestin es 0, o
distinto de 0 si el bit que se quiere probar es 1; por tanto, el resultado de la prueba
quedar en el ag Z en forma complementada como se muestra en la gura 4.1.
Muchas mquinas tienen esta operacin bajo el nombre de BITTEST.
Para poner a 0 un bit de un dato, se aprovechan las mismas propiedades del
operador AND. Para aplicarlas, se construye una mscara que tenga a 1 todos los
bits excepto el correspondiente al lugar que se quiere borrar que se pone a 0 y se
hace un AND de esta mscara con el dato que se quiere tratar; como resultado de
la operacin tendremos el mismo dato pero con el bit puesto a cero. El proceso se
muestra en la gura 4.2. Esta operacin puede realizarse con varios bits a la vez,
basta poner en la mscara 0 todos los bits que se quieran borrar. Muchos
ordenadores poseen esta instruccin con el nombre de BIT CLEAR o BIT RESET.
Para poner un bit a 1 en un dato, aplicaremos las propiedades de la operacin OR
(+ o):
0 x = x, x
1 x = 1, x
En este caso, se construye una mscara con un 1 en el lugar del bit que se quiera
poner a 1 y 0 en el resto. Se realiza la operacin OR entre esta mscara y el dato
y el resultado ser el mismo dato pero con el bit en cuestin puesto a 1 (gura
4.3). Esta operacin puede realizarse con varios bits a la vez poniendo a 1 en la
mscara todos los bits que se quieran poner a 1. Muchos ordenadores tienen esta
operacin con el nombre de BITSET.
Para complementar bits en un dato aplicaremos las propiedades de la operacin
OR exclusivo o XOR ():
0 ... 0 1 0 ... 0
V x ... x x x ... x
x ... x 1 x ... x
Mscara
Dato
Mscara
Dato
Sistemas Operativos I
x ... x x x ... x
Para ello se construye una mscara con un 1 en el bit que se quiere complementar
y 0 en el resto de las posiciones. Despus de hacer un XOR de la mscara con el
dato se tendr el mismo dato con el bit complementado (gura 4.4). Esta
operacin tambin se puede hacer con varios bits a la vez poniendo a 1 en la
mscara todos los bits que se quieran complementar. Algunas mquinas tienen
esta operacin en su juego de instrucciones como BITCHANGE.
Otra utilidad de la operacin XOR es la determinacin de los bits diferentes que
hay entre dos datos, para ello se hace un XOR entre ellos y los lugares que
queden a 1 son los bits diferentes entre los dos datos. Esto es debido a que la
tabla de verdad de XOR es la complementaria a la de la igualdad entre dos bits.
Esta propiedad tambin es til para determinar cundo dos datos son iguales en
todos sus bits: en este caso el OR exclusivo entre ellos nos dar 0 y, en caso
contrario, tendremos un nmero no nulo; este resultado puede luego ser analizado
mediante el ag Z. De aqu tambin se puede deducir que haciendo la operacin
XOR de un operando consigo mismo el resultado da 0. Esta es una forma muy
rpida de poner a 0 los registros en algunos procesadores.
Otra propiedad muy til del operador XOR es que si se opera dos veces con el
mismo operando se regenera el dato inicial, es decir,
(xy) y = x, x, y
[4.1]
Esta propiedad es til en aplicaciones grcas para mover cursores por pantalla.
Una utilidad directa de las operaciones lgicas es el manejo de conjuntos tal y
como se hace en el lenguaje Pascal. Supongamos el conjunto universal,
U = {x0,x1,x2,...,xn1}
Si A es un conjunto, contenido en este conjunto universal, puede representarse
internamente en la memoria de la mquina mediante la cadena de n bits
an1an2 ...a1a0
18
Sistemas Operativos I
19
Sistemas Operativos I
Dentro de las operaciones lgicas tambin deben
desplazamientos, que pueden denirse mediante la expresin
considerarse
los
di di+k
donde di representa a cada uno de los bits del operando y k es el nmero de
lugares que se desplaza. En funcin del signo de k, el desplazamiento puede ser a
la izquierda (k negativo) o a la derecha (k positivo), donde se est suponiendo que
los bits se numeran de derecha a izquierda.
Los desplazamientos pueden ser de tres tipos: lgicos, aritmticos y rotaciones o
desplazamientos circulares dependiendo del bit entrante. El desplazamiento lgico
a la derecha diere del aritmtico en que el bit entrante es, en ste ltimo, el
mismo bit de mayor peso (bit de signo), mientras que en aqul es siempre un 0;
As se consigue que los desplazamientos aritmticos sean equivalentes a
multiplicaciones (izquierda) y divisiones (derecha) por 2. En las rotaciones el valor
del bit entrante es el mismo que el del saliente.
t
Fig.4.7. Secuencia lineal de ejecucin de instrucciones.
PC
20
Sistemas Operativos I
t
Fig.4.8. Secuencia con puntos de discontinuidad en la ejecucin de instrucciones.
la siguiente instruccin en ejecutarse es la que est fsicamente detrs en el
programa. Cuando esto no es as es por la accin de una instruccin de control de
ujo. Todas las instrucciones que modican el ujo de la ejecucin manejan el
contador
de
programa.Tambin,silamodicacindelujodeinstruccionessehacedeformacondicio
nal,esta condicin vendr dada por los bits de estado (N, Z, V y C). Vemos, por
tanto, que para las instrucciones de control de ujo hay dos variables
fundamentales: el contadordeprograma y los bitsdecondicin. Las instrucciones de
control de ujo suponen discontinuidades en la secuencia lineal de ejecucin de
las instrucciones (guras 4.7 y 4.8).
Instrucciones de bifurcacin
La mayora de los programas requieren de los ordenadores en que se ejecutan la
capacidad de examinar datos y luego alterar la evolucin del programa en funcin
de los resultados de esa comprobacin (gura4.9); esto nos lleva a la necesidad
de la existencia de instrucciones de salto o bifurcacin que pueden ser de dos
tipos: condicionales e incondicionales. Las bifurcaciones incondicionales se
realizan siempre, mientras que las bifurcaciones condicionales se realizan o no en
funcin del valor de uno o varios de los bits de estado o condicin,
simblicamente, de forma general:
Condicin cumplida
PC
Condicin no cumplida
Sistemas Operativos I
if (Condicin)
PC Direccin de bifurcacin;
else
PC++;
negativo.
Z: Bit que indica si el resultado de la ltima operacin ha sido cero.
V: Bit que indica si en la ltima operacin hubo desbordamiento.
C: Bit que indica si en la ltima operacin se produjo acarreo o
llevada.
22
Sistemas Operativos I
23
Sistemas Operativos I
DMA (Direct Memory Access)
La E/S con interrupciones, aunque ms eficiente que la E/S programada, tambin
requiere la intervencin del CPU para transferir datos entre la memoria y el mdulo
de E/S.
Consideren el siguiente ejemplo. Cuando se va a leer una lnea desde un
Terminal, el primer carcter escrito es enviado al computador. Cuando el carcter
es recibido por el controlador, ste interrumpe al CPU. El CPU le da servicio a la
interrupcin y luego continua con el proceso que estaba ejecutando. Esto es
posible cuando el dispositivo es muy lento comparado con el CPU. Entre un
carcter y otro el CPU lleva a cabo gran cantidad de procesamiento. Pero qu
sucede cuando estamos trabajando con dispositivos de E/S ms veloces;
Tendramos interrupciones muy seguidas y se estara desperdiciando mucho
tiempo.
Se utiliza DMA para dispositivos de E/S de alta velocidad. E1 controlador del
dispositivo transfiere un bloque de datos desde o para sus buffers de
almacenamiento a memoria directamente sin intervencin del CPU. Solo se
produce una interrupcin por bloque en lugar de tener una interrupcin por cada
byte (o palabra).
Por ejemplo, un programa solicita una transferencia de datos. El Sistema de
Operacin busca un buffer disponible. El controlador de DMA tiene sus registros
actualizados con las direcciones de la fuente y del destino y la longitud de la
transferencia. Por lo general esta actualizacin es realizada por el manejador de
dispositivo (rutina). Se indica al controlador de DMA a travs de bits de control en
un registro de control pare que inicie la operacin de E/S. Mientras tanto el CPU
puede llevar a cabo otras operaciones. El controlador de DMA interrumpe el CPU
cuando la transferencia ha sido terminada. El CPU interviene solo al comienzo y al
final de la transferencia.
La transferencia de datos bajo E/S programada es entre la CPU y un perifrico
transfiere datos hacia adentro y hacia fuera de la unidad de memoria por medio
del canal de memoria, DMA solicita ciclos de memoria concede la solicitud, el DMA
transfiere los datos directamente a la memoria. La CPU solo retrasa su operacin
de acceso de memoria para transferencia directa.
24
Sistemas Operativos I
Jerarqua de almacenamiento
25
Sistemas Operativos I
Registros
La memoria ms rpida de la computadora son los registros, ubicados en cada
uno de los ncleos de cada CPU. Las arquitecturas tipo RISC (Reduced
Instruction Set Computer) slo permiten la ejecucin de instrucciones entre
registros (excepto, claro, las de carga y almacenamiento a memoria primaria).
Los primeros CPU trabajaban con pocos registros, muchos de ellos de propsito
especco, se regan ms bien con una lgica de registro acumulador. Por
ejemplo, el MOS 6502 (en el cual se basaron las principales computadoras de
ocho bits) tena un acumulador de ocho bits (A), dos registros ndice de ocho
bits(X e Y),un registro de estado del procesador de ocho bits(P),un apuntador al
stack de ocho bits (S), y un apuntador al programa de 16 bits (PC). El otro gran
procesador de su era, el Zilog Z80, tena 14 registros (tres de ocho bits y el resto
de 16), pero slo uno era un acumulador de propsito general.
El procesador Intel 8088, en el cual se bas la primer generacin de la
arquitectura PC, ofreca cuatro registros de uso casi general. En los ochenta
comenzaron a producirse los primeros procesadores tipo RISC, muchos de los
cuales ofrecan 32 registros, todos ellos de propsito general. El compilador2
busca realizar muchas operaciones que deben ocurrir reiteradamente, donde la
rapidez es fundamental, con sus operadores cargados en los registros. El estado
del CPU a cada momento est determinado por el contenido de los registros. El
contenido de la memoria, obviamente, debe estar sincronizado con lo que ocurre
dentro de ste pero el estado actual del CPU, lo que est haciendo, las
indicaciones respecto a las operaciones recin realizadas que se deben entregar
al programa en ejecucin, estn todas representadas en los registros. Se debe
mantener esto en mente cuando posteriormente se habla de todas las situaciones
en que el ujo de ejecucin debe ser quitado de un proceso y entregado a otro.
26
Sistemas Operativos I
Metodologa de diseo
27
Sistemas Operativos I
Sistemas Operativos I
Procesos
Uno de los conceptos mas importantes que gira entorno a un sistema operativo es
el de proceso. Un proceso es un programa en ejecucin junto con el entorno
asociado (registros, variables ,etc.).
El corazn de un sistema operativo es el ncleo, un programa de control que
reacciona ante cualquier interrupcin de eventos externos y que da servicio a los
procesos, crendolos, terminndolos y respondiendo a cualquier peticin de
servicio por parte de los mismos.
Un proceso es una actividad que se apoya en datos, recursos, un estado en cada
momento y un programa.
Sistemas Operativos I
prioridad del proceso, modo de ejecucin, etc., y por ultimo el estado de los
registros internos de la computadora.
Estadsticas de tiempo y ocupacin de recursos para la gestin de la
planificacin del procesador.
Ocupacin de memoria interna y externa para el intercambio (swapping).
Recursos en uso (normalmente unidades de entrada/salida).
Archivos en uso.
Privilegios.
Sistemas Operativos I
Transacciones de estado
Todo proceso a lo largo de su existencia puede cambiar de estado varias veces.
Cada uno de estos cambios se denomina transaccin de estado. Estas
transacciones son las siguientes:
31
Sistemas Operativos I
32
Sistemas Operativos I
Crear el proceso. Se produce con la orden de ejecucin del programa y suele
necesitar varios argumentos, como el nombre y la prioridad del proceso. Aparece
en este momento el PCB, que ser insertado en la cola de procesos preparados.
La creacin de un proceso puede ser de dos tipos:
Jerrquica. En ella, cada proceso que se crea es hijo del proceso creador y
hereda el entorno de ejecucin de su padre. El primer proceso que ejecuta
un usuario ser hijo del intrprete de comandos con el que interacta.
No jerrquica.
Cada proceso creado por otro proceso se ejecuta
independientemente de su creador con un entorno diferente. Es un tipo de
creacin que no suele darse en los sistemas operativos actuales.
Destruir un proceso. Se trata de la orden de eliminacin del proceso con la
cual el sistema operativo destruye su PCB.
Suspender un proceso. Es un proceso de alta prioridad que paraliza un
proceso que puede ser reanudado posteriormente. Suele utilizarse en
ocasiones de mal funcionamiento o sobrecarga del sistema.
Reanudar un proceso. Trata de activar un proceso que a sido previamente
suspendido.
Cambiar la prioridad de un proceso.
Temporizar la ejecucin de un proceso. Hace que un determinado proceso
se ejecute cada cierto tiempo (segundos, minutos, horas...) por etapas de
una sola vez, pero transcurrido un periodo de tiempo fijo.
Despertar un proceso. Es una forma de desbloquear un proceso que habr
sido bloqueado previamente por temporizacin o cualquier otra causa.
Prioridades
Todo proceso por sus caractersticas e importancia lleva aparejadas unas
determinadas necesidades de ejecucin en cuanto a urgencia y asignacin de
recursos.
Las prioridades segn los sistemas operativos se pueden clasificar del siguiente
modo:
Sistemas Operativos I
Manejo de interrupciones.
Creacin y destruccin de procesos.
Cambio de estado de los procesos.
Despacho.
Suspensin y reanudacin de procesos.
Sincronizacin de procesos.
Comunicacin entre procesos.
Manipulacin de los bloques de control de procesos.
Apoyo para las actividades de entrada/salida.
Apoyo para asignacin y liberacin de memoria.
Apoyo para el sistema de archivos.
Apoyo para el mecanismo de llamada y retorno de un procedimiento.
Apoyo para ciertas funciones de contabilidad del sistema.
34
Sistemas Operativos I
Un computador que ofrece no slo su lenguaje de mquina como apoyo al sistema
operativo y a sus usuarios, sino tambin un grupo de funciones adicionales
proporcionadas por el ncleo.
Arriba del ncleo, en jerarqua, se encuentran los diferentes procesos del sistema
operativo que trabajan en apoyo de los procesos de usuario, que se encargan en
la prctica de supervisar las operaciones de entrada/salida de los dispositivos del
sistema para beneficio de los diversos usuarios.
En los diseos en que el ncleo est distribuido en varios niveles de jerarqua,
elegir qu funcin colocar en cada nivel requiere un anlisis cuidadoso. En tales
diseos, con frecuencia slo se permite hacer llamadas a funciones situadas
jerrquicamente por debajo de quien hace la llamada; es decir, cada nivel slo
puede llamar a las funciones que estn colocadas en el nivel inmediato inferior.
Migracin del ncleo a micro cdigo
En los sistemas ms recientes existe la tendencia de colocar gran parte del ncleo
en micro cdigo. Esta es una tcnica de seguridad efectiva, pues impide la
alteracin del ncleo y con una cuidadosa codificacin se puede lograr que se
ejecuten ms eficientemente las funciones del ncleo.
El bloque de control de proceso (PCB) es una estructura de datos que contiene la
informacin que permite al sistema operativo localizar toda la informacin
importante sobre un proceso, incluyendo su estado actual, identificacin, prioridad,
memoria, recursos, valores de los registros, etctera. El PCB define el proceso al
sistema operativo.
Los sistemas operativos contienen mecanismos para realizar diversas operaciones
sobre los procesos, como crear, destruir, reanudar, cambiar la prioridad, bloquear,
despertar y despachar.
El kernel de UNIX
UNIX es el kernel (ncleo) de un sistema operativo de tiempo compartido. El
ncleo del sistema es un programa que siempre est residente en memoria y entre
otros, brinda los siguientes servicios:
Sistemas Operativos I
Sistemas Operativos I
El kernel est dividido en dos subsistemas principales: subsistema de ficheros y
subsistema de control de procesos.
El subsistema de ficheros controla los recursos del sistema de archivos y tiene
funciones como reservar espacio para los archivos, administrar el espacio libre,
controlar el acceso a los archivos, permitir el intercambio de datos entre los
archivos y el usuario, etc.
El subsistema de control de procesos es el responsable de la planificacin de los
procesos (scheduler), su sincronizacin, comunicacin entre los mismos (IPC
inter process comunication) y del control de la memoria principal.
Al mdulo gestor de memoria (swapping) se le conoce tambin como swapper.
El planificador o scheduler se encarga de gestionar el tiempo de CPU que tiene
asignado cada proceso. El scheduler entra en ejecucin cada cuanto de tiempo y
decide si el proceso actual tiene derecho a seguir ejecutndose (esto depende de
la prioridad y de sus privilegios).
La comunicacin entre procesos puede realizarse de forma asncrona (seales) o
sncrona (colas de mensajes, semforos).
Por ltimo, el mdulo de control del hardware es la parte del kernel encargada del
manejo de las interrupciones y de la comunicacin con la mquina. Los
dispositivos pueden interrumpir a la CPU mientras est ejecutando un proceso. Si
esto ocurre, el kernel debe reanudar la ejecucin del proceso despus de atender
a la interrupcin. Las interrupciones no son atendidas por procesos, sino por
funciones especiales, codificadas en el kernel, que son invocadas durante la
ejecucin de cualquier proceso.
Interrupciones de Entrada y Salida
Son iniciadas por hardware de entrada y salida. Estas interrupciones indican a la
UCP el cambio de estado de un canal o dispositivo. Las interrupciones de E/S se
producen cuando finaliza una operacin de E/S o cuando un dispositivo pasa al
estado listo.
37
Sistemas Operativos I
Interrupciones del procesador
Una interrupcin es un evento que altera la secuencia en que el procesador
ejecuta las instrucciones. La interrupcin es generada por el hardware del sistema
de cmputo. Cuando ocurre una interrupcin:
Sistemas Operativos I
39
Sistemas Operativos I
LLAMADAS AL SISTEMA
Comunicaciones Establecer una comunicacin con determinado proceso (local o
remoto), aceptar una solicitud de comunicacin de otro proceso, intercambiar
informacin sobre un canal establecido.
Proteccin Consultar o modicar la informacin relativa al acceso de objetos en el
disco, otros procesos, o la misma sesin de usuario.
Cada sistema operativo expone una serie de llamadas al sistema. stas son, a su
vez, expuestas al programador mediante de las interfaces de aplicacin al
programador(API), que se alnean de forma cercana (pero no exacta). Del mismo
modo que cada sistema operativo ofrece un conjunto de llamadas al sistema
distinto, cada implementacin de un lenguaje de programacin puede ofrecer un
API ligeramente distinto de otros.
Sistemas Operativos I
la mquina virtual se presenta como un pseudo sistema operativo intermedio que
se ejecuta dentro del real, y esta distincin se hace especialmente notoria cuando
se busca conocer los detalles del sistema operativo.
41
Sistemas Operativos I
42
Sistemas Operativos I
Los mecanismos que ponen en ejecucin las llamadas al sistema operativo
difieren de uno a otro:
43
Sistemas Operativos I
La mejor manera de entender la esencia de las llamadas al sistema consiste en
hacer una revisin detallada de las que estn presentes en uno o varios sistemas
operativos y por ello se recomienda revisar las pginas de la 23 a la 36 del
segundo libro de Tanenbaum, donde se presenta la explicacin de las ms
importantes presentes en la versin 7 del UNIX.
44
Sistemas Operativos I
Bibliografa
Baase, S. 1983. VAX-11 Assembly Language Programming. Prentice-Hall.
Brown, F. 1991. Processeurs RISC. Lexample de lAm29000. Masson.
De Blasi, M. 1990. Computer Architecture. Addison Wesley.
Hennessy, J.L., & Patterson, D.A. 2003. Computer Architecture. A Quantitative
Approach. 3 edn. Morgan Kaufmann Publishers.
Heudin, J.C., & Panetto, C. 1990. Les architectures RISC. Dunod Informatique.
Tanenbaum, A.S. 2006. Structured Computer Organization. 5 edn. Prentice-Hall
International. Existe traduccin al castellano de la edicin anterior: Organizacin
de computadores: un enfoque estructurado, 4a edicin, Prentice-Hall
Hispanoamericana, 2000.
http://reynaldo-entrada-salida.es.tl/Entrada-y-salida-mediante-interrupciones.htm
http://www.infor.uva.es/~fernando/asignaturas/estruct/leccion10.pdf
45