Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

ESTRUCTURA DE UN SISTEMA OPERATIVO

No description
by

on 8 November 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of ESTRUCTURA DE UN SISTEMA OPERATIVO

ESTRUCTURA DE UN SISTEMA OPERATIVO
SISTEMAS CON CAPAS
Consiste en organizar o estructurar por jerarquía cada una de estas capas o anillos (interfaz de usuario, drivers, Kernell), cada una constituida sobre la inmediata inferior
Es una generalización del modelo de estructura simple para un sistema monolítico. Consiste en organizar el sistema operativo como una jerarquía de capas, cada una constituida sobre la inmediata inferior.
El sistema operativo la utiliza para poder controlar los diversos aspectos del hardware, sobre ella se encuentra la capa de dispositivos. Es un conjunto de funciones denominadas controladoras de dispositivo que se encuentra dentro del Kernell del sistema operativo, acceden directamente al hardware y hacen el trabajo de escritura y lectura.
Capa 0: Asignación del procesador y multiprogramación.
Capa 1: Administración de los recursos del sistema (memoria, disco, etc...).
Capa 2: Comunicación operador-proceso.
Capa 3: Control E/S.
Capa 4: Programas de usuario.
Capa 5: El operador.

VENTAJAS
Estos sistemas están programados de forma no modular, lo que los hace de mayor rendimiento ante los sistemas pensados en un micronúcleo; al carecer del constante paso de mensajes de estos últimos.
Cuentan con un núcleo que engloba todas sus funcionalidades y servicios convirtiendolos en binarios grandes, fruto de código altamente complejo y extenso. Que al principio todo cambio a realizar en sus prestaciones requería la recompilació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 traidas por sistemas compilados por capas y basados en módulos especificos e independientes. Estos podrían ser reescritos, compilados e incertados en el núcleo del sistema en tiempo de ejecución y cargados en el espacio de memoría del núcleo mismo, logrando así prestaciones propias de los sistemas basados en micronú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 (el Sistema Operativo es 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).
Así, si un módulo tiene problemas se puede reemplazar, arreglar o eliminar sin afectar al resto de funcionalidades. Otra ventaja interesante de los sistemas monolíticos es su velocidad.
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.

Capa 5. Interprete de comando.
En esta ultima capa se ubica la interfaz visible para el usuario, ya sea como una linea de comando o como una GUI (Interfaz Gráfica de Usuario), con la cual el usuario comunica y que esta capa traduce al conjunto de primitivas de las capas anteriores.

SISTEMA MONOLITICO
Es una colección de procedimientos que se pueden llamar entre sí, cada procedimiento tiene una interfaz bien definida en términos de parámetros y resultados.
Un sistema monolítico está compuesto por un grupo de estructuras fijas las cuales funcionan entre sí. Existen módulos grandes en el kernell, los cuales interactúan entre sí, para poder tener una estructura, las diferentes partes del Kernell son compiladas por capas. Se encarga del funcionamiento del PC como son comunicación entre procesos, planificación y gestión del espacio de direcciones.

Capa 3. Gestión de memoria.
Administra la memoria principal o memoria RAM, asignar los bloques de memoria a los procesos y de liberarlos cuando los procesos han terminado, así también se encarga de retirar algunos procesos de la memoria y almacenar una imagen de ellos en el disco duro.

Capa 1. Núcleo
El núcleo o kernel gestiona todos los procesos, es el encargado de llevar la cuenta de todos los procesos activos y de la planificación de los mismos, al seleccionar cuál de ellos ocupara tiempo del procesador, define el rendimiento del sistema

LAS CAPAS DEL SISTEMA OPERATIVO
Los sistemas operativos implementan una multitud de servicios y funciones como la gestión de entrada y salida, la cuenta y control de los programas, la gestión de la memoria, entre otros, lo cual genera una complejidad que los diseñadores deben ocultar pues las operaciones del sistema operativo deben ser transparentes al usuario, lo cual lleva a ocultar todos los detalles de información y de las estructuras de datos empaquetando las funciones en módulos.
MAQUINAS VIRTUALES
Las versiones iniciales del OS/360 eran, en sentido estricto, sistemas de procesamiento por lotes.
Sin embargo, muchos usuarios del 360 querían la capacidad de trabajar de manera interactiva en una terminal, por lo que varios grupos, tanto dentro como fuera de IBM, decidieron escribir sistemas de tiempo compartido para este sistema. El sistema de tiempo compartido oficial de IBM, conocido como TSS/360, se liberó después de tiempo y cuando por fin llegó era tan grande y lento que pocos sitios cambiaron a este sistema. En cierto momento fue abandonado, una vez que su desarrollo había consumido cerca de 50 millones de dólares Un descendiente lineal de este sistema, conocido como z/VM, se utiliza ampliamente en la actualidad, en las mainframes de IBM (zSeries) que se utilizan mucho en centros de datos corporativos extensos.

