miércoles, 30 de abril de 2014

SISTEMA OPERATIVO

Un sistema operativo (cuyo acrónimo es SO) es un conjunto de programas destinados a permitir la comunicación del usuario con un computador y gestionar sus recursos de una forma eficaz. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos.


Un sistema operativo  se puede encontrar normalmente en la mayoría de los aparatos electrónicos que podamos utilizar sin necesidad de estar conectados a una computadora y que utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la maquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, auto radios... y computadoras).












A parte de que es un. Conjunto de programas que se integran con el hardware para facilitar al usuario, el aprovechamiento de los recursos disponibles. Algunos de sus objetivos principales son:











  • Provee de un ambiente conveniente de trabajo.










  • Hace uso eficiente del Hardware.










  • Provee de una adecuada distribución de los recursos.










Para un Sistema Operativo real deberá satisfacer las siguientes funciones:











  • Gobierna el Sistema.










  • Asigna los recursos.










  • Administra y controlar la ejecución de los programas.










Un sistema de computo en muchos casos cuenta con demasiados recursos para ser utilizados por un solo usuario, es en estos casos cuando se puede dar servicio a varios procesos.













Sistema Operativo:


  • Llamadas al Sistema
El Sistema Operativo en conjunto con el Hardware aparecen al usuario como un solo dispositivo con un conjunto de instrucciones más flexibles y variadas a las que se conoce como Llamadas al Sistema (System Callings).

  • Intérprete de Comandos
También conocido por su nombre en inglés, Shell, es un programa que interpreta las órdenes del usuario y las convierte en Llamadas al Sistema.

  • Núcleo (o Kernel)

Es la parte del Sistema Operativo que se encarga de sincronizar la activación de los procesos y definir prioridades.

  • Programas del Sistema
Son programas de servicio que debe ser solicitados explícitamente por los usuarios. Como ejemplos de estos tenemos:












  1. Compiladores
    Son programas que traducen Programas Fuente en programas Objeto.











  2. Ensambladores
    Traducen programas escritos con mnemónicos a lenguaje de máquina.











  3. Editores
    Son programas que permiten escribir textos y guardarlos en memoria secundaria.











  4. Utilerías de Archivos
    Programas para dar mantenimiento a los archivos.











  5. Bibliotecas
    Programas que contienen rutinas para realizar funciones frecuentemente requeridas. Estas funciones pueden ser ligadas a los programas escritos por el usuario.

ESTRUCTURA DEL SISTEMA OPERATIVO

En esta unidad examinaremos cuatro estructuras distintas que ya han sido probadas, con el fin de tener una idea más extensa de cómo esta estructurado el sistema operativo. Veremos breve mente algunas estructuras de diseños de sistemas operativos. 





Analizando la historia de los Sistemas Operativos notamos que se puede considerar que éstos surgen desde finales de los 50's con una arquitectura bastante obsoleta comparada con la de la actualidad.
Para poder construir un Sistema Operativo se deben tener en cuenta dos tipos de requisitos, los cuales son:
  • Requisitos de usuario: Un sistema fácil de usar y de aprender, seguro, rápido y adecuado para el uso que se le necesita dar.

  • Requisitos del software: Considera el continuo mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.

El objetivo de la estructuración es buscar una organización interna que facilite la comprensión, incremente la portabilidad, extensión y favorecer el mantenimiento de los Sistemas Operativos.






domingo, 27 de abril de 2014

ARQUITECTURA MÁS CONOCIDO

Definir una arquitectura para el Sistema Operativo; esta estará influida en alguna medida por el hardware que manejará. Sin embargo es posible identificar algunos componentes comunes como el núcleo y las llamadas al sistema. El núcleo contiene, básicamente, todo el código e información necesaria para la gestión de procesos y memoria y en la mayoría de los sistemas operativos también se incluye buena parte de la gestión de entrada/salida. Según la arquitectura que tengamos así es como el usuario se comunica con el sistema operativo y el sistema operativo o el núcleo con los componentes del hardware, por tanto cada sistema operativo tiene una arquitectura específica en dependencia de las necesidades de este.











Sistemas monolíticos

Archivo:Monolitico.gif
En los sistemas monolíticos, todos los componentes de gestión y programas del sistema están escritos en un solo código o espacio lógico. Pueden decirse que el núcleo es el Sistema Operativo. La división más evidente que puede hacerse es entre procesos de aplicacion o usuario y procesos del sistema.

