Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

35
Sistemas Operativos Tema 2 Funciones básicas de los SSOO

Transcript of Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Page 1: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas OperativosTema 2

Funciones básicas de los SSOO

Page 2: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Resumen

• Componentes y estructura del Sistema Operativo• Interfaz del usuario del Sistema Operativo• [Estructura de los sistemas operativos modernos]

Page 3: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Bloques teóricos de los sistemas operativos (i)

• Los sistemas operativos conforman una de las piezas software más complejas.

– Responden a objetivos también muy complejos.

• Avances teóricos de los sistemas operativos:– Procesos– Gestión de memoria– Protección y seguridad de la información– Planificación y gestión de los recursos– Estructura del sistema

• La visión conjunta de estas áreas proporciona una visión global de los sistemas operativos.

Page 4: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• Un proceso es un programa en ejecución.– Programa = entidad que se puede asignar o ejecutar en un

procesador.

• El desarrollo de este concepto es parejo a la necesidad de sincronización y temporalización derivada de:

– Multiprogramación

– Tiempo compartido o multiusuario

– Sistemas en tiempo real y sistemas de transacciones en tiempo real.

Page 5: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• Se desarrolló el concepto de interrupción:– Cualquier trabajo en CPU podría suspender su ejecución por la

ocurrencia de un evento determinado: interrupción.

• El procesador guarda su contexto (contador de programa y otros registros).

• Salta a la rutina de tratamiento de interrupción.

– Se determina su naturaleza

– Se procesa

• Se continúa con la ejecución del proceso interrumpido (u otro).

Page 6: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• El diseño del sistema para coordinar las diversas actividades resultó extremadamente difícil:

• Si existen mucho trabajos en progreso es imposible analizar las posibles combinaciones de eventos.

• La ausencia de un método sistemático de coordinación llevaba a diseñar métodos “ad hoc” para cada entorno a controlar:

• Sistemas vulnerables a cualquier error sutil, sólo visibles en casos muy específicos.

• Los errores eran difíciles de diagnosticar:– Hay que distinguir si son del software, hardware o del sistema.

– Hay que determinar la causa, y las condiciones en las que se producía eran difíciles de reproducir.

Page 7: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• Causas principales de los errores:

1. Inapropiada sincronización.

• Diseño inapropiado del mecanismo de señalización: pérdida o duplicidad de señales.

– Por ejemplo, cuando un programa espera una entrada/salida y necesita una señal de otra rutina que indique si se ha realizado la entrada/salida.

2. Violación de la exclusión mutua.

• Control inapropiado del acceso a recursos compartidos.

– Por ejemplo, actualización por parte de dos usuarios de un mismo fichero.

Page 8: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• Causas principales de los errores:

3. Interbloqueo:

• Dos o más programas quedan bloqueados esperándose entre sí.

– Ejemplo: dos programas necesitan los dos mismos recursos y, teniendo uno cada uno, no lo dejan esperando por el otro.

4. Operación no determinista de un programa:

• Cuando se comparte memoria y sus ejecuciones son entrelazadas por el procesador, pueden interferir entre ellos.

• El orden de planificación afecta a la salida de cada programa.

Page 9: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• Ejemplo de sincronización y comunicación:

– Un programa desea calcular una expresión matemática como: (A+B+C) * (D+E) en un sistema. El programa podría constar de dos procesos:

a) uno para calcular (A+B+C)

b) el otro para calcular (D+E) y obtener la solución final.

– El segundo proceso, cuando realice la suma “D+E”, deberá sincronizarse con el primero antes de realizar el producto final, que no se podrá calcular hasta que no se obtenga el primer operando.

– Además, para poder hacer ese producto, el primer proceso le tiene que hacer llegar el resultado de (A+B+C), por lo que se necesita algún mecanismo que permita establecer esta comunicación.

Page 10: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• Para controlar los problemas en la gestión de procesos: monitorizar y controlar de forma sistemática la ejecución de los diferentes procesos en el procesador.

– El propio proceso contiene los fundamentos para ello.

• Un proceso se compone de:– Un programa ejecutable.– Datos asociados que necesita el programa (buffers, espacio de trabajo

variables, ...)– Contexto de ejecución del programa, o estado del proceso.

Page 11: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• El contexto de un proceso contiene la información necesaria para que el sistema operativo pueda gestionar y controlar el proceso.

