Está en la página 1de 49

UNIVERSIDAD NACIONAL AMAZONICA DE MADRE DE DIOS

INGENIERIA DE SISTEMA E INFORMATICA

PRESENTA :

ESTRUCTURA DEL SISTEMA


OPERATIVO
SISTEMAS
MONOLITICOS
• Los sistemas monolíticos son aquellos en los que su centro es un grupo de
estructuras fijas, las cuales funcionan entre sí.
• existen módulos grandes en el núcleo, los cuales interactúan entre sí, para poder
tener esta estructura.
Los sistemas monolíticos se describen en tres procesos principales:

 Un programa principal que invoca el procedimiento de servicio solicitado.


 Un conjunto de procedimientos de servicio que llevan a cabo las llamadas del
sistema.
• Un conjunto de procedimientos de utilería que ayudan a los procedimientos del
servicio
VENTAJAS

• Estos sistemas están programados de forma no modular, lo que los hace de mayor rendimiento ante los
sistemas pensados en un micro núcleo; al carecer del constante paso de mensajes de estos últimos.

• Cuentan con un núcleo que engloba todas sus funcionalidades y servicios convirtiéndolos en binarios
grandes, fruto de código altamente complejo y extenso. Que al principio todo cambio a realizar en sus
prestaciones requería la recopilación del núcleo y el reinicio del sistema. Pero con actuales
ramificaciones del diseño original, basadas en las nuevas prestaciones del hardware y las necesidades de
los usuarios. Haciendo posible algunas ventajas traídas por sistemas compilados por capas y basados
en módulos específicos e independientes. Estos podrían ser reescritos, compilados e insertados en el
núcleo del sistema en tiempo de ejecución y cargados en el espacio de memoria del núcleo mismo,
logrando así prestaciones propias de los sistemas basados en micro núcleos pero sin agregar los tiempos
de espera inherente al paso de mensaje entre componentes. Este diseño arquitectónico es usado por
sistemas operativos como FreeBSD, Linux y otros derivados de UNIX.
DESVENTAJAS

• La desventaja es que como todo el sistema se ejecuta en el mismo nivel de privilegio


que el núcleo es muy probable que haya problemas (el sistema se apague, se bloquee o
se cuelguen procesos por ejemplo) debido a algún fallo del hardware o a un código mal
escrito.

• GNU/Linux es monolítico, aunque con este se introdujo una variante interesante. A


pesar de ser monolítico, es modular, lo que significa que es posible quitar o añadir
componentes al núcleo incluso en caliente (o sea, en pleno funcionamiento).

• Ya que todos los componentes del Sistema Operativo comparten los privilegios y la


separación funcional solo se hace entre procesos del sistema y los de aplicación, la
demora para ejecutar las llamadas al sistema es mínima
SISTEMAS OPERATIVOS
MONOLITICOS(ejemplos)
• Algunos de los sistemas operativos distribuidos más flexibles están basados en núcleos
monolíticos. Notablemente, tenemos sistemas como Plan 9, e Inferno. Ambos sistemas
siguen la línea de construcción de SSOO simples y elegantes de que han hecho gala algunos
de sus autores desde la aparición de UNIX.

• Los sistemas monolíticos hoy día, algunos ejemplos son:

 Sistemas operativos UNIX, tales como FreeBSD, NetBSD y OpenBSD.


 Sistemas operativos GNU/Linux, y por tanto, Android también.
• DOS, tales como MS-DOS y DR-DOS.
SISTEMA POR CAPAS
Y PRIVILEGIOS

Consiste en organizar el sistema operativo mediante una


jerarquía de capas, donde cada capa tiene una función en el
diseño de S.O. y se forman en niveles jerárquicos, donde cada
uno de aprovecha los servicios desde el nivel inferior.
EL SISTEMA CONSTA DE LAS SIGUIENTES CAPAS :

 Capa 5: Se encuentra la interfaz de usuario.


 Capa 4: Aloja los programas de usuario.
 Capa 3: Se controlan los dispositivos E/S
