SlideShare una empresa de Scribd logo
1 de 11
Estructura del sistema operativo
Según [Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistema
operativo, 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 sistemas
operativos 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 escribe
como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada
vez que así lo requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una
interfaz bien definida en términos de parámetros y resultados y cada uno de ellos es libre de
llamar 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 todos
los demás.

Proceso para requerir un servicio del S.O.: el programa de usuario coloca los parámetros
necesarios en los lugares previamente definidos, y seguidamente ejecuta una llamada al
supervisor (se cambia de modo usuario a modo supervisor), transfiriendo el control al S. O. que
examina dichos parámetros y determina el procedimiento que debe invocar. Cuando se
complete la llamada devuelve el control al programa de usuario. S. O. con una pequeña
estructura de niveles:
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 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.




    Sistemas en estratos.

Se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro
que 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ás
privilegiados que los externos.

Operador de THE
Programas de usuario
Administración de E/S
Comunicación entre operador y procesos
Administración de memoria y tambor
Distribució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 virtual
se ejecute un S. O. distinto.
El programa de control es el que se ejecuta directamente sobre el propio hardware y ofrece al
nivel inmediatamente superior varias máquinas virtuales.
Tipos de máquinas virtuales




Funcionamiento de la máquina virtual de Java, una de las máquinas virtuales de proceso más
populares.




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 y
su grado de equivalencia a una verdadera máquina.

         Máquinas virtuales de sistema

Las 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 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". Un monitor de máquina virtual puede
ejecutarse o bien directamente sobre el hardware o bien sobre un sistema operativo ("host
operatingsystem").
Máquinas virtuales de proceso

Una máquina 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 cuando se lanza el proceso que se desea ejecutar y se detiene para
cuando éste finaliza. Su objetivo es el de proporcionar un entorno de ejecución independiente
de la plataforma de hardware y del sistema operativo, que oculte los detalles de la
plataforma subyacente y permita que un programa se 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.


    Estructura Jerárquica

A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los
sistemas. Se hizo necesaria una mayor organización del software, del sistema operativo, donde
una 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 a
estratos lo más superiores posibles. Para ello, la mayoría de sus funciones se implementan como
procesos de usuario, denominados procesos servidores, de forma que cuando un proceso de
usuario llamado proceso cliente, necesita un servicio del S.O. lo que hace es enviar un mensaje
al 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 y
el hardware.

El punto de vista usual es el de implantar la mayoría de las funciones del sistema operativo en
los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto
archivo, un proceso del usuario (denominado proceso cliente) envía la solicitud a un proceso
servidor, 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 el
mensaje se maneja en forma local, en su máquina, o si se envía por medio de una red a un
servidor 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.
 Estructura orientada al objeto.
Descripción: se basan en una colección de objetos, donde las funciones del sistema son un tipo
de objeto (ficheros, dispositivos, etc.). La interacción entre dichos objetos viene determinada
por 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 objetos
soportados y del control de los privilegios de acceso a los mismos. Cuando un programa desee
realizar 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. Como
resultado de dicha llamada, el sistema validará la petición y, si puede ser aceptada, permitirá la
realización de dicha operación.
Núcleo del sistema Operativo

En informática, un núcleo o kernel (de la raíz germánicaKern) es un software que constituye la
parte más 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 más básica, es el
encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos
programas y el acceso al hardware es limitado, también se encarga de decidir qué programa
podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como
multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los
núcleos 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.

Funciones generalmente ejercidas por un núcleo

Los 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 del
espacio 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. Pueden
establecerse estas funciones del sistema de explotación tanto en el espacio usuario como en el
propio núcleo. Su implantación en el núcleo se hace en el único objetivo de mejorar los
resultados. En efecto, según la concepción del núcleo, la misma función llamada desde el
espacio usuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si esta
llamada de función es frecuente, puede resultar útil integrar estas funciones al núcleo para
mejorar los resultados.

Ejemplo:

Núcleo   Linux es un núcleo de sistema operativo libre tipo Unix. Es uno de los principales
ejemplos de software libre. Linux está licenciado bajo la GPL v2 y está desarrollado por
colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel
Mailing List.

Unix es un programa escrito casi en su totalidad en lenguaje C, con excepción de una parte
del manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el que
opera. Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posible
atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al procesador
entre 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 de
las facilidades de cómputo.
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 que
ningún otro proceso puede interrumpirlo; sólo pueden llamarlo para que proporcione algún
servicio de los ya mencionados. Un proceso llama al núcleo mediante módulos especiales
conocidos 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úcleo
El objetivo principal es la separación de la implementación de los servicios básicos y de la
política de funcionamiento del sistema. Estos servidores de usuario, utilizados para gestionar
las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseño del
núcleo. Si falla uno de estos servidores, no se colgará el sistema entero, y se podrá reiniciar
este 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
Núcleos híbridos (micronúcleos modificados)

Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de código «no
esencial» en espacio de núcleo para que éste se ejecute más rápido de lo que lo haría si
estuviera en espacio de usuario. Éste fue un compromiso que muchos desarrolladores de los
primeros sistemas operativos con arquitectura basada en micronúcleo adoptaron antes que se
demostrara que los micronúcleos pueden tener muy buen rendimiento. La mayoría de sistemas
operativos 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 de
código del núcleo de FreeBSD en el núcleo basado en Mach. DragonFlyBSD es el primer
sistema 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
       ReactOS


Exonúcleos

Esquema 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 operativos
verticalmente estructurados, representan una aproximación
radicalmente nueva al diseño de sistemas operativos.

La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al
rendimiento del hardware. Los exonúcleos son extremadamente pequeños, ya que limitan
expresamente 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, en
bibliotecas 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 los
controladores de dispositivo. En los sistemas clásicos, si se asigna memoria física, nadie puede
estar 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 la
memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos
están disponibles, y que el programa tiene derecho a acceder a ellos.
Procesos del Sistema Operativo

Un proceso es un programa en ejecución. Los procesos son gestionados por el sistema
operativo 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 proceso
consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la
informació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 debe
hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El
mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos
procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que
los ha creado o ser creados en el mismo espacio de memoria.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia
estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos
comparten 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 su
elección el proceso va modificando en ejecución y, de una forma un poco más precisa, como la
unidad de procesamiento los registro del modelo de programación de la computadora, de
acuerdo a las intrusiones de maquina involucradas.
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 almacena
la información anterior.


Método

Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a
los 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". En
este 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.
Información del estado

+ Se encarga de almacenar el contenido de los registros del procesador cuando el proceso, no
esta 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 los
procesos, 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.

Más contenido relacionado

La actualidad más candente

Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMiguel Rodríguez
 
Modelos y capas de la ingenieria de software
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de softwarejhonatanalex
 
Elementos y clasificación de un sistema de cómputo (software) (hardware)
Elementos y clasificación de un sistema de cómputo (software) (hardware)Elementos y clasificación de un sistema de cómputo (software) (hardware)
Elementos y clasificación de un sistema de cómputo (software) (hardware)Guadalupe Victoria
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Instalacion de sistemas operativos
Instalacion de sistemas operativosInstalacion de sistemas operativos
Instalacion de sistemas operativosAndres Ldño
 
Tema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
Tema N° 6 Técnicas para el Levantamiento y Recolección de RequisitosTema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
Tema N° 6 Técnicas para el Levantamiento y Recolección de RequisitosSaraEAlcntaraR
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Análisis de requerimientos
Análisis de requerimientosAnálisis de requerimientos
Análisis de requerimientosGustavo Araque
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de ComputadoresAlejandro_Eliecer
 
estructura de sistemas operativos
estructura de sistemas operativosestructura de sistemas operativos
estructura de sistemas operativosernesto perez
 

La actualidad más candente (20)

Hilo de ejecución
Hilo de ejecuciónHilo de ejecución
Hilo de ejecución
 
Valores y prácticas XP
Valores y prácticas XPValores y prácticas XP
Valores y prácticas XP
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Pruebas Unitarias
Pruebas Unitarias Pruebas Unitarias
Pruebas Unitarias
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y Emergentes
 
Fundamentos de redes
Fundamentos de redesFundamentos de redes
Fundamentos de redes
 
Modelos y capas de la ingenieria de software
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de software
 
Caracteristicas de Ruby
Caracteristicas de RubyCaracteristicas de Ruby
Caracteristicas de Ruby
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Elementos y clasificación de un sistema de cómputo (software) (hardware)
Elementos y clasificación de un sistema de cómputo (software) (hardware)Elementos y clasificación de un sistema de cómputo (software) (hardware)
Elementos y clasificación de un sistema de cómputo (software) (hardware)
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
Instalacion de sistemas operativos
Instalacion de sistemas operativosInstalacion de sistemas operativos
Instalacion de sistemas operativos
 
Tema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
Tema N° 6 Técnicas para el Levantamiento y Recolección de RequisitosTema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
Tema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Análisis de requerimientos
Análisis de requerimientosAnálisis de requerimientos
Análisis de requerimientos
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
estructura de sistemas operativos
estructura de sistemas operativosestructura de sistemas operativos
estructura de sistemas operativos
 

Destacado

Estructura de los sistemas operativos
Estructura de los sistemas operativosEstructura de los sistemas operativos
Estructura de los sistemas operativosANDREA
 
3 estructura de un sistema operativo
3 estructura de un sistema operativo3 estructura de un sistema operativo
3 estructura de un sistema operativoplata17
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoamayalazaro
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativoEzmee XD
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativoAlberto Antonio
 
Que es correo directo
Que es correo directoQue es correo directo
Que es correo directoAndres Felipe
 
software libre y software propietario
software libre y software propietariosoftware libre y software propietario
software libre y software propietariotelesup
 
Estructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+xEstructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+xSophia Galarraga
 
Estructura del sistema operativo linux
Estructura del sistema operativo linuxEstructura del sistema operativo linux
Estructura del sistema operativo linuxMatildeMontoyaLafragua
 
Estructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoEstructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoMarvin Romero
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructuraProf. Javier Troya
 

Destacado (12)

Estructura de los sistemas operativos
Estructura de los sistemas operativosEstructura de los sistemas operativos
Estructura de los sistemas operativos
 
3 estructura de un sistema operativo
3 estructura de un sistema operativo3 estructura de un sistema operativo
3 estructura de un sistema operativo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
tT31so cristinagondan
tT31so cristinagondantT31so cristinagondan
tT31so cristinagondan
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativo
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativo
 
Que es correo directo
Que es correo directoQue es correo directo
Que es correo directo
 
software libre y software propietario
software libre y software propietariosoftware libre y software propietario
software libre y software propietario
 
Estructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+xEstructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+x
 
Estructura del sistema operativo linux
Estructura del sistema operativo linuxEstructura del sistema operativo linux
Estructura del sistema operativo linux
 
Estructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoEstructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativo
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructura
 

Similar a Estructura del sistema operativo

TRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOSTRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOScrisstthi
 
LAURITA MARITZA VARGAS VILLACRES_ESTRUCTURA MODULAR
LAURITA MARITZA VARGAS VILLACRES_ESTRUCTURA MODULARLAURITA MARITZA VARGAS VILLACRES_ESTRUCTURA MODULAR
LAURITA MARITZA VARGAS VILLACRES_ESTRUCTURA MODULARLaurita Vargas
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosNoeljg69
 
Unidad 1 Sistemas Operativos
Unidad 1 Sistemas OperativosUnidad 1 Sistemas Operativos
Unidad 1 Sistemas OperativosNoeljg69
 
Trabajo so
Trabajo soTrabajo so
Trabajo soNoeljg69
 
Gnu linux programacion-de-sistemas
Gnu linux programacion-de-sistemasGnu linux programacion-de-sistemas
Gnu linux programacion-de-sistemasDiego Caceres
 
Que son los sistemas operativos
Que son los sistemas operativosQue son los sistemas operativos
Que son los sistemas operativoschicaruda
 
Configuacion de estaciones de trabajo
Configuacion de estaciones de trabajoConfiguacion de estaciones de trabajo
Configuacion de estaciones de trabajoHeder Ithamar Romero
 
2.estructuras de sistemas operativos (1)
2.estructuras de sistemas operativos (1)2.estructuras de sistemas operativos (1)
2.estructuras de sistemas operativos (1)ninguna
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWAREJenni2011
 
1.- Introduccion a los SO 1ra Parte.pdf
1.- Introduccion a los SO 1ra Parte.pdf1.- Introduccion a los SO 1ra Parte.pdf
1.- Introduccion a los SO 1ra Parte.pdfssuser6353bc
 

Similar a Estructura del sistema operativo (20)

TRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOSTRABAJO SISTEMAS OPERATIVOS
TRABAJO SISTEMAS OPERATIVOS
 
Estructura modular
Estructura modularEstructura modular
Estructura modular
 
Estructura modular
Estructura modularEstructura modular
Estructura modular
 
LAURITA MARITZA VARGAS VILLACRES_ESTRUCTURA MODULAR
LAURITA MARITZA VARGAS VILLACRES_ESTRUCTURA MODULARLAURITA MARITZA VARGAS VILLACRES_ESTRUCTURA MODULAR
LAURITA MARITZA VARGAS VILLACRES_ESTRUCTURA MODULAR
 
Estructura so
Estructura soEstructura so
Estructura so
 
que es un sistema operativo
 que es un sistema operativo que es un sistema operativo
que es un sistema operativo
 
Tiposso
TipossoTiposso
Tiposso
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Unidad 1 Sistemas Operativos
Unidad 1 Sistemas OperativosUnidad 1 Sistemas Operativos
Unidad 1 Sistemas Operativos
 
Trabajo so
Trabajo soTrabajo so
Trabajo so
 
Unidad1
Unidad1Unidad1
Unidad1
 
Gnu linux programacion-de-sistemas
Gnu linux programacion-de-sistemasGnu linux programacion-de-sistemas
Gnu linux programacion-de-sistemas
 
Que son los sistemas operativos
Que son los sistemas operativosQue son los sistemas operativos
Que son los sistemas operativos
 
Programaciongnulinux
ProgramaciongnulinuxProgramaciongnulinux
Programaciongnulinux
 
Luis alfredo
Luis alfredoLuis alfredo
Luis alfredo
 
mas
masmas
mas
 
Configuacion de estaciones de trabajo
Configuacion de estaciones de trabajoConfiguacion de estaciones de trabajo
Configuacion de estaciones de trabajo
 
2.estructuras de sistemas operativos (1)
2.estructuras de sistemas operativos (1)2.estructuras de sistemas operativos (1)
2.estructuras de sistemas operativos (1)
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWARE
 
1.- Introduccion a los SO 1ra Parte.pdf
1.- Introduccion a los SO 1ra Parte.pdf1.- Introduccion a los SO 1ra Parte.pdf
1.- Introduccion a los SO 1ra Parte.pdf
 

Más de Emily_Fdez

Panel de control
Panel de controlPanel de control
Panel de controlEmily_Fdez
 
Panel de control
Panel de controlPanel de control
Panel de controlEmily_Fdez
 
Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativoEmily_Fdez
 
Sistemas operativos por servicio
Sistemas operativos por servicioSistemas operativos por servicio
Sistemas operativos por servicioEmily_Fdez
 
Unidad de control
Unidad de controlUnidad de control
Unidad de controlEmily_Fdez
 
Funciones de sql server
Funciones de sql serverFunciones de sql server
Funciones de sql serverEmily_Fdez
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupoEmily_Fdez
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupoEmily_Fdez
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupoEmily_Fdez
 

Más de Emily_Fdez (16)

Consultas
ConsultasConsultas
Consultas
 
Consultas
ConsultasConsultas
Consultas
 
Practica1
Practica1Practica1
Practica1
 
Practica1
Practica1Practica1
Practica1
 
Sql
SqlSql
Sql
 
Linux
LinuxLinux
Linux
 
Panel de control
Panel de controlPanel de control
Panel de control
 
Panel de control
Panel de controlPanel de control
Panel de control
 
Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativo
 
Sistemas operativos por servicio
Sistemas operativos por servicioSistemas operativos por servicio
Sistemas operativos por servicio
 
Unidad de control
Unidad de controlUnidad de control
Unidad de control
 
Funciones de sql server
Funciones de sql serverFunciones de sql server
Funciones de sql server
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupo
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupo
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupo
 
Ddl
DdlDdl
Ddl
 

Estructura del sistema operativo

  • 1. Estructura del sistema operativo Según [Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistema operativo, 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 sistemas operativos 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 escribe como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados y cada uno de ellos es libre de llamar 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 todos los demás. Proceso para requerir un servicio del S.O.: el programa de usuario coloca los parámetros necesarios en los lugares previamente definidos, y seguidamente ejecuta una llamada al supervisor (se cambia de modo usuario a modo supervisor), transfiriendo el control al S. O. que examina dichos parámetros y determina el procedimiento que debe invocar. Cuando se complete la llamada devuelve el control al programa de usuario. S. O. con una pequeña estructura de niveles:
  • 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 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.  Sistemas en estratos. Se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que 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ás privilegiados que los externos. Operador de THE Programas de usuario Administración de E/S Comunicación entre operador y procesos Administración de memoria y tambor Distribució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 virtual se ejecute un S. O. distinto. El programa de control es el que se ejecuta directamente sobre el propio hardware y ofrece al nivel inmediatamente superior varias máquinas virtuales.
  • 3. Tipos de máquinas virtuales Funcionamiento de la máquina virtual de Java, una de las máquinas virtuales de proceso más populares. 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 y su grado de equivalencia a una verdadera máquina. Máquinas virtuales de sistema Las 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 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". Un monitor de máquina virtual puede ejecutarse o bien directamente sobre el hardware o bien sobre un sistema operativo ("host operatingsystem").
  • 4. Máquinas virtuales de proceso Una máquina 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 cuando se lanza el proceso que se desea ejecutar y se detiene para cuando éste finaliza. Su objetivo es el de proporcionar un entorno de ejecución independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se 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.  Estructura Jerárquica A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas. Se hizo necesaria una mayor organización del software, del sistema operativo, donde una 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 a estratos lo más superiores posibles. Para ello, la mayoría de sus funciones se implementan como procesos de usuario, denominados procesos servidores, de forma que cuando un proceso de usuario llamado proceso cliente, necesita un servicio del S.O. lo que hace es enviar un mensaje al 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 y el hardware. El punto de vista usual es el de implantar la mayoría de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del usuario (denominado proceso cliente) envía la solicitud a un proceso servidor, 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 el mensaje se maneja en forma local, en su máquina, o si se envía por medio de una red a un servidor 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.  Estructura orientada al objeto. Descripción: se basan en una colección de objetos, donde las funciones del sistema son un tipo de objeto (ficheros, dispositivos, etc.). La interacción entre dichos objetos viene determinada por 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 objetos soportados y del control de los privilegios de acceso a los mismos. Cuando un programa desee realizar 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. Como resultado de dicha llamada, el sistema validará la petición y, si puede ser aceptada, permitirá la realización de dicha operación.
  • 6. Núcleo del sistema Operativo En informática, un núcleo o kernel (de la raíz germánicaKern) es un software que constituye la parte más 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 más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos 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. Funciones generalmente ejercidas por un núcleo Los 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 del espacio 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. Pueden establecerse estas funciones del sistema de explotación tanto en el espacio usuario como en el propio núcleo. Su implantación en el núcleo se hace en el único objetivo de mejorar los resultados. En efecto, según la concepción del núcleo, la misma función llamada desde el espacio usuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si esta llamada de función es frecuente, puede resultar útil integrar estas funciones al núcleo para mejorar los resultados. Ejemplo: Núcleo Linux es un núcleo de sistema operativo libre tipo Unix. Es uno de los principales ejemplos de software libre. Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel Mailing List. Unix es un programa escrito casi en su totalidad en lenguaje C, con excepción de una parte del manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el que opera. Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al procesador entre 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 de las facilidades de cómputo.
  • 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 que ningún otro proceso puede interrumpirlo; sólo pueden llamarlo para que proporcione algún servicio de los ya mencionados. Un proceso llama al núcleo mediante módulos especiales conocidos 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úcleo El objetivo principal es la separación de la implementación de los servicios básicos y de la política de funcionamiento del sistema. Estos servidores de usuario, utilizados para gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseño del núcleo. Si falla uno de estos servidores, no se colgará el sistema entero, y se podrá reiniciar este 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. Núcleos híbridos (micronúcleos modificados) Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de código «no esencial» en espacio de núcleo para que éste se ejecute más rápido de lo que lo haría si estuviera en espacio de usuario. Éste fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en micronúcleo adoptaron antes que se demostrara que los micronúcleos pueden tener muy buen rendimiento. La mayoría de sistemas operativos 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 de código del núcleo de FreeBSD en el núcleo basado en Mach. DragonFlyBSD es el primer sistema 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 ReactOS Exonúcleos Esquema 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 operativos verticalmente estructurados, representan una aproximación radicalmente nueva al diseño de sistemas operativos. La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware. Los exonúcleos son extremadamente pequeños, ya que limitan expresamente 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, en bibliotecas 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 los controladores de dispositivo. En los sistemas clásicos, si se asigna memoria física, nadie puede estar 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 la memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos están disponibles, y que el programa tiene derecho a acceder a ellos.
  • 9. Procesos del Sistema Operativo Un proceso es un programa en ejecución. Los procesos son gestionados por el sistema operativo 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 proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la informació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 debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten 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 su elección el proceso va modificando en ejecución y, de una forma un poco más precisa, como la unidad de procesamiento los registro del modelo de programación de la computadora, de acuerdo a las intrusiones de maquina involucradas.
  • 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 almacena la información anterior. Método Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los 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". En este 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. Información del estado + Se encarga de almacenar el contenido de los registros del procesador cuando el proceso, no esta 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 los procesos, 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.