SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
SISTEMAS OPERATIVOS
   DE TIEMPO REAL



   Prof. Roberto Vignoni
Facultad de Ingeniería,UNLP




                              1
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



                                             2
Sistemas Operativos

                     Programas del Sistema
 Software
                     Programas de Aplicación

Internet     Sist. Contable    Juegos   Aplicaciones
Compilad.      Editores Interpretes     (Modo usuario)
           Sistema Operativo            (Modo supervisor)
      Lenguaje de Máquina               Instrucciones - Assembler
       Microprogramación
       Dispositivos Físicos             C.I. Plaquetas, cables, etc.




 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.


                                                            3
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.




                                               4
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

                  Multiprogramación        Tiempo
                       Por lotes         compartido
      Objetivo      Maximizar la        Minimizar el
      Principal   Utilizacion del µp   Tiempo de resp.
      Origen de
      las          Instrucciones de    Ordenes dadas
      Instrucci    control incluidas     desde una
      ones          con el trabajo        terminal
      Al sist.
      Op.


– CTSS del MIT primer sistema de tiempo compartido
  sobre IBM 7904

    MIT
    Bell Labs               MULTICS (Información
    GE                      multiplexada y servicios de
                            computación)




                                                          5
–  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




                                               6
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.




                                            7
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




                                       8
Desde el punto de vista del SO, los procesos
        pueden adoptar distintos estados
                               Expropiado
           Admitir                                     Liberar
Nuevo                Listo                 Ejecución             Terminado
                             Planificado

                                       Espera
                                       Suceso
                     Suspendido


        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




                                                                    9
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)




                                               10
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

                                           11
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.




                                          12
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.




                                              13
Se pueden relacionar las funciones de
     planificación con el diagrama de transición de
     estados de un proceso.

              Nuevo
     PLP              PLP



   Listo y                           Ejecutando
 Suspendido           Listo
              PMP             PCP




Bloqueado y                                       Terminado
Suspendido            Bloqueado
              PMP




                                                     14
Ejecutando



                     Listo


                   Bloqueado
                     PCP


                   Bloqueado y
                   Suspendido



                    Listo y
                    Suspendido
                                 PMP


    Nuevo           PLP                Terminado


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.



                                                   15
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.



                                             16
– 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.




                                             17
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)




                                              18
– Menor tiempo restante (SRT, Shortest
  Remainning Time)

– Planificación expropiativa basada en prioridades

– Se utiliza realimentación con múltiples niveles

             RQ0                        Liberar
  Entrada
                                CPU


                                        Liberar
             RQ1
                                CPU




                                        Liberar

            RQn
                                CPU




                                                  19
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




                                                20
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




                                        21
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




                                        22
Multiproceso - Partición estática
Tabla de descripción de particiones (TDP)

  Nº de     Direcc.    Tamaño     Estado
 Partción    Base
    0         0K        100 K      Asig.
    1        100 K      300 K      Libre
    2        400 K      100 K      Asig.
    3        500 K      250 K      Asig.
    4        750 K      250 K      Libre

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.


                                              23
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



                                          24
– 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.




                                                 25
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.




                                           26
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.




                                         27
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.




                                           28
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.




                                          29
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.                         30
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.




                                       31
La traducción de direcciones se realiza por
medio de:
             Tablas de mapa de páginas
             Tablas de descriptores de
                     segmentos
             Ambas




                                              32
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



                                         33
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.



                                          34
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)




                                        35
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



                                           36
• 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.




                                    37
– 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.




                                       38
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.



                                          39
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.




                                          40
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).




                                         41
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.




                                          42
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.




                                        43
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.




                                          44
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:



                                        45
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.




                                      46
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.


                                            47
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.


                                        48
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.




                                       49
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.




                                        50
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.

                                         51
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




                                        52
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.




                                         53
– 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.



                                         54
– 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.




                                       55
– 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.




                                            56
– 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.




                                       57
– 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.




                                        58
–  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.




                                         59
– 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

                                          60
A1             A2                A3            A4                A5
       B1                                     B2
      10  20         30      40        50    60    70        80        90 100

 Consideremos el caso de planificación por
 prioridades con A de mayor prioridad que B
      A1      B1        A2     B1       A3    B2        A4    B2        A5 B2
Plazo de
Terminación
                   A1             A2 B1            A3              A4           A5,B2


 Vemos que en este caso B1 no es ejecutado
 en su totalidad.
 Veamos el mismo caso anterior cuando B
 tiene mayor prioridad que A

           B1             A2        A3        B2                  A5

Plazo de
terminación     A1             A2 B1          A3             A4          A5,B2

 Podemos observar que tanto A1 como A4 no
 pueden ser ejecutados dentro de sus
 respectivos plazos de terminación.


                                                                                 61
– 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.

      A1   B1    A2   B1   A3   A4   B2   A5

Plazo de
Termina
ción            A1     A2 B1    A3   A4   A5,B2


  – 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




                                               62
Proc.                  Lleg.                    TEjec.        Plazo
 A                      10                       20            110
 B                      20                       20            20
 C                      40                       20            50
 D                      50                       20            90
 E                      60                       20            70

