Estructura Del So

  • Uploaded by: Fernando Gil de Vergara
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Estructura Del So as PDF for free.

More details

  • Words: 1,805
  • Pages: 30
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

Interfaz usuario y programas 

API (Application Program Interface)

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

Funciones:    

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

Estructura del sistema operativo

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

Objetivo: 



Repartir la memoria entre procesos

Funciones:  

Asignación y liberación de memoria Control violación de acceso

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

Funciones:   

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

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

Funciones:   

Creación de procesos de E/S Asignación y liberación de dispositivos de E/S Planificación de la E/S

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

Funciones:    

Creación y destrucción de archivos y directorios Apertura y cierre de archivos Lectura y escritura de archivos Protección de acceso

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

Espera

Asignar

Despertar

Revocar

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)

Ejemplo: 

NFS (Sistema de ficheros en red) construido a partir de RPCs

Estructura del sistema operativo

1

Enfoques de diseño (i) 

Enfoques de diseño:  



Monitor monolítico 





Monitor monolítico Micronúcleo Toda la funcionalidad del SO se incluye se incluye en el núcleo Ejemplos: MS-DOS, Linux

Micronúcleo 



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

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





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

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 



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

Estructura del sistema operativo

1

Estructura de UNIX clásico

Nivel de usuario Nivel kernel

Programas de usuario Trap

Interfaz de llamadas al sistema Subsistema de control de procesos Manejo de memoria IPC Planificador

Nivel kernel Nivel hardware

Biblioteca s

Subsiste Subsiste ma ma de de E/S archivos Buffer cache Carácter Bloque Drivers

Control hardware Hardware Estructura del sistema operativo

2

Estructura de Mach

Programas de usuario

Servidor de proces os

Servidor de memori a

Servidor de archivos

Servidor de gráficos

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

Modo usuario

archivo

de

Sistemas

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 Manejadores de dispositivo

Bibliotecas del kernel

Validación de argumentos de las llamadas al sistema

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

Subsistemas POSIX OS2 Win32

NTDLL.DLL

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.

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

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

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  



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





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

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

P1

switch N { case 0:

... ... syscall N ... ... ...

case 1: … case 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)

Paso de parámetros:  



En registros internos del procesador En zona de memoria cuya dirección se pasa en registros En la pila

Estructura del sistema operativo

3

Related Documents


More Documents from "Ana C.M"