Anda di halaman 1dari 27

Los Sistemas Operativos Los Podemos Clasificar

En:
Sistemas operativos monotarea: Slo pueden
manejar un proceso, es decir , las tareas deben
ejecutarse una tras otra. Por ejemplo, el sistema
DOS es monotarea, al no poder ejecutar varias
aplicaciones simultneamente, aunque existieron
varios intentos de aadirle esta capacidad.

Sistemas operativos multitarea: La computadora


puede procesar varias tareas al mismo tiempo.

Sistemas Operativos distribuidos: Permiten


distribuir trabajos, tareas o procesos, entre un
conjunto de procesadores. Puede ser que este
conjunto de procesadores est en un equipo o en
diferentes, en este caso es trasparente para el
usuario. Existen dos esquemas bsicos de stos.
Un sistema fuertemente acoplado es a es aquel que
comparte la memoria y un reloj global, cuyos
tiempos de acceso son similares para todos los
procesadores. En un sistema dbilmente acoplado
los procesadores no comparten ni memoria ni reloj,
ya que cada uno cuenta con su memoria local. Los
sistemas distribuidos deben de ser muy
confiables, ya que si un componente del sistema
se compone otro componente debe de ser capaz de
reemplazarlo. Entre los diferentes Sistemas
Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus,
Spring, Amoeba, Taos, etc.

Tiempo Real: Responde a las entradas


inmediatamente. Los sistemas operativos como DOS
y UNIX, no funcionan en tiempo real.
Sistemas Operativos por lotes: Los Sistemas
Operativos por lotes, procesan una gran cantidad
de trabajos con poca o ninguna interaccin entre
los usuarios y los programas en ejecucin. Se
renen todos los trabajos comunes para
realizarlos al mismo tiempo, evitando la espera
de dos o ms trabajos como sucede en el
procesamiento en serie. Estos sistemas son de los
ms tradicionales y antiguos, y fueron
introducidos alrededor de 1956 para aumentar la
capacidad de procesamiento de los programas.

CLASIFICACIN EJEMPLO
MULTIUSUARIO LINUX
MONOUSUARIO WINDOWS 3.0 Y 3.1
(PRIMERAS VERSIONES)
MULTITAREA UNIX
TIEMPO REAL WINDOWS CE, Mac Os
MULTIPROCESADOR WINDOWS NT
DISTRIBUIDO SOLARIS
CENTRALIZADO MY SQL
LOTES SENCILLO MS-DOS
HIBRIDO ARCHGNU/LINUX
1.4.-Clasificacion

Sistemas Operativos por Lotes

Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna
interaccion entre los usuarios y los programas en ejecucion. Se reunen todos los trabajos
comunes para realizarlos al mismo tiempo, evitando la espera de dos o mas trabajos como
sucede en el procesamiento en serie. Estos sistemas son de los mas tradicionales y antiguos, y
fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los
programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucion muy alto,
porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido
a la secuenciabilidad de la ejecucion de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual
esta orientado a procesamiento cientifico pesado, y el EXEC II para el UNIVAC 1107,
orientado a procesamiento academico.
Algunas otras caracteristicas con que cuentan los Sistemas Operativos por lotes son:

Requiere que el programa, datos y ordenes al sistema sean remitidos todos juntos en
forma de lote.
Permiten poca o ninguna interaccion usuario/programa en ejecucion.
Mayor potencial de utilizacion de recursos que procesamiento serial simple en sistemas
multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracion
fuera de linea.
Conveniente para programas de largos tiempos de ejecucion (Ej., analisis estadisticos,
nominas de personal, etc.).
Se encuentra en muchos computadores personales combinados con procesamiento
serial.
Planificacion del procesador sencilla, tipicamente procesados en orden de llegada.
Planificacion de memoria sencilla, generalmente se divide en dos: parte residente del
S.O. y programas transitorios.
No requieren gestion critica de dispositivos en el tiempo.
Suelen proporcionar gestion sencilla de manejo de archivos: se requiere poca
proteccion y ningun control de concurrencia para el acceso.

Sistemas Operativos de Tiempo Real


Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el
usuario, sino los procesos. Por lo general, estan subutilizados sus recursos con la finalidad de
prestar atencion a los procesos en el momento que lo requieran. se utilizan en entornos donde
son procesados un gran numero de sucesos o eventos.

Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especificas
como control de trafico aereo, bolsas de valores, control de refinerias, control de laminadores.
Tambien en el ramo automovilistico y de la electronica de consumo, las aplicaciones de tiempo
real estan creciendo muy rapidamente. Otros campos de aplicacion de los Sistemas Operativos
de tiempo real son los siguientes:

1. Control de trenes.
2. Telecomunicaciones.
3. Sistemas de fabricacion integrada.
4. Produccion y distribucion de energia electrica.
5. Control de edificios.
6. Sistemas multimedia.

Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y
Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes caracteristicas:

1. Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de


sucesos, la mayoria externos al sistema computacional, en breve tiempo o dentro de
ciertos plazos.
2. Se utilizan en control industrial, conmutacion telefonica, control de vuelo, simulaciones
en tiempo real., aplicaciones militares, etc.
3. Objetivo es proporcionar rapidos tiempos de respuesta.
4. Procesa rafagas de miles de interrupciones por segundo sin perder un solo suceso.
5. Proceso se activa tras ocurrencia de suceso, mediante interrupcion.
6. Proceso de mayor prioridad expropia recursos.
7. Por tanto generalmente se utiliza planificacion expropiativa basada en prioridades.
8. Gestion de memoria menos exigente que tiempo compartido, usualmente procesos son
residentes permanentes en memoria.
9. Poblacion de procesos estatica en gran medida.
10. Poco movimiento de programas entre almacenamiento secundario y memoria.
11. Gestion de archivos se orienta mas a velocidad de acceso que a utilizacion eficiente del
recurso

Sistemas Operativos de Multiprogramacin


