Planificación de Procesos en Diferentes Sistemas Operativos

Planificación de Procesos en Diferentes Sistemas Operativos

PLANIFICACIÓN EN SOLARIS 2

Los procesos los agrupa por prioridad.

Expropiativo.

El manejo de procesos en Solaris es por prioridad y round robin. En algunas versiones se maneja también un ajuste dinámico de la prioridad de acuerdo al tiempo que los procesos han esperado y al tiempo que ya han usado el CPU. El sistema provee facilidades para crear ‘pipes’ entre procesos, contabilizar el uso de CPU por proceso y una pila común para todos los procesos cuando necesitan estarse ejecutando en modo privilegiado (cuando hicieron una llamada al sistema).

PLANIFICACIÓN POSIX

–          Cada política de planificación lleva asociado un rango con al menos 32 niveles de prioridad.

–          Expropiativo.

–          El planificador elegirá el proceso o proceso ligero con la prioridad más alta.

–          Políticas de planificación:

  • FIFO.
  • Cíclica.
  • Otra.

 

PLANIFICACIÓN DE PROCESOS EN LINUX

–          Dos algoritmos: tiempo compartido y tiempo real.

–          Expropiativo.

–          Tiempo compartido:

  • Prioridad basada en créditos: el proceso con más créditos se despacha.
  • Se restan los créditos cuando suceden interrupciones de temporizador.
  • Cuando el crédito es cero, se elige otro proceso.
  • Cuando todos los procesos tiene cero créditos, se re acreditan (Cr=Cr/2+Pr).
    • Con base en factores como prioridad e historia.

–          Tiempo real

  • Tiempo real blando.
  • Cumple con Posix 1b- de dos clases.
    • FCFS y RR.
    • El proceso de mayor prioridad siempre corre primero.

PLANIFICACIÓN DE PROCESOS EN WINDOWS.

–          Las prioridades de Windows se organizan en dos bandas o clases:

  • Tiempo real.
  • Tiempo variable.

–          Planificador expropiativo basado en prioridades.

–          31 niveles de prioridad. Menor (cero), Mayor (31).

COLAS MULTINIVEL

COLAS MULTINIVEL

–          La cola de listos se divide en colas separadas:

  • Primer plano (interactiva).
  • Segundo plano (lotes).

–          Cada cola tiene su propio algoritmo de planificación:

  • Primer plano RR.
  • Segundo plano FCFS.

–          La planificación debe hacerse entre las colas:

  • Planificación de prioridad fija; es decir, sirva todos los procesos de primer plano y luego los de segundo plano. Existe la n posibilidad de inanición.
  • Cuanto de tiempo: cada cola tiene cierta cantidad de tiempo que puede ser planificado entre sus procesos; por ejemplo:
    • 80% para primer plano.
    • 20% para segundo plano.

Ejemplo:

Alta prioridad->

Procesos del sistema.

Procesos interactivos.

Procesos de edición interactivos.

Procesos de batch.

Proceso de estudiante.

Baja Prioridad->

 

COLAS MULTINIVEL CON RETROALIMENTACIÓN

–          Un proceso puede moverse entre varias colas; de esta manera puede implementarse el envejecimiento.

–          La planificación de colas multinivel con retroalimentación está definida por los siguientes parámetros:

  • Número de colas.
  • Algoritmos de planificación por cola.
  • Método usado para determinar cuándo promover un proceso.
  • Método usado para determinar cuándo degradar un proceso.
  • Método usado para determinar a qué cola entrara un proceso cuando requiera de servicio.

Ejemplo:

Tres colas:

–          Q0: Quantum 8ms.

–          Q1: Quantum 16 ms.

–          Q2: FCFS

Planificacion:

Un nuevo trabajo entra a la cola Q0. Cuando tiene la CPU, el trabajo recibe 8ms. Si no termina en 8 ms se mueve a la cola Q1, el trabajo es atendido y recibe 16ms. Si aún no ha terminado, es expropiado y movido a la cola Q2 atendida por FCFS.

Cloud Computing

Windows AZURE

La Plataforma Windows Azure (llamada Azure Services Platform en fase beta) es una plataforma ofrecida como servicio y alojada en los Data Centers de Microsoft. Anunciada en el Professional Developers Conference de Microsoft (PDC) del 2008 en su versión beta, pasó a ser un producto comercial el 1 de enero del 2010. Windows Azure es una plataforma general que tiene diferentes servicios para aplicaciones, desde servicios que alojan aplicaciones en alguno de los centros de procesamiento de datos de Microsoft para que se ejecute sobre su infraestructura (Cloud Computing) hasta servicios de comunicación segura y federación entre aplicaciones.

 

SERVICIO DE WINDOWS AZURE

