84
Lección 1 Introducción Diseño de Sistemas Operativos Grado en Ingeniería Informática Grupo ARCOS Universidad Carlos III de Madrid

DSO-1: Introducción al diseño de un sistema operativo (v3b)

Embed Size (px)

Citation preview

Page 1: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Lección 1Introducción

Diseño de Sistemas Operativos

Grado en Ingeniería Informática

Grupo ARCOSUniversidad Carlos III de Madrid

Page 2: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Lecturas recomendadas

ARCOS @ UC3M2

1. Carretero 2007:

1. Cap. 2

1. Tanenbaum 2006:

1. Cap.1

2. Stallings 2005:

1. Parte uno. Transfondo.

3. Silberschatz 2006:

1. Cap.1

Base Recomendada

Page 3: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

A recordar…

ARCOS @ UC3M3

1. Estudiar la teoría asociada.� Estudiar el material asociado a la bibliografía:

las transparencias solo no son suficiente.

� Crear cuestiones con sus respuestas y justificación.

2. Repasar lo visto en clase.� Realizar el cuaderno de prácticas progresivamente.

3. Ejercitar las competencias.� Realizar las prácticas progresivamente.

� Realizar todos los ejercicios posibles.

Page 4: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Contenidos

ARCOS @ UC3M4

1. Qué es un sistema operativo.

1. Definiciones, principales funciones y características

2. Cómo es por dentro.

1. Principales objetivos, estructura y ejecución asíncrona

3. Cómo es por fuera.

1. Núcleo y módulos

Page 5: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Contenidos

ARCOS @ UC3M5

1. Qué es un sistema operativo.

1. Definiciones, principales funciones y características

2. Cómo es por dentro.

1. Principales objetivos, estructura y ejecución asíncrona

3. Cómo es por fuera.

1. Núcleo y módulos

Page 6: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Definición de sistema operativo

ARCOS @ UC3M6

� Sistema operativo: software destinado a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de manera cómoda y eficiente.

Hardware

Sistema Operativo

usuario

Page 7: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Definición de sistema operativo

ARCOS @ UC3M7

� Sistema operativo: software destinado a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de manera cómoda y eficiente.

Hardware

Sistema Operativo

Software de sistema

Software de aplicaciónusuario

Page 8: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Contenidos

ARCOS @ UC3M8

1. Qué es un sistema operativo.

1. Definiciones, principales funciones y características

2. Cómo es por dentro.

1. Principales objetivos, estructura y ejecución asíncrona

3. Cómo es por fuera.

1. Núcleo y módulos

Page 9: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Funciones del sistema operativo

ARCOS @ UC3M9

� Interfaz del usuario.

� Gestor de recursos:

� CPU, memoria, etc.

� Máquina extendida:

� Servicios, interfaz del programador, etc.

Hardware

Usuario

Sistema operativo

Page 10: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Funciones del sistema operativo

ARCOS @ UC3M10

� Interfaz del usuario.

� Gestor de recursos:

� CPU, memoria, etc.

� Máquina extendida:

� Servicios, interfaz del programador, etc.

Hardware

Usuario

Sistema operativo

Page 11: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Abstracciones fundamentalesProcesos

ARCOS @ UC3M11

� Procesos, tabla de procesos, árbol de procesos

� Imagen básica, planificación, señales

� Identificación de usuario y grupo

� Intérprete de mandatos (shell)

https://www.microsoft.com/resources/sharedsource/windowsacademic/curriculumresourcekit.mspx

preparado funcionando

bloqueado

finalizadonuevo

A

B C

FED

Árbol de procesos

Page 12: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Abstracciones fundamentalesArchivos

ARCOS @ UC3M12

� Archivos y directorios

� Ruta, directorio de trabajo y raíz

� Protección

� Descriptor de archivo

� Archivos especiales:

� Dispositivos E/S

� E/S de bloque y de caracteres

� Pipes

� Estándares entrada/salida/error

https://www.microsoft.com/resources/sharedsource/windowsacademic/curriculumresourcekit.mspx

Directorio raíz

tmp usretc

pitmia

Page 13: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Funciones del sistema operativo

ARCOS @ UC3M13