Se distinguen por sus habilidades para poder soportar la ejecucion de dos o mas trabajos
activos (que se estan ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad
Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al
maximo su utilizacion.

Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno esta
usando el procesador, o un procesador distinto, es decir, involucra maquinas con mas de una
UCP.

Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2,
soportan la multitarea.

Las caracteristicas de un Sistema Operativo de multiprogramacion o multitarea son las


siguientes:

Mejora productividad del sistema y utilizacion de recursos.


Multiplexa recursos entre varios programas.
Generalmente soportan multiples usuarios (multiusuarios).
Proporcionan facilidades para mantener el entorno de usuarios individuales.
Requieren validacion de usuario para seguridad y proteccion.
Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o
en sistemas de tiempo real.
Sistemas multiprocesadores son sistemas multitareas por definicion ya que soportan la
ejecucion simultanea de multiples tareas sobre diferentes procesadores.
En general, los sistemas de multiprogramacion se caracterizan por tener multiples
programas activos compitiendo por los recursos del sistema: procesador, memoria,
dispositivos perifericos.

Sistemas Operativos de Tiempo Compartido

Permiten la simulacion de que el sistema y sus recursos son todos para cada usuario. El usuario
hace una peticion a la computadora, esta la procesa tan pronto como le es posible, y la
respuesta aparecera en la terminal del usuario.

Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son
continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusion de que
tiene el sistema dedicado para su mismo. Esto trae como consecuencia una gran carga de
trabajo al Sistema Operativo, principalmente en la administracion de memoria principal y
secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Caracteristicas de los Sistemas Operativos de tiempo compartido:

1. Populares representantes de sistemas multiprogramados multiusuario, Ej.: sistemas de


diseno asistido por computador, procesamiento de texto, etc.
2. Dan la ilusion de que cada usuario tiene una maquina para si.
3. Mayoria utilizan algoritmo de reparto circular.
4. Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y
disminuye despues de concedido el servicio.
5. Evitan monopolizacion del sistema asignando tiempos de procesador (time slot).
6. Gestion de memoria proporciona proteccion a programas residentes.
7. Gestion de archivo debe proporcionar proteccion y control de acceso debido a que
pueden existir multiples usuarios accesando un mismo archivo.

Sistemas Operativos Distribuidos

Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser
que este conjunto de procesadores esta en un equipo o en diferentes, en este caso es
transparente para el usuario. Existen dos esquemas basicos de estos. Un sistema fuertemente
acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son
similares para todos los procesadores. En un sistema debilmente acoplado los procesadores no
comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se
compone otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes:
Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Caracteristicas de los Sistemas Operativos distribuidos:

Coleccion de sistemas autonomos capaces de comunicacion y cooperacion mediante


interconexiones hardware y software .
Gobierna operacion de un S.C. y proporciona abstraccion de maquina virtual a los
usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la comparticion global de recursos.
Servicios anadidos: denominacion global, sistemas de archivos distribuidos, facilidades
para distribucion de calculos (a traves de comunicacion de procesos internodos,
llamadas a procedimientos remotos, etc.).

Sistemas Operativos De Red

Son aquellos sistemas que mantienen a dos o mas computadoras unidas a traves de algun medio
de comunicacion (fisico o no), con el objetivo primordial de poder compartir los diferentes
recursos y la informacion del sistema.

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola
68000, pasando posteriormente a procesadores Intel como Novell Netware.

Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal
Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Sistemas Operativos Paralelos

En estos tipos de Sistemas Operativos se pretende que cuando existan dos o mas procesos que
compitan por algun recurso se puedan realizar o ejecutar al mismo tiempo.

En UNIX existe tambien la posibilidad de ejecutar programas sin tener que atenderlos en
forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios
procesos de un mismo usuario). Asi, en lugar de esperar a que el proceso termine de ejecutarse
(como lo haria normalmente), regresa a atender al usuario inmediatamente despues de haber
creado el proceso.

Ejemplos de estos tipos de Sistemas Operativos estan: Alpha, PVM, la serie AIX, que es
utilizado en los sistemas RS/6000 de IBM.
1.5 Estructura: niveles o estratos de diseo
Internamente los sistemas operativos estructuralmente de se clasifican
segn como se hayan organizado intrnamente en su diseo, por esto
la clasificacin ms comn de los S.O. son:

Sistemas monolticos

En estos sistemas operativos se escriben como un conjunto de


procedimientos, cada uno de los cuales puede llamar a cualquiera de
los otros siempre que lo necesite. Cuando se emplea esta tcnica, cada
procedimiento del sistema tiene una interfaz bien definida en trminos
de parmetros y resultados, y cada una tiene la libertad de llamar a
cualquiera otra, si la ltima ofrece algn clculo til que la primera
necesite.

CARACTERSTICAS

Construccin de programa final a base de mdulos compilados


separadamente que se une a travs del editor de enlaces.

Buena definicin de parmetros de enlace entre la rutinas


existentes.
Carecen de proteccin y privilegios al entrar y manejan diferentes
aspectos de la computadora.
Generalmente estn hechos a la medida.
Por ejemplo los cajeros automticos donde slo tienen que
cumplir una determinada funcin siguiendo una serie de procesos
ya determinados.
Para construir el programa objeto real del sistema operativo cuando se
usa este mtodo, se compilan todos los procedimientos individuales a
archivos que contienen los procedimientos y despus se combinan
todos en un solo archivo objeto con el enlazador.

En trminos de ocultamiento de informacin, esencialmente no existe


ninguno; todo procedimiento es visible para todos (al contrario de una
estructura que contiene mdulos o paquetes, en los cuales mucha
informacin es local a un mdulo y slo pueden llamar puntos de
registro designados oficialmente del exterior del mdulo)

Esta organizacin sugiere una estructura bsica del sistema operativo:

1.- Un programa central que invoque el procedimiento de servicio


solicitado (Shell o Kernel)

2.- Un conjunto de procedimientos de servicios que realice las llamadas


al sistema.

3.- Un conjunto de procedimientos de uso general que ayude a los


procedimientos de servicio

Sistemas en estratos

Estos sistemas operativos se organizan como una jerarqua de estratos,


cada uno construido arriba del que est debajo de l. El primer sistema
construido en esta forma fuel el sistema THE que se fabric en
Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra (1968)
y sus alumnos. El sistema THE era un sistema de lote para una
computadora alemana, la Electrolgica X8, que tena 32K de palabras
de 27 bits ( los bits eran costosos en aquellos das)

CARACTERSTICAS.

Las zonas mas intensas o nucleo estn mas protegidas de


posibles accesos indeseados desde las capas mas externas.
Tienes un contacto mas prximo con el hardware.
Ncleo mnimo, mas seguro y gil.

En esta estructura se basan prcticamente la mayora de los SO actuales.


Otra forma de ver este tipo de sistema es la denominacin de anillos
concntricos o RINGS
EJEMPLOS

Multics y Unix

El sistema tena 6 estratos, estos se muestran en la siguiente imagen:

El estrato 0 trabajaba con la distribucin del procesador, cambiando