(entrada y salida).
 Capa 2: Se administra la comunicación
interproceso y la consola del operador.
 Capa 1: Administración de memoria y discos.
 Capa 0: Hardware
CARACTERISTICAS
 Fue desarrollado para incorporar mecanismos de
protección para la gestión de procesos, memoria y
entrada /salida
 Las zonas más intensas o núcleo están más protegidas de
posibles accesos indeseados desde las capas más externas
 Tiene un contacto más próximo con el hardware
 Núcleo mínimo, ágil y más seguro
 En este sistema los niveles se separan desde el nivel de
máximo privilegio o protección al código del núcleo.
 El siguiente nivel de privilegios se encuentra a los procesos
del sistema para la gestión de procesos y memoria.
 Para el nivel de menos privilegio se ejecutan el resto de los
procesos de la aplicación
VENTAJAS
 En la parte del mantenimiento es posible cambiar las
rutinas de bajo nivel siempre que la interfaz externa de la
rutina no cambie y la rutina realice la misma tarea
anunciada.
 En el sistema por capas tiene la ventaja desde un punto de
vista de organización de código del S.O. y la definición de
privilegios para lograr una programación segura
 No necesita conocer como se ha implementado la capa
sobre la que se construye, solo se necesita conocer la
interfaz que ofrece
 Facilita depuración y controla propagación de errores
 Cada capa es un ejecutable independiente
DESVENTAJAS
 La estructura jerárquica es demasiado flexible
 Bajo desempeño
 El diseño es más costoso
 Sistema de archivos requiere de servicios de
memoria virtual
 Menos eficiente ya que pierde tiempo pasando por
cada capa
 Sistemas reales tienen ciclos de uso
EJEMPLOS
ESTRUCTURA
MICROKERNEL
La idea consiste en tener un núcleo que brinde los servicios mínimos de
manejo de procesos, memoria y que provea la comunicación entre procesos.
Todos los restantes servicios se construyen como procesos separados del
micronúcleo, que ejecutan en modo usuario. Estos sistemas tienen como
ventaja un diseño simple y funcional, que aumenta la portabilidad y la
escalabilidad. Para agregar un nuevo servicio no es necesario modificar el
núcleo, y es más seguro ya que los servicios corren en modo usuario.

Con el diseño de capas, los diseñadores podían elegir en dónde dibujar el


límite entre kernel y usuario. Tradicionalmente todas las capas iban al kernel,
pero eso no es necesario. De hecho, puede tener mucho sentido poner lo
menos que sea posible en modo kernel, debido a que los errores en el kernel
pueden paralizar el sistema de inmediato. En contraste, los procesos de
usuario se pueden configurar para que tengan menos poder, por lo que un
error en ellos tal vez no sería fatal. Varios investigadores han estudiado el
número de errores por cada 1000 líneas de código (por ejemplo, Basilli y
Perricone, 1984; y Ostrand y Weyuker, 2002).
La idea básica detrás del diseño de microkernel es lograr una alta
confiabilidad al dividir el sistema operativo en módulos pequeños y bien
definidos, sólo uno de los cuales (el microkernel) se ejecuta en modo kernel
y el resto se ejecuta como procesos de usuario ordinarios, sin poder
relativamente. En especial, al ejecutar cada driver de dispositivo y sistema
de archivos como un proceso de usuario separado, un error en alguno de
estos procesos puede hacer que falle ese componente, pero no puede hacer
que falle todo el sistema. Así, un error en el driver del dispositivo de audio
hará que el sonido sea confuso o se detenga, pero la computadora no
fallará. En contraste, en un sistema monolítico con todos los drivers en el
kernel, un driver de audio con errores puede hacer fácilmente referencia a
una dirección de memoria inválida y llevar a todo el sistema a un alto
rotundo en un instante.
sistemas operativos que funcionan o funcionaron bajo esta estructura:

