INGENIERIA INFORMATICA

lunes, 19 de septiembre de 2016

NIVELES OBJETIVOS PLANIFICACION

2.5 Niveles, objetivos y criterios de  la planificacion


Libro: Sistemas Operativos Modernos
Autor: Andrew S. Tanenbaum

Planificación

Cuando una computadora se multiprograma, con frecuencia tiene varios procesos o hilos que compiten por la CPU al mismo tiempo. Esta situación ocurre cada vez que dos o más de estos procesos se encuentran al mismo tiempo en el estado listo.
La parte del sistema operativo que realiza esa decisión se conoce como planificador de procesos y el algoritmo que utiliza se conoce como algoritmo de planificación.

Introducción a la planificación

Con los sistemas de multiprogramación, el algoritmo de planificación se volvió más complejo debido a que comúnmente había varios usuarios esperando ser atendidos.

Comportamiento de un proceso

Casi todos los procesos alternan ráfagas de cálculos con peticiones de E/S (de disco). Por lo general la CPU opera durante cierto tiempo sin detenerse, después se realiza una llamada al sistema para leer datos de un archivo o escribirlos en el mismo.

Cuándo planificar procesos

Una cuestión clave relacionada con la planificación es saber cuándo tomar decisiones de planificación.
En primer lugar, cuando se crea un nuevo proceso se debe tomar una decisión en cuanto a si se debe ejecutar el proceso padre o el proceso hijo.
un algoritmo de planificación apropiativa selecciona un proceso y deja que se ejecute por un máximo de tiempo fijo.

Categorías de los algoritmos de planificación

Esta situación se presenta debido a que las diferentes áreas de aplicación (y los distintos tipos de sistemas operativos) tienen diferentes objetivos.
Tres de los entornos que vale la pena mencionar son:
1. Procesamiento por lotes.
2. Interactivo.
3. De tiempo real.

Metas de los algoritmos de planificación

Todos los sistemas Equidad - Otorgar a cada proceso una parte justa de la CPU Aplicación de políticas - Verificar que se lleven a cabo las políticas establecidas Balance - Mantener ocupadas todas las partes del sistema
Sistemas de procesamiento por lotes Rendimiento - Maximizar el número de trabajos por hora Tiempo de retorno - Minimizar el tiempo entre la entrega y la terminación Utilización de la CPU - Mantener ocupada la CPU todo el tiempo
Sistemas interactivos Tiempo de respuesta - Responder a las peticiones con rapidez Proporcionalidad - Cumplir las expectativas de los usuarios
Sistemas de tiempo real Cumplir con los plazos - Evitar perder datos Predictibilidad - Evitar la degradación de la calidad en los sistemas multimedia

Planificación en sistemas de procesamiento por lotes
Primero en entrar, primero en ser atendido

Con este algoritmo, la CPU se asigna a los procesos en el orden en el que la solicitan.
Cuando el primer trabajo entra al sistema desde el exterior en la mañana, se inicia de inmediato y se le permite ejecutarse todo el tiempo que desee. La gran fuerza de este algoritmo es que es fácil de comprender e igualmente sencillo de programar.

El trabajo más corto primero

supone que los tiempos de ejecución se conocen de antemano. Por ejemplo, en una compañía de seguros las personas pueden predecir con bastante precisión cuánto tiempo se requerirá para ejecutar un lote de 1000 reclamaciones, ya que se realiza un trabajo similar cada día.

El menor tiempo restante a continuación

Una versión apropiativa del algoritmo tipo el trabajo más corto primero es el menor tiempo restante a continuación (SRTN, Shortest Remaining Time Next).  Con este algoritmo, el planificador siempre selecciona el proceso cuyo tiempo restante de ejecución sea el más corto.

Planificación en sistemas interactivos

Planificación por turno circular

A cada proceso se le asigna un intervalo de tiempo, conocido como quántum, durante el cual se le permite ejecutarse.
Si el proceso se bloquea o termina antes de que haya transcurrido el quántum, la conmutación de la CPU se realiza cuando el proceso se bloquea, desde luego.

Planificación por prioridad

La planificación por turno circular hace la suposición implícita de que todos los procesos tienen igual importancia. Con frecuencia, las personas que poseen y operan computadoras multiusuario tienen diferentes ideas en cuanto a ese aspecto.

Múltiples colas

Uno de los primeros planificadores por prioridad estaba en CTSS, el Sistema de tiempo compartido compatible del M.I.T. que se ejecutaba en la IBM 7094 (Corbató y colaboradores, 1962).
Cada conmutación de procesos ocasionaba intercambiar (swapping) el proceso actual al disco y leer uno nuevo del disco.

El proceso más corto a continuación

Como el algoritmo tipo el trabajo más corto primero siempre produce el tiempo de respuesta promedio mínimo para los sistemas de procesamiento por lotes, sería bueno si se pudiera utilizar para los procesos interactivos también.
Un método es realizar estimaciones con base en el comportamiento anterior y ejecutar el proceso con el tiempo de ejecución estimado más corto.

Planificación garantizada

Un método completamente distinto para la planificación es hacer promesas reales a los usuarios acerca del rendimiento y después cumplirlas.

Planificación por sorteo


Aunque hacer promesas a los usuarios y cumplirlas es una buena idea, es algo difícil de implementar. Sin embargo, se puede utilizar otro algoritmo para producir resultados similares con una implementación mucho más sencilla.

Planificación de sistemas en tiempo real

Es un sistema de tiempo real, el tiempo desempeña un papel esencial ya que por lo general uno o mas dispositivos físicos externos a  la computadora generan estímulos.

Política contra mecanismos

Separa el mecanismo de planificación de la política de planificación esto significa que esta parametrizado de cierta forma pero los procesos de un usuario pueden llenar los parámetros.

