Sotr 1

73
1 SISTEMAS OPERATIVOS DE TIEMPO REAL Prof. Roberto Vignoni Facultad de Ingeniería,UNLP

Transcript of Sotr 1

Page 1: Sotr 1

1

SISTEMAS OPERATIVOS DE TIEMPO REAL

Prof. Roberto Vignoni

Facultad de Ingeniería,UNLP

Page 2: Sotr 1

2

Programa

1) Introducción a los sistemas operativos

Historia y evolución

Generalidades

2) Procesos

Creación y estados

Transición

Planificación: Criterios y algoritmos

3) Gestión de memoria

Asignación contigua y no contigua

Memoria virtual

4) Gestión de Archivos

5) Sistemas operativos de tiempo real

Funcionalidades y características

Planificación

Sincronización

Estándares y técnicas de evaluación

de funcionamiento

6) Ejemplos de S.O. de Tiempo Real

Page 3: Sotr 1

3

Sistemas Operativos

Programas del Sistema

Software

Programas de Aplicación

� Definición: Sistema manejador de recursos

que permite una distribución controlada y

ordenada del µp,.memoria, E/S, entre los

diversos programas que compiten por ellos.

Internet Sist. Contable Juegos

Compilad. Editores Interpretes

Sistema Operativo

Lenguaje de Máquina

Microprogramación

Dispositivos Físicos

Aplicaciones

C.I. Plaquetas, cables, etc.

(Modo usuario)

(Modo supervisor)

Instrucciones - Assembler

Page 4: Sotr 1

4

� Historia Los SO han evolucionado

intimamente ligados con la evolución de las

computadoras que los utilizan.

– 1a Generación (1945-1955)

Tubos de vacío - Tableros enchufables

Programación en lenguaje absoluto -

Cableado

Cálculos numéricos directos (Tablas de

senos y cosenos)

Después de 1950 - Tarjetas perforadas -

Procesos en serie.

– 2a Generación (1955-1965)

Transistores - Sistemas por lotes -

Tarjetas perforadas

Programación en Fortran

Sist Op. FMS (Fortran Monitor System)

IBSYS Sist. Op. de IBM 7094.

Page 5: Sotr 1

5

� 3a Generación (1965-1980)

Circuitos Integrados - Multiprogramación

Sistema /360 IBM - Científico y Comercial

Bajo tiempo de respuesta de sist. por lotes

Tiempo compartido

– CTSS del MIT primer sistema de tiempo compartido

sobre IBM 7904

MIT

Bell Labs MULTICS (Información

GE multiplexada y servicios de

computación)

Objetivo

Principal

Origen de

las

Instrucci

ones

Al sist.

Op.

Multiprogramación

Por lotes

Tiempo

compartido

Maximizar la

Utilizacion del µp

Instrucciones de

control incluidas

con el trabajo

Minimizar el

Tiempo de resp.

Ordenes dadas

desde una

terminal

Page 6: Sotr 1

6

– Si bien fracasó tuvo enorme influencia en

sistemas subsiguientes.

– Fenomenal crecimiento de las

minicomputadoras PDP -1 a PDP -11

Brian Kernigan UNICS

UNIX

Dennis Ritchie Creador de “C”

� 4aGeneración (1980-1990)

Computadora personal

MS-DOS Intel

UNIX Motorola y otras

(más grandes)

