Está en la página 1de 9

c Ê

  
 
  

c c Ê Ú   u
c c c Ê

{ÊEs la estructura de los primeros sistemas operativos constituidos
fundamentalmente por un solo programa compuesto de un conjunto
de rutinas entrelazadas de tal forma que cada una puede llamar a
cualquier otra.

c c ÊJ     
{ÊJonstrucción del programa final a base de módulos compilados
separadamente que se unen a través del ligador.
{ʏuena definición de parámetros de enlace entre las distintas rutinas
existentes, que puede provocar mucho acopl amiento.
{ÊJarecen de protecciones y privilegios al entrar a rutinas que manejan
diferentes aspectos de los recursos de la computadora, como
memoria, disco, etc.
{Êeneralmente están hechos a medida, por lo que son eficientes y
rápidos en su ejecución y gestión, pero por lo mismo carecen de
flexibilidad para soportar diferentes ambientes de trabajo o tipos de
aplicaciones.

c c  Ê        



{ÊEl programa de usuario coloca los parámetros necesarios en los lugares
previamente definidos, y seguidamente ejecuta una llamada al supervisor
(se cambia de modo usuario a modo supervisor), transfiriendo el control al
S. O. que examina dichos parámetros y determina el procedimiento que
debe invocar. Juando se complete la llamada devuelve el control al
programa de usuario.

c c  Ê         



{ÊEsta organización sugiere una estructura básica del sistema
operativo:
èÊ ÿn programa principal que llama al procedimiento del servicio
solicitado.
èÊ ÿn conjunto de procedimientos de servicio que lleva a cabo las
llamadas al sistema.
èÊ ÿn conjunto de procedimientos de utilidades que ayudan a los
procedimientos de servicios.
En este modelo, para cada llamada al sistema existe un
procedimiento de servicio que se encarga de ella. Los procedimientos
de utilidad hacen cosas necesarias para varios procedimientos de
servicio, como por ejemplo, buscar los datos del programa del
usuario. Esta división de los procedimientos en tres capas se muestra
en la figura.

Procedimiento Principal

Procedimientos de Servicios

Procedimientos ruxiliares

c c  Ê        

{ÊÚs-DOS

PRORrÚrS DE rPLIJrJIÓN

PRORrÚrS DEL SISTEÚr


RESIDENTE

ÚrNEJrDORES DE DISPOSITIVOS
ÚS - DOS

ÚrNEJrDORES DE DISPOSITIVOS
DEL ROÚ ʹ IOS

c Ê [
 
c c Ê

{Êr medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor
organización del software, del sistema operativo, donde una parte
del sistema contenía sub-partes y esto organizado en forma de
niveles.
Se dividió el sistema operativo en pequeñas partes, de tal forma que
cada una de ellas estuviera perfectamente definida y con un claro
interface con el resto de elementos.

c Êo     c !"#

{ÊSe utilizó con fines didácticos. Se puede pensar también en estos
sistemas como si fueran `multicapa'. Úultics y ÿnix caen en esa
categoría.

èÊ Japa 0: En esta capa se proporciona la multiprogramación básica de la


JPÿ, esto quiere decir que trabaja en la asignación del procesador y
también se alteran los procesos cuando se ocurren las interrupciones
o expiran los cronómetros. Dichos sistemas constan de procesos
secuénciales, estos se pueden programar sin importar que varios
procesos se estén ejecutando en el mismo procesador.
èÊ Japa 1: rquí se administra la memoria, al mismo tiempo se asignaba el
espacio de memoria principal para los diversos procesos y un depósito
de palabras de 512K en el cual se utilizaba para almacenar partes de
los procesos, en este caso las paginas, ya que no existía un lugar en la
memoria principal. En esta capa no se debe de preocupar que los
procesos que estén en memoria o en el depósito, esto se debe que el
software de esta capa se encarga de garantizar que las paginas lleguen
a la memoria cuando fueran necesarias.
èÊ Japa 2: En esta capa se encarga de la comunicación entre el proceso y
la consola de usuario. rrriba de esta capa, cada proceso tiene su
propia consola.
èÊ Japa 3: En la capa 3 se controlan los dispositivos de E/S y también
guarda en buffers los flujos de información entre los diferentes
dispositivos. Por encima de esta capa, los procesos pueden trabajar
con dispositivos específicos de E/S teniendo propiedades adecuadas.
èÊ Japa 4: rquí se localizan los programas de los usuarios, estos no se
preocupan por el proceso, memoria, consola o control de E/S, que se
tuvieran que utilizar.
èÊ Japa 5: En esta capa se localiza el proceso operador del sistema
c  Ê$%&oJ:
{ÊEn el sistema de anillos, cada uno tiene una apertura, conocida como
puerta o trampa (trap), por donde pueden entrar las llamadas de las
capas inferiores. De esta forma, las zonas más internas del sistema
operativo o núcleo del sistema estarán más protegidas de accesos
indeseados desde las capas más externas. Las capas más internas
serán, por tanto, más privilegiadas que las externas
{ÊEste tipo de estructura se le conoce como ͞sistemas por capas͟, el
objetivo principal es la organización jer árquica del sistema operativo,
mediante capas o anillos concéntricos, cada una de las capas está
construida sobre la anterior. El primer sistema que fue construido
usando una estructura por capas fue desarrollado por E. W. Dijkstra y
sus estudiantes en Hol anda en el año 1968, el sistema que fue creado
se llama THE (Technische Hogeschool Eindhoven)


c  Ê        

{ÊÚultics
{Êÿnix

c  Ê J


 
c  c Ê

{ÊEl tipo más reciente de sistemas operativos es el denominado
Jliente-servidor, que puede ser ejecutado en la mayoría de las
computadoras, ya sean grandes o pequeñas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de
propósito general y cumple con las mismas actividades que los
sistemas operativos convencionales.
El núcleo tiene como misión establecer la comunicación entre los
clientes y los servidores. Los procesos pueden ser tanto servidores
como clientes. Por ejemplo, un programa de apl icación normal es un
cliente que llama al servidor correspondiente para acceder a un
archivo o realizar una operación de entrada/salida sobre un
dispositivo concreto. r su vez, un proceso cliente puede actuar como
servidor para otro.͟ [rlcal92]. Este paradigma ofrece gran flexibilidad
en cuanto a los servicios posibles en el sistema final, ya que el núcleo
provee solamente funciones muy básicas de memoria,
entrada/salida, archivos y procesos, dejando a los servidores proveer
la mayoría que el usuario final o programador puede usar. Estos
servidores deben tener mecanismos de seguridad y protección que, a
su vez, serán filtrados por el núcleo que controla el hardware.

c  Ê$ J  ' 



{ÊEl kernel lo único que hace es implementar la comunicación entre
clientes y servidores y entre servidores y el hardware.

c   Ê        

{Êrctualmente se está trabajando en una versión de ÿNIX que


contempla en su diseño este paradigma.

c  Ê Ú   


c  c Ê

{ÊSe trata de un tipo de sistemas operativos que presentan una
interface a cada proceso, mostrando una máquina que parece
idéntica a la máquina real subyacente. Estos sistemas operativos
separan dos conceptos que suelen estar unidos en el resto de
sistemas: la multiprogramación y la máquina extendida. El objetivo
de los sistemas operativos de máquina virtual es el de integrar
distintos sistemas operativos dando la sensación de ser varias
máquinas diferentes.
El núcleo de estos sistemas operativos se denomina monitor virtual y
tiene como misión llevar a cabo la multiprogramación, presentando a
los niveles superiores tantas máquinas virtuales como se soliciten.
Estas máquinas virtuales no son máquinas extendidas, sino una
réplica de la máquina real, de manera que en cada una de ellas se
pueda ejecutar un sistema operativo diferente, que será el que
ofrezca la máquina extendida al usuario .

3 ÊÚ
 


 

c Ê 6
   
Señal proveniente de un dispositivo externo, que llega a una entrada del
microprocesador dedicada a este propósito y que indica al microprocesador
que el dispositivo que la originó está solicitando servicio.
Juando ocurre una interrupción, el microprocesa dor suspende
temporalmente la ejecución del programa principal y transfiere el control a
una subrutina especialmente diseñada para atender al dispositivo que
provocó la interrupción, a esta subrutina se le denomina SÿRÿTINr DE
SERVIJIO DE Lr INTERRÿPJIÓN (Interrupt Service Routine) o ÚrNEJrDOR DE
INTERRÿPJIÓN (Interrupt Handler).
rl terminar el servicio, el microprocesador regresa al programa principal,
continuando con sus actividades normales. Desde este punto de vista una
interrupción es esencialmente una llamada a SÿRÿTINr iniciada por un
circuito externo (hardware) y con un retorno controlado por programa
(software). rdemás, las interrupciones tienen las características de que son
eventos asíncronos, es decir, pueden ocurrir en cualquier momento duran te la
ejecución del programa principal sin posibilidad de hacer una predicción
exacta. Por ello hay que hacer consideraciones especiales y tener cuidados
adicionales al manejarlas.
Ê o  
 
 

En este subapartado vamos a hacer una clasificación de las distintas clases de
interrupciones que nos podemos encontrar atendiendo a la fuente que las
produce. Por un lado distinguiremos si se producen por causas internas o
externas al procesador y remarcaremos que este hecho está íntimamente
ligado con que las interrupciones sean síncronas o asíncronas:
c Ê   ( ) 

Estas son asíncronas a la ejecución del procesador, es decir, se pueden


producir en cualquier momento independientemente de lo que esté
haciendo la JPÿ en ese momento. Las causas que lo producen son
externas al procesador y a menudo suelen estar ligadas con distintos
dispositivos de E/S.
Se producen como resultado de, normalmente, una operación de E/S.
No son producidas por ninguna instrucción si no q ue son señales que
producen los dispositivos para indicarle al procesador que necesitan ser
'atendidos'. Las interrupciones hardware son interesantes en cuanto a
que permiten mejorar la productividad del procesador ya que este
último puede ordenar una operación de E/S y en lugar de tener que
esperar a que el dispositivo acabe realizando una espera activa, es decir,
sin hacer ningún trabajo útil, se puede dedicar a atender a otro proceso
o aplicación y cuando el dispositivo este de nuevo disponible será el
encargado de notificarle al procesador mediante la línea de interrupción
ya que está preparado para continuar/terminar la operación de E/S.

Ê   * )   + 



Son aquellas que se producen de forma síncrona a la ejecución del
procesador y por tanto podrían predecirse si se analiza con
detenimiento la traza del programa que en ese momento estaba siendo
ejecutado en la JPÿ. Normalmente las causas de estas interrupciones
suelen ser realizaciones de operaciones no permitidas tales como la
división por 0, el desbordamiento, el acceso a una posición de memoria
no permitida, etc.
Normalmente genera un cambio de contexto a modo supervisor para
que el sistema operativo atienda el error. De manera que podemos ver
como las excepciones son un mecanismo de protección que permite
garantizar la integridad de los datos tanto en el espacio de usuario
como en el espacio kernel. El SO cuando detecta una excepción intenta
solucionarla pero en caso de no poder simplemente notificará la
condición de error a la aplicación y abortará la misma.

 Êo  

r menudo se tiende a confundir las interrupciones software y las
trampas, ya que su naturaleza es bastante similar. Sin embargo las
excepciones se producen al realizar una operación no permitida por lo
que de algún modo podemos decir que no es controlada directamente
por el programador si no que, por un fallo al programar, se producen.
No obstante las trampas si que son provocadas por el programador,
para provocar una trampa existen distintas instrucciones en el
repertorio máquina que permiten al programador producir una
interrupción al ejecutar dicha instrucción. Suelen tener nemotécnicos
tales como INT. Suelen ser de vital importancia ya que a partir de las
trampas se pueden pedir al SO que realice determinadas funciones,
para ello, en DOS se realiza la instrucción INT 0x21 y en ÿnix se utiliza
INT 0x80.

 Ê †        
èÊ Liberan al microprocesador de la pérdida de tiempo causada por esperar
a que ocurra cierto evento.
èÊ Permiten la ejecución de un programa principal junto con el control
simultáneo de varios dispositivos externos.
èÊ Proporciona servicio prioritario a dispositivos críticos dentro del sistema.
Facilitan la detección de eventos en ͞tiempo real͟.

 Ê         
èÊ Pueden ser necesarios circuitos externos adicionales para la generación
de la señal de interrupción y la identificación del dispositivo.
èÊ Dada su naturaleza asíncrona, es muy difícil probar su funcionamiento, y
todavía más encontrar posibles fallas.
èÊ Pueden requerir instrucciones adicionales además de las estrictamente
necesarias para dar servicio al dispositivo. Por ejemplo para preservar
registros o identificar al dispositivo.

 Ê    

En respuesta a una interrupción el microprocesador realiz a las siguientes
operaciones:
èÊ Se completa la instrucción que está en proceso.
èÊ Se ejecuta un ciclo de máquina especial, durante el cual se almacena el
contenido del contador del programa y se transfiere el control a una
dirección apropiada.
èÊ Se inicia la ejecución de la subrutina de servicio a la interrupción,
preservando el estado de la JPÿ si esto es necesario.
èÊ Si son varios los dispositivos que pudieron haber causado la interrupción,
se identifica aquel que haya solicitado la interrupción primero y tenga
mayor prioridad.
èÊ Se ejecuta la parte de la subrutina de servicio que complete directamente
a la atención del dispositivo que interrumpió.
èÊ Se restaura el estado original del microprocesador.
èÊ Se devuelve el control a la instrucción siguiente, a aquélla donde ocurrió
la interrupción.