Planificación de hilos

La planificación en esta diferencia de forma considerable, dependiendo si hay soporte para hilos a nivel usuario o para hilo a nivel.




Libro: Sistemas Operativos 2da Edición
Autor: William Stallings 

 Planificación del mono procesador

El sistema operativo puede tomar tres tipos de decisiones  que efectúan a la ejecución de los procesos. La planificación a largo plazo determina cuando se admiten los nuevos procesos, al sistema la planificación a medio plazo forma parte de la función de intercambio y determina cuando se lleva parcial o totalmente el proceso será ejecutado a continuación por el microprocesador. Desde el punto de vista de un usuario, la característica más importante de un sistema es en general el tiempo de respuesta mientras que desde el otro punto de vista del sistema.

Planificación de multiprocesadores y en tiempo real

En un multiprocesador frecuentemente acoplado a varios procesadores tienen acceso al mismo procesador durante toda su vida o se puede expedir hacia un procesador distinto.

En este contexto no son aplicables los criterios tradicionales de selección de algoritmos de planificación. En su lugar clave el factor esta en cumplir los plazos. Son apropiados en este contexto los algoritmos que dependen mucho de la propiedad y reacción a los plazos relativos.




Libro: Sistemas Operativos
Autor: Magister David Luis La Red Martinez 


Introducción y definición sobre procesos

El concepto central de cualquier sistema operativo es el proceso: una abstracción de un programa en ejecución también llamado tarea.

Estados de procesos 

Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias que pueden hacer que el mismo cambie de estado.

Procesamiento de interrupciones

Una interrupción es un evento que altera la secuencia en que el procesador ejecuta las interrupciones; es un hecho generado por el hardware de la computadora.

El núcleo del sistema operativo

Controla todas las operaciones que implican procesos y representa solo una pequeña porción del código de todo el sistema operativo pero es de amplio uso.

Planificación de procesos

Cuando mas de un proceso es ejecutable desde el punto de vista lógico, el sistema operativo debe decidir cual de ellos debe ejecutarse en primer termino.
El planificador es la  porción del sistema operativo que decide y el algoritmo de planificación es el utilizado.

Niveles de planificación del procesador

Se consideran 3 niveles importantes de  planificación

   1- Planificación de alto nivel.
   2- Planificación de nivel intermedio.
   3- Planificación de bajo nivel.

Objetivos de la planificación 

- Ser justa
- Maximizar la capacidad de ejecución
- Maximizar el numero de usuario interactivos que reciben unos tiempos de respuesta aceptable
- Ser predecible
- Minimizar la sobrecarga
- Equilibrar el uso de recursos
- Equilibrar respuesta y utilización
- Evitar la postergación indefinida
- Asegurar la prioridad
- Dar preferencia a los procesos que mantienen recursos claves
- Dar mejor tratamiento a los procesos que muestren un "comportamiento deseable"
- Degradarse suavemente con cargas pesadas

Criterios de planificación

* La limitación de un proceso a las operaciones de E/S
* La limitación de un proceso a la CPU
* Si un proceso es por lote (bath) o interactivo
* La prioridad de un proceso

Planificación apropiada Versus no apropiaiva

Es útil cuando los procesos de alta prioridad requieren atención rápida.
Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido.

Temporizador de intervalos o reloj de interrupción

El proceso al cual está asignada la CPU se dice que esta en ejecución y puede ser un proceso de sistemas operativo o de usuario.
El sistema operativo posee un reloj de interrupción para generar una interrupción, en algún tiempo futuro especifico o después de un transcurso de tiempo en el futuro.

Prioridades

Prioridades estáticas

Características:

* No cambian
* Los mecanismos de implementación son sencillos
* Implican una sobrecarga relativamente baja
* No responden a cambios en el ambiente que aria deseable ajustar alguna prioridad

Prioridades dinámicas

Características:

* Responden al cambio
* La prioridad inicial asignada a un proceso puede durar poco tiempo, luego se reajusta a u mejor valor
* Los mecanismos de implementación son mas complicados que prioridades estáticas

Tipos de planificación

Planificación a plazo fijo 

Ciertos trabajos se planifican para ser terminados en tiempo especifico o a plazo fijo.

Planificación garantizada

Se establece compromiso de desempeño con el proceso de usuario por ejemplo, si existen "n" procesos en el sistema, el proceso del usuario recibirá cerca del "1/n" de la potencia de la CPU.

Planificación del primero en entrar primero en salir (FIFO)

Los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos.

Planificación de asignación de rueda (RR)

Los procesos se despachan en FIFO y disponen una cantidad limitada de tiempo de CPU, llamada "división de tiempo" o  "cuanto".

Tamaño del cuanto o Quantum

La determinación del tamaño del cuanto es decisiva para la operación efectiva de un sistema computacional.

Planificación del trabajo mas corto primero (SJF)

Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo compartido.

Planificación del tiempo restante mas corto (SRT)

Es la contra parte apropiativa del SJF.
Es útil en sistemas  de tiempo compartido.

Planificación el siguiente con relación de respuesta máxima (HRN)

Comige algunas debilidades de SJF, tales como el acceso de perjuicio hacia los procesos largos y el exceso de favoritismo hacia las nuevos trabajos cortos.

Planificación por prioridad

Considera factores externos al proceso.
Las ideas centrales que son cada proceso tiene asociada una prioridad y que el proceso ejecutable on máxima prioridad es el que tiene el permiso de ejecución.

Colas de retroalimentación de niveles múltiples

- Favorece trabajos cortos.
- Favorece trabajos limitados por la E/S par optimizar el uso de los dispositivos de E/S.
- Determinar la naturaleza de un trabajo lo mas rápido posible y planificar el trabajo de consecuencia.

No hay comentarios:

Publicar un comentario