� 5a Generación (1990 - ?

Windows 95 - NT

Linux

UNIX

Sistemas operativos distribuidos

Page 7: Sotr 1

7

Procesos

� Proceso: Es la unidad más pequeña de

trabajo, individualmente planificable por un

SO. Es un concepto dinámico y se refiere a un

programa en ejecución que sufre cambios de

estados y atributos.

� Programa ejecutable: entidad estática que

puede dar lugar a uno o varios procesos.

Page 8: Sotr 1

8

� Creación y terminación de procesos

– Motivos:

» Nuevo trabajo en un proceso por lotes

» Conexión interactiva

» Creado por el SO para brindar un

servicio

» Generado por un proceso existente

» Terminación normal

» Tiempo límite excedido

» No hay memoria disponible

» Violación de límites de memoria

» Fallo de E/S

» Intervención del operador o del SO

» Terminación del proceso padre

Page 9: Sotr 1

9

Suspendido

� Desde el punto de vista del SO, los procesos

pueden adoptar distintos estados

� Nuevo: Proceso recién creado, pero no admitido

por el SO como ejecutable

� Listo o preparado: Posee todos los recursos

excepto el procesador

� En ejecución: Está siendo ejecutado

� Suspendido o bloqueado: Carece de algunos

recursos además del µp

� Terminado: Ha sido excluido del grupo de los

ejecutables

Nuevo Listo Ejecución Terminado

Admitir

Planificado

ExpropiadoLiberar

Espera

Suceso

Page 10: Sotr 1

10

� Bloque de control de proceso (BCP)

Creado por el SO cuando un proceso se

instala y que sirve como descriptor durante

toda la vida del proceso.

El BCP incluye todos o algunos de los

siguientes campos de información

– Nombre del proceso

– Prioridad

– Estado (listo, en ejecución o suspendido)

– Estados de hardware (registros, flags)

– Información de planificación

– Información de gestión de memoria

– Estados de E/S (dispositivos asignados,

operaciones pendientes)

– Información de gestión de archivos (abiertos,

derechos de acceso)

Page 11: Sotr 1

11

� Listas de procesos

Creadas por el SO

» Lista de procesos preparados

» Lista de procesos suspendidos

� Usuario Sistema operativo

Px en

Ejecución

� Cambio

Suceso de Modo Guarda estados de

hardware de Px en

BCPx

Actualiza estados de Px,

datos de planificador, etc.

Atiende el suceso.(No se

considera parte de la

conmutación.

Planifica el siguiente

proceso a ejecutar Py

Restaura el estado de

Hardware de Py

Cambio Restaura atributos desde

de Modo BCPy

Py en Ejecución

Page 12: Sotr 1

12

� Hebras – Hilos – (Threads)

� También llamada proceso liviano (light weight

process). Son miniprocesos con estados

reducidos que comparten recursos tales como

memoria y archivos.

� Cada hebra pertenece exclusivamente a un

solo proceso y ninguna hebra puede existir

fuera de un proceso.

� El proceso pasa a ser estático y se convierte

en un entorno y propietario de recursos para la

ejecución de las hebras.

� Sistemas que no usan hebras: Tradicionales,

pesados, buena protección, bajo rendimiento,

UNIX

� Sistemas con hebras: Livianos, rápidos, poca

protección, alto rendimiento, OS/2, Windows

NT.

Page 13: Sotr 1

13

� Planificación

Conjunto de políticas y mecanismos del

SO que gobiernan el orden en que se

ejecutan los procesos.

� Planificación a largo plazo: Decisión de agregar

procesos a la reserva de procesos a ejecutar.

� Planificación a medio plazo: Decisión de

agregar procesos al conjunto de procesos que

se encuentran parcial o completamente en

memoria.

� Planificación a corto plazo: Decisión sobre que

proceso disponible será ejecutado por el

microprocesador.

� Planificación de E/S: Decisión sobre que

solicitud de E/S pendiente, será tratada por un

dispositivo disponible.

Page 14: Sotr 1

14

� Se pueden relacionar las funciones de

planificación con el diagrama de transición de

estados de un proceso.

PLPPLPNuevo

Listo y

Suspendido Listo Ejecutando

Bloqueado y

Suspendido BloqueadoTerminado

PMP

PMP

PCP

Page 15: Sotr 1

15

� Planificador a largo plazo

� Determina cuales de los programas son

admitidos en el sistema controlando asi el grado

de multiprogramacion.

� Planificador de medio plazo

� Forma parte de la función de intercambio.

Controla las transiciones de suspendido a

preparado de los procesos retirados.

Ejecutando

Listo

Bloqueado

Bloqueado y

Suspendido

Listo y

Suspendido

Nuevo TerminadoPLP

PMP

PCP

Page 16: Sotr 1

16

� Planificador a corto plazo (dispatcher)

� Asigna el µp a un proceso entre los preparados

residentes en memoria. Se ejecuta cuando un

suceso conduce a la interrumpción del proceso

en ejecución u ofrece la posibilidad de

expulsarlo a favor de otro.

� Interrupciones basadas en tiempo (Tics de

reloj)

� Interrupciones y terminaciones de E/S

� Lammadas al sistema operativo

� Envio y recepción de señales

� Criterios de Planificación

Criterios orientados al usuario - Criterios de

rendimiento

– Tiempo de Respuesta: Para un proceso

interactivo, es el intervalo de tiempo

transcurrido desde que se emite una solicitud,

hasta que se comienza a recibir respuesta.

– Tiempo de Retorno: Es el intervalo de tiempo

transcurrido entre el lanzamiento de un proceso

y su finalización.

Page 17: Sotr 1

17

– Plazo: Si se pueden especificar plazos de

terminación de un proceso, se deben considerar

la maximización de plazos cumplidos.

Criterios orientados al usuario - Otros criterios

– Pervisibilidad: Un determinado trabajo se debe

ejecutar aproximadamente en el mismo tiempo

y con el mismo coste, sin importar la carga del

sistema.

Criterios orientados al sistema - Criterios de

rendimiento

– Productibilidad: Se debe intentar maximizar el

número de procesos terminados por unidad de

tiempo. Depende de la longitud media de cada

proceso, pero también de la técnica de

planificación.

– Utilizacion del Prosesador: Se considera el

porcentaje de tiempo que el procesador se

mantiene ocupado.

Page 18: Sotr 1

18

Criterios orientados al sistema - Otros criterios

– Equidad: En ausencia de directivas del usuario

o del SO, los procesos deben ser tratados de

igual forma. Ningún proceso debe sufrir

inanición.

– Prioridades: La planificación debe favorecer a

aquellos procesos a los que se haya asignado

mayor prioridad.

– Equilibrios: Se deben mantener ocupados los

recursos del sistema

� Algoritmos de Planificación

» Expropiativa

» No expropiativa

– Primero en llegar, primero en ser servido

(FCFS)

– Turno rotatorio (RR Round Robin)

– Primero el proceso mas corto (SPN, Shortest

process Next)

Page 19: Sotr 1

19

– Menor tiempo restante (SRT, Shortest

Remainning Time)

– Planificación expropiativa basada en prioridades

– Se utiliza realimentación con múltiples niveles

RQ0

RQ1

RQn

CPU

CPU

CPU

Liberar

Liberar

Liberar

Entrada

Page 20: Sotr 1

20

Gestión de Memoria

� Se ocupa de asignar memoria física de

capacidad finita a los procesos que la solicitan.

� Separación y protección de espacios de

memoria – Compartición

� Se pueden realizar distintea clasificaciones:

– Asignación Contigua

– Asignación No Contigua

Page 21: Sotr 1

21

� Asignación Contigua

� Cada objeto lógico es colocado en bloques

de memoria cuyas direcciones son

estrictamente contiguas.

� Partición Estática: Cuando se inicializa el

sistema

� Inconveniente: Fragmentación interna

� Partición Dinámica: En respuesta a

demandas del usuario

� Inconveniente: Fragmentación externa

Page 22: Sotr 1

22

� Esquemas de Gestión

� Monitor de un solo proceso (PC-DOS)

� Parte residente del SO

� Memoria

Procesos transitorios, cargados

y ejecutados uno por vez.

� Solo existe protección para el código del SO

� Registro valla

� Bits de protección

Page 23: Sotr 1

23

� Multiproceso - Partición estática

� Tabla de descripción de particiones (TDP)

� Estrategias de Asignación de Particiones

– Primer Ajuste: Asigna la primera partición libre,

lo suficientemente grande para acomodar al

proceso.

– Mejor Ajuste: El SO asigna la partición más

pequeña que satisfaga las necesidades del

proceso.

� La elección es según sea necesaria la

velocidad de ejecución o la utilización de

memoria.

Nº de

Partción

Direcc.

Base

Tamaño Estado

0 100 K Asig.

1

0 K

100 K 300 K Libre

2

3 500 K

400 K

250 K

100 K

Asig.

Asig.

4 750 K 250 K Libre

Page 24: Sotr 1

24

� Situaciones en que el SO no puede asignar

una partición:

1 Ninguna partición es lo suficientemente

grande. Mensaje de error.

Reconfiguración.

2 Todas las particiones están asignadas. Se

pospone la carga. Se libera una partición

(intercambio).

3 Hay particiones libres pero ninguna es lo

suficientemente grande. Se usan las dos

opciones anteriores.

� Intercambio (Swapping)

– Es el retiro de memoria de los procesos

suspendidos o expropiados y su posterior

reincorporación.

� Intercambiador: Proceso del SO encargado

de:

– Seleccionar procesos para retirarlos de

memoria

– Seleccionar procesos para incorporarlos a

memoria

Page 25: Sotr 1

25

– Gestionar y asignar espacio de intercambio.

� (Funciones de un planificador a medio plazo)

� Criterios de selección de procesos a ser

retirados de memoria.

– Procesos de baja prioridad

– Procesos que esperan sucesos lentos

– Tiempo que el proceso se encuentra instalado

en memoria

– Si han sido ejecutados mientras estaban en

memoria

� Archivo de intercambio: Almacena la imagen

dinámica de un proceso retirado.

– Global: Unico, grande, creado en la

inicialización, estático.

– Dedicados: Pequeños, uno por cada proceso,

dinámicos.

Page 26: Sotr 1

26

� Reubicación: Donde se almacena un

proceso que había sido retirado

temporariamente.

– Estática: El programa parcialmente ejecutado y

retirado de memoria, es recuperado en la

misma partición de la que fue desalojado.

Alta complejidad espacial y temporal.

– Dinámica: Utiliza direcciones virtuales. Se

realiza en tiempo de ejecución. Asistencia de

hardware para la correspondencia entre

direcciones virtuales y espacio físico.

Page 27: Sotr 1

27

� Compartición

� La gestión de memoria debe permitir la

compartición de datos y código entre

procesos cooperativos.

� Existen tres técnicas básicas:

• Los objetos compartidos los maneja el

SO como llamadas al sistema. Simple,

pero se genera un SO grande

monolítico y difícil de mantener.

• Mantener múltiples copias de los

objetos compartidos, uno por cada

partición de la cooperación. El SO es

el encargado de mantener

actualizados los datos. Lento y se

utiliza mucha memoria.

• Utilizar particiones de memoria

compartidas. Recarga de trabajo al

SO.

Page 28: Sotr 1

28

� Asignación de Memoria – Partición

Dinámica

� Algoritmos de selección

– Primer Ajuste (First Fit). El gestor de memoria

busca el primer bloque libre lo suficientemente

grande como para alojar la partición. Se

comienza a examinar desde la primera

posición de memoria.

– Siguiente Ajuste (Next Fit). Se comienza a

examinar la memoria desde la dirección

indicada por un puntero que fue guardado

donde termino la asignación anterior.

– Mejor Ajuste (Best Fit). Se recorre toda la

memoria libre hasta encontrar el bloque más

pequeño que pueda alojar la partición que esta

siendo creada.

– Peor Ajuste (Worst Fit). Siempre se asigna el

bloque más grande, siempre que este exceda

en tamaño al de la partición a crearse.

Page 29: Sotr 1

29

� Compactación

– Cuando la memoria resulta seriamente

fragmentada, hay que reubicar alguna o todas

las particiones en un extremo de la memoria y

asi combinar los huecos para formar una unica

area libre grande.

– Se puede realizar:

Siempre que sea posible

Solo cuando es necesaria

� Segmentación

– Consiste en dividir el espacio de memoria de

un proceso, en bloques que puedan ser

ubicados en areas no contiguas de memoria.

– Se realiza la ruptura del espacio de memoria

en varias entidades lógicas llamadas

segmentos.

Page 30: Sotr 1

30

� Asignación No Contigua

� Partes de un objeto lógico pueden estar

colocados en áreas no contiguas de memoria

física. Existe una correspondencia entre el

espacio de direcciones virtuales contiguo y

las posiciones de memoria física no

contiguas.

� Paginación

� La memoria física se divide en una serie

de porciones de tamaño fijo denominadas

marcos de página.

� El espacio de direcciones virtuales se

divide en bloques de igual tamaño llamados

páginas.

� La asignación de memoria consiste en

generar la correspondencia entre páginas

virtuales con sus marcos de página físicos, y

se realiza a partir de un mecanismo de

traducción de direcciones. Como la

correspondencia se hace separadamente, los

diferentes marcos asignados a un proceso,

no necesitan estar en áreas contiguas de

memoria física.

Page 31: Sotr 1

31

� Los métodos de traducción de direcciones se

realizan con la ayuda de tablas:

� (TMP) Tabla de mapa de páginas

� (TMM) Tabla de mapa de memoria

� Memoria Virtual

� Una imagen del espacio de memoria

real de un proceso se mantiene en memoria

secundaria, trayendo partes de esa imagen a

memoria principal, según sea necesario. La

memoria virtual permite la ejecución de

procesos parcialmente cargados.

� La memoria virtual, puede considerarse

como una extensión de la paginación o de la

segmentación o una combinación de ambas.

Page 32: Sotr 1

32

� La traducción de direcciones se realiza por

medio de:

� Tablas de mapa de páginas

� Tablas de descriptores de

segmentos

� Ambas

Page 33: Sotr 1

33

� La gestión de memoria virtual presenta

distintas políticas:

» .Política de asignación: Que cantidad

de memoria real se asigna a cada

proceso activo.

» .Política de acceso: Cuando y que

elementos se incorporan desde el

almacenamiento secundario a la

memoria principal.

» .Política de sustitución: Cuando hay

que incorporar un nuevo elemento y

no existe memoria real libre, que

elemento se desaloja.

» .Política de ubicación: Donde se

coloca el elemento nuevo.

� En general los elementos son traídos a

memoria principal cuando en el proceso en

ejecución produce una excepción por

elemento ausente. Es decir paginación o

segmentación por demanda. También se

utilizan políticas de prebúsqueda

Page 34: Sotr 1

34

� La política de ubicación sigue las reglas de la

paginación y segmentación.

� Políticas de Sustitución

� Si el gestor de memoria no dispone de

marcos de página libres cuando se genera

una excepcióm por elemento ausente puede:

» )Suspender el proceso con elemento

faltante hasta que haya espacio

suficiente en memoria.

» )Desalojar una página para dejarle