– Contenido de registros del procesador:

• Contador del programa y registros de datos.

– Información de uso del sistema operativo:

• Prioridad del proceso y si está esperando la finalización de un evento.

• La información del contexto está separada del resto del proceso:– Información sólo accesible por el sistema operativo y no por el proceso.

Page 12: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• Ejemplo: – Estando en ejecución A, se

interrumpe y se ejecuta B.

• Un proceso puede verse como una estructura de datos.

Page 13: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Procesos

• Estados de un proceso:

Page 14: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Gestión de memoria

• Una característica básica que se debe proporcionar al programador es la posibilidad de realizar modularidad y usar los datos de manera flexible.

• Los sistemas operativos deben proporcionar control eficiente y ordenado de la asignación de recursos de memoria.

• Cinco responsabilidades en la gestión de almacenamiento:1. Aislamiento de procesos.

• Se debe evitar que procesos independientes interfieran en la memoria de otros procesos (tanto datos como instrucciones).

2. Asignación automática de memoria.• Los programas deben poder demandar dinámicamente memoria.• El programador no debe preocuparse de limitaciones de memoria.• El SO debe asignar memoria a los trabajos sólo cuando la necesiten.

Page 15: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Gestión de memoria

• Responsabilidades en la gestión de almacenamiento:

3. Soporte a la programación modular.

• Los programadores deben ser capaces de crear y destruir módulos dinámicamente.

– Ejemplo: recolectores de basura en Java.

4. Protección y control de acceso.

• El sistema operativo debe permitir que varios usuarios accedan de distintas formas a unas zonas de memoria.

5. Almacenamiento a largo plazo.

• Datos que deben preservarse entre sesiones: persistencia.

Page 16: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Gestión de memoria

• Otra tarea fundamental del sistema operativo es el manejo de la memoria virtual.

• La memoria virtual es la utilidad que permite a los programas direccionar la memoria desde un punto de vista lógico, no físico.

– No importa la cantidad de memoria real disponible.– Permite tener varios trabajos en memoria para minimizar el intervalo de

tiempo entre la ejecución de procesos sucesivos.

• La compactación de procesos en memoria es difícil debido al posible redimensionamiento de los procesos:

– Los procesos cambian de tamaño a lo largo de su ejecución.

Page 17: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Gestión de memoria

• Se habilitan sistemas de paginación:– Cada proceso se comprime en un determinado número de bloques de

tamaño fijo (páginas).– Un programa accede a un dato mediante una dirección virtual:

#página+desplazamiento.– El sistema de paginación proporciona correspondencia entre la dirección

virtual y la real.

• Se hace necesario optimizar el uso de la memoria y evitar que todas las páginas tengan que residir siempre en la misma simultáneamente.

– Todas las páginas de un proceso se mantienen en disco y cuando éste pasa a ejecutarse algunas de ellas (o todas) se llevan a memoria.

– Se cargan las páginas bajo demanda del sistema.

Page 18: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Gestión de memoria

Page 19: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Gestión de memoria

El diseño debe generar poca sobrecarga y minimizar el tráfico entre memorias

Page 20: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Protección y seguridad de información

• Los sistemas en tiempo compartido y las redes dan lugar a problemas en la protección de la información.

• El trabajo de los sistemas operativos a este respecto se engloba en 4 categorías básicas:

– Disponibilidad.

• Protección del sistema frente a las interrupciones.

– Confidencialidad.

• No se pueden leer los datos a los que no se tiene acceso.

– Integridad de los datos.

• No se pueden modificar los datos sin permiso explícito.

– Autenticidad.

• Se debe poder verificar la identidad de los usuarios y la validez de los mensajes.

Page 21: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Planificación y gestión de recursos

• La gestión de los recursos disponibles y su planificación entre los procesos activos es una responsabilidad clave de un SO.

– Recursos: memoria principal, dispositivos E/S, procesadores.

• Toda política de planificación debe tener en cuenta tres factores:– Equidad

• A los procesos de la misma categoría, con demandas similares, hay que proporcionarles acceso equitativo a los recursos.

– Respuesta diferencial• Los procesos pueden tener distintos requisitos de servicio, y la

asignación y planificación deben satisfacer el conjunto total de requisitos.

• Se debe poder actuar de forma dinámica.– Eficiencia

• Se debe intentar maximizar la productividad, minimizar el tiempo de respuesta y acomodar a tantos usuarios como sea posible.

