You are on page 1of 20

ESTRUCTURA BASICA DE UN SISTEMA OPERATIVO

A) CARGADOR Cualquier programa que requiere ser ejecutado en la computadora, deber ser transferido desde su lugar de residencia a la memoria principal. B) CARGADOR PARA EL SISTEMA OPERATIVO Este programa se encarga de transferir desde algn medio de almacenamiento externo (disco, cinta o tambor) a la memoria principal, los programas del sistema operativo que tienen como finalidad establecer el ambiente de trabajo del equipo de cmputo. Existe un programa especial almacenado en memoria ROM que se encarga de accesar a este programa cargador. Cuando el sistema operativo esta cargado en memoria toma el control absoluto de las operaciones del sistema. C) CARGADOR INCLUIDO EN EL SISTEMA OPERATIVO Su funcin es cargar a memoria todos los archivos necesarios para la ejecucin de un proceso. SUPERVISOR (EJECUTIVO O MONITOR) Es el administrador del sistema que controla todo el proceso de la informacin por medio de un gran nmero de rutinas que entran en accin cuando son requeridos. Funge como enlace entre los programas del usuario y todas las rutinas que controlan los recursos requeridos por el programa para posteriormente continuar con su ejecucin. El supervisor tambin realiza otras funciones como son: - Administra la memoria. - Administracin de las rutinas que controlan el funcionamiento de los recursos de la computadora. - Manejo de Archivos - Administracin y control de la ejecucin de los programas. LENGUAJE DE COMUNICACION Es el medio a travs del cual el usuario interacta directamente con el sistema operativo y esta formado por comandos que son introducidos a travs de algn dispositivo. Generalmente un comando consta de dos partes, la primera formada por una palabra que

identifica el comando y la accin a realizar y la segunda parte por un conjunto de valores o parmetros que permiten seleccionar diversas operaciones de entre los que dispone el comando. UTILERIA DE SISTEMA Son programas o rutinas del sistema operativo que realizan diversas funciones de uso comn o aplicacin frecuente como son: clasificar, copiar e imprimir informacin.

Texto Completo Estructura de los Sistemas Operativos


Los Sistemas Operativos pueden organizarse de maneras diferentes, una de ellas, la ms comn quiz, son los sistemas Monolticos, que a decir verdad no exhiben una estructura bien definida, sino que todos sus componentes se encuentran agrupados en un nico programa (el Sistema Operativo), el cual se ejecuta en un nico espacio de direcciones. El sistema operativo se escribe como un conjunto de procedimientos, cada uno de los cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea este esquema, cada procedimiento tiene una interfaz bien definida en trminos de parmetros y resultados, y cada una puede llamar a cualquier otra, si la ltima ofrece algn clculo que la primera necesite. Los servicios o llamadas al sistema proporcionadas por el Sistema Operativo se solicitan colocando parmetros en lugares bien definidos, como el registro o la pila y luego se ejecuta un llamado al ncleo o supervisor. Esta instruccin cambia la mquina de modo usuario a modo supervisor y transfiere el control al Sistema Operativo, este examina los parmetro de la llamada para determinar cul llamada al sistema se efectuar. Despus, el Sistema Operativo analiza una tabla que contiene en la entrada k un apuntador al procedimiento que realizar la llamada k. Esta operacin, identifica el procedimiento de servicio que despus es llamado. Por ltimo, se termina la llamada al sistema y el control se devuelve al programa de usuario. Pese a que todos los componentes se encuentran en un solo mdulo, puede sugerirse una pequea estructura como la siguiente: 1. Un programa central que invoque el procedimiento de servicio solicitado. 2. Un conjunto de procedimientos que llevan a cabo las llamadas al sistemas. 3. Un conjunto de procedimientos utilitarios que ayude a los procedimientos de servicio. En este modelo, para cada llamada al sistema hay un procedimiento de servicio que se encarga

de ella. Los procedimientos utilitarios hacen cosas que se necesitan para varios procedimientos de servicio, como buscar o traer datos de los programas del usuario. En un sistema monoltico una llamada al sistema se realiza de la siguiente forma: 1. El programa de usuario es atrado hacia el ncleo o kernel. 2. El Sistema Operativo determina en nmero de servicio solicitado. 3. El Sistema Operativo localiza y llama al procedimiento correspondiente al servicio. 4. El control se devuelve al programa de usuario.