• Minix
• Hurd
• NeXTSTEP
• L4
• Netkernel
• AmoebaOS
• RaOS
• RadiOS
• Chorus
• qnx
• SO3
• SymbOS, para el procesador Z80.
Ahora veremos en forma breve las generalidades acerca de MINIX 3, que ha
llevado la idea de la modularidad hasta el límite, dividiendo la mayor parte del
sistema operativo en varios procesos independientes en modo usuario. MINIX
3 es un sistema de código fuente abierto en conformidad con POSIX,
disponible sin costo en www.minix3.org (Herder y colaboradores, 2006a;
Herder y colaboradores, 2006b).
El microkernel MINIX 3 sólo tiene cerca de 3200 líneas de C y 800 líneas de
ensamblador para las funciones de muy bajo nivel, como las que se usan para
atrapar interrupciones y conmutar proceso.
El código de C administra y planifica los procesos, se encarga de la
comunicación entre procesos (al pasar mensajes entre procesos) y ofrece un
conjunto de aproximadamente 35 llamadas al kernel para permitir que el resto
del sistema operativo realice su trabajo. Estas llamadas realizan funciones tales
como asociar los drivers a las interrupciones, desplazar datos entre espacios de
direcciones e instalar nuevos mapas de memoria para los procesos recién
creados. La estructura de procesos de MINIX 3 se muestra en la figura siguiente
En donde los manejadores de las llamadas al kernel se etiquetan como Sys. El manejador de
dispositivo para el reloj también está en el kernel, debido a que el planificador interactúa de cerca
con él. Todos los demás dispositivos controladores se ejecutan como procesos de usuario
separados.
Fuera del kernel, el sistema se estructura como tres capas de procesos, todos se ejecutan en modo
usuario. La capa más inferior contiene los drivers de dispositivos. Como todos se ejecutan en
modo usuario, no tienen acceso físico al espacio de puertos de E/S y no pueden emitir comandos
de E/S directamente. En vez de ello, para programar un dispositivo de E/S el driver crea una
estructura para indicarle qué valores debe escribir en cuáles puertos de E/S y realiza una llamada
al kernel para indicarle que realice la escritura. Esta metodología permite que el kernel compruebe
que el driver esté escribiendo (o leyendo) de la E/S que está autorizado a utilizar. En consecuencia
(y a diferencia de un diseño monolítico), un driver de audio defectuoso no puede escribir
accidentalmente en el disco.
Encima de los drivers hay otra capa en modo usuario que contiene los servidores, que
realizan la mayor parte del trabajo del sistema operativo. Uno o más servidores de archivos
administran el (los) sistema(s) de archivos, el administrador de procesos crea, destruye y
administra los procesos y así sucesivamente. Los programas de usuario obtienen servicios
del sistema operativo mediante el envío de mensajes cortos a los servidores, pidiéndoles las
llamadas al sistema POSIX. Por ejemplo, un proceso que necesite realizar una llamada read
envía un mensaje a uno de los servidores de archivos para indicarle qué debe leer.
Un servidor interesante es el servidor de reencarnación, cuyo trabajo es comprobar si otros
servidores y drivers están funcionando en forma correcta. En caso de que se detecte uno
defectuoso, se reemplaza automáticamente sin intervención del usuario. De esta forma, el
sistema es autocorregible y puede lograr una alta confiabilidad.
El sistema tiene muchas restricciones que limitan el poder de cada proceso.
Además, los procesos pueden otorgar un permiso limitado a otros procesos para hacer que
el kernel acceda a sus espacios de direcciones. Como ejemplo, un sistema de archivos
puede otorgar permiso al dispositivo controlador de disco para dejar que el kernel coloque
un bloque de disco recién leído en una dirección específica dentro del espacio de
direcciones del sistema de archivos. El resultado de todas estas restricciones es que cada
driver y servidor tiene el poder exacto para realizar su trabajo y no más, con lo cual se
limita en forma considerable el daño que puede ocasionar un componente defectuoso.
KERNEL HIBRIDO O NÚCLEO HIBRIDO
• El núcleo híbrido nos indica que el núcleo en cuestión usa
conceptos de arquitectura o mecanismos tanto del
diseño monolítico como el micro núcleo, especialmente
el paso de los mensajes y migración de código no
esencial para pasarlo al espacio del usuario, pero
conservando código no esencial en el espacio del núcleo,
para optimizar el rendimiento.
• BeOS núcleo