entre procesos cuando ocurran interrupciones o los relojes expiraban.
Sobre el estrato 0, el sistema constaba de procesos secuenciales, cada
uno de los cuales poda programarse sin tener que preocuparse por el
hecho de que mltiples procesos estuvieran corriendo en un solo
procesador.

En otras palabras, el estarto 0 ofreca la multiprogramacin bsica de la


CPU.

El estrato 1 realizaba el manejo de memoria. Este distribua espacio


para procesos contenidos en la memoria central y en un tambor de
512K palabras que se usaba para contener partes de procesos
(pginas) para las cuales no haba espacio en la memoria central.
Sobre el estrato 1, los procesos no tena que preocuparse de si estaban
en la memoria o en el tambor; el software del estrato 1 se haca cargo
de asegurar que las pginas se trajeran a la memoria siempre que se
necesitaran.

El estrato 2 manejaba la comunicacin entre cada proceso y la consola


de operador.
El estrato 3 se haca cargo de manejar los dispositivos de E/S y de
separar la informacin en flujo que entraba y sal de ellos. Sobre el
estrato 3 cada proceso poda trabajar con dispositivos de E/S
abstractos con propiedades agradables, en vez de dispositivos reales
con muchas peculiaridades

El estrato 4 era donde se encontraban los programas de los usuarios.


No tenan que preocuparse por el manejo de los procesos, memoria,
consola o E/S. El proceso operador del sistema se localizaba en el
estrato 5

Estructura por microkernel

Las funciones centrales de un SO son controladas por el ncleo (kernel)


mientras que la interfaz del us

uario es controlada por el entorno (shell). Por ejemplo, la parte ms


importante del DOS es un programa con el nombre "COMMAND.COM"
Este programa tiene dos partes. El kernel, que se mantiene en memoria
en todo momento, contiene el cdigo mquina de bajo nivel para
manejar la administracin de hardware para otros programas que
necesitan estos servicios, y para la segunda parte del COMMAND.COM
el shell, el cual es el interprete de comandos

Las funciones de bajo nivel del SO y las funciones de interpretacin de


comandos estn separadas, de tal forma que puedes mantener el
kernel DOS corriendo, pero utilizar una interfaz de usuario diferente.
Esto es exactamente lo que sucede cuando cargas Microsoft Windows,
el cual toma el lugar del shell, reemplazando la interfaz de lnea de
comandos con una interfaz grfica del usuario. Existen muchos "shells"
diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG,
PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versin 5.0
incluy un Shell llamado DOS SHELL.

Estructura cliente servidor

Una tendencia de los sistemas operativos modernos es la de explotar la


idea de mover el cdi

go a capas superiores y eliminar la mayor parte posible del sistema


operativo para mantener un ncleo mnimo. El punto de vista

usual es el de implantar la mayora de las funciones del sistema


operativo en los procesos del usuario. Para solicitar un servicio, como la
lectura de un bloque de cierto archivo, un proceso del usuario
(denominado proceso cliente) enva la solicitud a un proceso servidor,
que realiza entonces el trabajo y regresa la respuesta. En este modelo,
que se muestra en la figura 4, lo n

ico que hace el ncleo es controlar la comunicacin entre los clientes y


los servidores. Al separar el sistema operativo en partes, cada una de
ellas controla una faceta del sistema, como el servicio a archivos,
servicios a procesos, servicio a terminales o servicio a la memoria, cada
parte es pequea y controlable. Adems como todos los servidores se
ejecutan como procesos en modo usuario y no en modo ncleo, no
tienen acceso directo al hardware. En consecuencia si hay un error en
el servidor de archivos, ste puede fallar, pero esto no afectar en
general a toda la mquina.

Otra de las ventajas del modelo cliente-servidor es su capacidad de


adaptacin para su uso en los sistemas distribuidos

Si un cliente se comunica con un servidor mediante mensajes, el cliente


no necesita saber si el mensaje se maneja en forma local, en su
mquina, o si se enva por medio de una red a un servidor en una
mquina remota. En lo que respecta al cliente, lo mismo ocurre en
ambos casos: se envi una solicitud y se recibi una respuesta

CARACTERSTICAS

Coordina, permite el trabajo entre iguales.Cliente; inicia las


solicitudes o peticiones (maestro)
Espera y recibe respuesta del servidorSe puede conectar a varios
servidores a la vez .
Servidor:
Esclavo, espera las solicitudes del cliente
Aceptan conexiones desde un gran numero de clientes.

EJEMPLOS

Sistema operativo Novell NetWare 1983, plataforma mas fiable


para ofrecer acceso seguro.
Windows 2000
Cualquiera de este puede compartir sus recursos con otro
Windows 2000
Windows xp

Mquina Virtual

Se trata de un tipo de sistemas operativos que presentan una interface


a cada proceso, mostrando una mquina que parece idntica a la
mquina real subyacente. Estos sistemas operativos separan dos
conceptos que suelen estar unidos en el resto de sistemas: la
multiprogramacin y la mquina extendida. El objetivo de los sistemas
operativos de mquina virtual es el de integrar distintos sistemas
operativos dando la sensacin de ser varias mquinas diferentes.
El ncleo de estos sistemas operativos se denomina monitor virtual y
tiene como misin llevar a cabo la multiprogramacin, presentando a
los niveles superiores tantas mquinas virtuales como se soliciten.
Estas mquinas virtuales no son mquinas extendidas, sino una rplica
de la mquina real, de manera que en cada una de ellas se pueda
ejecutar un sistema operativo diferente, que ser el que ofrezca la
mquina extendida al usuario

CARACTERSTICAS

Se puede hacer varios sistemas operativos sin necesidad de crear


particiones.
Se puede simular el hardware Gran capacidad de disco duro-
memoria ram
Proteccin cada maquina virtual esta aislada de las otras y no
puede inferir.

EJEMPLOS

Nachos: sistema operativo se ejecuta en una virtual mips, cuyo


