34
Sistemas Operativos Funciones básicas de los SSOO

Sistemas operativos 3

Embed Size (px)

Citation preview

Page 1: Sistemas operativos 3

Sistemas Operativos

Funciones básicas de los SSOO

Page 2: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 3: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 4: Sistemas operativos 3

• 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).

Sistemas Operativos

Page 5: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 6: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 7: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 8: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 9: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 10: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 11: Sistemas operativos 3

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

interrumpe y se ejecuta B.

• Un proceso puede verse como una estructura de datos.

Sistemas Operativos

Page 12: Sistemas operativos 3

• Estados de un proceso:

Sistemas Operativos

Page 13: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 14: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 15: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 16: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 17: Sistemas operativos 3

Sistemas Operativos

Page 18: Sistemas operativos 3

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

Sistemas Operativos

Page 19: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 20: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 21: Sistemas operativos 3

Sistemas Operativos

Page 22: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 23: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 24: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 25: Sistemas operativos 3

– 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.

Sistemas Operativos

Page 26: Sistemas operativos 3

• 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

Sistemas Operativos

Page 27: Sistemas operativos 3

• 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

Sistemas Operativos

Page 28: Sistemas operativos 3

• 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

Sistemas Operativos

Page 29: Sistemas operativos 3

• 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

Sistemas Operativos

Page 30: Sistemas operativos 3

• 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)

Sistemas Operativos

Page 31: Sistemas operativos 3

– 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.

Sistemas Operativos

Page 32: Sistemas operativos 3

• 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.

Sistemas Operativos

Page 33: Sistemas operativos 3

Sistemas Operativos

Page 34: Sistemas operativos 3

• 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.