Download Parte 2 - Edna Miranda Chávez

Document related concepts

Anillo (seguridad informática) wikipedia , lookup

Núcleo (informática) wikipedia , lookup

RC 4000 wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Sistema operativo wikipedia , lookup

Transcript
Sistemas Operativos
Introducción
Unidad II
Sergio Fuenlabrada Velázquez
Edna Martha Miranda Chávez
Revisión Feb 2011
Sergio Fuenlabrada Velázquez
Evolución de la estructura de
los Sistemas Operativos
Estructura del Sistema Operativo
(SO)
• Modelo Monolítico o estructura simple
• Modelo jerárquica, en estratos, modularidad o capas
• Modelo en tiempo real
• Modelo maquina virtual
• Modelo servidor del cliente
• Modelo orientado a objetos
Estructura monolítico o simple
El sistema operativo estaba conformado por un sólo
programa el cual tenia subrutinas que eran llamadas
por el modulo principal (kernel)
Programa de aplicación
Programa residente del
S.O.
Manejadores de
dispositivos del S.O.
Manejadores de
dispositivos del BIOS
Proceso lento
Usuario
Shell, comandos,
compiladores, interpretes
Monolítico
Administradores,
planificadores, manejadores
E/S, kernel
Hardware
Controladores, manejadores
de dispositivos
Estructura Monolítico o simple
• Los sistemas operativos monolíticos, cuentan con un
núcleo (kernel) llamado monolítico, este es grande y
complejo, engloba todos los servicios que proporciona el
sistema operativo, la gestion de recursos, los servicios y
manejo de dispositivos se encuentran integrados en un
único programa.
• Este tipo de sistemas operativos inicio siendo un
programa sencillo llamado monitor, pero conforme la
tecnología avanzaba, y los servicios requeridos
aumentaban, éste se vuelve complejo, con miles de líneas
de código. Lo que a su vez provoca una respuesta lenta
al servicio solicitado.
• Las modificaciones a este tipo de sistema operativo son
complicadas por lo grande del código y cada modificación
requiere la re-compilación del núcleo.
Estructura Monolítico o simple
• No exhibe una estructura, ya que es un enorme
programa, El programa consta de una rutina principal
llamada núcleo (en ingles kernel) y conjunto de
procedimientos (o subrutinas).
• Una llamada al sistema es interceptada por el núcleo
y este a su vez llama a los procedimientos que
requiera para dar servicio a dicha llamada. Para
controlar multiples llamadas utilizaregistros, colas y
pilas.
• Los procedimientos o subrutinas son llamados para
su ejecución por el núcleo o por otros procedimientos
o rutinas siempre que se requieran
Estructura Monolítico o simple
Llamada al sistema
• El programa del usuario captura al kernel
• El kernel establece el servicio que se
solicita.
• El núcleo localiza y llama a un
procedimiento que proporciona el servicio
solicitado
• El procedimiento efectúa el servicio
• El control se devuelve al núcleo y este lo
regresa al programa del usuario
Estructura Jerárquica, por Estratos,
modularidad o capas
Micro-núcleo
Los sistemas operativos con Micro-núcleo o microkernel cuentan
con un núcleo pequeño, que descentraliza los servicios y manejo
de fallos o errores.
Todos las solicitudes de servicios provistos por el sistema
operativo son recibidas por el núcleo, y este a su vez llama a los
administradores o gestores para que efectúen el servicio
solicitado.
Como ventaja esta estructura presenta la facilidad para modificar
al sistema operativo, ya que para añadir nuevas funcionalidades
y servicios, sólo es necesario el recompilar el modulo
específicos.
Estructura Jerárquica, por Estratos,
modularidad o capas
El sistema operativo esta dividido en partes, módulos, estratos o
capas, cada parte se encarga de una tarea especifica.
Jerarquía de estratos, cada uno construido arriba del que esta de
bajo.
Estrato
Procedimiento central
– micro-núcleo
Procedimientos de servicio
Procedimientos de uso general
Una generalización de este modelo es el modelo de
anillos concéntricos. Los anillos internos tienen más
privilegios que los anillos externos.
Estructura Jerárquica, por Estratos,
modularidad o capas
Ejemplo de un Sistema Operativo de 6 estratos:
Secuencia
Estrato 7.- Programas del usuario
Estrato 6.- Proceso operador del sistema
(comunicación con el usuario y con el
hardware -- estrato más interno del S.O.)
Estrato 5.- Distribución del procesador y
multiprogramación.
Estrato 4.- Manejo de memoria
Estrato 3.- Comunicación entre procesos
Estrato 2.- Manejo de dispositivos E/S
Estrato 1.- Proceso operador del sistema
Estrato 0.- Hardware
Tiempo real
• El sistema operativo
de tiempo real (Real Time
Operating System), fue desarrollado para soportar
aplicaciones en tiempo real.
• Las aplicaciones en tiempo real se caracterizan por
contar con una serie de dispositivos los cuales reciben
información del medio ambiente, y el sistema debe dar
una respuesta inmediata a dicho requerimiento.
• Los sistemas operativos en tiempo real se evalúan en
función al tiempo que se tardan en recibir los datos,
generar y emitir una respuesta.
• Este tipo de sistema operativo se encuentra instalado
en aviones, automoviles, equipos industriales, etc.
Tiempo real
Una versión de los sistemas operativos de tiempo real son:
• Los sistema operativos guiados por eventos. Se activan
cuando un evento ocasiona o requiere un servicio. Ejemplo
se recibe una señal de un electrodo conectado a un paciente
el cual indica que los niveles de insulina se encuentran abajo
del minimo establecido. El sistema puede responder enviando
una dosis de insulina o emitiendo una alarma audible, o
enviando un mensaje al pool de enfermeras, etc.
• Se comparte el recurso por tiempo. Estos cambian o activan
tareas por que se generó una interrupción del reloj o por un
evento. Ejemplo, nuevamente un electrodo conectado a un
paciente y un control de tiempo del sistema. El paciente
puede recibir medicamento de acuerdo a un horario
establecido o porque la enfermera programa el dispositivo
para emitir una descarga de dicho medicamento.
Maquina virtual
• Cada proceso genera una maquina virtual (Virtual Machine VM). La cual consta de una copia de los programas de
servicio, programas de control y el corazón del sistema
operativo. El Acceso al procesador lo controla el monitor de
maquina virtual.
• Cada VM interactúa directamente con el hardware en E/S.
• En un equipo de computo pueden estar ejecutandose varias
VM, incluso pueden ejecutarse en diferente sistemas
operativos.
Programa Programa Programa
usuario
usuario
usuario
Llamada al sistema
Maquina
virtual
Copia Sistema Operativo
Maquina
virtual
Maquina
virtual
Monitor de maquina virtual
Hardware
Distribución del procesador
y multiprogramación
Maquina virtual
Difícil implementación
Cada proceso:
• Crea la ilusión de que es el unico proceso
ejecutandose en el computador, ya que se crea la
imagen de que el proceso cuenta con su propio
procesador, memoria, dispositivo etc. A cada
proceso se le presenta una copia virtual del
procesador y la memoria.
• Cada MV se le crea un espacio de memoria, llamada
minidiscos.
• El spooling ayuda a simular dispositivos dedicados.
• Java (1995)
• Interfaz API – soporte de lenguaje basico para
graficar
• Maquina virtual – JVM - Interprete de JAVA, ejecuta
codigos de bytes independiente del Hardware.
Servidor del cliente
Mas usado
actualmente
Procesos Cliente
Mensaje
1
4
Mensajes
Microkernel / Núcleo hibrido
Mensajes
2
3
Programas servicio
Este tipo de estructura puede operar con microkernel o núcleo hibrido
Núcleo Hibrido
Los núcleos híbridos aumentar el rendimiento del sistema
operativo, integrándose fundamentalmente con micro núcleos.
Esto es, transfieren algo de código del núcleo (componente no
esencial) al espacio de usuario
El núcleo híbrido usa conceptos de arquitectura o mecanismos
tanto del diseño monolítico como de micro núcleo
Se basan en el paso de mensajes.
La mayoría de los sistemas operativos actuales (año 2008)
pertenecen a esta categoría, como Microsoft Windows, XNU,
Mac OS X.
Servidor del cliente (micro-kernel)
Inicio Mediados 80’s
• Se basan en núcleos híbridos - La idea es pasar código a
estratos mayores (usuario) e implantar la mayoría de las
funciones del S.O. en procesos del usuario y minimizar el
núcleo (micro-kernel).
• La comunicación (paso de mensajes) facilita la ejecución de
procesos locales y remotos.
• Todos los procesos se corren en modo usuario, por lo tanto
el acceso al hardware sigue siendo responsabilidad del
S.O.
• Existe independencia de procesos y por lo tanto de errores.
• El proceso puede enviar información a una dirección y esto
significa (por default, ya que se prende una bandera) que
se requiere leer la información que se encuentra en esa
dirección o enviarla a un buffer.
Orientación a Objetos
Futuro de los S.O.
• Toma las características de operación de sus
antecesores.
• Se basa en el principio de dividir al sistemas operativo en
funciones o servicios. Por lo tanto cada objeto ejecuta una
función o servicio especifico y mientras más especializado
mejor.
• La comunicación entre objetos es a través de mensajes.
• Un objeto ejecuta una tarea especifica de principio a fin.
• El kernel es el objeto primario y establece las
comunicaciones entre clientes (procesos usuarios) y
servidores (gestores de recursos).
• Facilita al usuario la interacción con el sistema operativo y
la ejecución de procesos locales y remotos, ya que pierde
importancia de donde proceda el mensaje.
• Los objetos del sistema operativo pueden ser llamados
(ejecutados) por aplicaciones del usuario.
Sistemas operativos por servicios
Son los tipos de sistemas más conocidos desde el punto de vista de
los servicios que ofrecen al usuario.
• Mono-usuario
• Multiusuario
• Mono-tareas
• Multitareas
• Uniproceso o mono-proceso
• Multiproceso asimétrica (un procesador pivote y “n” esclavos) o
simétrica (“n” procesadores trabajando en paridad).
• En tiempo real
• En red
• Procesamiento distribuido
• Dispositivos remotos
• Dispositivos móviles
Ejemplos de estructuras de diferentes
sistemas operativos para Computadoras
Personales
Ejemplo Arquitectura de Sistema Operativo UNIX
Sistemas Operativos, Gary Nutt, Ed. Pearson
Ejemplo Organización de Windows NT/2000/XP
Sistemas Operativos, Gary Nutt, Ed. Pearson
INVESTIGACIÓN
Tarea:
Investigue una estructura de los
sistemas operativos distribuidos y
de sistemas operativos para
equipos móviles
Modo Súper-usuario, administrador
Hoy en día para diferenciar las llamadas que puede el usuario
efectuar al sistema operativo se dice que trabaja en modo
supervisor o súper usuario o modo usuario
• Modo supervisor o súper usuario: el usuario puede ejecutar el
juego completo de instrucciones disponibles del sistema
operativo. En las computadoras personales normalmente existe
un solo súper usuario para el sistema operativo.
• Modo usuario: el usuario sólo podrá ejecutar un juego
restringido de instrucciones. Pueden existir “n” usuarios para la
computadora.