Estructura del sistema operativoSegún [Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistemao...
Esta organización sugiere una organización básica del sistema operativo:1.- Un programa principal que llama al procedimien...
Tipos de máquinas virtualesFuncionamiento de la máquina virtual de Java, una de las máquinas virtuales de proceso máspopul...
Máquinas virtuales de procesoUna máquina virtual de proceso, a veces llamada "máquina virtual de aplicación", se ejecutaco...
 Estructura orientada al objeto.Descripción: se basan en una colección de objetos, donde las funciones del sistema son un...
Núcleo del sistema OperativoEn informática, un núcleo o kernel (de la raíz germánicaKern) es un software que constituye la...
Creación de procesos, asignación de tiempos de atención y sincronización.       Asignación de la atención del procesador a...
Núcleos híbridos (micronúcleos modificados)Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de códig...
Procesos del Sistema OperativoUn proceso es un programa en ejecución. Los procesos son gestionados por el sistemaoperativo...
Estados de un proceso.-Un proceso puede variar entre 5 distintos estados:New: cuando el proceso está siendo creado.Running...
Información del estado+ Se encarga de almacenar el contenido de los registros del procesador cuando el proceso, noesta eje...
Upcoming SlideShare
Loading in...5
×

Estructura del sistema operativo

4,858

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,858
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
113
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Estructura del sistema operativo

  1. 1. Estructura del sistema operativoSegún [Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistemaoperativo, los cuales son:  Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar.  Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.A continuación se describen las distintas estructuras que presentan los actuales sistemasoperativos para satisfacer las necesidades que de ellos se quieren obtener.  Sistemas monolíticos.La estructura consiste en que no existe estructura alguna. El sistema operativo se escribecomo una colección de procedimientos, cada uno de los cuales puede llamar a los demás cadavez que así lo requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene unainterfaz bien definida en términos de parámetros y resultados y cada uno de ellos es libre dellamar a cualquier otro, si este ultimo proporciona cierto cálculo útil para el primero.Se componen de un conjunto de procedimientos, donde cada uno de ellos puede llamar a todoslos demás.Proceso para requerir un servicio del S.O.: el programa de usuario coloca los parámetrosnecesarios en los lugares previamente definidos, y seguidamente ejecuta una llamada alsupervisor (se cambia de modo usuario a modo supervisor), transfiriendo el control al S. O. queexamina dichos parámetros y determina el procedimiento que debe invocar. Cuando secomplete la llamada devuelve el control al programa de usuario. S. O. con una pequeñaestructura de niveles:
  2. 2. Esta organización sugiere una organización básica 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 seencarga de ella. Los procedimientos de utilidad hacen cosas necesarias para variosprocedimientos de servicio, como por ejemplo, buscar los datos del programa del usuario.  Sistemas en estratos.Se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otroque tiene menor jerarquía que él.Ejemplos:A. THE (Dijkstra, 1968): sistema de procesamiento por lotes.B. MULTICS: anillos concéntricos alrededor del hardware, donde los internos son másprivilegiados que los externos.Operador de THEProgramas de usuarioAdministración de E/SComunicación entre operador y procesosAdministración de memoria y tamborDistribución del procesador y multiprogramación  Máquinas virtuales.Crea ilusiones (máquinas virtuales) de la máquina real, permitiendo que en cada máquina virtualse ejecute un S. O. distinto.El programa de control es el que se ejecuta directamente sobre el propio hardware y ofrece alnivel inmediatamente superior varias máquinas virtuales.
  3. 3. Tipos de máquinas virtualesFuncionamiento de la máquina virtual de Java, una de las máquinas virtuales de proceso máspopulares.Funcionamiento de VMWare, una de las máquinas virtuales de sistema más populares.Las máquinas virtuales se pueden clasificar en dos grandes categorías según su funcionalidad ysu grado de equivalencia a una verdadera máquina. Máquinas virtuales de sistemaLas máquinas 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 unaejecutando su propio sistema operativo. A la capa de software que permite la virtualización sela llama monitor de máquina virtual o "hypervisor". Un monitor de máquina virtual puedeejecutarse o bien directamente sobre el hardware o bien sobre un sistema operativo ("hostoperatingsystem").
  4. 4. Máquinas virtuales de procesoUna máquina virtual de proceso, a veces llamada "máquina virtual de aplicación", se ejecutacomo un proceso normal dentro de un sistema operativo y soporta un solo proceso. La máquinase inicia automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene paracuando éste finaliza. Su objetivo es el de proporcionar un entorno de ejecución independientede la plataforma de hardware y del sistema operativo, que oculte los detalles de laplataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobrecualquier plataforma.El ejemplo más conocido actualmente de este tipo de máquina virtual es la máquina virtual deJava.  Estructura JerárquicaA medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron lossistemas. Se hizo necesaria una mayor organización del software, del sistema operativo, dondeuna parte del sistema contenía subpartes y esto organizado en forma de niveles. Ejemplos:Multics y Unix.  Modelo Cliente-Servidor.Descripción: su objetivo es minimizar el kernel desplazando el código de todos sus servicios aestratos lo más superiores posibles. Para ello, la mayoría de sus funciones se implementan comoprocesos de usuario, denominados procesos servidores, de forma que cuando un proceso deusuario llamado proceso cliente, necesita un servicio del S.O. lo que hace es enviar un mensajeal proceso servidor correspondiente, que realiza el trabajo y devuelve la respuesta. El kernel loúnico que hace es implementar la comunicación entre clientes y servidores y entre servidores yel hardware.El punto de vista usual es el de implantar la mayoría de las funciones del sistema operativo enlos procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de ciertoarchivo, un proceso del usuario (denominado proceso cliente) envía la solicitud a un procesoservidor, que realiza entonces el trabajo y regresa la respuesta.Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si elmensaje se maneja en forma local, en su máquina, o si se envía por medio de una red a unservidor en una máquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos:se envió una solicitud y se recibió una respuesta.
  5. 5.  Estructura orientada al objeto.Descripción: se basan en una colección de objetos, donde las funciones del sistema son un tipode objeto (ficheros, dispositivos, etc.). La interacción entre dichos objetos viene determinadapor las capacidades que cada uno tenga para actuar con el otro.El kernel es el responsable del mantenimiento de las definiciones de los tipos de objetossoportados y del control de los privilegios de acceso a los mismos. Cuando un programa deseerealizar una operación sobre un objeto determinado, deberá ejecutar una llamada al sistema,indicando qué derechos tiene para poder utilizarlo y qué operación intenta llevar a cabo. Comoresultado de dicha llamada, el sistema validará la petición y, si puede ser aceptada, permitirá larealización de dicha operación.
  6. 6. Núcleo del sistema OperativoEn informática, un núcleo o kernel (de la raíz germánicaKern) es un software que constituye laparte más importante del sistema operativo.1 Es el principal responsable de facilitar a losdistintos programas acceso seguro al hardware de la computadora o en forma más básica, es elencargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchosprogramas y el acceso al hardware es limitado, también se encarga de decidir qué programapodrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce comomultiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que losnúcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder lacomplejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo quefacilita su uso al programador.Funciones generalmente ejercidas por un núcleoLos núcleos tienen como funciones básicas garantizar la carga y la ejecución de los procesos,las entradas/salidas y proponer una interfaz entre el espacio núcleo y los programas delespacio del usuario.Aparte de las funcionalidades básicas, 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 proporcionadas por un núcleo de sistema de explotación. Puedenestablecerse estas funciones del sistema de explotación tanto en el espacio usuario como en elpropio núcleo. Su implantación en el núcleo se hace en el único objetivo de mejorar losresultados. En efecto, según la concepción del núcleo, la misma función llamada desde elespacio usuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si estallamada de función es frecuente, puede resultar útil integrar estas funciones al núcleo paramejorar los resultados.Ejemplo:Núcleo Linux es un núcleo de sistema operativo libre tipo Unix. Es uno de los principalesejemplos de software libre. Linux está licenciado bajo la GPL v2 y está desarrollado porcolaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux KernelMailing List.Unix es un programa escrito casi en su totalidad en lenguaje C, con excepción de una partedel manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el queopera. Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posibleatender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al procesadorentre todos ellos, e intentando mantener en grado óptimo la atención individual.El núcleo opera como asignador de recursos para cualquier proceso que necesite hacer uso delas facilidades de cómputo.
  7. 7. Creación de procesos, asignación de tiempos de atención y sincronización. Asignación de la atención del procesador a los procesos que lo requieren. Administración de espacio en el sistema de archivos, que incluye: acceso, protección y administración de usuarios; comunicación entre usuarios y entre procesos, y manipulación de E/S y administración de periféricos. Supervisión de la transmisión de datos entre la memoria principal y los dispositivos periféricos.Reside siempre en la memoria principal y tiene el control sobre la computadora, por lo queningún otro proceso puede interrumpirlo; sólo pueden llamarlo para que proporcione algúnservicio de los ya mencionados. Un proceso llama al núcleo mediante módulos especialesconocidos como llamadas al sistema.Tipos de núcleo Hay cuatro grandes tipos de núcleos: Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas. Los micronúcleos (en inglés microkernel) proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.4 Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente. Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.MicronúcleoEl objetivo principal es la separación de la implementación de los servicios básicos y de lapolítica de funcionamiento del sistema. Estos servidores de usuario, utilizados para gestionarlas partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseño delnúcleo. Si falla uno de estos servidores, no se colgará el sistema entero, y se podrá reiniciareste módulo independientemente del resto.Algunos ejemplos de micronúcleos: AIX La familia de micronúcleos L4 El micronúcleoMach, usado en GNUHurd y en Mac OS X BeOS Minix MorphOS QNX RadiOS Hurd
  8. 8. Núcleos híbridos (micronúcleos modificados)Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de código «noesencial» en espacio de núcleo para que éste se ejecute más rápido de lo que lo haría siestuviera en espacio de usuario. Éste fue un compromiso que muchos desarrolladores de losprimeros sistemas operativos con arquitectura basada en micronúcleo adoptaron antes que sedemostrara que los micronúcleos pueden tener muy buen rendimiento. La mayoría de sistemasoperativos modernos pertenecen a esta categoría, siendo el más popular Microsoft Windows.XNU, el núcleo de Mac OS X, también es un micronúcleo modificado, debido a la inclusión decódigo del núcleo de FreeBSD en el núcleo basado en Mach. DragonFlyBSD es el primersistema BSD que adopta una arquitectura de núcleo híbrido sin basarse en Mach.Algunos ejemplos de núcleos híbridos: MicrosoftWindows NT, usado en todos los sistemas que usan el código base de Windows NT XNU (usado en Mac OS X) DragonFlyBSD ReactOSExonúcleosEsquema básico de la interacción entre un Exonúcleo(Exokernel) con el Software a través de bibliotecas.Los exonúcleos, también conocidos como sistemas operativosverticalmente estructurados, representan una aproximaciónradicalmente nueva al diseño de sistemas operativos.La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas alrendimiento del hardware. Los exonúcleos son extremadamente pequeños, ya que limitanexpresamente su funcionalidad a la protección y el multiplexado de los recursos. Se llaman asíporque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, enbibliotecas dinámicas.Los diseños de núcleos clásicos (tanto el monolítico como el micronúcleo) abstraen el hardware,escondiendo los recursos bajo una capa de abstracción del hardware, o detrás de loscontroladores de dispositivo. En los sistemas clásicos, si se asigna memoria física, nadie puedeestar seguro de cuál es su localización real.La finalidad de un exonúcleo es permitir a una aplicación que solicite una región específica de lamemoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidosestán disponibles, y que el programa tiene derecho a acceder a ellos.
  9. 9. Procesos del Sistema OperativoUn proceso es un programa en ejecución. Los procesos son gestionados por el sistemaoperativo y están formados por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecución en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra información que permite al sistema operativo su planificación.Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un procesoconsta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y lainformación de planificación. Cada hilo consta de instrucciones y estado de ejecución.Los procesos son creados y destruidos por el sistema operativo, así como también este se debehacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. Elmecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevosprocesos pueden ser independientes y no compartir el espacio de memoria con el proceso quelos ha creado o ser creados en el mismo espacio de memoria.En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferenciaestriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hiloscomparten toda la memoria reservada para el proceso.Estados en los que puede estar un proceso. Listo. Tiene todo lo necesario para ejecutarse excepto el procesador. Suspendido. No está en memoria principal. Bloqueado. Está esperando un evento. Bloqueado y suspendido. Listo y suspendido.El proceso se puede definir como un programa de gestión por el sistema operativo. Durante suelección el proceso va modificando en ejecución y, de una forma un poco más precisa, como launidad de procesamiento los registro del modelo de programación de la computadora, deacuerdo a las intrusiones de maquina involucradas.
  10. 10. Estados de un proceso.-Un proceso puede variar entre 5 distintos estados:New: cuando el proceso está siendo creado.Running: cuando el proceso se está ejecutando.Waiting: cuando el proceso está esperando que se cumpla algún otro evento.Ready: cuando el proceso esta pronto para ejecutar, esperando por la CPU.Terminated: cuando el proceso está terminado.Internamente los procesos se almacenan en una lista encadenada en donde cada nudo almacenala información anterior.MétodoDos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse alos otros hasta que reciban una señal para continuar. Se usa una variable de tipo semáforo para sincronizar los procesos. Si un proceso está esperando una señal, se suspende hasta que la señal se envíe. Se mantiene una cola de procesos en espera en el semáforo. La forma de elegir los procesos de la cola en espera es mediante una política *first in first out. (en español "primero en entrar, primero en salir") *Es un concepto utilizado en estructuras de datos, contabilidad de costes y teoría de colas. Por ejemplo: Guarda analogía con las personas que esperan en una cola y van siendo atendidas en el orden en que llegaron, es decir, que la primera persona que entra es la primera persona que sale.La sincronización explícita entre procesos es un caso particular del estado "bloqueado". Eneste caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida,sino una señal generada a propósito por el programador desde otro proceso.
  11. 11. Información del estado+ Se encarga de almacenar el contenido de los registros del procesador cuando el proceso, noesta ejecutándose.+ Este proceso normalmente esta supervisado y dirigido por el hardware de la máquina.Información del control+ Es la información que se utiliza para obtener datos relacionados con el control del proceso.Los privilegios del proceso+ Debido a que el microprocesador, no dispone de memoria ilimitada para la ejecución de losprocesos, a estos se les aplica un ‘sistema de privilegios de proceso’.+ De esta forma un proceso con ‘mayor privilegio de proceso’ puede interrumpir uno de menor‘privilegio’, pero nunca al revés.

×