emulador corre sobre Linux.
IBM IV: ofreca a cada usuario su propia maquina virtual no
multiprogramado.
1.5 Estructura (niveles o estratos de diseo).
Internamente los sistemas operativos estructuralmente de se clasifican segn como se hayan
organizado intrnamente en su diseo, por esto la clasificacin ms comn de los S.O. son:
Sistemas monolticos:
En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los
cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta
tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros
y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la ltima ofrece algn
clculo til que la primera necesite.
Para construir el programa objeto real del sistema operativo cuando se usa este mtodo, se
compilan todos los procedimientos individuales a archivos que contienen los procedimientos y
despus se combinan todos en un solo archivo objeto con el enlazador.
En trminos de ocultamiento de informacin, esencialmente no existe ninguno; todo procedimiento
es visible para todos (al contrario de una estructura que contiene mdulos o paquetes, en los
cuales mucha informacin es local a un mdulo y slo pueden llamar puntos de registro
designados oficialmente del exterior del mdulo)
Esta organizacin sugiere una estructura bsica del sistema operativo:
1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel)
2.- Un conjunto de procedimientos de servicios que realice las llamadas al sistema.
3.- Un conjunto de procedimientos de uso general que ayude a los procedimientos de servicio
Sistemas en estratos:
Estos sistemas operativos se organizan como una jerarqua de estratos, cada uno construido arriba
del que est debajo de l. El primer sistema construido en esta forma fuel el sistema THE que se
fabric en Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra (1968) y sus alumnos.
El sistema THE era un sistema de lote para una computadora alemana, la Electrolgica X8, que
tena 32K de palabras de 27 bits ( los bits eran costosos en aquellos das)
El sistema tena 6 estratos, estos se muestran en la siguiente tabla:

5 Operador de THE
4 Programas del usuario
3 Administracin de Entrada/Salida
2 Comunicacin entre el operador y el proceso
1 Administracin de la memoria y el tambor magntico
0 Distribucin del procesador y multiprogramacin

- El estrato 0 trabajaba con la distribucin del procesador, cambiando entre procesos cuando
ocurran interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos
secuenciales, cada uno de los cuales poda programarse sin tener que preocuparse por el hecho
de que mltiples procesos estuvieran corriendo en un solo procesador. En otras palabras, el
estarto 0 ofreca la multiprogramacin bsica de la CPU.
El estrato 1 realizaba el manejo de memoria. Este distribua espacio para procesos contenidos en
la memoria central y en un tambor de 512K palabras que se usaba para contener partes de
procesos (pginas) para las cuales no haba espacio en la memoria central. Sobre el estrato 1, los
procesos no tena que preocuparse de si estaban en la memoria o en el tambor; el software del
estrato 1 se haca cargo de asegurar que las pginas se trajeran a la memoria siempre que se
necesitaran.
El estrato 2 manejaba la comunicacin entre cada proceso y la consola de operador.
El estrato 3 se haca cargo de manejar los dispositivos de E/S y de separar la informacin en flujo
que entraba y sal de ellos. Sobre el estrato 3 cada proceso poda trabajar con dispositivos de E/S
abstractos con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades
El estrato 4 era donde se encontraban los programas de los usuarios. No tenan que preocuparse
por el manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se
localizaba en el estrato 5.
En esta unidad examinaremos cuatro estructuras distintas que ya han sido probadas, con el fin de
tener una idea ms extensa de cmo esta estructurado el sistema operativo. Veremos brevemente
algunas estructuras de diseos de sistemas operativos.
Estructura modular.Tambin llamados sistemas monolticos. Este tipo de organizacin es con
mucho la mas comn; bien podra recibir el subtitulo de "el gran embrollo". La estructura consiste
en que no existe estructura alguna. El sistema operativo se escribe como una coleccin de
procedimientos, cada uno de los cuales puede llamar a los dems cada vez que as lo requiera.
Cuando se usa esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en
trminos de parmetros y resultados y cada uno de ellos es libre de llamar a cualquier otro, si este
ultimo proporciona cierto clculo til para el primero. Sin embargo incluso en este tipo de sistemas
es posible tener al menos algo de estructura. Los servicios (llamadas al sistema) que proporciona
el sistema operativo se solicitan colocando los parmetros en lugares bien definidos, como en los
registros o en la pila, para despus ejecutar una instruccin especial de trampa de nombre
"llamada al ncleo" o "llamada al supervisor".
Esta instruccin cambia la mquina del modo usuario al modo ncleo y transfiere el control al
sistema operativo, lo que se muestra en el evento (1) de la figura 1. El sistema operativo examina
entonces los parmetros de la llamada, para determinar cual de ellas se desea realizar, como se
muestra en el evento (2) de la figura 1. A continuacin, el sistema operativo analiza una tabla que
contiene en la entrada k un apuntador al procedimiento que realiza la k-esima llamada al sistema.
Esta operacin que se muestra en (3) de la figura 1, identifica el procedimiento de servicio, al cual
se llama. Por ultimo, la llamada al sistema termina y el control regresa al programa del usuario.
Figura 1. La forma en que debe hacerse una llamada al sistema: (1) el programa del usuario es
atrado hacia el ncleo. (2) el sistema operativo determina el nmero del servicio solicitado. (3) el
sistema operativo localiza y llama al procedimiento correspondiente al servicio. (4) el control
regresa al programa del usuario.
Esta organizacin sugiere una organizacin bsica del sistema operativo:
1.- un programa principal que llama al procedimiento del servicio solicitado.
2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.
3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de servicio.
En este modelo, para cada llamada al sistema existe un procedimiento de servicio que se encarga
de l. Los procedimientos utilitarios hacen cosas necesarias para varios procedimientos de
servicio, por ejemplo buscar los datos de los programas del usuario.

Estructura por microkernel.Las funciones centrales de un SO son controladas por el ncleo


(kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la
parte ms importante del DOS es un programa con el nombre "COMMAND.COM" Este programa
tiene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el cdigo
mquina de bajo nivel para manejar la administracin de hardware para otros programas que
necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el
interprete de comandos
Las funciones de bajo nivel del SO y las funciones de interpretacin de comandos estn
separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de
usuario diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual
toma el lugar del shell, reemplazando la interfaz de lnea de comandos con una interfaz grfica del
usuario. Existen muchos "shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG,
PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versin 5.0 incluy un Shell llamado
DOS SHELL.
Estructura por anillos concntricos (capas).
El sistema por "capas" consiste en organizar el sistema operativo como una jerarqua de capas,
cada una construida sobre la inmediata inferior. El primer sistema construido de esta manera fue el
sistema THE (Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra
(1968) y sus estudiantes.
El sistema tenia 6 capas, como se muestra en la figura 3. La capa 0 trabaja con la asignacin del
procesador y alterna entre los procesos cuando ocurren las interrupciones o expiran los
cronmetros. Sobre la capa 0, el sistema consta de procesos secunciales, cada uno de los cuales
se podra programar sin importar que varios procesos estuvieran ejecutndose en el mismo
procesador, la capa 0 proporcionaba la multiprogramacin bsica de la CPU.
La capa 1 realizaba la administracin de la memoria. Asignaba el espacio de memoria principal
para los procesos y un recipiente de palabras de 512K se utilizaba para almacenar partes de los
procesos (pginas) para las que no exista lugar en la memoria principal. Por encima de la capa 1,
los procesos no deban preocuparse si estaban en la memoria o en el recipiente; el software de la
capa 1 se encargaba de garantizar que las pginas llegaran a la memoria cuando fueran
necesarias.
La capa 2 se encargaba de la comunicacin entre cada proceso y la consola del operador. Por
encima de esta capa, cada proceso tiene su propia consola de operador.
La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de
informacin entre ellos. Por encima de la capa 3, cada proceso puede trabajar con dispositivos
exactos de E/S con propiedades adecuadas, en vez de dispositivos reales con muchas
peculiaridades. La capa 4 es donde estaban los programas del usuario, estos no tenan que
preocuparse por el proceso, memoria, consola o control de E/S. el proceso operador del sistema se
localizaba en la capa 5
Una generalizacin mas avanzada del concepto de capas se presento en el sistema MULTICS. En
lugar de capas, MULTICS estaba organizado como una serie de anillos concntricos, siendo los
anillos interiores los privilegiados. Cuando un procedimiento de un anillo exterior deseaba llamar a
un procedimiento de un anillo interior, debi hacer el equivalente a una llamada al sistema
Mientras que el esquema de capas de THE era en realidad un apoyo al diseo, debido a que todas
las partes del sistema estaban ligadas entre si en un solo programa objeto, en MULTICS, el
mecanismo de anillos estaba mas presente durante el tiempo de ejecucin y era reforzado por el
hardware. La ventaja del mecanismo de anillos es su facilidad de extensin para estructurar
subsistemas del usuario.

5 El operador
4 Programas del usuario

3 Control de entrada/salida

2 Comunicacin operador-proceso
1 Administracin de la memoria y del disco

0 Asignacin del procesador y multiprogramacin

Figura 3. Estructura del sistema operativo THE.


Estructura cliente servidor
Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el cdigo a
capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un ncleo
mnimo. El punto de vista usual es el de implantar la mayora de las funciones del sistema
operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de
cierto archivo, un proceso del usuario (denominado proceso cliente) enva la solicitud a un proceso
servidor, que realiza entonces el trabajo y regresa la respuesta. En este modelo, que se muestra
en la figura 4, lo nico que hace el ncleo es controlar la comunicacin entre los clientes y los
servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del
sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la
memoria, cada parte es pequea y controlable. Adems como todos los servidores se ejecutan
como procesos en modo usuario y no en modo ncleo, no tienen acceso directo al hardware. En
consecuencia si hay un error en el servidor de archivos, ste puede fallar, pero esto no afectar en
general a toda la mquina.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptacin para su uso en los
sistemas distribuidos
Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el
mensaje se maneja en forma local, en su mquina, o si se enva por medio de una red a un
servidor en una mquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos:
se envi una solicitud y se recibi una respuesta.

Sistemas Operativos por su Estructura (Visin Interna).


Segn, se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los
cuales son:
Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado al uso al
que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operacin,
restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.
A continuacin se describen las distintas estructuras que presentan los actuales sistemas
operativos para satisfacer las necesidades que de ellos se quieren obtener.
Estructura Monoltica.
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. Las caractersticas fundamentales de este tipo de estructura son:

Construccin del programa final a base de mdulos compilados separadamente que se


unen a travs del ligador.
Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede
provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos
de los recursos de la computadora, como memoria, disco, etc.

Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y
gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o
tipos de aplicaciones.
Estructura Jerrquica.A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema
operativo, donde una parte del sistema contena subpartes y esto organizado en forma de niveles.
Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera
perfectamente definida y con un claro interface con el resto de elementos.
Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los
cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con
fines didcticos. Se puede pensar tambin en estos sistemas como si fueran `multicapa'. Multics y
Unix caen en esa categora.

En la estructura anterior se basan prcticamente la mayora de los sistemas operativos actuales.


Otra forma de ver este tipo de sistema es la denominada de anillos concntricos o "rings".

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 ms internas
del sistema operativo o ncleo del sistema estarn ms protegidas de accesos indeseados desde
las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las
externas.
Mquina Virtual.Se trata de un tipo de sistemas operativos que presentan una interface a cada
proceso, mostrando una mquina que parece idntica a la mquina real subyacente. Estos
sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la
multiprogramacin y la mquina extendida. El objetivo de los sistemas operativos de mquina
virtual es el de integrar distintos sistemas operativos dando la sensacin de ser varias mquinas
diferentes.
El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a
cabo la multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como
se soliciten. Estas mquinas virtuales no son mquinas extendidas, sino una rplica de la mquina
real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que
ser el que ofrezca la mquina extendida al usuario

Cliente-Servidor(Microkernel).El tipo ms reciente de sistemas operativos es el denominado


Cliente-servidor, que puede ser ejecutado en la mayora de las computadoras, ya sean grandes o
pequeas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con
las mismas actividades que los sistemas operativos convencionales.
El ncleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los
procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicacin
normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una
operacin de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede
actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los
servicios posibles en el sistema final, ya que el ncleo provee solamente funciones muy bsicas de
memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayora que el
usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y
proteccin que, a su vez, sern filtrados por el ncleo que controla el hardware. Actualmente se
est trabajando en una versin de UNIX que contempla en su diseo este paradigma.

El Ncleo (o kernel) es una coleccin de mdulos


de software que se ejecutan en forma
privilegiada lo que significa que tienen
acceso pleno a los recursos del sistema. El
ncleo normalmente representa slo una pequea
parte de lo que por lo general se piensa que es
todo el sistema operativo, pero es tal vez el
cdigo que ms se utiliza. Por esta razn, el
ncleo reside por lo regular en la memoria
principal, mientras que otras partes del
sistema operativo son cargadas en la memoria
principal slo cuando se necesitan.
El ncleo de un sistema operativo normalmente el
cdigo necesario para realizar las siguientes
funciones:
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.

El Kernel consiste en la parte principal del cdigo


del sistema operativo, el cual se encargan de
controlar y administrar los servicios y peticiones de
recursos y de hardware con respecto a uno o varios
procesos, este se divide en 5 capas:

Nivel 1. Procesador. (Ncleo)

Se encarga de activar los cuantum de tiempo para cada


uno de los procesos, creando interrupciones de
hardware cuando no son respetadas.Se introduce la
nocin de proceso como un programa en ejecucin. Entre
los requisitos fundamentales de un sistema operativo
que ofrezca soporte para mltiples procesos se incluye
la capacidad de suspender y reanudar los procesos.
Esto exige salvaguardar los registros del hardware,
de modo que la ejecucin pueda cambiar de un proceso
a otro. Adems, si los procesos necesitan cooperar,
hace falta algn mtodo de sincronizacin. Una de las
tcnicas ms simples, pero un concepto importante en
el diseo de sistemas operativos, es el semforo.
Objetos proceso y semforo
Operaciones tpicas crear, destruir, suspender,
reanudar, sealizar y esperar

Nivel 2. Entrada/Salida.

Proporciona las facilidades para poder utilizar los


dispositivos de E/S requeridos por procesos.
Tiene que ver con los dispositivos de almacenamiento
secundario. En este nivel se sitan las funciones de
ubicacin de las cabezas de lectura y escritura, y se
producen las transferencias reales de bloques. Este
nivel se apoya en el nivel anterior para planificar
las operaciones y notificar al proceso que hizo la
solicitud que la operacin ha culminado.

Objetos bloques de datos


Operaciones tpicas leer, escribir, asignar y
liberar
Dispositivos de Entrada y Salida.

El cdigo destinado a manejar la entrada y salida de


los diferentes perifricos en un sistema operativo es
de una extensin considerable y sumamente complejo.
Resuelve las necesidades de sincronizar, atrapar
interrupciones y ofrecer llamadas al sistema para los
programadores.

Nivel 4. Sistema de Archivos.

Proporciona la facilidad para el almacenamiento a


largo plazo y manipulacin de archivos con nombre,
va asignando espacio y acceso de datos en memoria.
Da soporte al almacenamiento a largo plazo de los
archivos con nombre.
En este nivel, los datos del almacenamiento
secundario se contemplan en trminos de entidades
abstractas de longitud variable, en contraste con el
enfoque orientado al hardware del nivel de E/S
bsicas, en trminos de pistas, sectores y bloques
de tamao fijo.
Objetos archivos dispositivos
Operaciones tpicas crear, destruir, abrir,
cerrar, leer y escribir.

Nivel 5. Informacin o Aplicacin o Intrprete de


Lenguajes.

Facilita la comunicacin con los lenguajes y el


sistema operativo para aceptar las ordenes en cada una
de las aplicaciones. Cuando se solicitan ejecutando
un programa el software de este nivel crea el ambiente
de trabajo e invoca a los procesos correspondientes.

Ofrece al usuario una interfaz con el sistema


operativo. Se denomina shell y separa al usuario de
los detalles, le presenta el sistema operativo como
un simple conjunto de servicios. El shell acepta las
rdenes del usuario o las sentencias de control de
trabajos, las interpreta, crea y controla los procesos
segn sea necesario.
El intrprete de comandos representa la interfaz entre
el usuario y el sistema operativo. Algunos sistemas
operativos incluyen el intrprete en el kernel. Otros
como el DOS o UNIX, poseen un programa especial para
cumplir esta funcin que se ejecuta cuando se inicia
el sistema.
Objetos datos del entorno
Operaciones tpicas sentencias del lenguaje de
ordenes

1.6 Ncleo
Ncleo (informtica)
En informtica, un ncleo o kernel (de la raz germnica Kern, ncleo, hueso) es un software que
constituye la parte ms importante del sistema operativo. Es el principal responsable de facilitar a
los distintos programas acceso seguro al hardware de la computadora o en forma bsica, es el
encargado de gestionar recursos, a travs de servicios de llamada al sistema. Como hay muchos
programas y el acceso al hardware es limitado, tambin se encarga de decidir qu programa podr
hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como
multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los
ncleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la
complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su
uso al programador.

Tcnica
Cuando se aplica voltaje al procesador de un dispositivo electrnico, ste ejecuta un reducido
cdigo en lenguaje ensamblador localizado en una direccin concreta en la memoria ROM
(direccin de reset) y conocido como reset code, que a su vez ejecuta una rutina con la que se
inicializa el hardware que acompaa al procesador. Tambin en esta fase suele inicializarse el
controlador de las interrupciones. Finalizada esta fase se ejecuta el cdigo de arranque (startup
code), tambin cdigo en lenguaje ensamblador, cuya tarea ms importante es ejecutar el
programa principal (main()) del software de la aplicacin.

Generalidades

En informtica, los ordenadores son el ncleo del programa informtico que se asegura de:

La comunicacin entre los programas que solicitan recursos y el hardware.


Gestin de los distintos programas informticos (tareas) de una mquina.
Gestin del hardware (memoria, procesador, perifrico, forma de almacenamiento, etc.)

La mayora de las interfaces de usuario se construyen en torno al concepto de ncleo. La


existencia de un ncleo, es decir, de un nico programa responsable de la comunicacin entre el
hardware y el programa informtico, resulta de compromisos complejos referentes a cuestiones de
resultados, seguridad y arquitectura de los procesadores. El ncleo tiene grandes poderes sobre la
utilizacin de los recursos materiales (hardware), en particular, de la memoria.
Funciones generalmente ejercidas por un ncleo
Los ncleos tienen como funciones bsicas garantizar la carga y la ejecucin de los procesos, las
entradas/salidas y proponer una interfaz entre el espacio ncleo y los programas del espacio del
usuario.
Aparte de las funcionalidades bsicas, el conjunto de las funciones de los puntos siguientes
(incluidos los pilotos materiales, las funciones de redes y sistemas de ficheros o los servicios)
necesariamente no son proporcionados por un ncleo de sistema de explotacin. Pueden
establecerse estas funciones del sistema de explotacin tanto en el espacio usuario como en el
propio ncleo. Su implantacin en el ncleo se hace en el nico objetivo de mejorar los resultados.
En efecto, segn la concepcin del ncleo, la misma funcin llamada desde el espacio usuario o el
espacio ncleo tiene un coste temporal obviamente diferente. Si esta llamada de funcin es
frecuente, puede resultar til integrar estas funciones al ncleo para mejorar los resultados.

Unix
Un ncleo Unix es un programa escrito casi en su totalidad en lenguaje C, con excepcin de una
parte del manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el
que opera. Las funciones del ncleo son permitir la existencia de un ambiente en el que sea
posible atender a varios usuarios y mltiples tareas en forma concurrente, repartiendo al
procesador entre todos ellos, e intentando mantener en grado ptimo la atencin individual.
El ncleo opera como asignador de recursos para cualquier proceso que necesite hacer uso de las
facilidades de cmputo.
Creacin de procesos, asignacin de tiempos de atencin y sincronizacin.
Asignacin de la atencin del procesador a los procesos que lo requieren.
Administracin de espacio en el sistema de archivos, que incluye: acceso, proteccin y
administracin de usuarios; comunicacin entre usuarios y entre procesos, y manipulacin
de E/S y administracin de perifricos.
Supervisin de la transmisin de datos entre la memoria principal y los dispositivos
perifricos.

Reside siempre en la memoria principal y tiene el control sobre la computadora, por lo que ningn
otro proceso puede interrumpirlo; slo pueden llamarlo para que proporcione algn servicio de los
ya mencionados. Un proceso llama al ncleo mediante mdulos especiales conocidos como
llamadas al sistema.
Consta de dos partes principales: la seccin de control de procesos y la de control de dispositivos.
La primera asigna recursos, programas, procesos y atiende sus requerimientos de servicio; la
segunda, supervisa la transferencia de datos entre la memoria principal y los dispositivos del
ordenador. En trminos generales, cada vez que algn usuario oprime una tecla de una terminal, o
que se debe leer o escribir informacin del disco magntico, se interrumpe al procesador central y
el ncleo se encarga de efectuar la operacin de transferencia.
Cuando se inicia la operacin de la computadora, debe cargarse en la memoria una copia del
ncleo, que reside en el disco magntico (operacin denominada bootstrap). Para ello, se deben
inicializar algunas interfaces bsicas de hardware; entre ellas, el reloj que proporciona
interrupciones peridicas. El ncleo tambin prepara algunas estructuras de datos que abarcan
una seccin de almacenamiento temporal para transferencia de informacin entre terminales y
procesos, una seccin para almacenamiento de descriptores de archivos y una variable que indica
la cantidad de memoria principal.
A continuacin, el ncleo inicializa un proceso especial, llamado proceso 0. En Unix, los procesos
se crean mediante una llamada a una rutina del sistema (fork), que funciona por un mecanismo de
duplicacin de procesos. Sin embargo, esto no es suficiente para crear el primero de ellos, por lo
que el ncleo asigna una estructura de datos y establece apuntadores a una seccin especial de la
memoria, llamada tabla de procesos, que contendr los descriptores de cada uno de los procesos
existentes en el sistema.
Despus de haber creado el proceso 0, se hace una copia del mismo, con lo que se crea el
proceso 1; ste muy pronto se encargar de "dar vida" al sistema completo, mediante la activacin
de otros procesos que tambin forman parte del ncleo. Es decir, se inicia una cadena de
activaciones de procesos, entre los cuales destaca el conocido como despachador, o planificador,
que es el responsable de decidir cul proceso se ejecutar y cules van a entrar o salir de la
memoria central. A partir de ese momento se conoce el nmero 1 como proceso de inicializacin
del sistema, init.
El proceso init es el responsable de establecer la estructura de procesos en Unix. Normalmente, es
capaz de crear al menos dos estructuras distintas de procesos: el modo monousuario y el
multiusuario. Comienza activando el intrprete del lenguaje de control Shell de Unix en la terminal
principal, o consola del sistema, proporcionndole privilegios de "superusuario". En la modalidad de
un solo usuario la consola permite iniciar una primera sesin, con privilegios especiales, e impide
que las otras lneas de comunicacin acepten iniciar sesiones nuevas. Esta modalidad se usa con
frecuencia para revisar y reparar sistemas de archivos, realizar pruebas de funciones bsicas del
sistema y para otras actividades que requieren uso exclusivo de la computadora.
Init crea otro proceso, que espera a que alguien entre en sesin en alguna lnea de comunicacin.
Cuando esto sucede, realiza ajustes en el protocolo de la lnea y ejecuta el programa login, que se
encarga de atender inicialmente a los nuevos usuarios. Si el nombre de usuario y la contrasea
proporcionadas son correctos, entonces entra en operacin el programa Shell, que en lo sucesivo
se encargar de la atencin normal del usuario que se dio de alta en esa terminal.
A partir de ese momento el responsable de atender al usuario en esa terminal es el intrprete
Shell. Cuando se desea terminar la sesin hay que desconectarse de Shell (y, por lo tanto, de
Unix), mediante una secuencia especial de teclas (usualmente. < CTL > - D). A partir de ese
momento la terminal queda disponible para atender a un nuevo usuario.
Tipos de sistemas
No necesariamente se necesita un ncleo para usar una computadora. Los programas pueden
cargarse y ejecutarse directamente en una computadora vaca, siempre que sus autores quieran
desarrollarlos sin usar ninguna abstraccin del hardware ni ninguna ayuda del sistema operativo.
sta era la forma normal de usar muchas de las primeras computadoras: para usar distintos
programas se tena que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se
empez a dejar en memoria (an entre distintas ejecuciones) pequeos programas auxiliares,
como el cargador y el depurador, o se cargaban desde memoria de slo lectura. A medida que se
fueron desarrollando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros
ncleos de sistema operativo.
Hay cuatro grandes tipos de ncleos:

Los ncleos monolticos facilitan abstracciones del hardware subyacente realmente


potentes y variadas.
Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de
abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para
ofrecer mayor funcionalidad.
Los ncleos hbridos (microncleos modificados) son muy parecidos a los microncleos
puros, excepto porque incluyen cdigo adicional en el espacio de ncleo para que se
ejecute ms rpidamente.
Los exoncleos no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que
proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.

Microncleos
El enfoque microncleo consiste en definir una abstraccin muy simple sobre el hardware, con un
conjunto de primitivas o llamadas al sistema que implementan servicios del sistema operativo
mnimos, como la gestin de hilos, el espacio de direccionamiento y la comunicacin entre
procesos.
El objetivo principal es la separacin de la implementacin de los servicios bsicos y de la poltica
de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de E/S se puede implementar
con un servidor en espacio de usuario ejecutndose encima del microncleo. Estos servidores de
usuario, utilizados para gestionar las partes de alto nivel del sistema, son muy modulares y
simplifican la estructura y diseo del ncleo. Si falla uno de estos servidores, no se colgar el
sistema entero, y se podr reiniciar este mdulo independientemente del resto. Sin embargo, la
existencia de diferentes mdulos independientes origina retardos en la comunicacin debido a la
copia de variables que se realiza en la comunicacin entre mdulos.
Algunos ejemplos de microncleos:

AIX
La familia de microncleos L4
El microncleo Mach, usado en GNU Hurd y en Mac OS X
BeOS
Minix
MorphOS
QNX
RadiOS
VSTa
Hurd

Ncleos monolticos en contraposicin a microncleos

Frecuentemente se prefieren los ncleos monolticos frente a los microncleos debido al menor
nivel de complejidad que comporta el tratar con todo el cdigo de control del sistema en un solo
espacio de direccionamiento. Por ejemplo, XNU, el ncleo de Mac OS X, est basado en el ncleo
Mach 3.0 y en FreeBSD, en el mismo espacio de direccionamiento para disminuir la latencia que
comporta el diseo de microncleo convencional.
A principios de los aos 90, los ncleos monolticos se consideraban obsoletos. El diseo de Linux
como un ncleo monoltico en lugar de como un microncleo fue el tema de una famosa disputa
entre Linus Torvalds y Andrew Tanenbaum. Los argumentos de ambas partes en esta discusin
presentan algunas motivaciones interesantes.
Los ncleos monolticos suelen ser ms fciles de disear correctamente, y por lo tanto pueden
crecer ms rpidamente que un sistema basado en microncleo, pero hay casos de xito en
ambos bandos. Los microncleos suelen usarse en robtica embebida o computadoras mdicas,
ya que la mayora de los componentes del sistema operativo residen en su propio espacio de
memoria privado y protegido. Esto no sera posible con los ncleos monolticos, ni siquiera con los
modernos que permiten cargar mdulos del ncleo.
Aunque Mach es el microncleo generalista ms conocido, se han desarrollado otros microncleos
con propsitos ms especficos. L3 fue creado para demostrar que los microncleos no son
necesariamente lentos. La familia de microncleos L4 es la descendiente de L3, y una de sus
ltimas implementaciones, llamada Pistachio, permite ejecutar Linux simultneamente con otros
procesos, en espacios de direccionamiento separados.
QNX es un sistema operativo que ha estado disponible desde principios de los aos 80, y tiene un
diseo de microncleo muy minimalista. Este sistema ha conseguido llegar a las metas del
paradigma del microncleo con mucho ms xito que Mach. Se usa en situaciones en que no se
puede permitir que haya fallos de software, lo que incluye desde brazos robticos en naves
espaciales, hasta mquinas que pulen cristal donde un pequeo error podra costar mucho dinero.
Mucha gente cree que como Mach bsicamente fall en el intento de resolver el conjunto de
problemas que los microncleos intentaban subsanar, toda la tecnologa de microncleos es intil.
Los partidarios de Mach afirman que sta es una actitud estrecha de miras que ha llegado a ser lo
suficientemente popular para que mucha gente la acepte como verdad.

Ncleos hbridos (microncleos modificados)

Los ncleos hbridos fundamentalmente son microncleos que tienen algo de cdigo no esencial
en espacio de ncleo para que ste se ejecute ms rpido de lo que lo hara si estuviera en
espacio de usuario. ste fue un compromiso que muchos desarrolladores de los primeros sistemas
operativos con arquitectura basada en microncleo adoptaron antes que se demostrara que los
microncleos pueden tener muy buen rendimiento. La mayora de sistemas operativos modernos
pertenecen a esta categora, siendo el ms popular Microsoft Windows. XNU, el ncleo de Mac OS
X, tambin es un microncleo modificado, debido a la inclusin de cdigo del ncleo de FreeBSD
en el ncleo basado en Mach. DragonFlyBSD es el primer sistema BSD que adopta una
arquitectura de ncleo hbrido sin basarse en Mach.
Algunos ejemplos de ncleos hbridos:

Microsoft Windows NT, usado en todos los sistemas que usan el cdigo base de Windows
NT
XNU (usado en Mac OS X)
DragonFlyBSD
ReactOS

Hay gente que confunde el trmino ncleo hbrido con los ncleos monolticos que pueden
cargar mdulos despus del arranque, lo que es un error. Hbrido implica que el ncleo en
cuestin usa conceptos de arquitectura o mecanismos tanto del diseo monoltico como del
microncleo, especficamente el paso de mensajes y la migracin de cdigo no esencial hacia el
espacio de usuario, pero manteniendo cierto cdigo no esencial en el propio ncleo por razones
de rendimiento.
Exoncleos
Los exoncleos, tambin conocidos como sistemas operativos verticalmente estructurados,
representan una aproximacin radicalmente nueva al diseo de sistemas operativos.
La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al
rendimiento del hardware. Los exoncleos son extremadamente pequeos, ya que limitan
expresamente su funcionalidad a la proteccin y el multiplexado de los recursos. Se llaman as
porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, en
bibliotecas dinmicas.
Los diseos de ncleos clsicos (tanto el monoltico como el microncleo) abstraen el hardware,
escondiendo los recursos bajo una capa de abstraccin del hardware, o detrs de los
controladores de dispositivo. En los sistemas clsicos, si se asigna memoria fsica, nadie puede
estar seguro de cul es su localizacin real, por ejemplo.
La finalidad de un exoncleo es permitir a una aplicacin que solicite una regin especfica de la
memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos
estn disponibles, y que el programa tiene derecho a acceder a ellos.
Debido a que el exoncleo slo proporciona una interfaz al hardware de muy bajo nivel, careciendo
de todas las funcionalidades de alto nivel de otros sistemas operativos, ste es complementado por
una biblioteca de sistema operativo. Esta biblioteca se comunica con el exoncleo subyacente, y
facilita a los programadores de aplicaciones las funcionalidades que son comunes en otros
sistemas operativos.
Algunas de las implicaciones tericas de un sistema exoncleo son que es posible tener distintos
tipos de sistemas operativos (p.e. Windows, Unix) ejecutndose en un solo exoncleo, y que los
desarrolladores pueden elegir prescindir incrementar funcionalidades por motivos de rendimiento.
Actualmente, los diseos exoncleo estn fundamentalmente en fase de estudio y no se usan en
ningn sistema popular. Un concepto de sistema operativo es Nemesis, creado por la Universidad
de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto Sueco de Informtica. El
MIT tambin ha diseado algunos sistemas basados en exoncleos. Los exoncleos se manejan
en diferente estructura dado que tambin cumplen funciones distintas

Anda mungkin juga menyukai