Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos...

43
Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. [email protected] 06/14/22 1

Transcript of Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos...

Page 1: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Introducción, Principios de Diseño y Estructuras de los

Sistemas Operativos

Sistemas Operativos AvanzadosProf. David A. Pérez A.

[email protected]

04/21/23 1

Page 2: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Introducción SOA

• Definición SO.– Administrador de recursos.– Capa de software.– Nuestra propia definición.

• Motivación para utilizar un SO.– Máquina al desnudo.– Conjunto de instrucciones reducido.• Ampliar el conjunto de instrucciones.

04/21/23 2

Page 3: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Introducción SOA

• Motivación para utilizar un SO.– Soporte multiusuario.– Liberar al usuario• ¿De qué?

• ¿Dónde consigo un SO?

04/21/23 3

Page 4: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Introducción SOA

• Funciones de un SO.– Administración de recursos.• Administración del tiempo.• Administración del espacio.• Manejo de sincronización de procesos.

– Deadlock.

• Manejo de estadísticas y estado del sistema.

04/21/23 4

Page 5: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Introducción SOA

• Funciones de un SO.– Interfaz amigable• ¿Qué esconde la interfaz?• Ambiente de ejecución.

– Administración de procesos-creación, control y finalización.– Manipulación de archivos.– Manejo de interrupciones.– Soporte de E/S.

• Detección y manejo de errores.

04/21/23 5

Page 6: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Introducción SOA

• Funciones de un SO.– Interfaz amigable.• Protección y seguridad.• Tolerancia a fallas y recuperación de las mismas.

04/21/23 6

Page 7: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Introducción SOA

• Conceptos básicos.– ¿Qué debo proveer?• Abstracción de proceso.• Abstracción de hilo.• Sincronización.• Manejo de dispositivos.

– Discos, etc.

• Manejo de memoria.– Principal y secundaria.

• Sistema de archivos.

04/21/23 7

Page 8: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Enfoques de Diseño

• ¿Cuál es la idea natural?– La forma “burrera”, en verdad macro.– Gran colección de procesos sin estructura.– ¿Qué podría suceder al ejecutar una instrucción?• Efecto domino.

04/21/23 8

Page 9: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Enfoques de Diseño

• ¿Cuál es la idea natural?– La forma “burrera”, en verdad macro.– Gran colección de procesos sin estructura.– ¿Qué podría suceder al ejecutar una instrucción?• Efecto domino.

04/21/23 9

Page 10: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Enfoques de Diseño

• Ventajas del enfoque macro.– Propósito específico.– Sistemas pequeños.

• Desventajas del enfoque macro.– Poca factibilidad de expansión.– Fuertes complicaciones.• Código, pruebas y depuración.

04/21/23 10

Page 11: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Políticas vs. Mecanismos

• Políticas.– Que hacer.

• Mecanismos– Como hacer.

• No confundir• Ejemplos– Planificación de procesos.– Funcionamiento de un restaurant.

04/21/23 11

Page 12: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Políticas vs. Mecanismos

• ¿Quién realiza dicha separación?• Ventajas.– Flexibilidad.– Independencia.

• ¿Qué cambia?– Las políticas.• Alto nivel.

– En ciertas ocasiones los mecanismos.• Bajo nivel ¿Implicaciones?

04/21/23 12

Page 13: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Refinando Conceptos

• ¿Por qué surge el hilo?– Planificación.

• ¿Ambientes idóneos para usar hilos?– Procesos orientados a E/S.– Multiprocesadores.– Niveles.• Usuario/Librerías.• Kernel.

04/21/23 13

Page 14: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Refinando Conceptos

• Granularidad.– Frecuencia de sincronización.– Categorías de paralelismo:• Independiente.• Grano grueso.• Grano muy grueso.• Grano medio.• Grano fino.

04/21/23 14

Page 15: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Refinando Conceptos

04/21/23 15

Page 16: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Hyperthreading

• Tecnología propietaria de Intel.• Por cada procesador físico presente, el SO

direcciona o mapea dos procesadores virtuales.– Compartición de la carga de trabajo.

• Sólo se requiere que el SO posea soporte para múltiples procesadores.

04/21/23 16

Page 17: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Hyperthreading

• Mejora el desempeño de aplicaciones con hilos.• Desempeño de un 155 a un 30 % mejor que sus

predecesores.• Su funcionamiento esta basado en duplicar

ciertas secciones del procesador.– Registros de control (EFLAGS, IMR, MMU registers,

etc.)– Registros de propósito general (AX, BX, CX, DX, etc.)

04/21/23 17

Page 18: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Hyperthreading

• No duplica los recursos de ejecución principales.– Ideas.

• Procesadores lógicos.– Planificación de hilos de manera simultanea.

• Punto débil.– Consumo de energía.– ARM con SMT usaba 46% menos de energía.

04/21/23 18

Page 19: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Multi-core

• Sistema de procesamiento compuesto por dos o más cores independientes.

• Circuito integrado que posee dos o más procesadores individuales incrustados.

