Capítulo 3: Estructuras del sistema operativo
Componentes comunes del sistema
-
Gestión de procesos: un proceso es un programa en ejecución
Proceso de creación y eliminación.
proceso de suspensión y reanudación.
Provisión de mecanismos para: (1) sincronización de procesos (2) comunicación de procesos (3) manejo de puntos muertos
-
Administración de memoria principal
Mantenga un registro de qué partes de la memoria se están utilizando actualmente y por quién.
Decida qué procesos cargar cuando el espacio de memoria esté disponible.
Asigne y desasigne espacio de memoria según sea necesario.
-
Gestión de archivos
-
Gestión del sistema de E / S:
Un sistema de almacenamiento en caché
Una interfaz general de dispositivo-controlador
Controladores para dispositivos de hardware específicos
-
Gestión de almacenamiento secundario
-
Redes
-
Sistema de protección
-
Sistema de intérprete de comandos
Servicios del sistema operativo
- Ejecución del programa
- Operaciones de E / S
- Manipulación del sistema de archivos
- Comunicaciones
- Detección de errores
Funciones adicionales del sistema operativo (no para ayudar al usuario, sino para garantizar un sistema eficiente):
- Asignación de recursos
- Contabilidad
- Proteccion
Llamadas al sistema
Las llamadas al sistema proporcionan la interfaz entre un programa en ejecución y el sistema operativo.
Implementación de llamadas al sistema
Por lo general, un número asociado con cada llamada al sistema: la interfaz de llamada al sistema mantiene una tabla indexada de acuerdo con estos números (系统 调用 表)
La persona que llama no necesita saber cómo se implementa la llamada al sistema:
- Solo necesita obedecer la API y entender qué hará el sistema operativo como resultado.
- La mayoría de los detalles de la interfaz del sistema operativo están ocultos para el programador por API
API - Llamada del sistema - Relación del sistema operativo
Una API puede tener múltiples llamadas al sistema
Paso de parámetro de llamada del sistema
Tres métodos generales utilizados para pasar parámetros al sistema operativo:
- Más simple: pasar los parámetros en los registros: en algunos casos, puede haber más parámetros que registros
- Parámetros almacenados en un bloque, o tabla, en la memoria, y la dirección del bloque pasado como parámetro en un registro
- Parámetros colocados, o empujados, en la pila por el programa y extraídos de la pila por el sistema operativo
Modelos de comunicacion
La comunicación puede llevarse a cabo utilizando el paso de mensajes (canalización) o la memoria compartida.
Programas del sistema
Estructura simple
MS-DOS: escrito para proporcionar la mayor funcionalidad en el menor espacio:
- No dividido en módulos.
- Aunque MS-DOS tiene alguna estructura, sus interfaces y niveles de funcionalidad no están bien separados
UNIX
limitado por la funcionalidad del hardware, el sistema operativo UNIX original tenía una estructuración limitada
- Programas de sistemas
- El núcleo
Enfoque en capas
El sistema operativo se divide en varias capas (niveles), cada una construida sobre las capas inferiores. La capa inferior (capa 0), es el hardware; la más alta (capa N) es la interfaz de usuario.
Con la modularidad, las capas se seleccionan de modo que cada una use funciones (operaciones) y servicios de solo capas de nivel inferior.
Ventajas:
- Los niveles bajo y alto se pueden realizar por separado (fácil de expandir);
- Los errores de alto nivel no afectarán a los de bajo nivel, fáciles de depurar, propicios para la adición, eliminación y modificación de funciones;
- La relación de llamada es clara (la dependencia unidireccional de alto nivel del nivel bajo), para evitar llamadas recursivas, lo que conduce a garantizar la corrección del diseño y la implementación
Desventajas
- Tareas como la transferencia de control y la comunicación de todos los procesos en el sistema se entregan al núcleo del sistema para administrar, lo que cuesta un cierto precio
- Baja eficiencia
- Confusión al acodar
Microkernels
Se mueve tanto del núcleo al espacio de "usuario".
La comunicación se lleva a cabo entre módulos de usuario mediante el paso de mensajes.
Beneficios:
- Más fácil de extender un microkernel
- Más fácil de portar el sistema operativo a nuevas arquitecturas
- Más confiable (menos código se está ejecutando en modo kernel)
- Más seguro
Detrimentos
Sobrecarga del rendimiento del espacio del usuario a la comunicación del espacio del núcleo (la sobrecarga del rendimiento es demasiado alta, la eficiencia es baja)
Estructura cliente-servidor de Windows NT
Maquinas virtuales
Una máquina virtual proporciona una interfaz idéntica al hardware básico subyacente.
El sistema operativo crea la ilusión de múltiples procesos, cada uno de los cuales se ejecuta en su propio procesador con su propia memoria (virtual).
máquina virtual de Java
WORE: escribe una vez, corre por todas partes.
Diseño e implementación del sistema operativo
Comience definiendo objetivos y especificaciones. Afectado por la elección del hardware, tipo de sistema.
Objetivos de usuario y objetivos del sistema:
- Objetivos del usuario: el sistema operativo debe ser conveniente de usar, fácil de aprender, confiable, seguro y rápido
- Objetivos del sistema: el sistema operativo debe ser fácil de diseñar, implementar y mantener, así como flexible, confiable, libre de errores y eficiente
Principio para separar Importante (mecanismo de separación y la estrategia)
Política: ¿Qué se hará?
Mecanismo: ¿Cómo hacerlo?
La separación de la política del mecanismo es un principio muy importante, permite la máxima flexibilidad si las decisiones de política se van a cambiar más adelante.
Generación de sistema operativo
- Arranque: iniciar una computadora cargando el kernel
- Programa Bootstrap: código almacenado en la ROM que puede localizar el núcleo, cargarlo en la memoria e iniciar su ejecución.