Capa 2. Entrada y salida básica
Proporciona funciones primitivas es decir, se encarga de proveer las primitivas necesarias para la localización, escritura y lectura de bloques de datos en el disco duro, en esta capa la información almacenada no se representa como archivos, la cual es una implementación de una capa superior.

Capa 4. Sistema de archivos.
Esta capa proporciona las funciones necesarias para almacenar la información en archivos, se apoya en las primitivas de la capa2 y la decisión de que procesos hacen uso de memoria se ubican en esta capa.

VM/370
El corazón del sistema, que se conoce como monitor de máquina virtual, se ejecuta en el hardware solamente y realiza la multiprogramación, proporcionando no una, sino varias máquinas virtuales a la siguiente capa hacia arriba. Sin embargo, a diferencia de otros sistemas operativos, estas máquinas virtuales no son máquinas extendidas, con archivos y otras características adecuadas. En vez de ello, son copias exactas del hardware, incluyendo el modo kernel/ usuario, la E/S, las interrupciones y todo lo demás que tiene la máquina real.

Redescubrimiento de las máquinas virtuales
Mientras que IBM ha tenido un producto de máquina virtual disponible durante cuatro décadas, y unas cuantas compañías más como Sun Microsystems y Hewlett-Packard han agregado recientemente el soporte de máquinas virtuales a sus servidores empresariales de alto rendimiento, la idea de la virtualización se había ignorado por mucho tiempo en el mundo de la PC, hasta hace poco.
La virtualización también es popular en el mundo del hospedaje Web. Sin ella, los clientes de hospedaje Web se ven obligados a elegir entre el hospedaje compartido (que les ofrece sólo una cuenta de inicio de sesión en un servidor Web, pero ningún control sobre el software de servidor) y hospedaje dedicado (que les ofrece su propia máquina, lo cual es muy flexible pero no es costeable para los sitios Web de pequeños a medianos). Cuando una compañía de hospedaje Web ofrece la renta de máquinas virtuales, una sola máquina física puede ejecutar muchas máquinas virtuales, cada una de las cuales parece ser una máquina completa.

Cuando un sistema operativo que opera en una máquina virtual (en modo usuario) ejecuta una instrucción privilegiada, tal como para modificar el PSW o realizar una operación de E/S, es esencial que el hardware la atrape para el monitor de la máquina virtual, de manera que la instrucción se pueda emular en el software. En algunas CPUs (como el Pentium, sus predecesores y sus clones) los intentos de ejecutar instrucciones privilegiadas en modo de usuario simplemente se ignoran.
Cuando se arrancar el sistema operativo huésped, realiza lo mismo que en el hardware real; por lo general inicia algunos procesos en segundo plano y después una GUI. Algunos hipervisores traducen los programas binarios del sistema operativo huésped bloque por bloque, reemplazando ciertas instrucciones de control con llamadas al hipervisor. Después, los bloques traducidos se ejecutan y se colocan en caché para su uso posterior.
Un enfoque distinto en cuanto al manejo de las instrucciones de control es el de modificar el sistema operativo para eliminarlas. Este enfoque no es una verdadera virtualización, sino paravirtualización.

Una generalización obvia de esta idea es hacer que los clientes y los servidores se ejecuten en
distintas computadoras, conectadas mediante una red de área local o amplia, como se describe
en la figura 1-27. Como los clientes se comunican con los servidores mediante el envío de mensajes,
no necesitan saber si los mensajes se manejan en forma local en sus propios equipos o si se envían
a través de una red a servidores en un equipo remoto. En cuanto a lo que al cliente concierne,
lo mismo ocurre en ambos casos: se envían las peticiones y se regresan las respuestas. Por ende, el
modelo cliente-servidor es una abstracción que se puede utilizar para un solo equipo o para una red
de equipos.
MODO
CLIENTE-SERVIDOR
Una ligera variación de la idea del microkernel es diferenciar dos clases de procesos: los servidores,
cada uno de los cuales proporciona cierto servicio, y los clientes, que utilizan estos servicios.
Este modelo se conoce como cliente-servidor. A menudo la capa inferior es un microkernel, pero
eso no es requerido. La esencia es la presencia de procesos cliente y procesos servidor.
La comunicación entre clientes y servidores se lleva a cabo comúnmente mediante el paso de
mensajes. Para obtener un servicio, un proceso cliente construye un mensaje indicando lo que
desea y lo envía al servicio apropiado. Después el servicio hace el trabajo y envía de vuelta la respuesta.
Si el cliente y el servidor se ejecutan en el mismo equipo se pueden hacer ciertas optimizaciones,
pero en concepto estamos hablando sobre el paso de mensajes.
Cada vez hay más sistemas que involucran a los usuarios en sus PCs domésticas como clientes
y equipos más grandes que operan en algún otro lado como servidores. De hecho, la mayor parte
de la Web opera de esta forma. Una PC envía una petición de una página Web al servidor y la página
Web se envía de vuelta. Éste es un uso común del modelo cliente-servidor en una red.
Full transcript