Dentro de la plataforma, el servicio de Windows Azure es el encargado de proporcionar el alojamiento de las aplicaciones y el almacenamiento no relacional. Dichas aplicaciones deben funcionar sobre Windows Server 2008 R2. Pueden estar desarrolladas en .NET, PHP, C++, Ruby, Java. Además del servicio de ejecución, dispone de diferentes mecanismos de almacenamiento de datos: tablas NoSQL, blobs, blobs para streaming, colas de mensajes o ‘drives’ NTFS para operaciones de lectura / escritura a disco.

 

NÚCLEO DE SERVICIOS:

–          Servicio de cómputo.

–          Servicio de almacenamiento.

–          Servicio de base de datos.

 

Archivo XML: Darle portabilidad a las aplicaciones.

Prueba de concepto: un modelo piloto, con un balanceador de carga, de tal manera que se pueda hacer una proyección.

Sistemas Distribuidos, necesitan de un sistema balanceador de carga, de tal manera que distribuya las solicitudes de acceso.

La visión de HP es que TODO está en la nube.

Microsoft dice que es imposible tener todo en la nube, se requiere que la información esté disponible en servidores locales y en la nube.

BUILDING BLOCK SERVICES.

Caching:

Distributed, in-memory cache for Windows Azure apps Session state provider for Windows Azure app .Net client library for caching data.

Access Control: Autenticación de acceso a las aplicaciones.

Service Bus: las aplicaciones tiene identidad de acceso a otra aplicación.

TRAFFIC MANAGER

Performance: Tener muy buen rendimiento.

Fault Tolerance: si esta fuera de línea, quien está de respaldo.

Round Robin: Procesos en cola.

Cloud Computing

COMPUTACIÓN EN LA NUBE

Un enfoque de la computación que trata de la escala de Internet y la conexión a una variedad de dispositivos y los puntos finales.

La computación en la nube concepto conocido también bajo los términos servicios en la nube, informática en la nube, nube de cómputo o nube de conceptos, del inglés Cloud computing, es un paradigma que permite ofrecer servicios de computación a través de Internet.

Patrones de cloud computing (cloud computing patterns)

–          On and Off(Encendido y apagado):

Se divide en periodo de actividad y periodo de inactividad.

–          Growing Fast (Rápido Crecimiento):

–          Unpredictable Bursting (Estallido Impredecible):

–          Predictable Bursting (Estallido Predecible):

Cloud Services (Servicios en la nube):

  • Host.
    • IaaS (Infraestructura como servicio)
    • Alojar servicios.
  • Build.
    • Pass (Plataforma como servicio)
    • Herramienta de desarrollo para la nube.
    • Servicio de aplicaciones.
  • Consume.
    • Saas (Software como servicio).
    • Para usar las aplicaciones desarrolladas.

La computación en la nube es distribuida y orientada a servicios.

Computación en la nube:

Administra los servicios.Persistencia de datos.

ALGORITMOS DE PLANIFICACIÓN

ALGORITMOS DE PLANIFICACIÓN

Determina quién va a usar el sistema.

FCFS/PEPS: Primero en entrar, primero en salir.

SJF/SPN: Toma todos los proceso y le da el turno al proceso más pequeño de todos. Compensa los procesos cortos.

–          Asocia con cada proceso la longitud de su próxima ráfaga de CPU. Unas estas longitudes para planificar el proceso con el menor tiempo.

–          Hay dos esquemas:

  • No expropiativo: Una vez la CPU es asignada al proceso no puede ser expropiado hasta que termine su ráfaga de CPU (SPN).
  • Expropiativo:  Si llega un nuevo proceso con una longitud de ráfaga menor que el tiempo restante del proceso en ejecución, este es expropiado. Este esquema es conocido como el menor tiempo restante primero (SRTF).

SRTN: le da el turno al proceso que menos tiempo le falte para terminar. Compensa los procesos cortos.

ROUND-ROBIN, RR: Se le asigna x cantidad de tiempo para un proceso, si no alcanza a terminar, se regresa a la cola. Método por defecto para equipos convencionales. Es el peor método para sistemas en tiempo real.

–          Cada proceso toma una pequeña unidad de tiempo de CPU (quantum de tiempo), por lo general de 10-100ms. Después de transcurrido este lapso de tiempo, el proceso es expropiado  y ubicado en una cola de listos.

–          Si hay N procesos en la cola de listos y el quantum es Q, entonces cada proceso toma 1/N unidades de tiempo de CPU en bloques de a lo mas Q unidades de tiempo a la vez. Ningún proceso espera más que (N-1)*Q unidades de tiempo.

POR PRIORIDAD: los procesos van a ejecutarse en el orden de acuerdo a la prioridad que tenga. Inanición, proceso que nunca es atendido. Prioridad por envejecimiento. Se utiliza este método con round robín para los sistemas en la actualidad.

Tiempo  de ráfaga, tiempo requerido para el proceso.

A los procesos se les asigna un número, en una lista, y se atienden como esté en esa lista.