� Interfaz del usuario.

� Gestor de recursos:

� CPU, memoria, etc.

� Máquina extendida:

� Servicios, interfaz del programador, etc.

Hardware

Usuario

Sistema operativo

Page 14: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Áreas de gestión

ARCOS @ UC3M14

� Gestión de Procesamiento

� Planificación

� Prioridades, multiusuario

� Gestión de Memoria y Almacenamiento

� Reparto de memoria entre procesos, con protección y compartición

� Persistencia y etiquetación (ej. Sistema de Archivos) con una visión lógica unificada para usuarios y programas que sea independiente del medio físico

� Gestión de Dispositivos

� Encubriendo las dependencias de hardware

� Gestión de accesos concurrentes

Page 15: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Funciones del sistema operativo

ARCOS @ UC3M15

� Interfaz del usuario.

� Gestor de recursos:

� CPU, memoria, etc.

� Máquina extendida:

� Servicios, interfaz del programador, etc.

Hardware

Usuario

Sistema operativo

Page 16: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Interfaz del usuario

ARCOS @ UC3M16

� Interfaz del programador:

� Mediante llamadas al sistema.

� Interfaz de usuario:

� Mediante línea de mandatos o CLI

� Interfaz gráfica o GUI

ret = close (filedesc) ;

http://www.guidebookgallery.org/screenshots/commandprompthttp://www.guidebookgallery.org/screenshots/full

Page 17: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Funciones del sistema operativoresumen

ARCOS @ UC3M17

� Interfaz del usuario.

� Gestor de recursos:

� CPU, memoria, etc.

� Máquina extendida:

� Servicios, interfaz del programador, etc.

Hardware

Usuario

Sistema operativo

Page 18: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Un detalle más sobre máquina extendida…

ARCOS @ UC3M18

� Interfaz del usuario.

� Gestor de recursos:

� CPU, memoria, etc.

� Máquina extendida:

� Servicios, interfaz del programador, etc.

Hardware

Usuario

Sistema operativo

Page 19: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Máquinas virtuales

ARCOS @ UC3M19

� El sistema operativo virtualiza ciertos elementos del hardware; ¿Por qué no virtualizar todo?

� IBM ha usado esta idea en sus mainframes desde principio de la década de los 70.

� Un hipervisor virtualiza todo el ordenador, de manera que permite que múltiples sistemas operativos (o copias del mismo) ejecuten a la vez.

� La virtualización:

� [I] supone cierta sobrecarga

� [V] ofrece un aislamiento excelente entre sistemas y la flexibilidad en la reserva de recursos lo quemejora el coste, especialmente en «granjas»

http://www-128.ibm.com/developerworks/library/l-linuxvirt/index.html

Hardware

Hipervisor (VMM)

S.O. S.O.

Apl. Apl.

… Mgmt

Page 20: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Máquinas virtuales

ARCOS @ UC3M20 http://www-128.ibm.com/developerworks/library/l-linuxvirt/index.html

Distinto HardwareHW. emulation

Mismo Hardware y…

Page 21: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Máquinas virtuales

ARCOS @ UC3M21 http://www-128.ibm.com/developerworks/library/l-linuxvirt/index.html

Distinto Hardware

… mismo S.O. Containers

HW. emulation

… distinto S.O. y…

Mismo Hardware y…

Page 22: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Máquinas virtuales

ARCOS @ UC3M22 http://www-128.ibm.com/developerworks/library/l-linuxvirt/index.html

Distinto Hardware

… mismo S.O.

… no colaborancon el hipervisor

Containers

Para-virtualization

Full virtualization

HW. emulation

… distinto S.O. y…

… colaborancon el hipervisorMismo Hardware y…

Page 23: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Contenidos

ARCOS @ UC3M23

1. Qué es un sistema operativo.

1. Definiciones, principales funciones y características

2. Cómo es por dentro.

1. Principales objetivos, estructura y ejecución asíncrona

3. Cómo es por fuera.

1. Núcleo y módulos

Page 24: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características

ARCOS @ UC3M24

� Versátil

� Portabilidad

� Adaptativo

� Multidisciplinar

� Complejo

� Delicado