En un sistema por capas, el sistema operativo se organiza como una jerarqua de capas, donde cada capa ofrece una interfaz clara y bien definida a la capa superior y solamente utiliza los servicios que le ofrece la capa inferior. La principal ventaja que ofrece este modelo es la modulacin y la ocultacin de la informacin, ya que una capa no necesita saber cmo fue implementada la capa sobre la que se construye, sino la interfaz que esta le ofrece. En cada capa se encapsulan funciones especificas, as cada capa se encarga de una parte especfica del sistema operativo. En general en un sistema operativo puede encontrarse la siguiente estructura, aunque esta puede variar de acuerdo al sistema operativo que se estudie. ADMINISTRADOR DE MEMORIA: Se encarga de las operaciones de asignacin, liberacin y proteccin de memoria. ADMINISTRADOR DE PROCESOS: Se encarga de las operaciones bsicas sobre procesos: crear, modificar y destruir. Crear: Cuando se aade un proceso al sistema, es necesario crea su descriptor o PCB y asignarle el espacio de direcciones que este utilizar. Estas acciones constituyen la creacin de un nuevo proceso. Modificar: Un proceso es cambiar algn o algunos valores de los registros de la PEP. Destruir: La destruccin de un proceso implica, borrarlo del sistema destruyendo su descriptor y liberando los recursos que tenga asignados. COORDINACIN ENTRE PROCESOS: Se encarga de la sincronizacin entre procesos por

medio de semforos. COMUNICACIN ENTRE PROCESOS: Corresponde a la comunicacin entre proceso, por medio del envo y la recepcin de mensajes. ADMINISTRADOR DE RELOJ FSICO: Convierte las oscilaciones del reloj fsico en tiempo. ADMINISTRACIN DE ENTRADA/SALIDA: Se encarga de las operaciones de Entrada/Salida. COMUNICACIN ENTRE COMPUTADORAS: Implanta las funciones bsicas de comunicacin con otras computadoras. SISTEMA DE ARCHIVOS: Maneja el sistema de archivos, estableciendo polticas para asignar espacio en disco y mecanismos para de accesos a los archivos. Otra manera de ver el sistema operativo por capas es el caso de una microcomputadora. Sobre el hardware se tienen inicialmente dos componentes: El Administrador de Entradas/Salidas por Bytes: Son procedimientos de bajo nivel que se encargan de realizar la comunicacin entre la computadora y aquellos perifricos que manejan bytes, como por ejemplo, la impresora, la consola, entre otros. El Administrador de Entradas/Salidas por Lotes: Este es el encargado de controlar el funcionamiento de los discos.. Una capa ms arriba se encuentra el ncleo del sistema o kernel que es el encargado de la administracin de la memoria, el procesador y los archivos. Finalmente, sobre el ncleo se encuentra el Shell o Intrprete de Comandos o el Programa de Usuario, de manera excluyente.

Mquinas virtuales. En toda computadora podemos definir dos mquinas abstractas: La mquina desnuda o simple, que es definida por el hardware. Todas las operaciones en ellas son las instrucciones de mquina. La mquina extendida, definida por el hardware y el ncleo del sistema operativo; esta es la que generalmente utiliza el usuario.

Los programas de los usuarios corren bajo la mquina extendida lo que representa algunos inconvenientes como son la portabilidad de los programas y es imposible correr dos sistemas operativos simultneamente, pues estos se ejecutan directamente sobre la mquina desnuda y solo se dispone de una. Como solucin a los problemas anteriores se puede crear ms de una interfaz de mquina desnuda, no soportada directamente por el hardware sino por el software. Para llevar a cabo esta funcin se cuenta con el SGMV Sistema Generador de Mquina Virtual y a las interfases generadas se les llama Mquina Virtual. El corazn del sistema, denominado Monitor de la Mquina Virtual, se ejecuta sobre el hardware y realiza la multiprogramacin, proporciona no solo una sino varias mquinas virtuales a la capa superior. Estas mquinas son duplicados exactos de la mquina desnuda realizados mediante el hardware y el software en las cuales un conjunto dominante de las instrucciones del procesador virtual se ejecutan en el procesador real, estas copias tienen su modo usuario y ncleo, E/S, interrupciones, etc. Cada mquina virtual es igual a la mquina real, por tanto sobre ellas se puede ejecutar cualquier sistema operativo que pueda ejecutarse en forma directa sobre el hardware. Las mquinas virtuales pueden ejecutar diferentes sistemas operativos. Algunas de ellas ejecutan CMS (Conversational Monitor SYstem). El CMS es el sistema supervisor de la conversacin, es un sistema de usuario nico que ofrece potente funciones para el desarrollo de programas. Un usuario CMS percibe una mquina virtual dedicada. CMS es un sistema de aplicaciones con potentes caractersticas para el desarrollo de programas. Contiene editores, traductores de lenguajes, diversos paquetes de aplicaciones e instrumentos de depuracin. Cuando un sistema ejecuta una llamada al sistema (SVC), el sistema operativo lo atrapa en su propia mquina virtual, este entonces proporciona las instrucciones de E/S en hardware para la lectura del disco virtual o lo necesario para llevar a cabo la llamada. estas instrucciones son entonces atrapadas por el SGMV, que las lleva a cabo como parte de la simulacin del hardware verdadero.