Page 22: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Planificación y gestión de recursos

Page 23: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Estructura del sistema

• A más innovaciones en el hardware y más características en los sistemas operativos, más complejidad y tamaño de los mismos.

• El desarrollo de sistemas operativos está marcado por 4 problemas:– Se entregan “tarde” de manera crónica.– Se detectan fallos latentes que deben ser resueltos.– El rendimiento no suele ser el esperado.– Es imposible diseñar un sistema operativo totalmente invulnerable.

• Para intentar solventar estos problemas, se hace énfasis en la estructura software del sistema operativo. Principalmente:

– Modularidad– Interfaces bien definidas y sencillas

• Como son desarrollos enormes, es necesario estructurarlos en grupos funcionales distintos.

Page 24: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Núcleo (kernel)

• Conjunto de rutinas del SO que están en memoria principal.

• Contiene las funciones de uso más frecuente.

• Sus funciones más importantes son:

– Planificación de procesador.

– Proporcionar mecanismos de sincronización entre procesos, es decir, determinar los estado de espera o aceptación de procesos que intentan acceder simultáneamente al mismo tipo de recurso.

– Gestionar la memoria y otros recursos.

Page 25: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Estructura del sistema

• Cuatro estructuras distintas:

– Sistemas monolíticos (“El gran desorden”)

• No hay estructura

• El SO es un conjunto de procedimientos que se pueden invocar entre ellos sin restricciones: no hay ocultación de información.

• Incluso los menos estructurados cuentan con una estructura mínima: modo núcleo (privilegiado) y modo usuario.

– Sistemas por capas (THE, 1968)

• Cada capa realiza un subconjunto relacionado de funciones.

• Cada nivel confía en el inmediatamente inferior para realizar funciones más primitivas (ocultando los detalles de implementación).

– Cada nivel proporciona servicio al inmediatamente superior.

– Los cambios en un nivel no afectan a los demás.

• Las capas inferiores tratan una escala de tiempo menor.

– Capa más interna: interactúa con el hardware

– Capa más externa: interactúa con el usuario.

Page 26: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Estructura del sistema

– Las Máquinas virtuales (VM370, 1969)

• Abstracción del hardware

• Las llamadas al sistema son capturadas por el sistema operativo de la máquina virtual en lugar de enviarse directamente al hardware.

• Para crear diferentes versiones sólo hay que modificar la capa de abstracción.

• Concepto muy utilizado actualmente (utilidades DOS sobre Windows, Java, etc.)

– Modelo cliente-servidor

• Desplazamiento de código del SO a capas superiores: kernel mínimo.

• La mayoría de funciones del SO se implementan como procesos de usuario.

• Para realizar un servicio, un proceso de usuario (cliente) envía una solicitud a un proceso servidor.

• El kernel sólo se encarga de manejar la comunicación entre clientes y servidores.

• Ventaja: adaptable a sistemas distribuidos.

Page 27: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Estructura del sistema

• Circuitos electrónicos: • Objetos: Registro, puertas...

• Operaciones: Poner a cero, transferir, activar...

• Conjunto de instrucciones: • Objetos: Pila de evaluación, intérprete de

microprogramas...

• Operaciones: sumar, restar, cargar...

• Procedimientos: • Objetos: Procedimiento, pila de llamadas, registros de

activación...

• Operaciones: Llamar, retornar...

• Interrupciones: • Objetos: Programas de gestión de interrupciones.

• Operaciones: Invocar, reintentar, enmascarar...

Hardware

Page 28: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Estructura del sistema

• Procesos primitivos:• Objetos: Procesos primitivos, semáforos, listas de

procesos listos,...

• Operaciones: Suspender, continuar, esperar,...

• Almacenamiento secundario local:• Objetos: Bloques de datos, canales del dispositivo,...

• Operaciones: Leer, escribir, asignar,...

• Memoria virtual:• Objetos: Segmentos, páginas,...

• Operaciones: Leer, escribir, cargar...

Sistema Operativo

Page 29: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Estructura del sistema

• Comunicaciones entre procesos:• Objetos: Tuberías,...

• Operaciones: Crear, destruir, abrir, escribir,...

• Sistema de ficheros:• Objetos: Ficheros,...

• Operaciones: Abrir, cerrar, escribir,...