Instante
       A      B         C        D    E
s de
llegada
         10   20   30   40       50   60   70   80       90 100 110
Plazos
de            B                  C         E             D         A
inicio

 Consideremos en primer lugar un caso de
 planificación con plazo de inicio

  A       B         C    D        E


          A                  C         E             D


          B              C             E         D             A




                                                                       63
– 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
A   B       C   D   E


        B       C       E      D      A


    B           C       E     D       A


– 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.



                                          64
– 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.




                                        65
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




                                          66
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




                                            67
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



                                           68
– 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




                                         69
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




                                            70
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




                                                 71
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.




                                             72
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




                                                  73

Más contenido relacionado

La actualidad más candente

Unidad 4: Procesos y Administracion del Procesador
Unidad 4: Procesos y Administracion del ProcesadorUnidad 4: Procesos y Administracion del Procesador
Unidad 4: Procesos y Administracion del ProcesadorUPTM
 
Inf 324 01_03_planificadores
Inf 324 01_03_planificadoresInf 324 01_03_planificadores
Inf 324 01_03_planificadoresmariavictoria0000
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
PLANIFICACION DE PROCESO
PLANIFICACION DE PROCESOPLANIFICACION DE PROCESO
PLANIFICACION DE PROCESOgladysmamani
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesosbfcorralesx
 
U n i d a d 2 sist oper
U n i d a d    2 sist operU n i d a d    2 sist oper
U n i d a d 2 sist operfloresitalagu
 
Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Javier Alvarez
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativoschikscorpion_23
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.Carlos Solano
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un procesoi92almaa
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosCESAR
 
Capitulo 4 grupo 1
Capitulo 4 grupo 1Capitulo 4 grupo 1
Capitulo 4 grupo 1ecuatareas
 
Sistema de computación procesos
Sistema de computación procesosSistema de computación procesos
Sistema de computación procesosluis alejandro
 

La actualidad más candente (20)

Unidad 4: Procesos y Administracion del Procesador
Unidad 4: Procesos y Administracion del ProcesadorUnidad 4: Procesos y Administracion del Procesador
Unidad 4: Procesos y Administracion del Procesador
 
Inf 324 01_03_planificadores
Inf 324 01_03_planificadoresInf 324 01_03_planificadores
Inf 324 01_03_planificadores
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Trabajo de sisope
Trabajo de sisopeTrabajo de sisope
Trabajo de sisope
 
PLANIFICACION DE PROCESOS
PLANIFICACION DE PROCESOSPLANIFICACION DE PROCESOS
PLANIFICACION DE PROCESOS
 
PLANIFICACION DE PROCESO
PLANIFICACION DE PROCESOPLANIFICACION DE PROCESO
PLANIFICACION DE PROCESO
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesos
 
Planificacion cpu
Planificacion cpuPlanificacion cpu
Planificacion cpu
 
U n i d a d 2 sist oper
U n i d a d    2 sist operU n i d a d    2 sist oper
U n i d a d 2 sist oper
 
Unidad4
Unidad4Unidad4
Unidad4
 
Unidad3
Unidad3Unidad3
Unidad3
 
Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesos
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativos
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 
Procesos
ProcesosProcesos
Procesos
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De Procesos
 
Capitulo 4 grupo 1
Capitulo 4 grupo 1Capitulo 4 grupo 1
Capitulo 4 grupo 1
 
Sistema de computación procesos
Sistema de computación procesosSistema de computación procesos
Sistema de computación procesos
 

Similar a Sotr 1

Similar a Sotr 1 (20)

Modelo de procesos
Modelo de procesosModelo de procesos
Modelo de procesos
 
Clases procesos
Clases procesosClases procesos
Clases procesos
 
Class 01 introduction_to_operating_systems.htm
Class 01 introduction_to_operating_systems.htmClass 01 introduction_to_operating_systems.htm
Class 01 introduction_to_operating_systems.htm
 
Administración de procesosby dan
Administración  de  procesosby danAdministración  de  procesosby dan
Administración de procesosby dan
 
Instala y configura software
Instala y configura softwareInstala y configura software
Instala y configura software
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2
 
Trabajo digital 1
Trabajo digital 1Trabajo digital 1
Trabajo digital 1
 
Trabajo digital 1
Trabajo digital 1Trabajo digital 1
Trabajo digital 1
 
Gestión de procesos
Gestión de procesosGestión de procesos
Gestión de procesos
 
Rosa espinozamarinssoo introduccionehistoria
Rosa espinozamarinssoo introduccionehistoriaRosa espinozamarinssoo introduccionehistoria
Rosa espinozamarinssoo introduccionehistoria
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
Los Sistemas Operativos
Los Sistemas OperativosLos Sistemas Operativos
Los Sistemas Operativos
 