En el modelo Cliente-Servidor se definen dos tipos de procesos: Procesos Clientes y procesos Servidores.

Una tendencia de los Sistema Operativos modernos consiste en mover cdigo del sistema operativo a las capas superiores y mantener el ncleo mnimo, esto lo logran tratando de implantar la mayora de las funciones en los procesos del usuario. Para solicitar un servicio, como la lectura de un archivo, un proceso cliente debe enviar ala solicitud al proceso servidor, quien realiza el trabajo y luego devuelve una respuesta. La funcin del kernel se reduce a funciones bsicas como controlar, supervisar y coordinar la comunicacin entre los procesos clientes y servidores. Al dividir el Sistema Operativo en partes, cada una de las cuales se encarga del manejo de una facetas del sistema, como el servicio de archivo, el servicio de proceso, el servicio de memoria, entre otros, cada parte se vuelve pequea y fcil de manejar. Adems como todos los servidores corren en modo usuario y no en modo ncleo, no tienen acceso al hardware. Esto trae como beneficio que si se activa un error oculto en el servidor de archivo por ejemplo, esto har fallar el servicio de archivos pero por lo general no har fallar la mquina. A pesar de que los procesos servidores no tienen acceso al hardware, algunas tareas no pueden ejecutarse en mod usuario por lo que se les permite a los procesos servidores algunas veces ejecutarse en modo ncleo con acceso total al hardware, usando un mecanismo normal de mensajes para la comunicacin entre procesos. Otra de las ventajas de este modelo es su adaptabilidad a sistemas distribuidos. Si un cliente se comunica con su servidor por medio de mensajes, no es relevante para el si el mensaje se maneja en forma local o en su mquina, o si bien se envo de una red a un servidor en una mquina remota.

Por su estructura
De Wikilibros, la coleccin de libros de texto de contenido libre. Sistemas operativos/Por su estructura Saltar a navegacin, buscar

[editar] 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:
y y y

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.

[editar] 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. Ejemplos: Multics y Unix.

[editar] 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.

1.5 Estructura de los sistemas operativos [TANE93] [BIC88]


En el apartado 3 se ha visto el aspecto externo de los sistemas operativos (es decir, la interfaz con el programador y con el usuario), en este apartado se echar un vistazo al interior del sistema operativo. En las subsecciones siguientes se examinarn algunas de las formas posibles de estructurar el cdigo de un sistema

operativo. Los diseos estudiados no son exhaustivos, pero dan una idea de las posibilidades.

1.5.1 Sistemas monolticos