Sistemas por capas o niveles de privilegioLos sistemas monolíticos son los más comunes puesto que su implementación y diseño son los menos complejos. 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) si ocurre algún fallo del hardware o existe algún error sin depurara en el código del sistema. GNU/Linux es monolítico, aunque con éste se introdujo una variante interesante. A pesar de ser monolítico, es modelar, 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 modulo 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 direcciones 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.
En la medida que el hardware se desarrolló para incorporar mecanismos de protección para la gestión de procesos, memoria y entrada/salida, los Sistemas Operativos se adaptaron a este diseño. El objetivo de la arquitectura por capas o niveles de privilegio, es separar la acción del código de los procesos del sistema, del núcleo y de los procesos de usuario. Idealmente se separa en el nivel de máximo privilegios o protección, al código base del núcleo.
Archivo:Capas.png

Sistemas de MicronúcleoEn el siguiente nivel de privilegios se ubica a los procesos del sistema para la gestión de procesos y memoria; en otro nivel a los procesos de gestión de entrada salida incluyendo los drivers y en el nivel de menos privilegio, se ejecutan el resto de los procesos de aplicación. Esto por supuesto, no siempre es así y pueden existir muchísimas variantes en la implementación. Una práctica común es ubicar los procesos y componentes de entrada/salida en los dos primeros niveles, para acelerar su ejecución. Lo relevante en esta arquitectura es que se necesitan realizar restricciones en cuanto a las llamadas al sistema que puedan ejecutar los procesos de determinados niveles. Por ejemplo, se ha de evitar que un proceso pueda efectuar una llamada al sistema que requiera la atención de un componente de menor privilegio o tal vez evitar que los programas de aplicación hagan llamadas directamente sobre el núcleo. Así puede obligarse a utilizar como mediadores a otros niveles.

La posibilidad de separar funcionalmente los programas del sistema de los programas de aplicación y asegurar protección adicional con el hardware, origina otra arquitectura, la de micronúcleo. En esta, se trata de combinar el rendimiento y sencillez de la arquitectura monolítica con la protección y organización de la arquitectura por capas. La idea fundamental es obtener un núcleo lo más pequeño y rápido posible y tratar el resto de las funciones y componentes como procesos de aplicación. En esta nueva concepción, es usual que el núcleo solo contenga lo necesario para la gestión de memoria y procesos.
En la imagen se muestra la representación de una arquitectura micronúcleo.
En la imagen se muestra la representación de una arquitectura micronúcleo.
El resto se ejecutan como aplicaciones de usuario; es decir, con el nivel mínimo de privilegios. En la práctica es un poco difícil conseguir esto sin una pérdida apreciable de rendimiento. En alguna medida deben incluirse en el núcleo otras funciones como el manejo de hardware y algunos drivers.

Sistemas cliente-servidor

Separar funcionalmente el núcleo, los procesos del sistema y los procesos de aplicación, induce una idea interesante: ¿Se podrán separar físicamente los procesos del sistema y/o los de aplicación? La arquitectura dónde cada proceso se ejecuta de manera independiente, es una de las más difíciles de lograr. Esta independencia implica que los procesos podrían ser ejecutados en sistemas (no solo CPU, sino todo el hardware) diferentes y distantes geográficamente. En cada sistema independiente solo estarían presentes el núcleo y los componentes mínimos para la ejecución de uno o algunos procesos. En esta arquitectura, se manifiesta con mayor peso la necesidad de establecer llamadas al sistema robustas, para la comunicación entre procesos. Se escoge el modelo cliente - ­servidor para esta comunicación, porque se establece que cada proceso (independiente o no) actúa como servidor del resto. En esta arquitectura, el objetivo fundamental del núcleo es garantizar la comunicación entre procesos. Esta filosofía propició la creación de los sistemas operativos distribuidos que son, básicamente, implementaciones basadas en el modelo cliente­servidor. Aunque los Sistemas Operativos distribuidos no serán estudiados en este curso, explotan un mecanismo interesante de la comunicación entre procesos, que es el paso de mensajes. La tendencia actual es desarrollar aplicaciones distribuidas en vez de sistemas operativos distribuidos, aprovechando las redes de computadoras.

VIDEOS


SISTEMA OPERATIVO





ESTRUCTURA DEL SISTEMA OPERATIVO

Integrantes del Blogg

Emely Montes   C.I: 21.331.368

Norxandy Daniela C.I: 25.475.263

Maria A. Palacios: C.I: 22.929.942

Jesús Albarrán.  C.I: 25.560.333

Joan A. Fuentes: C.I: 20.848.448

Jose G. Rivera  C.I: 25.151.020

Radiología 1er semestre, sección "C"