HILOS

  • Un hilo (o proceso ligero/liviano) es una unidad básica de utilización de la CPU; consiste de:
    • Contador del programa
    • Conjunto de registros
    • Espacio de pila
  • Un hilo comparte con sus hilos pares su:
    • Sección de código
    • Sección de datos
    • Los recursos del sistema operativo colectivamente conocido como una tarea
  • Un proceso tradicional o pesado es igual a una tarea con un solo hilo.
  • Seudo paralelismo.
  • Subprocesos o procesos livianos.

PROCESOS COOPERATIVOS

Los procesos independientes no pueden afectar o ser afectados por la ejecución de otros procesos.

  • Los procesos cooperativos pueden afectar o ser afectados por la ejecución de otros procesos.
  • Ventajas de cooperación entre procesos
    • Se comparte información
    • Agiliza los cálculos
    • Modularidad
    • Conveniencia

PROBLEMA DE CONSUMIDORES Y PRODUCTORES

El problema de productores y consumidores es un paradigma de los procesos cooperativos, los productores producen información que es consumida por los procesos consumidores

  • Buffer ilimitado no establece un límite práctico para el tamaño del buffer

El buffer limitado asume que hay un tamaño fijo de buffer

BUFFER LIMITADO – SOLUCIÓN CON MEMORIA COMPARTIDA

Datos compartidos

N tamaño del buffer;

item = … dato a producir/consumir;

buffer = arreglo [0…n-1] de item;

entra, sale : 0…n-1;

Proceso productor

While (true){

/* produzca un item */

while (((entra=(entra +1)%n)==sale)

/* no haga nada – el buffer está lleno */

buffer [entra] = item;

entra = (entra+1)%n;

}

BLOQUE DE CONTROL DE PROCESOS (PCB)

Descriptor del proceso para So en tabla de procesos, información asociada con cada proceso.

  • Identificación del proceso (PID).
  • Identificación del procesador, afinidad.
  • Estado del proceso (flags).
  • Identificación de usuario, grupo.
  • Contador de programa.
  • Apuntador a proceso padre.
  • Apuntadores a procesos hijos.
  • Registros visibles de la CPU (Cisc 8-32 Risc > 100).
  • Información de planificación de la CPU (prioridad).
  • Información de administración de la memoria (datos, instrucciones).
  • Información contable.
  • Información de estado E/S.
  • Localiza, identificador, estado padre, hijos, prioridad, memoria, estadísticas, recursos de uso, privilegios, hora inicio…

LA CPU CAMBIA DE PROCESO A PROCESO

  • Cuando la CPU cambia a otro proceso, el sistema debe guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso.
  • La conmutación de contexto es trabajo extra, el sistema no realiza trabajo útil mientas conmuta, depende en gran medida del apoyo del hw.
  • Cuando un proceso está ejecutando su estado reside en los registros del computador.
  • Cuando un proceso no se está ejecutando, su estado reside en el BCP.

OPERACIONES SOBRE LOS PROCESOS

  • CREAR: Nombre, BCP, Tabla, recursos, prioridad, Jerárquico/No jerárquico.
  • DESTRUIR: Eliminarlo del sistema.
  • SUSPENDER: Paraliza (fallo, pausa, congestión).
  • Retardar
  • Abortar
  • Leer atributos
  • REANUDAR
  • CAMBIAR PRIORIDAD
  • BLOQUEAR: Entrada/Salida
  • DESPERTAR: Desbloqueo
  • DESPACHAR
  • TEMPORIZAR: Ejecución programada

ESTRUCTURA GENERAL DE LAS TABLAS DE CONTROL DE SO

Diagramas de Transición de estados

MODELO SIMPLIFICADO

  • Un proceso puede estar en dos estados
    • Corriendo
    • No corriendo

ESTADO DE LOS PROCESOS

En la medida que se ejecuta un proceso su estado se modifica

  • Nuevo: El proceso se está creando.
  • Corriendo: Las instrucciones están ejecutándose.
  • Esperando/bloqueado: El proceso está a la espera de la ocurrencia de algún evento.
  • Listo: El proceso está esperando a ser asignado al procesador.
  • Terminado: El proceso ha terminado su ejecución.

SISTEMA EMBEBIDO / COMPUTACIÓN UBICUA

Los sistemas embebidos son sistemas computacionales con un alto acoplamiento en la integración de hardware y software, se diseñan para ejecutar funciones dedicadas.

– Presente en todas partes: Empresa, hogar, etc: Automatización industrial, defensa, transporte, viajes especiales, entretenimiento.
– Caracterizados por un pequeño conjunto de recursos especializados.
– Los procesadores SoC (System on a Chip) son muy atractivos para sistemas embebidos:

Principio del microprocesador.
Sistemas en un chip.
– Administración eficiente de recursos:

Memoria limitada.
Procesadores lentos.
Pequeñas pantallas de visualización.
– Sistemas Operattivos Embebidos actuales: eCos, Embedded Linux, Linux CE, FreeDOS, FreeRTOS, LynxOS, RTOS, NetBSD, OpenBSD, Inferno, OSE, OS-9, QNX, VxWorks, Windows CE, Windows XP Embedded, IOS.
– Sistema operativo para sistemas embebidos anteriormente: CE: Havi (home audio video interoperability). También está JINI.

– Ejemplos:
Path Finder de NASA, misiles guiados, automóviles, juguetes, electrodomésticos, cámaras, teléfonos celulares, PDA’s, GPS, digital set-top box (DST), enrutadores, cajero electrónico.
Discos duros, impresoras, dispensador de alimentos, reproductores mp3, cámaras digitales, cajas registradoras, videobeam.
Pocket PC: HP iPAQ, microprocesador: Marvel XSCALE (ARM).
Pocket PC era un computador con telefónica móvil, los Smartphone son teléfonos con funciones de un computador.
Una estación de servicio de combustible. Máquinas de coser, con una pantalla en la cual se selecciona el tipo de cosido.
Llamada telefónica se hace a través de un canal de datos, no como era antes que era por telefonía fija.
Sistema empotrado: Modem enrutador ADSL. Computación embebida.
Para que sea sistema embebido debe tener:
Que tenga un procesador.
Sistema de almacenamiento.
Dispositivos de entrada y salida.

SO Tiempo Real

TIEMPO REAL BLANDO

Tiempo real blando es una forma de caracterizar una tarea o sistema de tiempo real en el que se busca que el tiempo medio de respuesta sea menor de un tiempo predefinido.
Se usa en sistemas de propósito general, como los ordenadores personales, donde se desea que el tiempo medio de respuesta de la mayor parte de tareas no esenciales sea pequeño, pero en los cuales esto no es crítico.

TIEMPO REAL DURO

Tiempo real duro es una forma de referirse a los sistemas y tareas cuyo fin o respuesta se produce antes de un tiempo estipulado.


Se usa en los sistemas informáticos que realizan funciones cuyos resultados han de recibirse dentro de un tiempo razonable para no entorpecer o paralizar el funcionamiento del conjunto.

Diseña un sitio como este con WordPress.com
Comenzar