Page 25: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Versatilidad

ARCOS @ UC3M25

MainframeOS/360, z/OS, …

Miniordenadores y PCUnix, MacOs, Windows, …

EmpotradosVxWorks, QNX, LynxOS,

Android, iOS, Windows Embedded, …

SupercomputadorUnix, Linux, …

Page 26: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

� Mismo equipo, diferentes SSOO: IBM PC

� Mismo SO, diferentes equipos: Unix

Principales características:

1) Versátil

ARCOS @ UC3M26

IBM PC

DR-DOSLinux

IBM PC

Unix

CRAY-Y/MP

Portabilidad

Page 27: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

2) Continuos cambios para adaptarse

ARCOS @ UC3M27

� A las nuevas demandas de los usuarios:

� Reconocimiento de voz, entrada multitáctil, etc.

� A la evolución o nuevo tipo de hardware:

� Controladores para todo tipo de nuevos dispositivos

� Sistemas multicore, virtualización, etc.

� A integrar soluciones de distintos entornos:

� Procesamiento por lotes, multiprogramación, tiempo compartido, etc.

� Multiusuario, trabajo colaborativo, etc.

� Sistemas distribuidos, servicios en red, etc.

Page 28: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Resumen de la evolución

ARCOS @ UC3M28

� Primera generación (años 50)

� Monitor hardware.

� Segunda generación (años 60)

� Procesamiento por lotes.

� Tercera generación (años 70)

� Multiprogramación, tiempo compartido y multiusuario.

� Cuarta generación (años 80 – actualidad)

� Sistemas distribuidos.

� Interfaz gráfica, reconocimiento de voz, etc.

� Virtualización.

Hw

S.O.

Page 29: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Primera generación (1945-1955)monitor hardware

ARCOS @ UC3M29

� Tubos de vacío.

� ENIAC, UNIVAC, …

� Grandes, lentos y caros.

� Complicación para programar y depurar.

� Monitor hardware.

� Asistente para el diagnóstico.

Hw

S.O.

Page 30: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Segunda generación (1955-1965)procesamiento por lotes

ARCOS @ UC3M30

� Transistores.

� IBM 7090, IBM1620, …

� Más pequeños, rápidos y fiables.

� Ligeras mejoras en su programación.

� Procesamiento por lotes.

� Ejecución de trabajos uno detrás de otro.

� Enlace de rutinas de librerías a programas.

� Gestión de archivos, dispositivos de E/S y almacenamiento secundario.

� Aparición de OS/360

Hw

S.O.

Page 31: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Tercera generación (1965-1980)multiprogramación, multitarea y multiusuario

ARCOS @ UC3M31

� Circuitos integrados.

� PDP-8, …

� Más pequeños, rápidos y fiables.

� Fortran, C, Pascal, Basic, etc.

� Multiprogramación.

� Gestión de recursos compartidos solapando esperas en CPU.

� Tiempo compartido y multiusuario.

� Compartición de recursos y multiplexación del uso de la CPU.

� Aparición de Multics, Unix, CP/M, etc.

Hw

S.O.

Page 32: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Cuarta generación (1980-)distribuidos, con interfaz gráfica, etc.

ARCOS @ UC3M32

� El microprocesador.

� IBM-PC, …

� Ordenadores personales.

� C++, etc.

� Distribuidos (de tiempo real)

� Conexión a Internet, aplicaciones de trabajo distribuido

� Interfaz gráfica.

� System 5, Windows 1.0, etc.

Hw

S.O.

Page 33: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Cuarta generación (2005-)virtualización, multiprocesamiento, etc.

ARCOS @ UC3M33

� Los system-on-chip y multicores.

� Tables, smartphones, …

� Era post-PC.

� .net, java, python, php, etc.

� Virtualización.

� Cloud computing, legacy computing, desktop móvil, etc.

� Nuevas formas de interacción.

� Reconocimiento del habla, entrada multitáctil, etc..

� Pantallas 3D, holografías, etc.

Hw

S.O.

Page 34: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Evolución de los sistemas operativos

ARCOS @ UC3M34

55

60

65

70

75

80

85

90

95

00

03

IOCS

DOS/360

DOS/VDSE

