Publicado el 2 de Agosto del 2019
595 visualizaciones desde el 2 de Agosto del 2019
167,0 KB
39 paginas
Creado hace 32a (05/10/1992)
ENtornos Operativos para la Gestión de
Recursos de Aplicaciones Paralelas
Marisa Gil, Xavier Martorell {marisa,xavim}@ac.upc.es
Curso de Doctorado 2.002/03
Departamento de Arquitectura de Computadores
UPC
UPC/DAC Tardor 2.002
INTRODUCCIÓN
¿Qué es un sistema operativo?
(dibujo sacado de “Operating Systems. Communicating with and Controlling the Computer” Laurie S. Keller, Prentice Hall, 1988, p.7)
Almacenamiento
secundario
Gestión de
almacenamiento
secundario
Gestión de
almacenamiento/
almacenamiento
virtual
Gestión de
almacenamiento
real
Output
Output
Almacenamiento
primario
Input
Procesador
Gestión del
procesador
Entornos Operativos para la Gestión de Recursos ...
2
UPC/DAC Tardor 2.002
INTRODUCCIÓN
¿Qué es un sistema operativo?
Sistema Operativo: conjunto de software (rutinas y “programas”) que hacen de
intermediario entre el hardware y las aplicaciones.
Ap
Ap
Ap
Ap
SO
Hw
Entornos Operativos para la Gestión de Recursos ...
3
UPC/DAC Tardor 2.002
INTRODUCCIÓN
¿Qué es un sistema operativo?
• GESTOR DE RECURSOS:
- Varias aplicaciones y usuarios coexisten:
• Mejor utilización de la máquina, compartiendo todos los recursos.
- Cualquier parte de la máquina se ve como un recurso y todos los recursos
pertenecen al sistema operativo.
- Recursos tradicionales
• Discos, memoria, impresora
- Recursos en auge en la actualidad
• Procesadores: gestión del paralelismo
• Red: protocolos, coordinación en tiempo real
• Consumo de energía: sistemas embedded
• MÁQUINA VIRTUAL:
• modelo más comprensivo para el usuario
• instrucciones más simples de utilizar
Entornos Operativos para la Gestión de Recursos ...
4
UPC/DAC Tardor 2.002
INTRODUCCIÓN
El sistema operativo como gestor de recursos
• Recursos hardware de la máquina en la que está corriendo
• Recursos software (dispositivos lógicos):
buzones
ficheros
terminales virtuales
• Gestión que lleva a cabo:
- Tratar y dirigir los acontecimientos que llegan al sistema.
- Decidir a quién asigna un recurso, cómo y durante cuánto tiempo.
- Permitir la compartición y que sea “la más justa”.
• Además,
- Garantizar la protección de los programas y suya.
Entornos Operativos para la Gestión de Recursos ...
5
UPC/DAC Tardor 2.002
INTRODUCCIÓN
El sistema operativo como máquina virtual
• Ofrecer una visión simplificada -o diferente- de la arquitectura hardware
- Cómo interaccionan los componentes de un sistema, desde la visión del
usuario
- La descripción puede ser muy compleja y se divide en módulos
• división vertical, en base a la funcionalidad y su implementación
• división horizontal, en interficies, sin entrar en la implementación
:
S.O.
Gestión de
Procesos
Gestión
de Ficheros
Gestión
de Memoria
Gestión de
Dispositivos
Hardware
CPUs
Dispositivos
Memoria
Entornos Operativos para la Gestión de Recursos ...
6
UPC/DAC Tardor 2.002
INTRODUCCIÓN
El sistema operativo como máquina virtual
Las abstracciones y modelos, que pueden simplificar la visión y el estudio,
pueden sin embargo dificultar modificaciones de diseño o de nuevas
funcionalidades.
Por ejemplo, mejorar la gestión de memoria a partir de una visión de la
memoria virtual, en lugar de trabajar sobre el recurso “memoria física”
Entornos Operativos para la Gestión de Recursos ...
7
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Estructura de un sistema operativo clásico
Programa de
usuario
Programa de
sistema
Llamadas al
sistema
Llamadas al
sistema
Sistema Operativo
La manera de acceder a los servicios del sistema operativo es a través de las lla-
madas al sistema.
Todo programa, de usuario o especial, acaba realizando una llamada al sistema si
quiere acceder a los recursos del sistema.
Entornos Operativos para la Gestión de Recursos ...
8
UPC/DAC Tardor 2.002
INTRODUCCIÓN
LLamadas al sistema: Librería de sistema
programa
printf
scanf.....
factorial
potencia...
librería de C
librería matemática
read,exec...
librería del sistema
Sistema Operativo
En la librería de sistema están todas las llamadas al sistema
La apariencia de externa de una llamada al sistema es exacta-
mente igual a la de la llamada a una función o procedi-
miento del programa de usuario, o bien de una librería del
lenguaje.
Entornos Operativos para la Gestión de Recursos ...
9
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Cómo el SO realiza un servicio
Petición de un servicio
Información de que el servicio ha
finalizado y de cómo ha finalizado
USUARIO
SISTEMA
Realización del
servicio
Qué estructuras ha necesitado
Qué algoritmos ha utilizado
Cuánto tiempo ha tardado
A qué dispositivos ha accedido
Entornos Operativos para la Gestión de Recursos ...
10
UPC/DAC Tardor 2.002
INTRODUCCIÓN
El Sistema Operativo como máquina virtual
• Modelo más “comprensivo”del sistema operativo.
• La máquina real, es vista y utilizada por las aplicaciones
según la ofrezca el SO:
• modelo proceso/thread
M M M
CPU
K
M M M
CPU
CPU
CPU
K
MODELO PROCESO
MODELO THREAD
• modelo de memoria compartida/paso de mensajes
M M M
CPU
K
MEMORIA COMPARTIDA
M
CPU
K
M M
CPU
PASO DE MENSAJES
Entornos Operativos para la Gestión de Recursos ...
11
UPC/DAC Tardor 2.002
INTRODUCCIÓN
¿Cómo ven las aplicaciones los recursos?
• El SO simplifica el trabajo de las aplicaciones:
directamente dan una “orden” a su máquina virtual
“ejecutar-programa”
crear-proceso
cargar en memoria
fichero ejecutable
inicializar estructuras
en los diferentes
niveles/módulos/rutinas
• El SO las independiza de las cuestiones de política y asignación de los recursos
• compartición de recursos
• esperas de servicios.
Entornos Operativos para la Gestión de Recursos ...
12
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Estructura interna del sistema operativo
• Organización del código que forma el sistema operativo
• Depende de la metodología de diseño utilizada
• Depende de los objetivos funcionales del producto final
• fácil de comprender
• fácil de distribuir (sistemas distribuidos o en red)
• fácil de replicar y/o diversificar servicios
• fácil de modificar y/o ampliar
• Clasificación (una posible, la más tradicional)
• Monolítico
• Por capas o niveles
• Cliente/servidor
Entornos Operativos para la Gestión de Recursos ...
13
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Sistema operativo monolítico
Programa de
aplicación
.
.
.
Programa de
aplicación
Servicios del Sistema
Modo Usuario
Modo Kernel
Procedimientos
de S.O.
Hardware
• Las principales ventajas: simplicidad y eficiencia
• Buena integración de todos sus componentes
• Cuando el sistema crece, es difícil de ampliar.
• Son sistemas monolíticos: UNIX, DOS, Mach.
Entornos Operativos para la Gestión de Recursos ...
14
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Sistema Operativo por capas o niveles
Programa de
aplicación
.
.
.
Programa de
aplicación
Modo Usuario
Modo Kernel
Servicios del Sistema
Sistema de Ficheros
Administrador de dispositivos de E/S y memoria
Planificador del procesador
Hardware
• Potencia el desarrollo en grupos diferentes
• Fácil de entender y extender (añadir, modificar capas)
• Difícil definir “capas limpias”
• Ineficiencia de ver sólo el nivel inmediato
• Solución: capas porosas.
Entornos Operativos para la Gestión de Recursos ...
15
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Sistema operativo cliente/servidor
usuario
S. de
disco
S. de
ficheros
NÚCLEO
HW
Servidor
de proceso
• Todos los módulos son clientes y servidores del resto
• Permite modificar y ampliar los servicios
• Su principal problema es la sobrecarga de comunicación
• Punto de partida del diseño basado en el kernel
servidor
de
impresora
usuario
UNIX
server
usuario
microkernel
HW
Entornos Operativos para la Gestión de Recursos ...
16
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Estructura del sistema operativo
aplicación
interfaz de llamadas al sistema
vector de interrupciones
sincronización
planificación
memoria virtual
sistema de
ficheros
cola de peticiones de E/S
capa dependiente de la máquina (y dispositivos)
memoria
reloj
disco
TLB
CPU
pantalla
red
consola
Entornos Operativos para la Gestión de Recursos ...
17
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Abstracciones del sistema:
PARALELISMO/ASIGNACIÓN DE RECURSOS
Objeto al que el SO asigna los recursos
• Proceso
• Task-Thread
• Environment
• Realm
• Scheduler activation
Gestión de recursos asociada al objeto
• Espacio de direcciones
• Entornos de ejecución
• Políticas de asignación y compartición
Entornos Operativos para la Gestión de Recursos ...
18
UPC/DAC Tardor 2.002
INTRODUCCIÓN
El Proceso
• Process Control Block: contenedor donde guardar su estado
next
previous
process
state
process id
program counter
registers
memory structure
open file table
etc
Entornos Operativos para la Gestión de Recursos ...
19
UPC/DAC Tardor 2.002
INTRODUCCIÓN
La Task y el Thread en la Máquina Virtual que ofrece el S.O.
• Descomposición de la noción de proceso en dos abstracciones: Task y Thread
• Task
- Conjunto de recursos del sistema, agrupados en una entidad
- Dos Tasks no comparten nada si no se ha tomado una acción específica
- Contiene un cierto número de threads
• Thread
- Punto de un flujo de control dentro de una Task
- Pertenece a una única Task que define su espacio de direcciones
- Tiene acceso a todos los elementos de la Task
- Ejecuta potencialmente en paralelo con otros Threads
- Tiene un estado de ejecución “mínimo” (un PC y un SP)
- No hay relación de parentesco, todos son independientes
- Comunicación por memoria compartida, sincronización explícita
- Es planificado en procesador, posibles mapeos
- Es necesario para operaciones de SO, mantiene el estado
Entornos Operativos para la Gestión de Recursos ...
20
UPC/DAC Tardor 2.002
INTRODUCCIÓN
Tasks/Threads vs. Procesos
• Modelo de proceso (máquina virtual monoprocesador) y
modelo de Task/Thread (máquina virtual multiprocesador)
• Motivación de la multiprogramación: Utilización eficiente de los recursos de la
máqu
Comentarios de: ENtornos Operativos para la Gestión de Recursos de Aplicaciones Paralelas (0)
No hay comentarios