Download Tema 2
Document related concepts
Transcript
Sistemas Operativos Tema 2: Fundamentos 1 Tema 2: Fundamentos Índice: 1. Conceptos básicos 2. Modelos de diseño 3. Ejemplos de organización interna 2 Tema 2: Fundamentos Índice: 1. Conceptos básicos 2. Modelos de diseño 3. Ejemplos de organización interna 3 1. Conceptos básicos Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores 2. Procesos 3. Llamadas al sistema 4. Usuarios 5. Archivos 6. Intérpretes de órdenes 7. Interfaces gráficas de usuario 4 1. Conceptos básicos Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores 2. Procesos 3. Llamadas al sistema 4. Usuarios 5. Archivos 6. Intérpretes de órdenes 7. Interfaces gráficas de usuario 5 1.1 Conceptos básicos sobre A.O. Tema 2: Fundamentos Organización básica de un ordenador: procesador Memoria Adaptador Teclado Adaptador ratón Adaptador Pantalla BUS DMA Controlador discos duros … 6 1.1 Conceptos básicos sobre A.O. Tema 2: Fundamentos La CPU. Modos de ejecución Contiene un conjunto de registros de 8, 16, 32 o 64 bits Estado de la CPU = valores de sus registros Dos registros especiales: siguiente instrucción (IP, PC…) y estado (CCR) Instrucciones: realización de operaciones aritméticas, lógicas o de movimiento de datos Los operandos pueden ser registros o posiciones de memoria Al menos dos modos de ejecución: Supervisor: ejecución sin restricciones Usuario: se restringen las instrucciones que puedan acceder a recursos del sistema Si en modo usuario se intenta ejecutar instrucción privilegiada: excepción 7 Tema 2: Fundamentos 1.1 Conceptos básicos sobre A.O. Interrupciones y excepciones Interrupción = alteración en secuencia de ejecución de instrucciones. Causas: Interrupción hardware Excepción Ejecución de instrucción de petición de interrupción (INT, TRAP) Tratamiento: 1. CPU termina de ejecutar instrucción actual 2. Se almacena estado de CPU en la pila 3. CPU pasa a modo supervisor 4. Determina dirección SSI (normalmente: tabla de vectores) 5. Salta a SSI 6. Al retornar de SSI: se restaura estado (y modo de ejecución) 7. Se prosigue ejecución por siguiente instrucción 8 Tema 2: Fundamentos 1.1 Conceptos básicos sobre A.O. Arranque del sistema Arranque del sistema = secuencia de operaciones que tras el encendido llevan la máquina a un estado usable Pasos: 1. Procesador realiza inicialización interna que termina transfiriendo control a una dirección determinada 2. En dicha dirección puede haber… Si sistema operativo en ROM: el sistema operativo (ir a paso 5) Si sistema operativo no en ROM: el cargador hardware 3. Cargador hardware: realiza… Inicialización mínima: determina características y correcto funcionamiento del sistema Determina dispositivo de carga del sistema operativo Lee de dicho dispositivo el cargador software → 9 1.1 Conceptos básicos sobre A.O. Tema 2: Fundamentos Arranque del sistema (cont.) 4. Cargador software (pertenece a SO): carga el sistema operativo y le transfiere el control una vez cargado 5. Inicialización del sistema operativo: Se crean estructuras de datos del sistema operativo Comprobación detallada del sistema: detección de nuevos dispositivos, comprobación del sistema de archivos, etc. Se cargan los componentes opcionales que procedan del SO Se crea uno o más procesos de inicio de sesión Tras iniciar sesión, se crea un proceso intérprete de comandos (texto o gráfico) 10 1. Conceptos básicos Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores 2. Procesos 3. Llamadas al sistema 4. Usuarios 5. Archivos 6. Intérpretes de órdenes 7. Interfaces gráficas de usuario 11 1.2 Procesos Tema 2: Fundamentos Proceso = programa en ejecución Si se ejecuta dos o más veces un mismo programa: procesos distintos Un proceso puede cambiar el programa (execve) y sigue siendo el mismo proceso S.O. multiprogramado: aquel que permite más de un proceso en ejecución simultáneamente Emplean mecanismos de protección para aislar procesos Cada proceso tiene su propio espacio de memoria Se proporciona mecanismos de comunicación y sincronización Mecanismos de identificación de procesos (PID) Un proceso puede crear otros procesos Relación paterno/filial entre procesos Procesos padre: atribuciones especiales sobre procesos hijos 12 1. Conceptos básicos Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores 2. Procesos 3. Llamadas al sistema 4. Usuarios 5. Archivos 6. Intérpretes de órdenes 7. Interfaces gráficas de usuario 13 Tema 2: Fundamentos 1.3 Llamadas al sistema Llamada al sistema: petición que hace un proceso al sistema operativo para obtener algún tipo de servicio API (Aplication Programming Interface): Interfaz que el sistema operativo presenta a los programas Compuesta por el conjunto de todas las llamadas al sistema soportadas API’s estandarizadas: POSIX (Portable Operating System Interface) API’s propietarias: WIN32, WinFX Formas de implementación: Mediante rutinas Mediante interrupciones 14 Tema 2: Fundamentos 1.3 Llamadas al sistema Implementación mediante rutinas Por cada llamada al sistema, una rutina que la implementa Primera dificultad: ¿en qué direcciones están? Soluciones: (Para simplificar: un único punto de entrada) Punto de entrada en dirección fija • ¡Los programas dependen de esta dirección! Punto de entrada en dirección apuntada por una variable • ¡Los programas dependen de la dirección de dicha variable! Programas hacen referencia a punto de entrada mediante una variable conocida por montador de enlaces (Ej: CALL SYS) • ¡Si cambia de versión de SO, hay que reenlazar los programas! Segunda dificultad: ¿paso a modo supervisor? 15 Tema 2: Fundamentos 1.3 Llamadas al sistema Implementación mediante interrupciones Punto de entrada único al que se accede mediante una interrupción Punto de entrada se coloca en cualquier dirección de memoria Para efectuar llamada al sistema, se usa instrucción INT n En el vector n de interrupción: dirección punto de entrada Al realizar una llamada: Se pasa a modo supervisor Hardware determina dirección de punto de entrada Código del SO se ejecuta en modo supervisor Al retornar, se restaura modo de ejecución previo a llamada 16 1.3 Llamadas al sistema Tema 2: Fundamentos Implementación mediante interrupciones (cont.) Ventajas: Independencia de los programas respecto a ubicación de punto de entrada en memoria Conmutación implícita a modo supervisor Posibilidad de llamadas implícitas al sistema 17 1. Conceptos básicos Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores 2. Procesos 3. Llamadas al sistema 4. Usuarios 5. Archivos 6. Intérpretes de órdenes 7. Interfaces gráficas de usuario 18 1.4 Usuarios Tema 2: Fundamentos Usuario = personas autorizadas a usar el sistema Los sistemas multiprogramados mantienen asociación entre cada proceso y su usuario propietario Es el usuario quien determina los derechos del proceso a acceder a recursos del sistema Identificación de usuario: UID (normalmente numérico) Posibilidad de definir grupos de usuario Grupos identificados por GID (normalmente numérico) Derechos del proceso: determinados por [UID, GID] 19 1. Conceptos básicos Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores 2. Procesos 3. Llamadas al sistema 4. Usuarios 5. Archivos 6. Intérpretes de órdenes 7. Interfaces gráficas de usuario 20 1.5 Archivos Tema 2: Fundamentos Archivo = conjunto de información Organización jerárquica basada en directorios y subdirectorios Archivos frecuentemente residen en dispositivos Identificación de dispositivos: dependen de sistema Letras de unidad: C:, D:, etc. Archivo especial: /def/fd0, /dev/hda, etc. En sistemas multiusuario se proporcionan mecanismos de protección del sistema de archivos 21 1. Conceptos básicos Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores 2. Procesos 3. Llamadas al sistema 4. Usuarios 5. Archivos 6. Intérpretes de órdenes 7. Interfaces gráficas de usuario 22 1.6 Intérpretes de órdenes Tema 2: Fundamentos Intérprete de órdenes = programa interactivo que lee e interpreta comandos del usuario Nombres alternativos: intérpretes de comandos, shells… Algunos sistemas permiten usar distintos intérpretes de comandos Ejemplo: UNIX En otros casos está integrado en sistema operativo Ejemplo: MS-DOS Funciones soportadas más frecuentemente: Ejecución de programas con redirección de entrada y/o salida Ejecución en paralelo de procesos unidos por una tubería Ejecución de secuencias de comandos (scripts) … 23 1. Conceptos básicos Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores 2. Procesos 3. Llamadas al sistema 4. Usuarios 5. Archivos 6. Intérpretes de órdenes 7. Interfaces gráficas de usuario 24 Tema 2: Fundamentos 1.7 Interfaces gráficas de usuario Interfaz gráfica de usuario (GUI) = intérprete de órdenes en modo gráfico Suelen ofrecer API que permite su uso por parte de programas de usuario Aero (Windows Vista) Beryl Explorer (Windows XP) GNOME 25 Tema 2: Fundamentos Índice: 1. Conceptos básicos 2. Modelos de diseño 3. Ejemplos de organización interna 26 2. Modelos de diseño Tema 2: Fundamentos 1. Modelo monolítico 2. Modelo en estratos 3. Modelo micronúcleo 4. Máquinas virtuales 5. Diseño orientado a objetos 27 2. Modelos de diseño Tema 2: Fundamentos 1. Modelo monolítico 2. Modelo en estratos 3. Modelo micronúcleo 4. Máquinas virtuales 5. Diseño orientado a objetos 28 2.1 Modelo monolítico Tema 2: Fundamentos Todo el sistema operativo se encuentra en un único espacio de memoria Administración de Memoria Gestor de Disco rutina_auxiliar () { … Administración de archivos } rutina_servicio_interrupcion() { … } planificador () { … } 29 2.1 Modelo monolítico Tema 2: Fundamentos Ventajas: Eficiencia en tiempo de ejecución Eficiencia en ocupación de memoria Inconvenientes: Dificultad de depuración Complejidad y dificultad mantenimiento 30 2.1 Modelo monolítico Tema 2: Fundamentos Estructura de un sistema monolítico Despachador Servicio 1 Rutina Aux. 1 Servicio 2 Rutina Aux. 2 Servicio 3 … Rutina Aux. 3 SSI Int.1 Servicio N … SSI Int.2 … 31 2.1 Modelo monolítico Tema 2: Fundamentos Funcionamiento del despachador 1. ¿Llamada explícita al sistema o fallo de protección? En caso de llamada explícita, comprobar validez de llamada 2. Seleccionar rutina de servicio e invocarla 3. Devolver el control void seleccionar(int ident_servicio) { if (ident_servicio == IDENT1) servicio1(...) else if (ident_servicio == IDENT2) servicio2(...) else if (ident_servicio == IDENT3) servicio3(...) else if (ident_servicio == IDENT4) servicio4(...) ... voidtabla_servicios seleccionar(int ident_servicio) { servicio1() fun_serv tabla_servicios[] = {servicio1, servicio2() servicio2, servicio3…}; servicio3() tabla_servicios[ident_servicio](…); … } 32 2.1 Modelo monolítico Tema 2: Fundamentos Ejemplos de sistemas monolíticos: Linux y la mayoría de Unix, a excepción de Solaris Las versiones de windows basadas en MS-DOS 33 2. Modelos de diseño Tema 2: Fundamentos 1. Modelo monolítico 2. Modelo en estratos 3. Modelo micronúcleo 4. Máquinas virtuales 5. Diseño orientado a objetos 34 Tema 2: Fundamentos 2.2 Modelo en estratos Idea: colocando una capa de software sobre el hardware conseguimos una máquina ampliada Podemos construir un sistema colocando sucesivas capas una encima de otra Proceso de usuario Capa 3: Gestión de entrada-salida Capa 2: Comunicación proceso-consola Capa 1: Gestión de la memoria Capa 0: Planificación Hardware 35 2.2 Modelo en estratos Ventajas: Tema 2: Fundamentos Gracias a la modularidad, sistema más fácil de depurar y mantener Inconvenientes: Al ser las capas cajas negras, se pierde la posibilidad de compartir código y datos entre distintas capas Ejemplo de sistemas en estratos: Multics OS/2 36 2. Modelos de diseño Tema 2: Fundamentos 1. Modelo monolítico 2. Modelo en estratos 3. Modelo micronúcleo 4. Máquinas virtuales 5. Diseño orientado a objetos 37 2.3 Modelo micronúcleo Tema 2: Fundamentos Parte más compleja de un sistema operativo: el núcleo Idea: hagamos un núcleo tan simple como sea posible Saquemos fuera de él toda la funcionalidad posible Funcionalidad sacada del núcleo: se implementa mediante procesos externos Núcleo mínimo: Multiprogramación Comunicación entre procesos Atención de interrupciones Administrador Administrador Archivos Memoria Gestor de Disco … Proceso de Usuario Micronúcleo Hardware 38 2.3 Modelo micronúcleo Tema 2: Fundamentos Ventajas: Facilidad de depuración Robustez Flexibilidad Fácil adaptación a sistemas distribuidos Inconvenientes: Sistemas más lentos Requieren más memoria 39 2. Modelos de diseño Tema 2: Fundamentos 1. Modelo monolítico 2. Modelo en estratos 3. Modelo micronúcleo 4. Máquinas virtuales 5. Diseño orientado a objetos 40 Tema 2: Fundamentos 2.4 Máquinas virtuales Colocando una capa de software sobre el hardware obtenemos una máquina ampliada con interfaz de más alto nivel Idea: ¿Por qué una? ¿Por qué de más alto nivel? Sistema Operativo 1 Sistema Operativo 2 … Sistema Operativo n Hardware (1) Hardware (2) … Hardware (n) Monitor de máquinas virtuales Hardware 41 2.4 Máquinas virtuales Tema 2: Fundamentos Monitor de máquinas virtuales… Reparte recursos (memoria, disco) Simula dispositivos e interrupciones En particular: simula procesador • Reparte tiempo de procesador entre las máquinas virtuales • Simula los cambios de modo de ejecución Proceso de Usuario Sistema OUT DX, AL Operativo 1 IN EAX,DX Hardware (1) OUT DX,AL Sistema Operativo 2 Hardware (2) … … Sistema Operativo n Hardware (n) Monitor de máquinas virtuales Hardware 42 2.4 Máquinas virtuales Tema 2: Fundamentos Aplicaciones de virtualización Ejecución simultánea de varios SO en una misma máquina Explotación de Mainframes: múltiples máquinas adaptadas cada una a las necesidades de usuario (escalabilidad) Depurado de sistemas operativos … Téngase en cuenta… Estamos dividiendo la potencia de la máquina Monitor introduce sobrecarga • Suma de potencia de máquinas menor que la de la máquina real 43 Tema 2: Fundamentos 2.4 Máquinas virtuales Algunos virtualizadores z/VM (http://www.vm.ibm.com) VMWare (http://www.vmware.com) Virtual PC / Virtual Server (http://www.microsoft.com/windows/products/winfamily/v irtualpc/default.mspx) BOCHS (http://bochs.sourceforge.net/) QEMU (http://fabrice.bellard.free.fr/qemu/) Emulador de procesador Plex86 (http://plex86.sourceforge.net/) Lightweight Virtual Machine diseñada sólo para ejecutar Linux Xen (http://www.cl.cam.ac.uk/research/srg/netos/xen/) Paravirtualizador 44 2. Modelos de diseño Tema 2: Fundamentos 1. Modelo monolítico 2. Modelo en estratos 3. Modelo micronúcleo 4. Máquinas virtuales 5. Diseño orientado a objetos 45 2.5 Diseño orientado a objetos Tema 2: Fundamentos No es un modelo de diseño en sí mismo Consecuencia aplicación al desarrollo de un SO de los métodos de análisis y diseño orientado a objetos Un sistema operativo orientado a objetos puede desarrollarse con cualquier organización Recursos en el sistema: se consideran objetos Operaciones aplicables: depende de tipo de objetos 46 Tema 2: Fundamentos Índice: 1. Conceptos básicos 2. Modelos de diseño 3. Ejemplos de organización interna 47 3. Ejemplos de organización interna Tema 2: Fundamentos 1. Linux 2. Minix 3. Windows 2000 48 3. Ejemplos de organización interna Tema 2: Fundamentos 1. Linux 2. Minix 3. Windows 2000 49 3.1 Linux Tema 2: Fundamentos Al igual que demás sistemas Unix, consta de: Núcleo Librerías del sistema Utilidades del sistema Utilidades del Sistema Procesos de usuario Bibliotecas del sistema Núcleo 50 3.1 Linux Tema 2: Fundamentos Núcleo monolítico Problema: dificultad de mantenimiento ¡Muchas personas trabajan en núcleo de Linux! Solución: módulos cargables Enlace dinámico Módulos apilables El núcleo gestiona dependencias entre módulos Tiene en cuenta dichas dependencias al cargar/descargar Esto facilita compartir código entre componentes de manera ordenada A B D C E 51 3.1 Linux Tema 2: Fundamentos Se suelen cargar como módulos Gestores de dispositivos Sistemas de archivos … Procesos de usuario pueden cargar/descargar módulos: insprobe: carga un módulo en el núcleo rmmod: elimina un módulo del núcleo modprobe: gestión de módulos Linux Kernel Development, 2ª Edición Robert Love Novel Press 52 3. Ejemplos de organización interna Tema 2: Fundamentos 1. Linux 2. Minix 3. Windows 2000 53 3.2 Minix Tema 2: Fundamentos Organización micronúcleo pura Organización de Minix 3: En modo supervisor: Todo lo demás en modo usuario init proceso 1 de usuario proceso 1 de usuario … Administrador de Administrador de Administrador de archivos memoria red Tarea de disco Tarea de terminales Tarea de ethernet … Tarea del reloj … Tarea del sistema Operating Systems Design and Implementation, 3ª Edición Micronúcleo Andrew S. Tanenbaum, Albert S. Woodhull-Amherst 54 Prentice Hall 3. Ejemplos de organización interna Tema 2: Fundamentos 1. Linux 2. Minix 3. Windows 2000 55 3.3 Windows 2000 Tema 2: Fundamentos Combina modelos micronúcleo y monolítico Procesos de Soporte del Sistema Procesos de Servicios Aplicaciones de usuario Subsistemas de entorno Librerías del sistema (DLL’s) Modo usuario Modo núcleo Executive Kernel Gestores de Dispositivos Interfaz Gráfica de Usuario Inside Windows 2000 Hardware Abstraction Layer (HAL) David A. Solomon, Mark E. Russinovich Microsoft Press 56 57