VS

VS/ESA

OS/360

MVS/370

MVS/XA

MVS/ES

TSO

IBSYS

CTSS

CP/CM5

VM/370

VM/XA

VM/ESA

SYSTEM III

SYSTEM V

SYSTEM V.4

MULTICS

UNIX

UNIXV.7

AIX/370

AIXSUN OS

POSIX

SOLARIS 2

4.1BSD

4.2BSD

4.3BSD

4.4BSD

MACH

OSF/1

AIX/ESA

XENIX MS-DOS 1.0

CP/M

DR/DOS

OS/2WIN 3.0

WIN NT

WIN 2000

WIN 9X

WIN XP

LINUX

RSX-11M

VMS 1.0

VMS 5.4

VMS 7.3

WIN 3.1

SOLARIS 10

RT-11

LINUX 2.6

WIN Server 2003

https://www.microsoft.com/resources/sharedsource/windowsacademic/curriculumresourcekit.mspx

Page 35: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

3) Software multidisciplinar

ARCOS @ UC3M35

� Software multidisciplinar:

� Integra trabajos de diferentes áreas: Interfaces de usuario, software de sistema, inteligencia artificial, seguridad, Ingeniería Software, etc.

http://work-at-home-data-entry.com/wp-content/uploads/2014/10/Work-from-home-team-group-of-workers-icon.png

Page 36: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

4) Software complejo

ARCOS @ UC3M36

� Software complejo:

� Muchas líneas de código.

� Muchos equipos de trabajo.

Page 37: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

4) Software complejo

ARCOS @ UC3M37

� Software complejo:

� Muchas líneas de código.

� Muchos equipos de trabajo.

https://www.openhub.net/p/linux

Page 38: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

4) Software complejo

ARCOS @ UC3M38

� Software complejo:

� Muchas líneas de código.

� Muchos equipos de trabajo.

http://www.zdnet.co.uk/reviews/desktop-os/2010/11/20/a-quarter-century-of-windows-40090900/5/#top

Page 39: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

4) Software complejo

ARCOS @ UC3M39

� Software complejo:

� Muchas líneas de código.

� Muchos equipos de trabajo.

http://www.zdnet.co.uk/reviews/desktop-os/2010/11/20/a-quarter-century-of-windows-40090900/5/#top

Page 40: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

4) Software complejo

ARCOS @ UC3M40

� Software complejo:

� Muchas líneas de código.

� Muchos equipos de trabajo.

http://osdelivers.blackducksoftware.com/2015/05/05/driving-into-the-future-of-automotive-technology-at-genivi-annual-members-meeting/http://www.alexmarchant.com/writing/healthcare-dot-gov-lines-of-code-comparison/

Page 41: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

5) Software delicado

ARCOS @ UC3M41

� Software delicado:

� Un fallo en un driver (software controlador de un dispositivo) puede bloquear todo el sistema.

� Trata datos de distintas aplicaciones de distintos usuarios que no deben ser perdidos o trasladados a manos incorrectas.

Page 42: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

5) Software delicado

ARCOS @ UC3M42

� Software delicado:

� Un fallo en un driver (software controlador de un dispositivo) puede bloquear todo el sistema.

� Trata datos de distintas aplicaciones de distintos usuarios que no deben ser perdidos o trasladados a manos incorrectas.

http://www.mayerdan.com/ruby/2012/11/11/bugs-per-line-of-code-ratio/

Page 43: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales características:

5) Software delicado

ARCOS @ UC3M43

� Software delicado:

� Un fallo en un driver (software controlador de un dispositivo) puede bloquear todo el sistema.

� Trata datos de distintas aplicaciones de distintos usuarios que no deben ser perdidos o trasladados a manos incorrectas.

http://www.mayerdan.com/ruby/2012/11/11/bugs-per-line-of-code-ratio/

Page 44: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Principales característicasresumen

ARCOS @ UC3M44

� Versátil

� Portabilidad

� Adaptativo

� Multidisciplinar

� Complejo

� Delicado

Page 45: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Contenidos

ARCOS @ UC3M45

1. Qué es un sistema operativo.

1. Definiciones, principales funciones y características