sitio a la del proceso que lo solicita.

� Algoritmos de sustitución

� Primero en entrar, primero en salir

(FIFO): Sustituye la página residente que

lleve mas tiempo en memoria. Se utiliza una

cola de páginas para llevar la cuenta del

orden relativo en que se cargan las páginas

en memoria.

Page 35: Sotr 1

35

� Menos recientemente usada, (LRU,

Least Recently Used): En la mayoría de los

casos mejor que el anterior ya que considera

los patrones de comportamiento de los

programas. Impone recargo de software y

requiere de soporte hardware.

� Optimo: Algoritmo teórico desarrollado

por Belady, requiere conocimiento del

comportamiento futuro de los procesos, por lo

que no es realizable y se utiliza como

referencia en simulaciones.

� Aproximaciones o Reloj: Dado que el

FIFO tiene bajo rendimiento y el LRU es

costoso, se utiliza una combinación de ambos

conocida como reloj o No Recientemente

Usado (NRU)

Page 36: Sotr 1

36

GESTION DE ARCHIVOS

� Servicios brindados por el SO a los

usuarios y aplicaciones, relativos al empleo de

archivos.

� Presenta los siguientes objetivos:

• Cumplir con las necesidades de gestión

de datos y con requisitos del usuario.

� Almacenamiento

