Upload
alejandro-calderon-mateos
View
54
Download
0
Embed Size (px)
Citation preview
Lección 1Introducción
Diseño de Sistemas Operativos
Grado en Ingeniería Informática
Grupo ARCOSUniversidad Carlos III de Madrid
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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…
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…
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…
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
Alejandro Calderón Mateos
Principales características
ARCOS @ UC3M24
� Versátil
� Portabilidad
� Adaptativo
� Multidisciplinar
� Complejo
� Delicado
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, …
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
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.
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.
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.
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.
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.
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.
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.
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
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
Alejandro Calderón Mateos
Principales características:
4) Software complejo
ARCOS @ UC3M36
� Software complejo:
� Muchas líneas de código.
� Muchos equipos de trabajo.
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
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
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
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/
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.
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/
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/
Alejandro Calderón Mateos
Principales característicasresumen
ARCOS @ UC3M44
� Versátil
� Portabilidad
� Adaptativo
� Multidisciplinar
� Complejo
� Delicado
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
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/
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
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
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
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
…
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
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
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
Alejandro Calderón Mateos
Ejemplo de estructura de subsistemasLinux (versión simplificada)
ARCOS @ UC3M54
Usuario
Kernel
Núcleo
Servicios
Shell
Alejandro Calderón Mateos
SS.OO. RealesLinux (versión ‘menos’ simplificada)
http://www.makelinux.net/kernel_map.shtml ARCOS @ UC3M55
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
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
Alejandro Calderón Mateos
Ejecución asíncronaejecución (general)
ARCOS @ UC3M58
------------------------------------------------------------------------------------------
Alejandro Calderón Mateos
Ejecución asíncronaejecución (general)
ARCOS @ UC3M59
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
Al llegar un evento (ex) se ejecuta el manejador
asociado (hx)
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
Alejandro Calderón Mateos
Ejecución asíncronacódigo (general)
ARCOS @ UC3M61
int main ( … ){
…On (event1, handler1) ;…
}
1) Asociar el manejador (handler1) al evento
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
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 ( … ){}
…
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/
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
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
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++);
•
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++);
•
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++);
•
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++);
•
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
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
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
...
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
...
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
...
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
...
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
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
...
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
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
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
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
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
Lección 1Introducción
Grupo ARCOS
Diseño de Sistemas Operativos
Grado en Ingeniería Informática
Universidad Carlos III de Madrid