2. Cómo es por dentro.

1. Principales objetivos, estructura y ejecución asíncrona

3. Cómo es por fuera.

1. Núcleo y módulos

Page 46: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Objetivos en el diseño de un sistema operativo

ARCOS @ UC3M46

� Rendimiento: eficiencia y velocidad� Baja sobrecarga,

uso adecuado de los recursos

� Estabilidad: robustez y resistencia� Tiempo de funcionamiento, degradación aceptable, fiabilidad e integridad

� Capacidad: prestaciones, flexibilidad y compatibilidad

� Seguridad y protección� Protección entre usuarios

� Sistema seguro para ‘los malos’

� Portabilidad

� Claridad

� Extensibilidad

Hardware

Sistema Operativo

http://www.cc.gatech.edu/~pwh/

Page 47: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Contenidos

ARCOS @ UC3M47

1. Qué es un sistema operativo.

1. Definiciones, principales funciones y características

2. Cómo es por dentro.

1. Principales objetivos, estructura y ejecución asíncrona

3. Cómo es por fuera.

1. Núcleo y módulos

Page 48: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Estructura del sistema operativo

ARCOS @ UC3M48

Hardware

Kernel

Servicios

Shell

Usuarios

AplicacionesAPI

SistemaOperativo

� Gestor de recursos.

� Máquina extendida.

� Interfaz de usuario

� Interfaz de programador

Page 49: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Estructura del Sistema OperativoMonolítico (macrokernel)

ARCOS @ UC3M49

� Sistema monolítico.

� No estructurado.

� Desde cualquier punto del código se puede acceder a cualquier variable o función de otra parte del núcleo (kernel)

� [I] muy difícil de mantener, muy sensible a errores

App App

Servicios del sistema

Hardware

Procedimientos y estructuras del sistema operativo

Modo Usuario

Modo Kernel

Page 50: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Estructura del Sistema OperativoEn subsistemas

ARCOS @ UC3M50

� Sistema monolítico, compuesto de subsistemas lógicos que ofrecen interfaces bien definidas como puntos de entrada.

� Se agrupan procedimientos y estructuras de datos relacionadas.

� Ejemplo:

� Linux

App App

Servicios del sistema

Hardware

Subsistema 1

Modo Usuario

Modo Kernel

Page 51: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Estructura del Sistema OperativoPor capas

ARCOS @ UC3M51

� Binario monolítico aunque codificado estructurado de forma lógica en capas.

� Cada capa proporciona acceso únicamente a la interfaz de niveles inferiores.

� Ejemplo:

� THE (Dijkstra)

� Multics, que añadió a la noción de capa la idea de anillos de privilegios

App App

Servicios del sistema

Hardware

Modo Usuario

Modo Kernel

G. dispositivos de E/S

Planificación e IPC

Gestión de memoria

Page 52: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Estructura del Sistema OperativoMicrokernel

ARCOS @ UC3M52

� Además de estructurado, los principales componentes se ejecutan como procesos servidores, fuera del kernel.

� El microkernel tiene:� Planificación y gestión de procesos.

� Gestión de memoria virtual básica.

� Comunicación entre procesos básica.

� Ejemplo:

� Match, QNX, Minix, L4, etc.

Servidorde memoria

AppCliente

Servidorde red

Servidorde procesos

Servidorde ficheros

ServidorPantallas

Microkernel

Hardware

petición

respuesta

Modo Usuario

Modo Kernel

Page 53: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Estructura del Sistema OperativoWindows 2000 (visión simplificada)

ARCOS @ UC3M53

Usuario

Kernel

Ejecutivo

Drivers Kernel

Win32Aplicaciones

Usuario

DLLs de Subsitema L

Procesos del Sistema y Servicios

POSIXOS/2

Win32User/GDI

Subsistemas de entorno

Ntdll.dll

Hardware Abstraction Layer (HAL)

http://technet.microsoft.com/en-us/library/cc750820.aspx

Page 54: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejemplo de estructura de subsistemasLinux (versión simplificada)

ARCOS @ UC3M54

Usuario

Kernel

Núcleo

Servicios

Shell

Page 55: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

SS.OO. RealesLinux (versión ‘menos’ simplificada)

http://www.makelinux.net/kernel_map.shtml ARCOS @ UC3M55

Page 56: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Contenidos

ARCOS @ UC3M56

1. Qué es un sistema operativo.

1. Definiciones, principales funciones y características

2. Cómo es por dentro.

1. Principales objetivos, estructura y ejecución asíncrona

3. Cómo es por fuera.

1. Núcleo y módulos

Page 57: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Estructura del sistema operativo

ARCOS @ UC3M57

Hardware

Kernel

Servicios

Shell

Usuarios

AplicacionesAPI

SistemaOperativo

� Gestor de recursos.

� Máquina extendida.

� Interfaz de usuario

� Interfaz de programador

Page 58: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejecución (general)

ARCOS @ UC3M58

------------------------------------------------------------------------------------------

Page 59: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejecución (general)

ARCOS @ UC3M59

------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

Al llegar un evento (ex) se ejecuta el manejador

asociado (hx)

Page 60: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejecución (general)

ARCOS @ UC3M60

------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

Al finalizar el manejador, se continúa la ejecución por donde fue interrumpida

Page 61: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronacódigo (general)

ARCOS @ UC3M61

int main ( … ){

…On (event1, handler1) ;…

}

1) Asociar el manejador (handler1) al evento

Page 62: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronacódigo (general)

ARCOS @ UC3M62

int main ( … ){

…On (event1, handler1) ;…

}

void handler1 ( … ){}

2) Codificar la función manejador que tratará el evento

1) Asociar el manejador (handler1) al evento

Page 63: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronacódigo (general)

ARCOS @ UC3M63

2) Codificar la función manejador que tratará el evento

1) Asociar el manejador (handler1) al evento

3) Para comunicar funciones, se usa variables globalesint global1;

int main ( … ){

…On (event1, handler1) ;…

}

void handler1 ( … ){}

Page 64: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejemplo de ejecución asíncronaSeñales

ARCOS @ UC3M64

#include<stdio.h>#include<signal.h>#include<unistd.h>

void sig_handler (int signo){

if (signo == SIGINT)printf("received SIGINT\n");

}

int main(void){

if (signal (SIGINT, sig_handler ) == SIG_ERR) printf("\ncan't catch SIGINT\n");

sleep(60); // simula un proceso largo.

return 0;}

signal.h

http://www.thegeekstuff.com/2012/03/catch-signals-sample-c-code/

Page 65: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejemplo simplificado

ARCOS @ UC3M65

S.O.

HW.

App.

CPU Disco RAM

• char buffer[1024];…

• read(fd,buffer)•

Pi

Page 66: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejemplo simplificado

ARCOS @ UC3M66

S.O.

HW.

App.

CPU Disco RAM

• Pedir bloque• Ejecutar Pi +1

• char buffer[1024];…

• read(fd,buffer)•

ll. sistema

Pi

Page 67: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejemplo simplificado

ARCOS @ UC3M67

S.O.

HW.

App.

CPU Disco RAM

• Pedir bloque• Ejecutar Pi +1

Pi • char buffer[1024];…

• read(fd,buffer)•

ll. sistema

Pi +1 • int x;…

• for (x=0; x<900; x++);

Page 68: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejemplo simplificado

ARCOS @ UC3M68

S.O.

HW.

App.

CPU Disco RAM

• Pedir bloque• Ejecutar Pi +1

Pi • char buffer[1024];…

• read(fd,buffer)•

ll. sistema

Pi +1 • int x;…

• for (x=0; x<900; x++);

Page 69: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejemplo simplificado

ARCOS @ UC3M69

S.O.

HW.

App.

CPU Disco RAM

• Pedir bloque• Ejecutar Pi +1

int. hw

• Copiar a RAM• Pi listo• Continuar Pi +1

Pi • char buffer[1024];…

• read(fd,buffer)•

ll. sistema

Pi +1 • int x;…

• for (x=0; x<900; x++);

Page 70: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronaejemplo simplificado

ARCOS @ UC3M70

S.O.

HW.

App.

CPU Disco RAM

• Pedir bloque• Ejecutar Pi +1