� Recuperar todo

� Recuperar previo

� Recuperar uno

� Borrar uno

� Actualizar

� Insertar

Page 37: Sotr 1

37

• Garantizar dentro de lo posible que los

datos sean válidos.

• Optimizar el rendimiento, desde el

punto de vista del sistema:

productividad global y desde el punto

de vista del usuario: tiempo de

respuesta.

• Ofrecer soporte de entrada/salida para

diversos dispositivos de

almacenamiento.

• Minimizar las posibilidades de pérdida

o destrucción de datos.

• Proporcionar soporte de entrada/salida

para múltiples usuarios en sistema

multiusuario.

Page 38: Sotr 1

38

– Arquitectura de un sistema de archivos

� En forma genérica podríamos considerar

cinco niveles:

� Manejadores de dispositivos (Device

Drivers): Puede considerarse el nivel más

bajo. Se comunican directamente con

periféricos o sus controladores. Son

responsables de iniciar las operaciones de

E/S en un dispositivo (generalmente disco o

cinta) y procesar la terminación de una

petición de E/S.

� Sistema de Archivos Básico, o nivel

de E/S física. Este nivel maneja bloques de

datos que son intercambiados con sistemas

de disco o cinta. No comprende la estructura

de los datos, solo se encarga de ubicarlos en

dispositivos de almacenamiento secundario o

intermedio.

Page 39: Sotr 1

39

� Supervisor Básico de Entrada/Salida:

Es responsable de toda iniciación y

terminación de toda E/S con archivos. Tiene

estructuras de control que se encargan de la

E/S con los dispositivos, la planificación y el

estado de los archivos.

� E/S Lógica: Permite a los usuarios y

aplicaciones acceder a los registros. A

diferencia de l sistema de archivos básico

que trabaja con bloques, la E/S lógica lo hace

con registros.

� Método de Acceso: Es el nivel más

cercano al usuario. Proporciona una interfaz

entre las aplicaciones y los sistemas de

archivos y dispositivos que guardan datos.