• La mejora en cuanto al desempeño depende fuertemente del diseño e implementación de software.– Nuevo paradigma para los desarrolladores.

04/21/23 19

Page 20: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Multi-core

• Mejoras en el consumo de energía.• ¿Se desecho hyperthreading?– Ideas.

04/21/23 20

Page 22: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Hyperthreading vs. Multi-core

04/21/23 22

Page 23: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Multi-core + Hyperthreading

04/21/23 23

Page 24: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Refinando Conceptos

• Reentrancia.– Programas reentrantes.• No se modifica a si mismo.

– Programas no reentrantes.• Puede modificarse a si mismo.

– Lo que parece no es…– Utilidad.– Tarea.• Ejemplos de programas reentrantes y no reentrantes.

04/21/23 24

Page 25: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Enfoque en Capas

• Dijkstra.• ¿Qué prentende?– Menor complejidad de diseño.– Menor complejidad de implementación.

• ¿Cómo planteamos o diseñamos un SO en capas?– Funcionalidades.– Balance.– Interfaz de comunicación.

04/21/23 25

Page 26: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Enfoque en Capas

• ¿A qué se parece este enfoque?– OSI.

• ¿Será el resultado un SO modular?– Separación y sus ventajas.

• ¿Qué ofrece este enfoque?– Simplicidad en:• Diseño.• Especificaciones.• Implementación.

04/21/23 26

Page 27: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Enfoque en Capas

• Consideraciones que se deben tener en cuenta para las capas.– Anécdota.

• Ejemplo:– THE

• Tarea– Leer el articulo de THE para discutirlo en la

próxima clase.

04/21/23 27

Page 28: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Enfoque en Capas

04/21/23 28

Page 29: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Enfoque en Capas

• Ejemplo:– Sistema MULTICS.– Capas concéntricas.

04/21/23 29

Page 30: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Refinando Conceptos

• Protección.– Visión interna.– El sistema se protege a si mismo.

• Seguridad.– Visión Externa.– El sistema se protege de extraños.

04/21/23 30

Page 31: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Enfoque Núcleo

• Brinch Hansen.• Núcleo.– Definición.• Colección de primitivas.

– ¿Qué provee?• Ambiente.• Flexibilidad

– ¿Por qué?

– Efecto cebolla.

04/21/23 31

Page 32: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Enfoque Núcleo

• Según Brinch Hansen.– Sólo visión de procesos.• Creación y comunicación.

– Sin concepto de recurso.– Núcleo grande.• Poca flexibilidad a alto nivel.

– Núcleo pequeño.• Bajo soporte a alto nivel.

04/21/23 32

Page 33: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Enfoque Núcleo

• Ejemplos:– HYDRA.– C.mmp (Carnegie Mellon).– Nociones.• Recursos.• Procesos.

04/21/23 33

Page 34: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Máquinas Virtuales

• Definición.– Capa de software que emula la estructura del

hardware.

• ¿Para qué?– Acceso único.

• ¿Qué se puede correr sobre este enfoque?– Monousuario.– Multiprogramación.

04/21/23 34

Page 35: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Diseño – Máquinas Virtuales

• Flexibilidad.– ¿De que punto de vista?

• Ventajas.– Test-Bed.– No interfiere con el resto de los usuarios.

• Desventajas.– Complejidad.– Desempeño.

• Ejemplos.

04/21/23 35

Page 36: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

¿Por qué avanzan los Sistemas Operativos?

• Esfuerzos -- ¿Hacia donde?– Surgen nuevas arquitecturas.– Ley de Moore.

• ¿Qué paso?– Nos quedamos cortos.

• Nacen los Sistemas Operativos Modernos.– ¿Qué es un Sistema Operativo Moderno?

04/21/23 36

Page 37: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

Sistemas Operativos Avanzados

04/21/23 37

Page 38: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

SO Distribuidos

• Definición.– SO.– Conjunto de máquinas.– Autónomas.

• Función principal.– Transparencia.

04/21/23 38

Page 39: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

SO Distribuidos

• Diseño.– Sincronización.– Abrazo mortal.– Planificación.– Sistema de archivos.– Memoria.– Comunicación.– Nombramiento.– Manejo de reloj.– Retardo en las comunicaciones.

04/21/23 39

Page 40: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

SO Multiprocesadores

• Definición.– SO.– Varios procesadores.

• Diferencia con un SOD.

04/21/23 40

Page 41: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

SO Multiprocesadores

• Diseño.– Consideraciones básicas.– Sincronización de procesos.– Planificación de tareas.– Manejo de memoria.– Protección y seguridad.

04/21/23 41

Page 42: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

SO Base de Datos

• Definición.– SO.– Enfoque.

• ¿Qué debe incluir?– Transacciones.– Recuperación.– Manejo eficiente de buffer.

04/21/23 42

Page 43: Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A. david.perez@ciens.ucv.ve.

SO Tiempo Real

• Definición.– SO.– Enfoque.

• ¿Qué debe incluir?– Manejo paranoico del tiempo.• Tiempo real suave.• Tiempo real duro.

04/21/23 43