Sistemas •

Haiku núcleo
DEB- basado

que usan •
DEB de la libélula
XNU núcleo
• NetWare núcleo[4]
el núcleo •

Plan 9 núcleo
Infierno núcleo
hibrido •

Núcleo del NT
ReactOS núcleo
VENTAJAS:
• Permite mantener la velocidad de los núcleos
monolíticos para desempeñar determinadas
tareas.
• Mantiene la seguridad de un microkernel.
• Tienen la capacidad de escoger y elegir lo que
desea ejecutar en modo de usuario modo
supervisor.
• Los controladores de dispositivos y sistemas de
archivos E/S se da en modo usuario y las
llamadas IPC y servidores se da en modo
supervisor.
DESVENTAJAS:
• mayor trabajo para el
fabricante del hardware, ya
que la responsabilidad del
controlador depende de ellos.
• Problemas de latencia
(inherente de los
microkernel).
MAQUINA VITUAL
MAQUINA VIRTUAL
Una máquina virtual es un software que emula a una
computadora y puede ejecutar programas como si
fuese una computadora real.

Este software en un principio fue


definido como "un duplicado
eficiente y aislado de una máquina
física".

La acepción del término


actualmente incluye a máquinas
virtuales que no tienen ninguna
equivalencia directa con ningún
hardware real.
CLASIFICACION DE LAS MAQUINAS
VIRTUALES
Las máquinas virtuales se pueden clasificar
en dos grandes categorías según su
funcionalidad y su grado de equivalencia a
una verdadera máquina.

 Máquinas virtuales de sistema (en inglés


System Virtual Machine)
 Máquinas virtuales de proceso (en inglés
Process Virtual Machine)
CARACTERISTICAS
• Algunas características de estas máquinas son:

Las distintas MV pueden ejecutar cualquier El sistema operativo que está instalado sobre el ordenador
sistema operativo o aplicación sin que la (físico) se denomina anfitrión y el sistema operativo que
ejecución afecte a otras MV está instalado en la máquina virtual se llama invitado

La virtualización permite que en un solo Las MV tienen lo mismo que cualquier ordenador: BIOS,
ordenador haya MV con distintos servicios memoria, discos duros, etc.
o aplicaciones

Las MV tienen discos duros virtuales para que la máquina


anfitriona (es decir, para la máquina real) sea simplemente
ficheros de datos que se pueden copiar, mover, eliminar, etc
MAQUINAS VIRTUALES DE SISTEMA
• también llamadas máquinas
virtuales de hardware, permiten a
la máquina física subyacente
multiplicarse entre varias máquinas
virtuales, cada una ejecutando su
propio sistema operativo. A la capa
de software que permite la
virtualización se la llama monitor
de máquina virtual o "hypervisor"
APLICACIONES DE MAQUINAS
VIRTUALES DEL SISTEMA
Varios sistemas operativos distintos
pueden coexistir sobre la misma Varias máquinas virtuales (cada una con su propio sistema
computadora, en sólido aislamiento el uno operativo llamado sistema operativo "invitado" o "guest"),
del otro pueden ser utilizadas para consolidar servidores

La virtualización es una excelente opción hoy día, ya que las


máquinas actuales en la mayoría de los casos están siendo "sub-
utilizados", llegando a un uso de entre 30% a 60% de su capacidad

La máquina virtual puede proporcionar una arquitectura de


instrucciones (ISA) que sea algo distinta de la verdadera
máquina. Es decir, podemos simular hardware
MAQUINA VIRTUAL DE PROCESO
• A veces llamada "máquina virtual de aplicación", se ejecuta como un proceso
normal dentro de un sistema operativo y soporta un solo proceso.

