Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Sistemas Operativos Tema 2
Funciones básicas de los SSOO
2
Resumen Componentes y estructura del Sistema Operativo
Interfaz del usuario del Sistema Operativo [Estructura de los sistemas operativos modernos]
3
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.
4
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. - Un mismo programa puede dar lugar a varios procesos.
5
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).
6
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.
7
Procesos Causas principales de los errores:
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. 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. Violación de exclusión mútua (Productor-Consumidor): procedure Productor; var x: integer; begin repeat (*... producir el dato x ... *) while Llena(cola) do; (* ... esperar ... *) cola.cima:=cola.cima+1; cola.datos[cola.cima]:=x; until false; end;
8
Procesos Causas principales de los errores: 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. 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. Ejemplo de ejecución no determinista: program ejemplo; var x: integer; procedure pr1; { instrucciones de un proceso } begin x:=x+1; end; procedure pr2; { instrucciones de otro proceso } x:=x-2; begin { Programa principal } x:=0; cobegin pr1; pr2; coend write(x); end.
9
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.
10
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.
11
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.
12
Procesos Ejemplo: Un proceso puede verse como una estructura de datos.
Estando en ejecución A, se interrumpe y se ejecuta B. Un proceso puede verse como una estructura de datos. El registro índice del procesador indica qué proceso de la lista se está controlando actualmente. Los registros base y límite determinan la región de memoria del proceso en ejecución. Todas las referencias de datos se interpretan de manera relativa al registro base y no deben exceder el valor almacenado en el registro límite para prevenir la interferencia entre procesos.
13
Procesos Estados de un proceso:
14
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: Aislamiento de procesos. Se debe evitar que procesos independientes interfieran en la memoria de otros procesos (tanto datos como instrucciones). 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.
15
Gestión de memoria Responsabilidades en la gestión de almacenamiento:
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. Protección y control de acceso. El sistema operativo debe permitir que varios usuarios accedan de distintas formas a unas zonas de memoria. Almacenamiento a largo plazo. Datos que deben preservarse entre sesiones: persistencia.
16
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. Normalmente los requisitos anteriores se alcanzan mediante el uso de la memoria virtual y las utilidades de los sistemas operativos.
17
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.
18
Gestión de memoria
19
Gestión de memoria El diseño debe generar poca sobrecarga y minimizar el tráfico entre memorias
20
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.
21
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. En cuanto a la respuesta diferencial, debe ser posible discriminar a unos procesos en beneficio de otros según las circunstancias.
22
Planificación y gestión de recursos
El sistema mantiene varias colas (cada una es simplemente una lista de procesos que esperan algún recurso). La cola a corto plazo se compone de procesos que se encuentran en memoria principal y están listos para ejecutar. Cualquiera de estos procesos podría usar el planificador a continuación (puede que ya lo hayan utilizado). El planificador de procesos a corto plazo debe elegir uno de ellos (round robin, por prioridad...). La cola a largo plazo contiene nuevo trabajos que deben ser procesados (nunca han sido procesados). El sistema operativo transfiere un proceso de esta cola a la de corto plazo. Hay que asignar memoria al proceso entrante. El sistema operativo debe asegurar que no se sobrecarga ni la memoria ni el procesador con demasiados procesos. Hay tantas colas de E/S como dispositivos de E/S haya. Todos los procesos que quieren utilizar un dispositivo están en la cola del mismo. El sistema operativo, mediante un algoritmo de planificación, decide qué proceso de la cola lo utiliza. Cuando un dispositivo acaba su tarea, o hay cualquier petición al sistema, ocurre una interrupción. El sistema operativo recibe el control del procesador a través del manejador de interrupciones. Los procesos pueden realizar llamadas al sistema, por ejemplo, invocar al manejador de un dispositivo E/S. El sistema operativo recibe el control del procesador mediante el manejador de llamadas al sistema. Una vez manejada la interrupción o llamada al sistema, se invoca el planificador a corto plazo para seleccionar un proceso TODO ESTO ES UNA DESCRIPCIÓN FUNCIONAL: LOS DETALLES Y MÓDULOS CAMBIAN DE UN SISTEMA OPERATIVO A OTRO.
23
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.
24
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.
25
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.
26
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. El modelo C/S descrito es ideal, pues muchos procesos del sistema operativo (cargar comandos en los registros de los dispositivos físicos) no pueden hacerse desde el espacio de usuario.
27
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
28
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
29
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... Directorios: Objetos: Directorios,... Operaciones: Crear, destruir, abrir, buscar, listar... Elementos externos
30
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
31
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)
32
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.
33
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.
34
Interfaz del sistema operativo
35
Bibliografía Básica: Complementaria y de consulta:
Sistemas operativos, 5ª edición. Willian Stallings. Ed. Pearson Sistemas operativos. Diseño e implementación, 2ª edición. Andrew Tanenbaum y Albert Woodhull. Ed. Pearson Complementaria y de consulta: Conceptos de Sistemas Operativos, 6ª edición. Silberschatz, Galvin y Gagne. Ed. Limusa-Wiley Sistemas operativos. Conceptos fundamentales. James L. Peterson y Abraham Silberschatz. Ed. Reverte
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.