Este tipo de organizacin es, con diferencia, la ms comn. 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 ste ltimo proporciona un clculo til para el primero. Para construir el programa objeto real del sistema operativo siguiendo este punto de vista, se compilan de forma individual los procedimientos, o los ficheros que contienen los procedimientos, y despus se enlazan en un slo fichero objeto con el enlazador. En trminos de ocultacin de la informacin, sta es prcticamente nula: cada procedimiento es visible a los dems (en contraste con una estructura con mdulos o paquetes, en la que la mayora de la informacin es local a un mdulo, y donde slo los datos sealados de forma expresa pueden ser llamados desde el exterior del mdulo). Los servicios (mediante llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parmetros en lugares bien definidos, como los registros o la pila, para despus ejecutar una instruccin especial de trampa, a veces referida como llamada al ncleo o llamada al supervisor. Esta instruccin cambia la mquina del modo usuario al modo ncleo (tambin conocido como modo supervisor), y transfiere el control al sistema operativo, lo que se muestra en el evento (1) de la figura 5.1. El sistema operativo examina entonces los parmetros de la llamada para determinar cual de ellas se desea realizar, como se muestra en (2) de la figura 5.1. A continuacin, el sistema operativo analiza una tabla que contiene en la entrada k un apuntador al procedimiento que implementa la k-sima llamada al sistema. Esta operacin, que se muestra en (3) de la figura 5.1, identifica el procedimiento de servicio, al cual se llama. Por ltimo, la llamada al sistema termina y el control vuelve al programa del usuario.

Esta organizacin sugiere una estructura bsica del sistema operativo: Un programa principal que llama al procedimiento del servicio solicitado. Un conjunto de procedimientos de servicio que lleva a cabo las llamadas al sistema. Un conjunto de procedimientos de utilidades que ayudan a los procedimientos de servicio. 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 divisin de los procedimientos en tres capas se muestra en la figura 5.2.

1.5.2 Modelo cliente-servidor


Una tendencia de los sistema operativos modernos es la de trasladar 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 implantar la mayora de las funciones del sistema operativo como procesos de usuario. Para solicitar un servicio, como la lectura de un bloque de cierto fichero, un proceso de usuario (denominado en este caso proceso cliente) enva la solicitud a un proceso servidor, que realiza el trabajo y devuelve la respuesta.

En este modelo, que se muestra en la figura 5.3, 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 ficheros, servicio a procesos, servicio a terminales o servicio a la memoria; cada parte es pequea y controlable. Adems, puesto que 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 ficheros 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 sistemas distribuidos (vase la figura 5.4). Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el mensaje se gestiona de 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.

La idea anterior de un ncleo que slo controla el transporte de mensajes de clientes a servidores, y viceversa, no es totalmente real. Algunas funciones del sistema operativo (como la introduccin de rdenes en los registros fsicos de los controladores de E/S) son difciles, si no es que imposible de realizar, a partir de programas de usuario. Existen dos formas de afrontar este problema. Una es hacer que algunos procesos de servidores crticos (por ejemplo, los gestores de los dispositivos de E/S) se ejecuten en realidad en modo ncleo, con acceso total al hardware, pero de forma que se comuniquen con los dems procesos mediante el mecanismo normal de mensajes. La otra forma es construir una cantidad mnima de mecanismos dentro del ncleo, pero manteniendo las decisiones de poltica relativos a los usuarios dentro del espacio de los usuarios. Por ejemplo, el ncleo podra reconocer que cierto mensaje enviado a una direccin especial indica que se tome el contenido de ese mensaje y se cargue en los registros del controlador de algn disco, para iniciar la lectura del disco. En este ejemplo, el ncleo ni siquiera inspeccionara los bytes del mensaje para ver si son vlidos o tienen algn sentido; slo los copiara ciegamente en los registros del controlador del disco. Es evidente que debe utilizarse cierto esquema para limitar tales mensajes slo a los procesos autorizados. La separacin entre mecanismos y poltica es un concepto importante, aparece una y otra vez en diversos contextos de los sistemas operativos.

Ncleo (informtica)
De Wikipedia, la enciclopedia libre Saltar a navegacin, bsqueda Para otros usos de este trmino, vase Ncleo.

En informtica, un ncleo o kernel (de la raz germnica Kern) es un software que constituye la parte ms importante del sistema operativo.[1] Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma ms 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.

Contenido
[ocultar]

y y

y y y

1 Tcnica 2 Generalidades o 2.1 Funciones generalmente ejercidas por un ncleo o 2.2 Unix 3 Tipos de ncleo o 3.1 Microncleos o 3.2 Ncleos monolticos en contraposicin a microncleos o 3.3 Ncleos hbridos (microncleos modificados) o 3.4 Exoncleos 4 Referencias 5 Vase tambin 6 Enlaces externos

[editar] 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.[2]

[editar] Generalidades

Una visin tpica de la arquitectura de computadores como una serie de capas de abstraccin: hardware, firmware, lenguaje de mquina, ncleo, software de sistema y aplicaciones[3]

En informtica, el ncleo es el programa informtico que se asegura de:


y y y

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.
[editar] 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.
[editar] 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.
y y

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.

[editar] Tipos de ncleo


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 (informatica) 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:
y y

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.[4] 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.

[editar] Microncleos

Esquema del funcionamiento de un microncleo.


Artculo principal: Microncleo

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:
y y y y y y y y y y

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

[editar] Ncleos monolticos en contraposicin a microncleos Artculos principales: Ncleo monoltico y Microncleo

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[5] 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.
[editar] Ncleos hbridos (microncleos modificados) Artculo principal: Ncleo hbrido

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:
y y y y

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.
[editar] Exoncleos Artculo principal: Exoncleo

Esquema bsico de la interaccin entre un Exoncleo (Exokernel) con el Software a travs de bibliotecas.

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 de o 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

You might also like