– Organización y Acceso a Archivos

� La mayor parte de las estructuras de

archivos empleadas en sistemas reales, se

encuadran dentro de alguna de las siguientes

categorías o como combinación de ellas.

Page 40: Sotr 1

40

� Pilas: Es la forma más simple de

organización. Los datos se recogen por orden

de llegada. Son registros con ráfagas de

datos. Pueden tener campos diferentes o

similares en distinto orden. Cada campo debe

ser autodescriptivo (nombres, valor y

longitud).

� El acceso se hace en forma exhaustiva, para

encontrar un registro, es necesario examinar

uno por uno hasta ubicarlo.

� Esta clase de archivos aprovecha bien el

espacio, son fáciles de actualizar, pero fuera

de usos limitados no se adapta a la mayoría

de las aplicaciones.

� Archivos secuenciales.

� Es la forma más común de estructura de

archivo. Tiene un formato fijo para todos los

registros, estos tienen la misma longitud y el

mismo número de campos de tamaño fijo y

en un orden determinado.

Page 41: Sotr 1

41

� Un campo particular, generalmente el

primero de cada registro, se denomina campo

clave e identifica unívocamente al registro.

Los registros se almacenan en secuencia por

la clave (numérica, alfabética, etc.).

� La búsqueda secuencial ofrece pobre

rendimiento.

� Archivos secuenciales indexados.

Mantienen las características básicas de los

archivos secuenciales. Los registros se

organizan en una secuencia basada en un

campo clave, pero se agregan dos

características nuevas que son el índice de

archivo, para soportar accesos aleatorios y un

archivo de desborde (overflow).

Page 42: Sotr 1

42

� La estructura más simple, utiliza un solo

nivel de indexación. El índice, es un archivo

secuencial simple con dos campos: un campo

clave similar al del archivo principal y un

puntero al archivo principal. Para encontrar

un campo específico, se busca en el índice

hasta encontrar el valor mayor de la clave,

que sea igual o inmediatamente anterior al

valor deseado. La búsqueda continua en el

archivo principal a partir de la posición

indicada por el puntero.

� Cada registro del archivo principal tiene

un campo que resulta invisible para las

aplicaciones que es un puntero al archivo de

desborde. Cuando se agrega un nuevo

registro a un archivo, esto se realiza en el

archivo de desborde, pero se actualiza el

registro precedente del archivo principal con

un índice que apunta al nuevo registro en el

archivo de desborde.

Page 43: Sotr 1

43

� Este tipo de archivo, reduce

significativamente el tiempo necesario para

acceder a un registro. Se pueden utilizar

múltiples niveles de indexación para obtener

mayor eficacia en el acceso, aunque

complicando al Sist. Op.

� Archivos Indexados.

� En este caso no existen los conceptos de

secuencialidad y clave única. Los registros

son accedidos solo a través de sus índices.

No hay restricción en la ubicación de los

registros ya que cada uno está apuntado por

al menos a un índice. Se pueden utilizar

registros de longitud variable.

� Se suelen utilizar dos tipos de índices,

uno exhaustivo y uno parcial.

Page 44: Sotr 1

44

� Archivos directos o de dispersión.

� Explotan la capacidad de los discos para

acceder directamente a cualquier dirección de

memoria conocida. Se requiere de un campo

clave en cada registro pero no existe el

concepto de ordenamiento secuencial.

También utilizan archivos de desborde.

Page 45: Sotr 1

45

Directorios y Subdirectorios

� Son archivos del sistema operativo que

contienen información de otros archivos

contenidos en ellos, incluyendo atributos,

ubicación, propietarios, etc. Gran parte de

esta información es gestionada por el sistema

operativo.

� Algunas operaciones relacionadas con

los directorios son:

� Crear Directorio

� Buscar

� Borrar Archivo

� Listar Directorio

� Etc.

– Compartición de Archivos

� Es importante en sistemas multiusuario,

y su gestión se realiza teniendo en cuenta los

denominados derechos de acceso:

Page 46: Sotr 1

46

� Ninguno Adición

Usuario Específico

� Conocimiento Actualización

Grupos de Usuarios

� Ejecución Cambio de Protección

Todos

� Lectura Solamente Borrado

� En casos de compartición de archivos

por parte de dos o más usuarios con

derechos de acceso similares, el Sist. Op.

debe realizar tareas especiales, que

consideran los aspectos de exclusión mutua

e interbloqueo.

Page 47: Sotr 1

47

SISTEMAS OPERATIVOS DE TIEMPO REAL

� Un proceso o tarea de tiempo real es el

que se ejecuta en conexión con algún proceso,

función o conjunto de sucesos externos al

sistema informático y que debe cumplir uno o

más plazos para interactuar en forma correcta

y eficiente con el entorno exterior.

� Podemos decir que el procesamiento en

tiempo real, es un tipo de procesamiento en el

que la exactitud del sistema no depende solo

del resultado lógico de un cálculo, sino

también del instante en que se produzca este

resultado. Algunas aplicaciones de tiempo real

incluyen: control de procesos, robótica, control

de tráfico aéreo, sistemas de control y mando

de aviones, satélites, etc.

Page 48: Sotr 1

48

� Dado que los sucesos y por ende la

atención de los mismos se produce en tiempo

real, es posible hacer una clasificación en

función del plazo asociado a una tarea en

particular.

� Tarea rígida de tiempo real: Debe

cumplir un plazo, en caso contrario se

producirán daños o error fatal en el sistema.

� Tarea flexible de tiempo real: Tiene un