int. hw

• Copiar a RAM• Pi listo• Continuar Pi +1

Pi • char buffer[1024];…

• read(fd,buffer)•

ll. sistema

Pi +1 • int x;…

• for (x=0; x<900; x++);

Page 71: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Estructura base del sistema operativocódigo (general)

ARCOS @ UC3M71

int global1; …

int main ( … ){

…On (event1, handler1) ;On (event2, handler2) ;On (event3, handler3) ;…

}

void handler1 ( … ) { xxx }

void handler2 ( … ) { xxx }

void handler3 ( … ) { }i.h. 1

ll. sistema

i.h. 2

Disco

Red

App 1

• Copiar a RAM• Pu listo• Continuar Pv

Page 72: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecución asíncronasoporte hardware

ARCOS @ UC3M72

S.O.

HW.

App.

CPU Disco RAM

int. hw

• Copiar a RAM• Pu listo• Continuar Pv

Pi • char buffer[1024];…

• read(fd,buffer)•

X

int. hw

• Dato a RAM• Px listo• Continuar Py

Page 73: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Interrupciones hardwarerepaso (1/4)

ARCOS @ UC3M73

� Cada periférico (capaz de generar una petición de interrupción) dispone de una línea denominada IRQ (Interrupt ReQuest)

� Puede haber múltiples dispositivos en una línea, se precisa muestreo para conocer el peticionario

� Todas las líneas se conectan a un PIC (Programmable Interrupt Controller)

� Actualmente se usa un APIC (Advanced Programmable Interrupt Controller)

� El PIC se conecta a la CPU por una línea de aviso de interrupción pendiente (INT)

� El PIC y la CPU también están conectados por el bus de datos

Understanding the Linux kernel (2nd edition)

Periférico iPIC

CPU...

Bus Datos

INT

IDT

IRQi_interrupt()

do_IRQ(i)

IRQ

vector

Int. i descriptor

...

Page 74: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Interrupciones hardwarerepaso (2/4)

ARCOS @ UC3M74

� El PIC monitoriza las líneas de IRQ esperando la llegada de una señal

� Si llega una señal entonces:

� Asocia al IRQ del periférico un valor que guarda en un registro del PIC (llamado vector)

� Avisa a la CPU a través de la línea de interrupción pendiente (INT)

� La CPU lee del registro (como puerto de E/S o como dirección de memoria) el vector

� La CPU escribe en el registro de control del PIC que ya leyó el vector

� El PIC desactiva la línea de interrupción pendiente. borra el vector y vuelve a monitorizar…

Understanding the Linux kernel (2nd edition)

Periférico iPIC

CPU...

Bus Datos

INT

IDT

IRQi_interrupt()

do_IRQ(i)

IRQ

vector

Int. i descriptor

...

Page 75: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Interrupciones hardwarerepaso (3/4)

ARCOS @ UC3M75

� El PIC puede permitir deshabilitar selectivamente las IRQ

� El PIC deja de avisar a la CPU de la petición de una IRQ hasta que se habiliten: no se pierden.

� Deshabilitar a nivel de CPU (mask/unmask) es diferente: ignora la INT

� El PIC puede permitir tener niveles de prioridad de interrupción

� Se asocia a cada IRQ con una prioridad

� Si hay varias IRQ, el PIC ‘atiende’ primero las de mayor prioridad (resto: deshabilitado temporalmente)

� Si el PIC no tiene niveles de prioridad, se pueden simular por software en el sistema operativo

Understanding the Linux kernel (2nd edition)

Periférico iPIC

CPU...

Bus Datos

INT

IDT

IRQi_interrupt()

do_IRQ(i)

IRQ

vector

Int. i descriptor

...

Page 76: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Interrupciones hardwarerepaso (4/4)

ARCOS @ UC3M76

� La CPU detecta la petición de INT

� Acepta la interrupción: copia el vector por el bus de datos y ACK al PIC

� Busca en la Interrupt Descriptor Table (IDT) la rutina de tratamiento asociada

� Guarda el estado del procesador en pila, pasa a modo privilegiado y ejecuta la RTI

� Puede que varias RTI (do_IRQ) compartan una misma interrupción (uso de enumeración)

