PDF de programación - Entorno de ejecución

Imágen de pdf Entorno de ejecución

Entorno de ejecucióngráfica de visualizaciones

Publicado el 25 de Marzo del 2019
566 visualizaciones desde el 25 de Marzo del 2019
206,8 KB
38 paginas
Creado hace 22a (04/12/2001)
ditdit

UPM

Entorno de ejecución

Juan Antonio de la Puente
DIT/UPM

Índice

! Introducción
! Perfiles de ejecución
! Modelos de planificación

– cambio de contexto
– operaciones no desalojables
– tareas esporádicas
– manejador de reloj

©1997-2000 Juan Antonio de la Puente

1

Entorno de ejecución

aplicación

núcleo de ejecución
(run-time system)

sistema
operativo

hardware

! Comprende el hardware y el software sobre el que se desarrolla la

aplicación
– Incluye software gráfico, comunicaciones, etc..

©1997-2000 Juan Antonio de la Puente

2

Proceso de diseño

! Podemos ver el diseño como un proceso de refinamiento de

modelos con niveles de abstracción decrecientes
! En el proceso de refinamiento hay que considerar

– Compromisos, propiedades que ya no se cambiarán en los niveles

inferiores

– Obligaciones, que cubren aspectos del diseño que se dejan para

los niveles inferiores

! En el diseño se van transformando las obligaciones en

compromisos
– Este proceso está sujeto a restricciones impuestas por el entorno

de ejecución

– Los requisitos del sistema o los compromisos de diseño pueden

imponer restricciones sobre el entorno de ejecución

©1997-2000 Juan Antonio de la Puente

3

Niveles de descripción

! Dos niveles de diseño

– Modelo lógico - compromisos independientes del entorno de

ejecución

– Modelo físico - compromisos dependientes del entorno de

ejecución

! La arquitectura física debe tener en cuenta las

propiedades del entorno de ejecución
– Puede ser necesario modificar el diseño para adaptarlo al entorno

de ejecución

– Debe permitir el análisis de las propiedades no funcionales

» comportamiento temporal
» fiabilidad

©1997-2000 Juan Antonio de la Puente

4

Proceso de desarrollo

Definición de requisitos

Diseño de la arquitectura lógica

Diseño de la arquitectura física

y análisis temporal

Restricciones

Diseño detallado

Codificación y

cálculo de tiempos de ejecución

Restricciones

Pruebas

y medida de tiempos

©1997-2000 Juan Antonio de la Puente

5

Requisitos del entorno de ejecución

! Determinismo

– Compatible con las condiciones necesarias para poder analizar el

comportamiento temporal

! Eficiencia

– Se debe poder garantizar el cumplimiento de los requisitos

temporales

– Puede haber restricciones de memoria u otras que afecten a la

velocidad
! Simplicidad

– No se deben incluir funciones innecesarias

©1997-2000 Juan Antonio de la Puente

6

Índice

! Introducción
! Perfiles de ejecución

– Ada 95 (perfil de Ravenscar)
– POSIX

! Modelos de planificación

– cambio de contexto
– operaciones no desalojables
– tareas esporádicas
– manejador de reloj

©1997-2000 Juan Antonio de la Puente

7

Ajuste del entorno de ejecución

! Se trata de eliminar las funciones que no sean

necesarias para
– evitar un uso excesivo de recursos
– simplificar el software y facilitar la certificación de seguridad
– eliminar el software que no cumple ninguna función útil

! Algunos lenguajes y sistemas operativos permiten

definir configuraciones restringidas
– pragma Restrictions en Ada
– perfiles en POSIX

©1997-2000 Juan Antonio de la Puente

8

Restricciones en Ada

! Se pueden especificar restricciones para hacer que el

núcleo de ejecución sea simple y eficiente

pragma Restrictions (restriction{,restriction});

restriction ::= restriction_identifier

| restriction_parameter_identifier => expression

! Las restricciones se comprueban al compilar el sistema

Ejemplo:

pragma Restrictions (Max_Task_Entries => 0);

(no se permiten citas entre tareas)

©1997-2000 Juan Antonio de la Puente

9

Restricciones para sistemas
de tiempo real

! No_Task_Hierarchy
! No_Abort_Statements
! No_Terminate_Alternatives
! No_Task_Allocators
! No_Dynamic_Priorities
! No_Asynchronous_Control
! Max_Select_Alternatives => ...
! Max_Task_Entries => ...
! Max_Protected_Entries => ...
! Max_Tasks => ...

etc.

©1997-2000 Juan Antonio de la Puente

10

Otros requisitos para sistemas
de tiempo real

! Requisitos de implementación

– intervalos de prioridad
– valores de tiempo

! Documentación

– propiedades del reloj de tiempo real
– valor mínimo de un retardo que causa una suspensión de la tarea

! Métricas

– duración máxima de un tic de reloj y amplitud máxima de un salto de reloj
– cota superior de la deriva del reloj
– tiempo de ejecución de Clock, delay y delay until, y cota superior del

retraso de delay y delay until

– tiempo de ejecución de Set__Priority sin desalojo
– tiempo de ejecución de abort
– tiempo de ejecución de una selección asíncrona

etc.

©1997-2000 Juan Antonio de la Puente

11

Restricciones para seguridad

El anexo H del estándar de Ada incluye todas las restricciones
anteriores (con Max_Tasks => 0), y además otras como
– No_Protected_Types
– No_Allocators
– No_Exceptions
– No_Floating_Point
– No_Fixed_Point
– No_IO
– No_Delay
– No_Recursion
– No_Reeentrancy
etc.

©1997-2000 Juan Antonio de la Puente

12

Sistemas críticos
(HIS, High Integrity Systems)