plazo de ejecución asociado, que es

conveniente pero no obligatorio y aunque

haya vencido el plazo, todavía tiene sentido

planificar y completar la tarea.

� Otra característica de las tareas de

tiempo real es que pueden ser:

� Aperiódica: es recurrente pero no a

intervalos regulares. Por ejemplo la llegada

de un avión al espacio aéreo de un

controlador.

� Periódicas: el estímulo o suceso ocurre de

manera regular cada ∆T segundos, como el

procesador de un TV que recibe un cuadro

cada 1/60 de segundo.

Page 49: Sotr 1

49

� Esporádicos (inesperados): por ejemplo el

sobrecalentamiento de un dispositivo.

� Los SOTR se pueden caracterizar por

presentar requisitos especiales en las

siguientes áreas:

� Determinismo: Un sistema es determinista

cuando realiza operaciones en intervalos de

tiempo predeterminados. Si existen varios

procesos que compiten por los recursos y por

el tiempo del procesador, ningún sistema será

completamente determinista. Hasta donde un

sistema puede satisfacer las peticiones en

forma determinista, depende de la velocidad

con que pueda responder a las interrupciones

y si el sistema posee los recursos para

gestionar todas las peticiones en el tiempo

exigido.

� Sensibilidad: El determinismo se refiere al

tiempo que tarda un SO en reconocer una

interrupción. La sensibilidad tiene en cuenta

el tiempo que tarda en dar servicio a la

interrupción.

Page 50: Sotr 1

50

� Existen tres características importantes

a tener en cuenta:

� 1.- La cantidad de tiempo necesario para

iniciar la gestión de la interrupción y

comenzar la ejecución de su rutina de

tratamiento (ISR, Interrupt Service Routine)

� 2.- La cantidad de tiempo necesario para

ejecutar la ISR depende generalmente de la

plataforma de hardware.

� 3.- El efecto de anidamiento de las

interrupciones. El servicio será mas lento si

una ISR puede ser interrumpida por otra

interrupción.

� El determinismo y la sensibilidad forman

conjuntamente el tiempo de respuesta a

sucesos externos. Este tiempo es critico en

SOTR.

Page 51: Sotr 1

51

� Fiabilidad: Es mucho más importante en

SOTR. Un fallo transitorio en un SO común,

puede solucionarse reiniciando el sistema. El

fallo de un procesador en sistemas

multiprocesadores, reduce el nivel de

servicio.

� En un SOTR, las perdidas o

degradaciones del rendimiento pueden tener

consecuencias catastróficas.

� Tolerancia a fallas: es una característica que

hace referencia a la capacidad de un sistema

de mantener máximas posibilidades de

trabajo y máxima cantidad de datos posibles

en caso de fallo. Un SOTR intentará corregir

el problema o minimizar sus efectos mientras

continua la ejecución.

� Un aspecto importante de la tolerancia a

fallos es la estabilidad. Un SOTR es estable

si en los casos en que es imposible cumplir

con todos los plazos de ejecución de las

tareas, el sistema si cumplirá con las tareas

más críticas y de mayor prioridad, aun

cuando no se cumplan los de algunas tareas

menos críticas.

Page 52: Sotr 1

52

� Para cumplir los requisitos anteriores,

los SOTR incluyen las siguientes

características:

• Pequeño tamaño (con una mínima

funcionalidad asociada)

• Cambios de contexto rápidos

• Capacidad para responder

rápidamente a interrupciones externas

• Multitarea con herramientas de

comunicación entre procesos, como

semáforos y señales

• Uso de archivos secuenciales para

almacenar datos a alta velocidad

• Planificación expropiativa basada en

prioridades

• Reducción de los intervalos en los que

están deshabilitadas las interrupciones

• Alarmas especiales y temporizadores

Page 53: Sotr 1

53

� El corazón de un SOTR es el planificador de

corto plazo. En el diseño de tales

planificadores, no es importante la equidad ni

el tiempo medio de respuesta. Lo que resulta

importante es que todas las tareas rígidas de

tiempo real comiencen y acaben en su plazo

y que la mayor cantidad de tareas flexibles

también sean ejecutadas.

– Planificación en tiempo real

– En el estudio de los algoritmos de

planificación de tiempo real, se observa

que los métodos de planificación

dependen de:

– )Si el sistema lleva a cabo un análisis de

planificación

– )En caso afirmativo si se realiza en forma

estática o dinámica

– )Si el resultado del análisis genera un plan

con respecto al cual se expiden las tareas

durante la ejecución.

Page 54: Sotr 1

54

– En base a las consideraciones anteriores

se pueden identificar las siguientes clases

de algoritmos:

� Métodos con tablas estáticas: Realizan un

análisis estático de las planificaciones

posibles. El resultado del análisis es un plan

que determina, durante la ejecución, cuando

debe comenzar o terminar la ejecución de

una tarea. Es aplicable a tareas periódicas.

Los datos iniciales son:

– Tiempo periódico de llegada

– Tiempo de ejecución

– Plazo periódico de finalización

– Prioridad relativa de cada tarea

– El planificador intenta trazar un plan que

le permita cumplir las exigencias de todas

las tareas periódicas. Es un método

predecible e inflexible, ya que cualquier

cambio de exigencia en una tarea,

requiere un nuevo plan.

Page 55: Sotr 1

55

– Métodos apropiativos con propiedades

estáticas: También se realiza un análisis

estático, pero no se traza ningún plan. En

cambio, se usa dicho análisis para asignar

prioridades a tareas, con lo que se puede