� Puede que varias interrupciones compartan una rutina genérica común a ellas

� Recupera el estado de pila, y ejecuta RETI (paso a modo previo y vuelta a lo interrumpido)

Periférico iPIC

CPU...

Bus Datos

INT

IDT

IRQi_interrupt()

do_IRQ(i)

IRQ

vector

Int. i descriptor

...

Page 77: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Llamada al sistemasoporte hardware

ARCOS @ UC3M77

S.O.

HW.

App.

CPU Disco RAM

• Pedir bloque• Ejecutar Pi +1

Pi • char buffer[1024];…

• read(fd,buffer)•

ll. sistema

Page 78: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Llamada al sistema

ARCOS @ UC3M78

� Existe una instrucción en ensamblador que genera una interrupción por software

� La CPU detecta la petición de INT

� Busca en la Interrupt Descriptor Table (IDT) la rutina de tratamiento asociada

� Guarda el estado del procesador en pila, pasa a modo privilegiado y ejecuta la RTI

� Puede que varias RTI (do_IRQ) compartan una misma interrupción (uso de enumeración)

� Puede que varias interrupciones compartan una rutina genérica común a ellas

� Recupera el estado de pila, y ejecuta RETI (paso a modo previo y vuelta a lo interrumpido)

CPU

Bus Datos

INT

IDT

IRQi_interrupt()

do_IRQ(i)

Int. i descriptor

...

Page 79: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Contenidos

ARCOS @ UC3M79

1. Qué es un sistema operativo.

1. Definiciones, principales funciones y características

2. Cómo es por dentro.

1. Principales objetivos, estructura y ejecución asíncrona

3. Cómo es por fuera.

1. Núcleo y módulos

Page 80: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejecutables (1/1)

ARCOS @ UC3M80

� Los primeros kernels tenían que:

� Incluir código para todos los posibles dispositivos.

� Cada cierto tiempo se recompilaba para añadir los nuevos dispositivos.

� Se distribuía como un conjunto de ejecutables.

http://www.cc.gatech.edu/~pwh/

G. dispositivos de E/S

D#10D#15

Page 81: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Módulos (1/2)

ARCOS @ UC3M81

� Los módulos inicialmente se desarrollaron para permitir la inclusión condicional de controladores de dispositivos (drivers)

� Los módulos ofrecen añadir dinámicamente código de un driver pre-compilado.

� Se distribuyen como bibliotecas dinámicas para el kernel (.so/.dll).

� El módulo puede descargarse cuando el dispositivo deje de usarse.

http://www.cc.gatech.edu/~pwh/

G. dispositivos de E/S

D#10

D#15

Page 82: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Módulos (2/2)

ARCOS @ UC3M82

� La gran mayoría de sistemas operativos modernos tienen un kernel que permite el uso de módulos:

� Linux, Solaris, BSD, Windows, etc.

� Los módulos se utilizan no solo para los drivers de los dispositivos, actualmente también se utilizan para añadir otro tipos de funcionalidad:

� El kernel de Linux lo utiliza extensivamente para sistemas de ficheros, protocolos de red, llamadas al sistema, etc.

http://www.cc.gatech.edu/~pwh/

App App

Kernel

F#18

Page 83: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Alejandro Calderón Mateos

Ejemplo de módulosWindows 2000

ARCOS @ UC3M83

System Service Dispatcher

Sistema E/S

MonitorSeguridad

Procesos/Threads

Serviciosde objetos

MemoriaMgmt

Win32GDI

Exec.RTL

Drivers

Hardware Abstraction Layer (HAL)

Kernel

Gestión de ObjectosSistemasficheros

Procesosde sistema

ServiciosAplicacs.Usuario

Subsistemasde entorno

Subsystem DLLInterface DLL

Session MgrWinLogon

ReplicatorAlerter

Event Log

Win32POSIXOS/2

Ntdll.dllUsuario

Kernel

Page 84: DSO-1: Introducción al diseño de un sistema operativo (v3b)

Lección 1Introducción

Grupo ARCOS

Diseño de Sistemas Operativos

Grado en Ingeniería Informática

Universidad Carlos III de Madrid