La máquina se inicia automáticamente Su objetivo es el de proporcionar un entorno de ejecución independiente


cuando se lanza el proceso que se de la plataforma de hardware y del sistema operativo, que oculte los
desea ejecutar y se detiene para detalles de la plataforma subyacente y permita que un programa se
cuando éste finaliza. ejecute siempre de la misma forma sobre cualquier plataforma.

El ejemplo más conocido actualmente de este tipo de máquina virtual es


la máquina virtual de Java. Otra máquina virtual muy conocida es la del
entorno .Net de Microsoft que se llama "Common Language Runtime".
INCONVENIENTES CON LAS MAQUINAS
VIRTUALES
• Uno de los inconvenientes de las máquinas virtuales es que agregan gran
complejidad al sistema en tiempo de ejecución

Esto tiene como efecto la ralentización del sistema, es decir, el


programa no alcanzará la misma velocidad de ejecución que si
se instalase directamente en el sistema operativo "anfitrión

Sin embargo, a menudo la


flexibilidad que ofrecen
compensa esta pérdida de
eficiencia.
PRINCIPALES PROGRAMAS PARA
VIRTUALIZACION
• Dentro de los principales programas con los cuales se van a trabajar el proceso de
virtualización tenemos:

VMware: lleva en el mercado de las máquinas


Virtual Box: es poderoso, está lleno de características geniales
virtuales desde 1998 y ofrece tres paquetes
y lo mejor de todo: es gratis. Es una pieza de software
diferentes de software de virtualización:
sensacional que requiere poco más que un procesador Intel o
VMware Workstation Pro ($ 250 dólares),
AMD reciente conmutación y ofrece una integración perfecta
VMware Fusion ($ 80 dólares) y VMware
y capacidades de en el escritorio del host..
Workstation Player (gratis).

Parallels Desktop 14: Si de lo que se trata es de ofrecer la


experiencia de Windows a los usuarios de Mac, Parallels
Desktop 14 no tiene rival. La última versión del software es
compatible con la versión más reciente de MacOS, lo que le
permite emular Windows XP, 7, 8 y 10 como sistema operativo
invitado.
VENTAJAS Y DESVENTAJAS DE
MÁQUINAS VIRTUALES
VENTAJAS: DESVENTAJAS:

- Permiten probar sistemas operativos, aplicaciones y


configuraciones sin interferir con otras aplicaciones o - El funcionamiento de las snapshots puede ser
sistemas operativos existentes. un problema cuando un usuario hace un
- El sistema operativo virtualizado en la MV es cambio importante y se vuelve a un punto
totalmente independiente del sistema operativo de anterior por otro motivo, esa información
la máquina anfitriona. incluida se perderá.
- Facilidad para hacer copias de seguridad, es tan - Otro inconveniente es que agrega gran
simple como copiar y pegar un fichero. complejidad al sistema en tiempo de
- Un error en un sistema operativo virtualizado en una ejecución. Esto tiene como efecto la
MV sólo afecta a esa máquina. ralentización del sistema, es decir, el programa
- No es necesario cargar e instalar el gestor de no alcanzará la misma velocidad de ejecución
arranque dual para ejecutar varios sistemas que si se instalase directamente en el sistema
operativos, y estos se pueden ejecutar operativo “anfitrión” (host).
simultáneamente.
SISTEMA CLIENTE -
SERVIDOR
• En esta arquitectura el cliente suele ser estaciones
de trabajo que solicitan varios servicios al servidor,
mientras que un servidor es una máquina que actúa
como depósito de datos y funciona como un
sistema gestor de base de datos, este se encarga de
dar la respuesta demandada por el cliente.

• Esta arquitectura se aplica en diferentes modelos


informáticos alrededor del mundo donde su
propósito es mantener unas comunicaciones de
información entre diferentes entidades de una red
mediante el uso de protocolos establecidos y el
apropiado almacenaje de la misma
COMPONENTES
Para entender este modelo vamos a nombrar y definir a continuación algunos conceptos básicos que lo conforman.

 RED Una red es un conjunto de clientes, servidores y base de datos unidos de una manera
