P. 1
2 Estructura del sistema operativo

2 Estructura del sistema operativo

4.73

|Views: 51.337|Likes:
Publicado porSamira

More info:

Published by: Samira on Jan 15, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPS, PDF, TXT or read online from Scribd
See more
See less

08/05/2013

pdf

text

original

Estructura del sistema operativo

Contenidos
 

(T2 y T3)

 

  

 

Introducción Diseño por capas  Ventajas del empleo de capas Niveles clásicos de un SO Núcleo de un SO  Funciones básicas del núcleo Enfoques de diseño:  Comparativa Estructura de UNIX clásico Estructura de Mach Estructura de Linux  El núcleo de Linux Estructura de W2K Llamadas al sistema  APIs de llamadas al sistema  Realización
Estructura del sistema operativo

Introducción

Objetivo de la estructuración:

Buscar una organización interna que facilite la comprensión, incremente la portabilidad, extensión y favorezca el mantenimiento ¿Cómo abordar un programa de hasta 30 – 35 millones de líneas de código?

Estructura del sistema operativo

Diseño por capas (i)
Intérprete de órdenes Aplicaciones

S.O.
Hardware

Interfaces del SO que debe conocer el diseñador:  Interfaz hardware:

Interrupciones, repertorio de instrucciones, traducción de direcciones de la MMU, punto de entrada para cargar el SO API (Application Program Interface)

Interfaz usuario y programas

Estructura del sistema operativo

Diseño por capas (ii)

El diseño por capas lleva asociada una jerarquización que permite disminuir la complejidad observable de un sistema Concepto de capa: conjunto de funciones claramente definidas hacia un objetivo común
Entidad N

Capa N Servicios Capa N-1 Entidad N-1 Entidad N-1

Estructura del sistema operativo

Diseño por capas (iii)

Ventajas del empleo de capas
Las estructuras internas y algoritmos de una capa no son visibles a las demás El sistema puede evolucionar fácilmente. Lo único que hay que mantener son las interfaces Pueden existir realizaciones alternativas llevadas a cabo por diferentes grupos de trabajo Algunas capas pueden ser transparentes si sus servicios no son necesarios Cada capa se codifica y prueba de modo independiente, para luego hacer las pruebas de integración y de conjunto Esto es muy importante en el desarrollo del software
Estructura del sistema operativo

Niveles clásicos de un SO (i)
Usuario y aplicaciones N5: N4: N3: N2: N1: Gestión Gestión Gestión Gestión Gestión de la información de los dispositivos de procesos de memoria del procesador

Hardware

Estructura del sistema operativo

Niveles clásicos de un SO (ii)
NIVEL 1 Nivel inferior de gestión del procesador

Objetivo:

Compartir la CPU entre procesos Sincronización entre procesos Conmutación de la CPU Gestión de interrupciones Arranque inicial

Funciones:
   

Estructura del sistema operativo

Niveles clásicos de un SO (iii)
NIVEL 2 Gestión de memoria

Objetivo:

Repartir la memoria entre procesos Asignación y liberación de memoria Control violación de acceso

Funciones:
 

Estructura del sistema operativo

Niveles clásicos de un SO (iv)
NIVEL 3 Nivel superior de gestión de procesos

Objetivo:

Gestión de procesos de alto nivel Creación y destrucción de procesos Intercambio de mensajes entre procesos Detención y arranque de procesos

Funciones:
  

Estructura del sistema operativo

1

Niveles clásicos de un SO (v)
NIVEL 4 Nivel de gestión de dispositivos

Objetivo:

Realizar la gestión de las E/S en función de los dispositivos existentes Creación de procesos de E/S Asignación y liberación de dispositivos de E/S Planificación de la E/S

Funciones:
  

Estructura del sistema operativo

1

Niveles clásicos de un SO (vi)
NIVEL 5 Nivel de gestión de la información

Objetivo:

Gestionar el espacio de nombres lógicos y la protección de la información Creación y destrucción de archivos y directorios Apertura y cierre de archivos Lectura y escritura de archivos Protección de acceso

Funciones:
   