usar un planificador apropiativo con

prioridades convencional. En este caso la

asignación de prioridades se encuentra

relacionada con las restricciones de

tiempo asociadas a cada tarea.

– Métodos dinámicos de planificación: Se

determina la viavilidad durante la

ejecución (dinámicamente), en vez de

antes de empezar la ejecución

(estáticamente). Se acepta una nueva

tarea para ejecutar solo si es factible

cumplir con sus restricciones de tiempo.

Page 56: Sotr 1

56

– Métodos dinámicos de mejor resultado: No

se realiza ningún análisis de viavilidad, ya

que las tareas son generalmente

aperiódicas. El sistema intenta cumplir

todos los plazos y abandona cualquier

proceso ya iniciado y cuyo plazo no se

haya cumplido.

� Es la técnica utilizada en la mayoría de

los SOTR en la actualidad. Cuando llega una

tarea, el sistema le asigna una prioridad en

función de sus características. Se emplea

normalmente algún tipo de planificador por

plazos. En general se desconoce si se va a

cumplir una restricción de tiempo hasta que

vence el plazo o la tarea concluya. Esta es la

mayor desventaja, aunque son fáciles de

implementar.

Page 57: Sotr 1

57

– Planificación por plazos

– En las aplicaciones de tiempo real,

generalmente no preocupa la velocidad

absoluta, sino completar y/o iniciar las

tareas en el momento mas apropiado, ni

antes ni después, a pesar de las

peticiones dinámicas de los recursos,

sobrecarga de proceso y fallos de

hardware y software.

– Para mejorar el diseño y rendimiento de

un SOTR, se debería disponer de la

siguiente información:

– Plazo de comienzo: Instante en que la

tarea debe comenzar.

– Plazo de finalización: Instante en que la

tarea debe terminar. Generalmente las

aplicaciones de tiempo real tienen plazo

de comienzo o plazo de finalización, pero

no ambos.

Page 58: Sotr 1

58

– Tiempo de proceso: Tiempo necesario

para ejecutar una tarea hasta su

finalización. En algunos casos, este

tiempo se conoce y en otros el SO calcula

una media exponencial.

– Exigencias de recursos: El conjunto de

recursos, además del procesador, que

necesita una tarea para su ejecución.

– Prioridad: Mide la importancia relativa de

la tarea. Las tareas rígidas pueden tener

una prioridad absoluta, produciéndose un

fallo si el plazo no se cumple. Las tareas

flexibles son generalmente de menor

prioridad.

– Estructura de subtareas: Una tarea puede

descomponerse en subtarea obligatoria y

subtarea opcional. Solo la obligatoria tiene

plazo rígido.

Page 59: Sotr 1

59

– Cuando se consideran plazos, hay

distintos factores para la planificación en

tiempo real: que tarea se planifica a

continuación y que tipo de expropiación

se permite.

– Para una determinada política de

apropiación, tanto si se emplean plazos

de inicio como de finalización, utilizar la

política de planificación de la tarea con el

plazo más próximo, es la que da mejores

resultados.

– Cuando se especifican plazos de

comienzo, tiene sentido utilizar un

planificador no expropiativo y que cada

tarea se bloquee a sí misma después de

completar la parte obligatoria o crítica de

su ejecución, permitiendo satisfacer

plazos de comienzo de otras tareas.

– Si se utilizan plazos de terminación es

apropiada la estrategia apropiativa.

Page 60: Sotr 1

60

– Ejemplos

– Consideremos un ejemplo de

planificación periódica de tareas con plazo

de terminación. Dados dos sensores A y

B, el plazo para tomar datos del sensor A

es cada 20 ms y del sensor B cada 50 ms.

Se tarda 10 ms, incluida la sobrecarga del

SO para procesar los datos de A y 25 ms

los datos de B.

� Prod. Llegada Ejec. Plazo

� A 10 10 20

� A2 20 10 40

� A3 40 10 60

� A4 60 10 80

� A5 80 10 100

� B1 0 25 50

� B2 50 25 100

Page 61: Sotr 1

61

� Consideremos el caso de planificación por

prioridades con A de mayor prioridad que B

� Vemos que en este caso B1 no es ejecutado

en su totalidad.

� Veamos el mismo caso anterior cuando B

tiene mayor prioridad que A

� Podemos observar que tanto A1 como A4 no

pueden ser ejecutados dentro de sus

respectivos plazos de terminación.

A1 A2 A3 A4 A5

B1 B2

302010 40 50 70 80 9060 100

A1

B2A2B1 A4A3

A5,B2

A5B1 B2A1

A2 A4A3B1

B2

Plazo de

Terminación

A1

A2B1 A3

A5,B2

A5B2

A2 A4A3B1

Plazo de

terminación

Page 62: Sotr 1

62

– Consideremos ahora el caso de una

planificación que, en el instante de

apropiación, da prioridad a la tarea con

plazo más corto de finalización.

– En este caso, pueden cumplirse todos los

requisitos del sistema. Puesto que todas

las tareas son periódicas y predecibles, se

usa un método de planificación con tablas

estáticas.

– Consideremos un esquema que trate con

tareas aperiódicas con plazos de inicio

según la siguiente tabla

A1

B2A2B1 A4A3

A5,B2

A5B1A1

A2 A4A3B1

Plazo de

Termina

ción

Page 63: Sotr 1

63

� Proc. Lleg. TEjec. Plazo

� A 10 20 110

� B 20 20 20

� C 40 20 50

� D 50 20 90

� E 60 20 70