física o no física en el que existen protocolos de transmisión de información establecidos.

 El concepto de cliente hace referencia a un demandante de servicios, este cliente puede


CLIENTE ser un ordenador como también una aplicación de informática, la cual requiere
información proveniente de la red para funcionar.

 SERVIDOR Un servidor hace referencia a un proveedor de servicios, este servidor a su vez puede ser
un ordenador o una aplicación informática la cual envía información a los demás agentes
de la red.

 PROTOCOLO Un protocolo es un conjunto de normas o reglas y pasos establecidos de manera clara y


concreta sobre el flujo de información en una red estructurada.

es un conjunto de información que busca responder las necesidades de un cliente, donde


 SERVICIOS esta información pueden ser mail, música, mensajes simples entre software, videos, etc.

Son bancos de información ordenada, categorizada y clasificada que forman parte de la


red, que son sitios de almacenaje para la utilización de los servidores y también
 BASE DE DATOS directamente de los clientes.
DIFERENCIA ENTRE CLIENTE Y SERVIDOR

CLIENTE SERVIDOR
es un computador pequeño es una computadora, pero
con una estructura al igual a la con diferencia de que tiene
que tenemos en nuestras una gran capacidad que le
oficinas u hogares la cual permite almacenar gran
accede a un servidor o a los cantidad de diversos de
servicios del mismo a través archivos, o correr varias
de Internet o una red interna. aplicaciones en simultaneo
para así nosotros los clientes
poder acceder los servicios.
TIPOS DE ARQUITECTURA CLIENTE SERVIDOR

ARQUITECTURA DE 2 NIVELES ARQUITECTURA DE 3 O MAS NIVELES


Desventajas
REQUIERE HABILIDAD PARA REPARAR
Ventajas

SEGURIDAD

LIMITACION
EXOKERNEL
Definición
• El término exonúcleo (en ingles, exokernel)
se refiere a un sistema creado con fines de
investigación.

• Su propósito es crear una especie de capa


de software para otros sistemas virtuales.
• En esta arquitectura, apenas existe SO.
• Se basa en un módulo que actúa como un
gestor de recursos.
• el exokernel presenta el hardware como
abstracciones de alto nivel, permitiendo a
las aplicaciones tomar tantas decisiones
como sea posible sobre esas
abstracciones.
• El exokernel se dedica exclusivamente a
garantizar la protección y el multiplexado
de los recursos.
Para asegurar la protección de los recursos el
exokernel se vale de tres técnicas las cuales son:
• Utiliza estos enlaces seguros para que las aplicaciones
Enlaces seguros de forma segura puedan unir recursos del hardware y
controlar así los eventos.

Revocación de
• Las aplicaciones solicitan un recurso mediante el uso de
recursos un protocolo de revocación de los recursos.
visibles
Protocolo de • El exonucleo puede romper los enlaces de las solicitudes
que no responden.
cancelación
Características:
• El exokernel es eficiente debido al número limitado de operaciones primitivas
sencillas que aporta.
• Debido al bajo nivel de seguridad en la multiplexación de los recursos de
hardware proporciona baja utilización de los recursos del sistema.
• Abstracciones tradicionales como la Memoria Virtual (VM) y los Interprocesos
de Comunicación (IPC) pueden ser implementados de forma eficiente a nivel de
aplicación, en donde podría extenderse fácilmente, especializarse o sustituirse.
• Las aplicaciones pueden crear efectos especiales de las implementaciones de
las abstracciones adaptándolas a sus necesidades y funcionalidades de
rendimiento.
Ventajas:
• Mejor utilización de los recursos.
• Mayor rendimiento en los recursos.
• Mayor eficiencia en la utilización de los
recursos.
Desventajas:
• Mayor complejidad para el desarrollo de software.
• Carece de funcionalidades de alto nivel a
comparación de otros Sistemas Operativos.
Gracias

También podría gustarte