Estructura del sistema operativo

1

Núcleo del sistema operativo (i)
 

Proporciona la funcionalidad básica del SO Es la parte más dependiente del hw de todo el SO Suele permanecer en el almacenamiento primario porque su código se ejecuta muy frecuentemente
Otros niveles Núcleo HW

Estructura del sistema operativo

1

Núcleo del sistema operativo (ii)
Funciones básicas del núcleo

Proporcionar el entorno adecuado para la existencia de procesos Funciones:
 

Tratamiento de interrupciones Conmutación del procesador entre procesos (soporte al diagrama de estados) Mecanismos básicos de comunicación y sincronización entre hilos y procesos Carga inicial y activación de la configuración del sistema

EDSO 
Estructura del sistema operativo

1

Núcleo del sistema operativo (iii)
Funciones básicas del núcleo

Tratamiento de interrupciones:

El núcleo transforma las interrupciones en eventos de más alto nivel (p. ej. mensajes) El núcleo determina qué proceso espera una interrupción y le envía un mensaje

Estructura del sistema operativo

1

Núcleo del sistema operativo (iv)
Funciones básicas del núcleo

Conmutación de CPU entre procesos
Los procesos de usuario pasan por varios estados durante su tiempo de vida en el sistema El núcleo proporciona los mecanismos de conmutación de la CPU entre procesos

Ejecución
Dormir Asignar Revocar

Espera

Despertar

Listo

Estructura del sistema operativo

1

Núcleo del sistema operativo (v)
Funciones básicas del núcleo

Comunicación y sincronización entre procesos
El núcleo proporciona mecanismos para que los procesos puedan intercambiar información y sincronizarse Mecanismos:
   

Señales Semáforos Mensajes RPCs (remote procedure calls) NFS (Sistema de ficheros en red) construido a partir de RPCs

Ejemplo:

Estructura del sistema operativo

1

Enfoques de diseño (i)

Enfoques de diseño:
 

Monitor monolítico Micronúcleo Toda la funcionalidad del SO se incluye se incluye en el núcleo Ejemplos: MS-DOS, Linux Parte de los sevicios del SO la llevan a cabo los procesos de sistema, que se sirven de la funcionalidad mínima proporcionada por un micronúcleo Ejemplos: Mach, L4, Chorus
Estructura del sistema operativo

Monitor monolítico

Micronúcleo

1

Enfoques de diseño (ii)
Comparativa
Monitor monolítico  Todo el SO se ejecuta en modo supervisor  Menos robusto  El SO es ininterrumpible  Mayor rendimiento Micronúcleo  Sólo el µnúcleo se ejecuta en modo supervisor  Más robusto  El SO es interrumpible  Menor rendimiento debido a la sobrecarga de comunicaciones

Difícil de modificar en tiempo de ejecución Menos adaptable

Fácil de modificar en tiempo de ejecución Más adaptable

Estructura del sistema operativo

1

Estructura de UNIX clásico
Programas de usuario Trap Biblioteca s

Nivel de usuario Nivel kernel

Interfaz de llamadas al sistema Subsistema de control de procesos Manejo de memoria IPC Planificador Subsiste Subsiste ma ma de de E/S archivos Buffer cache Carácter Bloque Drivers

Nivel kernel Nivel hardware

Control hardware Hardware
Estructura del sistema operativo

2

Estructura de Mach
Servidor de proces os Servidor de memori a Servidor de archivos Servidor de gráficos

Programas de usuario Nivel de usuario Nivel kernel

Manejo de hilos Nivel kernel Nivel hardware

Manejadores de dispositivos

Hardware

Estructura del sistema operativo

2

Estructura de Linux (i)
Interfaz de llamadas de alto nivel Validación de argumentos de las llamadas al sistema Bibliotecas del kernel Conmutador de sistemas de archivo Manejador Interfaz de de archivos sockets y streams Manejador Manejador de de Manejador procesos terminalesPila de red de memoria Manejador del buffer de cache Sistemas archivo de Manejadores de dispositivo Modo usuario Alto nivel del núcleo Manejador de callouts Estructuras del núcleo (alto nivel) Est. datos compartidas entre nivel alto y bajo

Manejador de interrupciones Manejador Cambio Bajo nivel Tabla Callout de Manejador traps de llamadas al sist. procesos de de del núcleo dispatch bajo nivel bajo nivel contexto Manejador de excepciones

Hardware

Estructura de Linux (ii)
El núcleo de Linux

Comunicación entre procesos  Señales  Tuberías  Sockets (TCP/IP) Manejadores (drivers)  Modo carácter  Modo bloque Sistema de archivos  Archivos, directorios  Bloqueo de archivos

Facilidades básicas  Manejo del reloj y temporizador  Manejo del estado de los procesos  Manejo de descriptores  Semáforos Gestión de memoria  Memoria virtual  Trasiego  Memoria compartida

Estructura del sistema operativo

2

Estructura de W2K
Procesos de sistema Servicios Aplicaciones WinLogon Replicador Controlador Alertador servicios RPC Aplicaciones DLLs Manejador Registrador de usuario DLLs NtosKrnl.exe de sesiones de eventos DLLs Hilos del sistema NTDLL.DLL Subsistemas POSIX OS2 Win32

API del núcleo Manejador Manejador PnP SeguridadMemoria Procesos Win32 de E/S de caché Control de virtual e hilos GDI alimentación Sistema de archivos Manejador de objetos Manejadores de dispositivo Kernel HAL Hardware
Estructura del sistema operativo

2

Llamadas al sistema (i)

Interfaz de llamadas al sistema  Funciones de biblioteca compartidas por todos los procesos que se ejecutan en la máquina

Intérprete de órdenes

Aplicaciones

Interfaz de llamadas al sistema

S.O.

Hardware

Estructura del sistema operativo

2

Llamadas al sistema (ii)

Llamadas al sistema

Mecanismo controlado de acceso por parte de los procesos a los recursos del S.O.
Comunicación y sincronización de procesos Ejecución de programas Manejo de operaciones de E/S Manipulación del sistema de archivos Detección y control de errores en tiempo de ejecución Asignación no conflictiva de recursos Protección en el empleo de recursos Contabilidad de los recursos empleados

Funcionalidad básica:
       

Estructura del sistema operativo

2

Llamadas al sistema (iii)

APIs de llamadas al sistema
Las llamadas al sistema están definidas a nivel de ensamblador
 

Código no portable (depende de la arquitectura) Incómodo de programar

Existen APIs (Application Program Interface) para mejorar la portabilidad y facilitar la codificación

El API es un “envoltorio” para realizar llamadas al sistema desde un lenguaje de alto nivel (portable y cómodo) API estándar: POSIX (Portable Operating System Unix)

Ejemplo de llamada de interfaz POSIX para abrir un fichero:
int open( char* archivo, int modo);
Estructura del sistema operativo

2

Llamadas al sistema (iv)
APIs de llamadas al sistema

Manipulación de archivos:
int open (const char *pathname, int flags, mode_t mode); int close (int fd) int creat (const char *pathname, mode_t mode) int unlink (const char *pathname); ssize_t read (int fd, void *buf, size_t count); ssize_t write (int fd, const void *buf, size_t count); off_t lseek (int fildes, off_t offset, int whence); int rename (const char *oldpath, const char *newpath);

Estructura del sistema operativo

2

Llamadas al sistema (v)
Realización

Método:

A través de una instrucción máquina específica, el hw la trata como una interrupción sw

Al ejecutarse esta instrucción toma el control el S.O.
Modo supervisor Carga vector interrupción
switch N { case 0: case 1: … case N: }

P1
... ... syscall N ... ... ...

Estructura del sistema operativo

2

Llamadas al sistema (vi)
Realización

Su implementación depende de la arquitectura del ordenador
  

IBM 360: instrucción SVC MIPS: instrucción syscall i386: int # (DOS: 21h, Linux: 80h, W2k: 2Eh) En registros internos del procesador En zona de memoria cuya dirección se pasa en registros En la pila

Paso de parámetros:
 

Estructura del sistema operativo

3

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->