Apuntes de clase 25/03/2010

Tipos de SOs de acuerdo al kernel

Los sistemas se pueden clasificar de acuerdo al tamaño del kernel, en sus inicios fue un macrokernel un sistema centralizado que a la vez a fue Monokernel, con la modernización de los SO, cada vez estos reducen su consumo de recursos, externizando sus operaciones. Estos son microkernel, nanokernel y exokernel que significa ausencia del kernel.


Arquitectura microkernel
  • Proporciona un numero pequeño de servicios
  • Intenta tener un kernel pequeño y escalable
  • Alto grado de modularidad
  • Extensible, portable y escalable
  • Se incrementa el nivel de comunicación entre módulos
  • Puede degradar el rendimiento del sistema
Beneficios de una organización micronúcleo:
  • Interfaces uniformes en las peticiones realizadas por un proceso
  • Extensibilidad
  • Flexibilidad
  • Portabilidad
  • Fiabilidad
  • Soporte a sistemas distribuidos
  • Sistema operativo orientado a objetos
...No pueden haber muchos errores en algo pequeño...

Arquitectura Exokernel


  • Un SO se interpone entre las aplicaciones y el HW
  • Elimina el concepto de abstracción sobre la cual corren las aplicaciones.
  • Se asegura de multiplexar el HW desnudo: a través de primitivas de HW, librerías a nivel de aplicacion y servidores.
  • Es escencialmente la extensión de la filosofía de la arquitectura Risc en cpu al nivel del sistema operativo.
Básicamente consiste en la eliminación del sistema operativo, por lo cual las aplicaciones deben ser las encargadas de entenderse con el HW tal cual como es.


Objetivos de diseño del sistema

Objetivos del usuario:
  • adecuado para su uso
  • fácil de aprender
  • confiable
  • seguro
  • rápido

Objetivos del sistema:
  • fácil de diseñar
  • implementar y mantener
  • flexible
  • confiable
  • libre de errores
  • eficiente
Jerarquía de diseño de SO


13. Shell
12. Procesos de usuario
11. Directorios
10. Dispositivos
9. Sistema de archivos
8. Comunicaciones
7. Memoria virual 6. Almacenamiento secundandario local 5. Procesos primitivos
4. Programa de manejo de interrupciones 3. Procedimientos 2. Conjunto de instrucciones del procesador 1. Electrónica de los circuitos

☻Hardware
☻Mono-procesamiento
☻Multi-procesamiento

Implementación del sistema


Los sistemas operativos tradicionalmente se han escrito en ensamblador, ahora pueden ser escritos en lenguajes de alto nivel.

El código escrito en alto nivel:
  • Puede se escrito mas rápido
  • Es mas compacto
  • Es fácil de entender y depurar

Un sistema es mas fácil de ser portable si esta escrito en un lenguaje de alto nivel.

Algunos lenguajes de alto nivel usados para escribir sistemas operativos:
  • C (Unix, OS/2, Win NT)
  • Fortran (Primos)
  • algoI (MCP(Master Control Program) Burgos)
  • Bliss (VMS DEC)
  • PL/360
  • Perl
  • PL1 (Multics)
  • Pascal
Generación del sistema (SYSGEN)

  • Los sistemas operativos se diseñan para correr en cualquier clase de maquinas, el sistema debe configurarse para cada computador especifico.
  • El programa sysgen obtiene información relacionada con la conflagración especifica del HW del sistema.
  • Booting
  • Bootstrap program, código almacenado en la ROM que es capaz de localizar el kernel, cargarlo en la memoria, e iniciar la ejecución.

PROCESOS

Un sistema operativo ejecuta una variedad de programas:
  • Sistemas por lotes (trabajos)
  • Sistemas de tiempo compartido (programas de usuario o tareas)
Definición: un programa en ejecución con el entorno asociado/unidad de procesamiento gestionada por el SO.

Un proceso incluye:
  • Un contador de programa
  • Pila
  • Sección de datos, código

Programa ente pasivo
Proceso ente activo
Traza,
lista de instrucciones ejecutadas por cada proceso.

Modelo simplificado
Un proceso puede estar en dos estado corriendo y no corriendo, para el cambio de estado se produce una transición que ejecuta el despachador en el que asigna un proceso al procesador por un tiempo determinado, y vuelve al estado de no ejecución.

Comentarios