� Consideremos en primer lugar un caso de

planificación con plazo de inicio

B

302010 40 50 70 80 9060 100

C DB EA

E DC A

Instante

s de

llegada

Plazos

de

inicio

110

EDCA B

AEC

E

DB

DCA

Page 64: Sotr 1

64

– Vemos que en este caso la tarea B no

puede ser cumplida, aun cuando requiera

servicio inmediato. Este es un riesgo

común en la planificación de tareas

aperiódicas, especialmente con plazos de

inicio.

– Una variante de esta política, conocida

como la del plazo más próximo con

tiempos libres no forzosos, mejora el

rendimiento

– En este caso, se consideran conocidos

los plazos de terminación de cada tarea,

antes de que ellas estén listas. Siempre

se planifica la tarea con plazo más

próximo y se deja ejecutar hasta que

finalice.

EDC

B

B

AEC

E

DB

DC A

A

Page 65: Sotr 1

65

– Una tarea elegible puede no estar lista lo

que puede originar que el procesador

quede libre aunque haya tareas listas.

– En el ejemplo anterior, el sistema se

abstiene de planificar la tarea A aunque

es la única lista, debido a que su plazo es

el mas largo. Como resultado, todas las

tareas son atendidas aun cuando el

procesador no se utiliza con máxima

eficiencia.

Page 66: Sotr 1

66

Listado y Características de algunos SOTR

� VRTX: Versatile Real Time Executive

� Disponible para Intel, Motorola, VME

� Multitarea: Dispone de mecanismos para

satisfacer los requisitos de TR de la mayoría

de las aplicaciones empotradas

� Mecanismos de exclusión mutua, señalización

y comunicación

� VX Works

� Es de Wind River. Más económico que VRTX

� Utilitarios para depuración simbólica,

comunicación a través de redes por medio de

TCP/IP y sockets

� Estructura jerárquica

Page 67: Sotr 1

67

� Micronúcleo proporciona los servicios de:

– multitarea

– comunicación entre procesos

– sincronización

Herramientas de desarrollo en el anfitrión

Conexión anfitrión-empotrado

Herramientas del sist. empotrado

Page 68: Sotr 1

68

� RT-Mach

� Versión en tiempo real de MACH

� Incluye:

– Gestión de procesos ligeros basada en el

modelo ARTS, con características de TR

– Planificador activado por eventos integrado

en el núcleo

– Objetos residentes en memoria

– Herramientas de tiempo real: planificador

1-2-3 y monitor avanzado de tiempo real

(ARM).

RTEMS (Real time for military

systems)

Altas prestaciones:

multitarea

entorno homogéneo para mono y

multiprocesamiento

planificación con prioridades activadas por

eventos

Page 69: Sotr 1

69

– Planificación monotónica en frecuencia

opcional

– comunicación entre tareas y sincronización

– herencia de prioridades

– gestión de interrupciones

– gestión dinámica de memoria

– alto nivel de reconfigurabilidad

RTEMS

core

Page 70: Sotr 1

70

� SPRING

� Sistema operativo de tiempo real desarrollado

en la Univ. de Manchester

� Trata de resolver algunos conceptos

equivocados y deficiencias tradicionales en

SO de TR. Es un sistema activado por eventos

de gran flexibilidad y muy predecible.

� Se clasifican las tareas sobre la base del coste

relativo del incumplimiento del tiempo de

respuesta:

» Tareas críticas

» Tareas esenciales

» Tareas no esenciales

Page 71: Sotr 1

71

� QNX

� Proporciona un entorno completo de tiempo

real para redes de mono o multiprocesadores

� Arquitectura: Micronúcleo rodeado por un

conjunto de procesos opcionales que brindan

compatibilidad con POSIX y UNIX

� Servicios del micronúcleo: Comunicación entre

procesos, planificación y tratamiento de

interrupciones de bajo nivel.

� Fuera del micronúcleo la funcionalidad se

proporciona mediante servidores.

– Obligatorio: Servidor de procesos

– Opcionales: Gestor de sistemas de archivos

– Gestor de dispositivos

– Gestor de redes

HARTOS

Desarrollado para la arquitectura HARTS (red

hexagonal de multiprocesadores de memoria

compartida)

El núcleo proporciona una interfaz uniforme para

comunicaciones entre procesos de tiempo real

Page 72: Sotr 1

72

� CHORUS

� Núcleo para sistemas distribuidos. Similar a MACH.

� Reescrito para que sirva como núcleo en sistemas de

tiempo real.

� Mejoras:

� Núcleo mínimo (10-100Kb) con servicios básicos que

permiten implementar servidores UNIX, POSIX, etc.

� Procesos de tiempo real críticos.

� Personalizaciones, construidas sobre el micronúcleo

que permiten integrar CHORUS con otros sistemas

(QNX, VRTX, UNIX, OS2, etc.)

� Distribución transparente conconectividad total entre

los núcleos del sistema.

� Interfaces abiertas y servicios estándares.

Page 73: Sotr 1

73

� MARS

� Maintenable Real Time System

� Sistema distribuido de tiempo real tolerante a fallas,

para control de procesos.

� Desarrollado en la Universidad Técnica de Viena

� Claves:

� Tolerancia a fallas

� Planificación estática

� Reparación dinámica

� Manejo de redes redundantes

� SOTR Orientados a Objetos

� CHAOS: Concurrent Hierachical Object System

� Sistema basado en objetos

� El núcleo ofrece los sistemas básicos y sobre el mismo

se desarrollan sistemas de tiempo real