• Dispositivos externos:• Objetos: Impresoras, pantallas...

• Operaciones: Abrir, cerrar, escribir,...

• Directorios:• Objetos: Directorios,...

• Operaciones: Crear, destruir, abrir, buscar, listar...

Elementos externos

Page 30: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Estructura del sistema

• Procesos de usuario:• Objetos: Procesos de usuario,...

• Operaciones: Salir, matar, suspender,...

• Intérprete de comandos:• Objetos: Entorno de programación.

• Operaciones: sentencias del intérprete de comandos.

Elementos externos

Page 31: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Interfaz del sistema operativo

• El S.O. oculta al usuario los detalles del hardware y le proporciona una interfaz adecuada para utilizarlo.

• El interfaz del sistema es el conjunto de servicios ofrecidos por el SO (llamadas al sistema) que se pueden invocar

– en los programas que creamos (bajo nivel)– directamente a través del intérprete de órdenes o gestor de ventanas (alto nivel)

• El SO ofrece servicios al usuario final en las siguientes áreas:– Creación de Programas

• Herramientas de desarrollo: editores, compiladores, depuradores, etc.– Ejecución de Programas

• Para ejecutar un programa hay que realizar varios pasos: cargar en memoria sus instrucciones y datos, inicializar los dispositivos de E/S, etc.

• El SO hace esta tarea por el usuario.– Acceso a Dispositivos de E/S

• Cada dispositivo físico es diferente.• El SO proporciona una interfaz uniforme que esconde los detalles

específicos y facilita el acceso (imprimir en consola, en un fichero, en un canal de comunicaciones, etc. con printf)

Page 32: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Interfaz del sistema operativo

– Acceso Controlado a Archivos• El SO soporta archivos en diferentes dispositivos (cintas, discos, etc.) y

con diferentes estructuras (binario, texto, etc.), y facilita al usuario un acceso uniforme.

• En sistemas con varios usuarios, el SO controla que no haya conflictos (escritura doble, etc.)

– Acceso al Sistema• En sistemas compartidos el SO controla el acceso al sistema y a ciertos

recursos, proporcionando protección de los recursos y los datos, evitando el acceso no autorizado a ciertos recursos (archivo de sólo lectura para ciertos usuarios, archivos no visibles, etc.)

– Detección y Respuesta a Errores• Tipos de errores: hardware (error de memoria, fallo en un dispositivo) o

software (acceso prohibido a memoria, división por cero, etc.) • El SO debe responder según el error (desde reintentar la operación hasta

finalizar el programa que intentó la operación inválida)– Estadísticas

• Estadísticas de uso de los recursos, etc. que pueden servir para mejorar el sistema, para facturar el acceso, como base para una auditoría, etc.

Page 33: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Interfaz del sistema operativo

• La mayoría de servicios anteriores son de bajo nivel, y por tanto orientados a usuarios especializados (programadores, etc.)

• Los SO proporcionan otro acceso a los programas de utilidad y funcionalidades de más alto nivel orientado al usuario final (no especializado), que puede tener diferentes formatos (no excluyentes):

– Texto: sistema tradicional. • Intérprete de comandos• El path del sistema “invita” a introducir órdenes.

– Gráfico (generalmente mediante Ventanas):• Actualmente el más popular• Facilita el acceso de personas “no expertas” al ordenador• Mediante un ratón el usuario utiliza metáforas gráficas para interactuar con el

sistema.– Otros:

• Realidad Virtual, • Voz,• Para personas con necesidades especiales,• Etc.

Page 34: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Interfaz del sistema operativo

Page 35: Sistemas Operativos Tema 2 Funciones básicas de los SSOO.

Sistemas Operativos - Tema 1: Introducción a los SSOOSistemas Operativos - Tema 2: Funciones básicas de los SSOO

Bibliografía

• Básica:

– Sistemas operativos, 5ª edición. Willian Stallings. Ed. Pearson. 2005.

– Sistemas operativos. Diseño e implementación, 2ª edición. Andrew Tanenbaum y Albert Woodhull. Ed. Pearson. 2002.

• Complementaria y de consulta:

– Conceptos de Sistemas Operativos, 6ª edición. Silberschatz, Galvin y Gagne. Ed. Limusa-Wiley. 2002.

– Sistemas operativos. Conceptos fundamentales. James L. Peterson y Abraham Silberschatz. Ed. Reverte. 1991.