HRRN: PRIMERO EL DE MAYOR TASA DE RESPUESTA.

Elige el proceso de mayor tasa. Prioridad = (w+s)/s

W: tiempo invertido esperando por el procesador.

S: tiempo de servicio esperando.

FSS: PROPORCIÓN JUSTA

Divide la capacidad de recursos del sistema en porciones, que son asignadas a planificadores, asignados a varios grupos.

–          Las aplicaciones o trabajos de usuario se pueden organizar como un conjunto de procesos (hilos), algunos son más importantes que otros.

–          Desde el punto de vista del usuario, la preocupación es como ejecutan su aplicación.

–          Es necesario tomar decisiones de planificación basadas en estos conjuntos de procesos, los grupos menos importantes no pueden monopolizar los recursos.

LOTERÍA:

Se da a cada proceso un tiquete para varios recursos del sistema, tal como la CPU. Cuando se requiere planificar se selecciona al azar un tiquete, y el proceso que lo tiene obtiene el recurso. Si queremos que un proceso tenga más oportunidades se le entregan mas tiquetes. Los procesos cooperativos pueden intercambiar sus tiquetes.

Ejemplo: Un servidor de video. Supongamos que los procesos necesitan velocidades de 10, 20, 25 f/s. podemos entregar a cada proceso 10, 20, 25 tiquetes respectivamente.

Planeación de Procesos de CPU

OBJETIVOS DE LA PLANIFICACIÓN

–          Reparto de CPU equitativo.

–          Eficiencia (optimizar CPU).

–          Mejor tiempo de respuesta en uso interactivo.

–          Mejor tiempo de espera en lotes (batch).

–          Mayor número de trabajos por unidad de tiempo.

 

 

CRITERIOS DE PLANIFICACIÓN

–          Utilización de CPU: Mantener la CPU tan ocupada como sea posible.

–          Rendimiento: Numero de procesos que culminan su ejecución por unidad de tiempo.

–          Tiempo de entrega/estancia/retorno (turnaroundtime): Tiempo transcurrido desde que se lanza un proceso hasta que finaliza. Incluye el tiempo de ejecución sumado con el tiempo de espera por los recursos, incluyendo el procesador. Es una medida apropiada para trabajos por lotes.

–          Tiempo de espera: Cantidad de tiempo que un proceso gasta en la cola de listos.

–          Tiempo de respuesta (response time): Para un proceso interactivo, es el tiempo que transcurre desde que se lanza una petición hasta que se comienza a recibir la respuesta. Cantidad de tiempo desde que se hace una solicitud y se produce la primera respuesta, no incluye el tiempo que tima exhibir la respuesta.

–          Previsibilidad: Un trabajo debería ejecutarse aproximadamente en el mismo tiempo y con el mismo coste a pesar de la carga del sistema. Una gran variación en el tiempo de respuesta o en el tiempo de estancia es malo desde el puntos de vista de los usuarios. Puede significar una gran oscilación en la sobrecarga del sistema o la necesidad de poner a punto el sistema para eliminar las inestabilidades.

–          Ningún proceso se muere por inanición, todo proceso debe progresar.

CRITERIOS DE OPTIMIZACIÓN

–          Máxima utilización de CPU.

–          Máximo rendimiento.

–          Minimizar el tiempo de entrega.

–          Minimizar el tiempo de espera.

–          Minimizar el tiempo de respuesta.

–          Justicia.

–          Máximo número de usuarios interactivos.

–          Máxima capacidad de ejecución.

–          Predicibilidad.

–          Minimización de sobre carga.

–          Equilibrio en uso de recursos.

–          Consistencia en seguridad.

Planeación de Procesos de la CPU

PLANEACIÓN DE PROCESOS DE LA CPU

-Conceptos básicos:

Se selecciona de los proceso en memoria aquellos que están listos para ejecutar, y le entrega la CPU a uino de ellos.

Las decisiones de planificación de CPU tiene lugar cuando un proceso:

  1. Conmuta de un estado de corrida a un estado de espera.
    1. Un bloqueo que impide la ejecución del proceso, por lo tanto el proceso actual entrega el turno y el planificador se encarga de elegir.
  2. Conmuta de un estado de corrida a un estado de listo.
    1. Determinado por el sistema operativo. Tiempo de ejecución.
  3. Conmuta de esperando a listo.
    1. Un proceso que queda listo para correr de nuevo.
  4. Termina.

La planificación 1 y 4 no es expropiativa, en los otros casos es expropiativa.

DESPACHADOR

El modulo despachador le da el control de la CPU al proceso seleccionado por el planificador de corto plazo; esto incluye:

–          Conmutación de contexto.

–          Conmutación al modo usuario.

–          Saltar a la ubicación adecuada en el programa del usuario para reiniciar el programa.

LATENCIA DE DESPACHO

Es el tiempo que se toma el despachador para parar un proceso e iniciar otro.