SISTEMAS OPERATIVOS ( I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS ( I  Bimestre Abril Agosto 2011)SISTEMAS OPERATIVOS ( I  Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS ( I Bimestre Abril Agosto 2011)
 
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Cap1
Cap1Cap1
Cap1
 
TIPOS DE SOFTWARE
TIPOS DE SOFTWARETIPOS DE SOFTWARE
TIPOS DE SOFTWARE
 
Taller no 3
Taller no 3Taller no 3
Taller no 3
 
Vicente
VicenteVicente
Vicente
 
Vicente
VicenteVicente
Vicente
 

Sotr 1

  • 1. SISTEMAS OPERATIVOS DE TIEMPO REAL Prof. Roberto Vignoni Facultad de Ingeniería,UNLP 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 2
  • 3. Sistemas Operativos Programas del Sistema Software Programas de Aplicación Internet Sist. Contable Juegos Aplicaciones Compilad. Editores Interpretes (Modo usuario) Sistema Operativo (Modo supervisor) Lenguaje de Máquina Instrucciones - Assembler Microprogramación Dispositivos Físicos C.I. Plaquetas, cables, etc. 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. 3
  • 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. 4
  • 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 Multiprogramación Tiempo Por lotes compartido Objetivo Maximizar la Minimizar el Principal Utilizacion del µp Tiempo de resp. Origen de las Instrucciones de Ordenes dadas Instrucci control incluidas desde una ones con el trabajo terminal Al sist. Op. – CTSS del MIT primer sistema de tiempo compartido sobre IBM 7904 MIT Bell Labs MULTICS (Información GE multiplexada y servicios de computación) 5
  • 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 6
  • 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. 7
  • 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 8
  • 9. Desde el punto de vista del SO, los procesos pueden adoptar distintos estados Expropiado Admitir Liberar Nuevo Listo Ejecución Terminado Planificado Espera Suceso Suspendido 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 9
  • 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) 10
  • 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 11
  • 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. 12
  • 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. 13
  • 14. Se pueden relacionar las funciones de planificación con el diagrama de transición de estados de un proceso. Nuevo PLP PLP Listo y Ejecutando Suspendido Listo PMP PCP Bloqueado y Terminado Suspendido Bloqueado PMP 14
  • 15. Ejecutando Listo Bloqueado PCP Bloqueado y Suspendido Listo y Suspendido PMP Nuevo PLP Terminado 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. 15
  • 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. 16
  • 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. 17
  • 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) 18
  • 19. – Menor tiempo restante (SRT, Shortest Remainning Time) – Planificación expropiativa basada en prioridades – Se utiliza realimentación con múltiples niveles RQ0 Liberar Entrada CPU Liberar RQ1 CPU Liberar RQn CPU 19
  • 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 20
  • 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 21
  • 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 22
  • 23. Multiproceso - Partición estática Tabla de descripción de particiones (TDP) Nº de Direcc. Tamaño Estado Partción Base 0 0K 100 K Asig. 1 100 K 300 K Libre 2 400 K 100 K Asig. 3 500 K 250 K Asig. 4 750 K 250 K Libre 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. 23
  • 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 24
  • 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. 25
  • 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. 26
  • 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. 27
  • 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. 28
  • 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. 29
  • 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. 30
  • 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. 31
  • 32. La traducción de direcciones se realiza por medio de: Tablas de mapa de páginas Tablas de descriptores de segmentos Ambas 32
  • 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 33
  • 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. 34
  • 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) 35
  • 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 36
  • 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. 37
  • 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. 38
  • 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. 39
  • 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. 40
  • 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). 41
  • 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. 42
  • 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. 43
  • 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. 44
  • 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: 45
  • 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. 46
  • 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. 47
  • 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. 48
  • 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. 49
  • 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. 50
  • 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. 51
  • 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 52
  • 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. 53
  • 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. 54
  • 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. 55
  • 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. 56
  • 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. 57
  • 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. 58
  • 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. 59
  • 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 60
  • 61. A1 A2 A3 A4 A5 B1 B2 10 20 30 40 50 60 70 80 90 100 Consideremos el caso de planificación por prioridades con A de mayor prioridad que B A1 B1 A2 B1 A3 B2 A4 B2 A5 B2 Plazo de Terminación A1 A2 B1 A3 A4 A5,B2 Vemos que en este caso B1 no es ejecutado en su totalidad. Veamos el mismo caso anterior cuando B tiene mayor prioridad que A B1 A2 A3 B2 A5 Plazo de terminación A1 A2 B1 A3 A4 A5,B2 Podemos observar que tanto A1 como A4 no pueden ser ejecutados dentro de sus respectivos plazos de terminación. 61
  • 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. A1 B1 A2 B1 A3 A4 B2 A5 Plazo de Termina ción A1 A2 B1 A3 A4 A5,B2 – 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 62
  • 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 Instante A B C D E s de llegada 10 20 30 40 50 60 70 80 90 100 110 Plazos de B C E D A inicio Consideremos en primer lugar un caso de planificación con plazo de inicio A B C D E A C E D B C E D A 63
  • 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 A B C D E B C E D A B C E D A – 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. 64
  • 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. 65
  • 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 66
  • 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 67
  • 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 68
  • 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 69
  • 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 70
  • 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 71
  • 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. 72
  • 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 73