! Son sistemas con requisitos de seguridad muy exigentes
– deben someterse a procesos de análisis estático y dinámico

especificados por organismos de certificación

! En Ada se sigue el documento ISO/IEC TR 15942:2000.

Guide for the use of the Ada programming language
in High Integrity Systems

! Se suele usar un subconjunto seguro del lenguaje

– tradicionalmente sin tareas (p.ej. SPARK)
– subconjunto seguro con tareas: perfil de Ravenscar

©1997-2000 Juan Antonio de la Puente

13

El perfil de Ravenscar

! Subconjunto de la parte concurrente de Ada para aplicaciones

críticas

! Estrategia:

– elminar elementos con tiempo de ejecución excesivo o imprevisible
– permitir el análisis temporal del sistema
– facilitar la implementación de la concurrencia mediante un núcleo de

tiempo real pequeño, eficiente y fiable

©1997-2000 Juan Antonio de la Puente

14

Modelo de tareas de Ravenscar
! Tareas y objetos protegidos estáticos

– no hay creación dinámica ni declaraciones anidadas
– las tareas no terminan

! Objetos protegidos con una entrada, como máximo, con

– barrera simple (varable booleana declarada en el mismo objeto
– una tarea como máximo esperando que se abra la barrera

! Control de tareas síncrono (objetos de suspensión)
! Paquete Ada.Real_Time y retardo absoluto (delay until)
! Protocolos FIFO within priorities y ceiling locking
! Manejadores de interrupciones con procedimientos protegidos

La adecuación al modelo se puede comprobar al compilar
mediante restricciones (excepto terminación y colas)

©1997-2000 Juan Antonio de la Puente

15

Elementos prohibidos en el
perfil de Ravenscar

! Task hierarchies
! Protected object hierarchies
! Dynamic POs and tasks
! Task entries
! Protected types with more than

one entry

! Complex barriers
! More than one task in one entry

queue

! Requeue
! ATC
! Select statement
! Abort
! Dynamic priorities
! Calendar package
! Relative delays
! Asynchronous task control
! User-defined task attributes

©1997-2000 Juan Antonio de la Puente

16

Elementos permitidos en el
perfil de Ravenscar

! Library level tasks and POs
! Task discriminants
! Task identifiers
! FIFO within priority and Ceiling

Locking policies

! Real-Time package
! Delay until statements

! Protected procedures as

interrupt handlers

! Synchronous task control
! Atomic and Volatile pragmas
! Count Attribute

(but not within entry barriers)

©1997-2000 Juan Antonio de la Puente

17

Restricciones del perfil de Ravenscar

Estándar en Ada 95

Nuevas

No_Task_Hierarchy
No_Abort_Statements
No_Task_Allocators
No_Dynamic_Priorities
No_Asynchronous_Control
Max_Task_Entries => 0
Max_Protected_Entries => 1
Max_Asynchronous_Select_Nesting => 0
Max_Tasks => N

Simple_Barrier_Variables
Max_Entry_Queue_Depth => 1
No_Calendar
No_Relative_Delay
No_Protected_Type_Allocators
No_Local_Protected_Objects
No_Requeue
No_Select_Statements
No_Task_Attributes
No_Task_Termination

©1997-2000 Juan Antonio de la Puente

18

Pragma Ravenscar

! Resumen de todas las restricciones
! Ejemplo: GNAT

-- file gnat.adc

pragma Ravenscar;
pragma Restrictions (Max Tasks => N);
pragma Task Dispatching Policy (FIFO Within Priorities);
pragma Locking Policy (Ceiling Locking);

-- otras restricciones de seguridad
pragma Restrictions (No_Allocators,

No_IO,
-- etc.
);

©1997-2000 Juan Antonio de la Puente

19

Ejemplo: GNAT/ORK
(Open Ravenscar Kernel)

RP-compliant Ada application

restricted GNARL

adapted GNULL

ORK (real-time kernel)

hardware

©1997-2000 Juan Antonio de la Puente

20

Proceso de compilacion con
GNAT/ORK

gnat.adc

application
sources

GNAT
compiler

RTS

ALI files

GNAT
binder

application
ALI files

application
object files

elaboration

code

RTS
specs

RTS &
library

object files

GNAT
linker

ELF

executable

©1997-2000 Juan Antonio de la Puente

21

Índice

! Introducción
! Perfiles de ejecución

– Ada 95 (perfil de Ravenscar)
– POSIX

! Modelos de planificación

– cambio de contexto
– operaciones no desalojables
– tareas esporádicas
– manejador de reloj

©1997-2000 Juan Antonio de la Puente

22

Perfiles de aplicación en POSIX

! Definen subconjuntos de servicios para distintos

tipos de aplicaciones
POSIX 13 : Perfiles para sistemas de tiempo real
– PSE50 : sistema de tiempo real mínimo

» sin gestión de memoria, ficheros ni terminal
» sólo threads (no procesos pesados)
– PSE51 : controlador de tiempo real
» tiene sistema de ficheros y terminal

– PSE52 : sistema de tiempo real dedicado

» tiene gestión de memoria y procesos pesados
– PSE53 : sistema de tiempo real generalizado

» sistema completo con todo tipo de servicios

©1997-2000 Juan Antonio de la Puente

23

Índice

! Introducción
! Perfiles de ejecución
! Modelos de planificación

– cambio de contexto
– operaciones no desalojables
– tareas esporádicas
– manejador de reloj

©1997-2000 Juan Antonio de la Puente

24

Entorno de ejecución y
comportamiento temporal

! Las características del núcleo de multiprogramación
  • Links de descarga
http://lwp-l.com/pdf15572

Comentarios de: Entorno de ejecución (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad