viernes, 6 de mayo de 2011

PANIFICADORES




UNIVERSIDAD AUTÓNOMA DE SANTO DOMINGO “UASD”

MATERIA
SISTEMAS OPERATIVOS


SECCIÓN
01


PROFESOR
JOSÉ BINET


GRUPO
LOS PLANEADORES


TEMA
PLANIFICADORES




SUSTENTANTES
Johan Peréz                                            100026566
Neolfi Román                                           BD-7510
Heyler Severino                                       CA-2165
Joan de la Cruz                                       DB-4132
Wander Peréz                                         DC-4108
Andres Ceballos                                      DD-6297
Claudia Castro                                         CI-3002


FECHA
MARZO 2011




INDICE
Introducción …........................................................................................ 4
Planificadores …..................................................................................... 5
Como funcionan …................................................................................. 5
Tiempo real ….......................................................................................... 6
Tipos de planificadores …...................................................................... 6
Relación entre los procesos ….............................................................. 7
Requisitos de un buen algoritmo de planificación ….......................... 8
Productividad …...................................................................................... 8
Esquemas de planificación …................................................................ 9
Sistemas multiprocesadores …............................................................. 10
Despachador …....................................................................................... 10
Políticas de planificación …................................................................... 10
Criterios de planificación …................................................................... 12
Conclusiones …...................................................................................... 14
Sugerencias …........................................................................................ 15
Referencias …......................................................................................... 16
Examen …................................................................................................ 17


INTRODUCCIÓN
La planificacion (scheduling) es la base para lograr la multiprogramacion. Un sistema multiprogramado tendrá varios procesos que requerirán el recurso procesador a la vez. Esto sucede cuando los procesos están en estado ready (pronto). Si existe un procesador disponible y existen procesos en estado ready, se debe elegir el que será asignado al recurso para ejecutar. El componente del sistema operativo que realiza la elección del proceso es llamada planificador.

PLANIFICADORES

Es un componente funcional muy importante de los sistemas opertaivos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un multiprocesador entre todos los procesos que están disponibles para su ejecución.

Se denomina planificador al software del SO encargado de asignar los recursos de un sistema entre los procesos que los solicitan. Siempre que haya que tomar una decisión, el planificador debe decidir cuál de los procesos que compiten por la posesión de un determinado recurso lo recibirá. En la definición, el procesador se considera como un recurso más del sistema.

La planificación es el conjunto de políticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse.

Es un proceso gradual, por el que se establece el esfuerzo necesario para cumplir con los objetivos de un proyecto en un tiempo u horario que se debe cumplir para que la planificación sea exitosa. En este proceso permite además, refinar los objetivos que dieron origen al proyecto.

Existen diferentes herramientas y técnicas para abordar la planificación de un proyecto, las cuales permiten definir el curso de acción a seguir, que será tomado como base durante la ejecución del mismo.

Si bien la planificación define las acciones a seguir, durante la ejecución puede existir necesidad de cambios respecto de lo definido originalmente, los mismos servirán de punto de partida para un nuevo análisis y una nueva planificación de ser requerido.

PLANIFICAR: es trazar los planos para la ejecución de una obra.

CÓMO FUNCIONAN

Supóngase un ordenador que contiene un único microprocesador. Dicho microprocesador solamente puede ejecutar un programa en cada instante de tiempo. Además, cuando un programa está ejecutándose, nunca dejará de hacerlo por sí mismo. De manera que, en principio, cualquier programa monopoliza el microprocesador impidiendo que otros programas se ejecuten. Por ello, la primera misión de un planificador es expulsar el programa en ejecución cuando decida que es pertinente. Esto se consigue de dos maneras, siempre con ayuda del propio hardware:

• Cuando expira un temporizador, que se activa a intervalos regulares de tiempo. En intervalos muy cortos, generalmente cada 250 milisegundos.

• Cuando el programa solicita una operación de entrada/salida. Dado que el programa no puede continuar hasta que termine dicha operación, es un buen momento para ejecutar otro programa. En ambos casos, el control del microprocesador pasa a manos del planificador gracias a que el hardware genera una interrupción. En este proceso de expulsión, se guarda el estado de ejecución del programa (programa y su estado se denomina proceso). A continuación, el planificador decide cuál será el siguiente proceso en ejecutarse. Naturalmente, solamente se escogen procesos que estén listos para hacerlo. Si un proceso sigue esperando por una operación de entrada/salida no será candidato a ejecutarse hasta que finalice tal operación.

TIEMPO REAL

Un sistema operativo en tiempo real se caracteriza por garantizar que todo programa se ejecutará en un límite máximo de tiempo. El planificador debe comportarse de manera que esto sea cierto para cualquier proceso.

En estos casos, la finalidad del planificador es balancear o equilibrar la carga del procesador, impidiendo que un proceso monopolice el procesador o que sea privado de los recursos de la máquina. En entornos de tiempo real, como los dispositivos para el control automatico en la industria (por ejemplo, robots), el planificador también impide que los procesos se paren o interrumpan a otros que esperan que se realicen ciertas acciones. Su labor resulta imprescindible para mantener el sistema estable y funcionando.

TIPOS DE PLANIFICADORES

Los sistemas operativos pueden ofrecer hasta 3 tipos distintos de planificadores: planificador a largo plazo o planificador de trabajos, planificador a mediano plazo y planificador a corto plazo o planificador del procesador. Los nombre sugieren la fracuencia relativa con la cual se realizan estas funciones.

PLANIFICADOR A LARGO PLAZO

El objetivo primordial del planificador a largo plazo es el de dar al planificador de la CPU una mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan mucho la CPU) o la E/S. Así, por ejemplo, cuando la utilización de la CPU es baja, el planificador puede admitir más trabajos para aumentar el número de procesos listos y, con ello, la probabilidad de tener algún trabajo útil en espera de que se le asigne la CPU.

El PLP se encarga de seleccionar de ese almacenamiento los trabajos que considera más adecuados llevar a la memoria para su ejecución, de acuerdo con cierta política de gestión. El PLP es el principal responsable de que se cumplan los criterios de gestión establecidos para la utilización global del sistema; para ello debe realizar una mezcla adecuada de trabajos "destinados" al procesador y trabajos "destinados" al sistema de E/S, con el fin de mantener en todo momento un uso adecuado de los recursos.

Lo más usual es definir una función de prioridad y asignarle a cada programa un valor para la misma que se actualiza en instantes determinados por el PLP. Las tareas con mayor prioridad se llevan al estado preparado.

PLANIFICADOR A MEDIANO PLAZO

Determina cuales procesos se van a intercambiar entre la memoria principal y la memoria secundaria.

PLANIFICADOR A CORTO PLAZO

También conocido como distribuidor, se ejecuta cuando ocurre un suceso que interrumpe la ejecución del proceso actual del procesador. Su misión escoger un proceso de la cola de listos y pasarlos al procesador para su ejecución.

RELACIÓN ENTRE LOS PROCESOS

El sistema operativo debe suministrar los servicios que permitan el procesamiento concurrente, es decir simultaneidad de procesos. Estos servicios proporcionan los medios para la ejecución concurrente de los procesos y la sincronización entre estos.

También el S.O debe disponer de algoritmos de planificación y gestión de procesos que se encarguen de decidir que proceso se ejecutara o tomará el procesador, ver en qué están los procesos y sus prioridades.
Los procesos, dependiendo de la interacción entre ellos se pueden clasificar en:

1. Procesos independientes.
2. Procesos cooperativos
3. Procesos competitivos

Proceso independiente: es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema.

Procesos cooperativos: son aquellos que están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos.

El sistema operartivo es el encargado de armonizar, priorizar y ordenar la ejecución de los diferentes procesos que compiten por los recursos limitados con el objetivo final de permitir procesamiento concurrente de todos ellos.

REQUISITOS PARA UN BUEN ALGORITMO DE PLANIFICACIÓN

1.- Imparcialidad: asegurar que cada proceso tenga la parte que le corresponde de CPU.
2.- Eficiencia: mantener CPU ocupada 100% del tiempo.
3.- Tiempo de respuesta: minimizar el tiempo de respuesta para usuarios interactivos.
4.- Cambio de posición: minimizar el tiempo que los usuarios de un lote deben esperar para obtener la salida.

PRODUCTIVIDAD

La productividad se refiere a la cantidad de trabajo completada por mitad de tiempo. Un modo de expresarla es definiéndola como el numero de trabajos de usuario ejecutados por una unidad de tiempo. Cuando mayor sea este numero, más trabajo aparentemente esta siendo ejecutado por el sistema.

1. La planificación del procesador se clasifica según la escala relativa de tiempo en que es realizada.

2. Se define como el tiempo que transcurre desde el momento en que un Programa es remitido hasta que es totalmente completado por el mismo.

3. Es el tiempo que un proceso o trabajo consume a la espera de la asignación de algún recurso. Es un sistema con Multiprogramación.

4. Se define como tiempo que transcurre desde el momento en que se introduce el último carácter de una orden que desencadena la ejecución de un programa. A menudo un proceso puede comenzar a producir alguna salida al usuario mientras continuo procesando la respuesta. Entonces, esta es una mejor medida desde el punto de vista del usuario.

5. Determina qué nuevos programas son aceptados para ser procesados por el sistema, o sea determina el grado de multiprogramación. Una vez admitidos, se convierten en procesos que son agregados a la cola de Planificación a Corto Plazo. En algunos sistemas, son agregados a la cola de Planificación a Mediano Plazo, ya que los procesos creados recientemente comienzan en una condición de suspendidos. Relativamente, se ejecuta en forma poco frecuente.

La utilización de recursos al nivel deseado. Es importante conseguir una administración equilibrada para saber como conjugar procesos interactivos que tienen retardos especiales con procesos por lotes que son una simple de cola de cálculo. Por ejemplo, cuando la utilización del microprocesador puede admitir más trabajos, el planificador puede dar entrada al sistema a nuevos procesos y aumentar con ello la probabilidad de asignación de alguno de estos procesos al procesador.

ESQUEMAS DE PLANIFICACIÓN

Los sistemas de planificacion son utiles según el ambiente donde sean aplicados:

  • Sistemas Operativos con planificadores no expropiadores, son los que asignan el recurso procesador a un proceso y hasta que este no lo libere ya sea porque finalice su ejecucion o se bloquea, no se vuelve a ejecutar el planificador.
  • Sistemas operativos con planificadores expropiativosson los que pueden expropiar el recurso procesador a un proceso cuando otro proceso entra en estado pronto (ya sea porque es nuevo o porque se bloquea) o porque se le impone una limitante de tiempo para ejecutar.
  • Sistemas por lotes: Como no existe interacion con usuarios los planificadores no expropiadores son ideales.
  • Sistemas interactivos: Debido a que existen procesos de usuarios ejecutando a la vez los planificadores expropiadores son ideales para mantener un buen tiempo de respuesta para los usuarios.
  • Sistemas de tiempo real: No es necesario planificadores expropiadores ya que los procesos pueden que no se ejecuten por un buen tiempo, pero cuando lo hacen es por un periodo muy corto.

SISTEMAS MULTIPROCESADORES

En un sistema simétrico, cualquier procesador podrá ejecutar procesos de usuario.

Una posibilidad es asignar una cola de procesos listos para cada procesador y de esa forma mantenerlos procesos asignados a un procesador (afinidad de procesador).

Esto es conveniente para aprovechar los datos que están frescos en la memoria cache del procesador, ya que al ejecutar un procesador se nutre su cache con datos del proceso.

De esta forma, se logra mantener un mayor índice de cachehity, por lo tanto, un mayor rendimiento en el sistema.

Un problema que puede surgir es un desbalance en la cantidad de trabajo por procesador. En estos casos se migrarán procesos de cola para lograr balancear nuevamente la carga.
DESPACHADOR

Una vez que el planificador ejecuta y elige el proceso a asignar al procesador, se invoca al despachador (dispatcher) que es el encargado de asignar el proceso al procesador.

La tarea que realiza es:

  • Cambiar el contexto: Salvar registros del procesador en PCB del proceso saliente. Cargar los registros con los datos del PCB del proceso entrante.
  • Cambiar el bit de modo a usuario.
  • Saltar a la instrucción adecuada que había quedado el proceso que se asigno a la CPU (registro program counter).

POLITICAS DE PLANIFICACIÓN

A continuación se enumeran diversas políticas de planificación. Lo habitual es utilizar políticas mixtas. Generalmente, el planificador a corto plazo utiliza round-robin, mientras que el planificador a largo plazo utiliza varias colas FIFO. Cada una de estas colas corresponde a una prioridad diferente.

 Round-Robín

Round Robín es un método para seleccionar todos los elementos en un grupo de manera equitativa y en un orden racional, normalmente comenzando por el primer elemento de la lista hasta llegar al último y empezando de nuevo desde el primer elemento.
En Sistemas Operativos, la planificación Round Robin da un tiempo máximo de uso de CPU a cada proceso, pasado el cual es desalojado y retornado al estado de listo, la lista de procesos se planifica por FCFS, primero llegado, primero atendido.

FCFS "First Come, First Served"Primero en llegar, primero en ser servido.

Es un algoritmo de planificación no apropiativa que maneja los trabajos de acuerdo con su tiempo de arribo: conforme entran son servidos. Es un algoritmo muy simple de implementar, porque utiliza un tipo de cola FIFO. En este tipo de estructura de datos los procesos son ejecutados en el orden que llegan a la cola de procesos listos. La implementación puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de puinteros y asignacion dimanica de memoria.

LIFO “Last In First Out”. Ultimo en entrar, primero en salir.

El término LIFO se utiliza en estructura de datos y teoria de colas. LIFO es el algoritmo utilizado para implementar pilas. Una estructura de datos pila permite que se agreguen y eliminen nodos tan sólo de la parte superior de la misma.

SJF “Shortest Job First”.

Este algoritmo es óptimo para el tiempo de espera, pero requiere que todos los procesos participantes estén al comienzo. Su funcionamiento depende de conocer los tiempos de ejecución, que en la mayoría de los casos no se conoce. Si dos trabajos tienen el mismo tiempo se seleccionan según la estrategia FCFS. Esta estrategia es óptima desde el punto de vista de minimizar el tiempo de espera de los trabajos pendientes de ejecución.

SRT- “Shortest Remaining Time”

El algoritmo SRT corresponde a la versión no apropiativa del método SJF: es el método en el que se elige a continuación aquel proceso al que le queda menos tiempo para terminar su ejecución, incluyendo a los nuevos que lleguen. De esta forma aunque un proceso requiera mucho tiempo de ejecución, a medida que se va ejecutando iría avanzando en la lista de procesos en estado listo hasta llegar a ser el primero.
Algoritmo apropiativo, consiste en elegir de la cola de listos el proceso con menos necesidad de tiempo restante de CPU para cada instante de tiempo.

CRITERIOS PARA LA PLANIFICACIÓN

Los algoritmos de planificación tendrán distintas propiedades y favorecerán cierta clase de procesos. Es necesario definir criterios para poder evaluar los algoritmos de planificación. Algunos de estos son:

A) Eficacia. Se expresa como un porcentaje del tiempo medio de utilización. Aunque puede parecer lógico intentar mantener este parámetro próximo al 100%, con un valor tan elevado otros aspectos importantes de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de espera.

B) Rendimiento (throughput). Es una medida del número de procesos completados por unidad de tiempo. Por ejemplo, 10 procesos por segundo.

C) Tiempo de retorno o regreso (turnaronund). Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que se completa por el sistema.

D) Tiempo de espera. Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida más adecuada de la eficiencia del sistema, ya que se elimina de la medida el tiempo que tarda en ejecutarse el mismo.

E) Tiempo de respuesta a un evento. Se denomina así al intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción de la rutina de servicio de dicho evento. El criterio de selección de un algoritmo se suele basar en la maximización o minimización de una función de los parámetros anteriores. Por ejemplo, maximizar la eficacia y el rendimiento, y minimizar el tiempo de espera, o bien, minimizar la varianza del tiempo de respuesta.

F) Utilización de CPU (CPU utilization): Es el porcentaje de uso (en cuanto a ejecución de tareas de usuario o del sistema que son consideradas útiles) que tiene un procesador.

CONCLUSIONES
Los procesos durante su existencia pasan por distintos estados cuyas transiciones están controladas por el sistema operativo. De una manera sencilla un proceso puede estar en tres estados: activo, preparado y bloqueado. Toda la información de un proceso que el sistema operativo necesita para controlarle, se mantiene en una estructura de datos que se conoce como bloque de control de procesos y que puede considerarse como una representación del mismo proceso. El SO mantiene listas de bloques de control de procesos para cada uno de los estados del sistema.
Los planificadores son muy importantes para los para los sistemas operativos porque estos se encargan de repartir el tiempo disponible de un multiprocesador entre los procesos que están disponibles para su ejecución. Además estos funcionan en tiempo real garantizando que los programas se ejecuten en un tiempo límite.
Los planificadores son de diferentes tipos y cada uno de ellos tiene una tarea específica, un ejemplo de esto es el planificador a largo plazo que se encarga de seleccionar cuales trabajos son los más adecuados para ser llevados a la memoria para su ejecución y esto lo hace de acuerdo a cierta política de gestión.

SUGERENCIAS

  • Al momento de utilizar un sistema operativo es necesario saber que tipo de planificador requerirá este para ejecutar cada uno de los procesos y programas que se le asignen.
  • Tome en cuenta cuales son los requiesitos que necesitará para crear un buen algoritmo de planificación.
  • Estudie bien las políticas de planificación antes de iniciar cualquier trabajo, para que de esta manera no tenga problema alguno al momento de ejecutar el programa de trabajo.

REFERENCIAS

Sistemas Operartivos (2001) Tercera Edición. Ida M. Flynn y Anne Mclver Mchoes

EXAMEN
1.- Qué es un planificador?
a) Es una teoría de el sistema de Windows 
b) Es grupo de reglas a seguir para programar en consola 
c) Es un software del SO encargado de asignar los recursos de un sistema 
d) Es una parte de SO, que se encarga de crear una pared para evitar daños

2.- Cuál es la primera misión de un planificador?
a) Dando un tiempo máximo de uso de CPU a cada proceso. 
b) Crea un desbalance en la cantidad de trabajo por procesador. 
c) Expulsar el programa en ejecución cuando decide que es pertinente. 
d) Inicializa el SO para dar más espacio a la memoria principal.

3.- Cuál es la finalidad de un planificador?
a) Balancear o equilibrar la carga del procesador. 
b) Activar un temporizador. 
c) Impedir que los procesos se paren o dejen de ejecutarse. 
d) Terminar la operación de los procesos.

4.- Cuáles son los tipos de planificadores?
a) Planificador a largo plazo, de banda ancha y planificador de planta. 
b) Planificador a corto plazo, a mediano plazo y a cuarto plazo. 
c) Planificador a largo plazo, del procesador y planificador de sistemas. 
d) Planificador a largo plazo, a mediano plazo y a corto plazo.

5.- Cuál es el planificador del procesador?
a) Planificador a largo plazo. 
b) Planificador del sistema. 
c) Planificador a mediano plazo. 
d) Planificador a corto plazo.

6.- Cuántos tipos de procesos?
a) 3
b) 2 
c) 5 
d) 4

7.- Cuál no es un requisito para un buen algoritmo de planificación?
a) Imparcialidad 
b) Tiempo de llamada 
c)Tiempo de respuesta 
d) Cambio de posición

8.- Qué es la productividad?
a) Es el numero de trabajos de usuario ejecutados por una unidad de tiempo.
b) Es el tiempo requerido para terminar un trabajo.
c) Es la cantidad de productos obtenidos de la realización de un trabajo.
d) Es el resultado del esfuerzo de los usuarios.

9.- Qué es Round Robin?
a) Es una política de planificación, que se encarga de entrar los procesos en una cola y llamarlos uno por uno.
b) Es un método para seleccionar todos los elementos en un grupo de manera equitativa y en un orden racional.
c) Es un algoritmo de planificación no apropiativa que maneja los trabajos de acuerdo con su tiempo de arribo.
d) Este algoritmo es óptimo para el tiempo de espera, pero requiere que todos los procesos participantes estén al comienzo.

10.- Cuáles de estos son criterios de planificación?
a) Eficacia, rendimiento y tiempo de espera.
b) Eficacia, responsabilidad y utilizacion de la CPU.
c) Tiempo de repuesta, tiempo de espera y tiempo de llamada.
d) Rendimiento, respuesta inmediata y cancelación del programa.




























Universidad Autónoma de Santo Domingo
UASD


Escuela De Informática


Materia:
Sistemas operativos


Tema:
Planificadores


Asignatura:
INF-324 01


Sección:
01


Profesor:
José Binet










Santo Domingo, D. N.
22 de septiembre del 2010





Sustentantes:


100046615, Gabriel Asencio, gabrielAsencio@gmail.com
DC-3521, Anyeline Abad, anyelineabad@gmail.com
CE1747 Yaniry Mateo, yanirymateo7@gmail.com
Doris Encarnación CF-1868, inf51101dorisencarnacion@gmail.com
Cesarina Cuevas 100052469, CesarinaCuevas1990@gmail.com
Erwin AlmonteCI- 1843, Erwin.amonte@gmail.com
Carliz MartichCI-5510, CarlizMartich@gmail.com
Juan Acosta CF-1435, CarloAcosta001@gmail.com









INDICE
Introducción……………………………………………………………. 4
Planificadores……………………………………………………………5
Como Funcionan……………………………………………………..……….6
Tiempo Real………………………………………………………..…………..7
Tipos de Planificadores….………………………………………….…………7
Relación de Procesos…………………………………………………………..8
Productividad…………………………………………………………………..9
Esquema de Planificación……………………………………………………..9
Sistemas multiprocesadores…………………………………...………………10

Despachador…………………………………………………...……………..10
Disciplinas del (Scheduling) ………………………………………………..10
Políticas de planificación……………………………………………………..11
Puestas en práctica del planificador del sistema operativo………….……..12
Criterios para la planificación……………………………….………………..13
Conclusiones……………………………………………...…………………14
Sugerencias……………………………………………………………………15
Referencias…………………………………………………………………….15
Examen………………………………………………………...……………….16
Anexos………………………………………………….……………………….18


 INTRODUCCIÓN

Los planificadores son un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución.
Se denomina planificador al software del SO encargado de asignar los recursos de un sistema entre los procesos que los solicitan. Siempre que haya que tomar una decisión, el planificador debe decidir cuál de los procesos que compiten por la posesión de un determinado recurso lo recibirá. En la definición, el procesador se considera como un recurso más del sistema. El siguiente análisis detallara las funciones de los planificadores, sus diferentes tipos, los algoritmos utilizados para planificar entre otros temas de interés.
 
PLANIFICADORES
Es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución.
Se denomina planificador al software del SO encargado de asignar los recursos de un sistema entre los procesos que los solicitan. Siempre que haya que tomar una decisión, el planificador debe decidir cuál de los procesos que compiten por la posesión de un determinado recurso lo recibirá. En la definición, el procesador se considera como un recurso más del sistema.
La planificación es un proceso gradual, por el que se establece el esfuerzo necesario para cumplir con los objetivos de un proyecto en un tiempo u horario que se debe cumplir para que la planificación sea exitosa. En este proceso permite además, refinar los objetivos que dieron origen al proyecto.
Existen diferentes herramientas y técnicas para abordar la planificación de un proyecto, las cuales permiten definir el curso de acción a seguir, que será tomado como base durante la ejecución del mismo.
Si bien la planificación define las acciones a seguir, durante la ejecución puede existir necesidad de cambios respecto de lo definido originalmente, los mismos servirán de punto de partida para un nuevo análisis y una nueva planificación de ser requerido.
PLANIFICAR: es trazar los planos para la ejecución de una obra.

CÓMO FUNCIONAN
Supóngase un ordenador que contiene un único microprocesador. Dicho microprocesador solamente puede ejecutar un programa en cada instante de tiempo. Además, cuando un programa está ejecutándose, nunca dejará de hacerlo por sí mismo. De manera que, en principio, cualquier programa monopoliza el microprocesador impidiendo que otros programas se ejecuten. Por ello, la primera misión de un planificador es expulsar el programa en ejecución cuando decida que es pertinente. Esto se consigue de dos maneras, siempre con ayuda del propio hardware:
 • Cuando expira un temporizador, que se activa a intervalos regulares de tiempo. En intervalos muy cortos, generalmente cada 250 milisegundos.
• Cuando el programa solicita una operación de entrada/salida. Dado que el programa no puede continuar hasta que termine dicha operación, es un buen momento para ejecutar otro programa. En ambos casos, el control del microprocesador pasa a manos del planificador gracias a que el hardware genera una interrupción. En este proceso de expulsión, se guarda el estado de ejecución del programa (programa y su estado se denomina proceso). A continuación, el planificador decide cuál será el siguiente proceso en ejecutarse. Naturalmente, solamente se escogen procesos que estén listos para hacerlo. Si un proceso sigue esperando por una operación de entrada/salida no será candidato a ejecutarse hasta que finalice tal operación.
TIEMPO REAL
Un sistema operativo en tiempo real se caracteriza por garantizar que todo programa se ejecutará en un límite máximo de tiempo. El planificador debe comportarse de manera que esto sea cierto para cualquier proceso.
En estos casos, la finalidad del planificador es balancear o equilibrar la carga del procesador, impidiendo que un proceso monopolice el procesador o que sea privado de los recursos de la máquina. En entornos de tiempo real, como los dispositivos para el control automático en la industria (por ejemplo, robots), el planificador también impide que los procesos se paren o interrumpan a otros que esperan que se realicen ciertas acciones. Su labor resulta imprescindible para mantener el sistema estable y funcionando.
TIPOS DE PLANIFICADORES
Hay dos tipos fundamentales de planificadores que coexisten en un sistema operativo: el planificador a largo plazo (PLP) o planificador de trabajos y el planificador a corto plazo (PCP) o planificador del procesador. El PLP determina que trabajos se admiten en el sistema para su procesamiento y son, por lo tanto, cargados en la memoria disponible. En los sistemas por lotes normalmente se presentan más trabajos que pueden ser admitidos para una ejecución inmediata. Estos trabajos se guardan en un dispositivo de almacenamiento para su ejecución posterior.
PLANIFICADOR A LARGO PLAZO
El PLP se encarga de seleccionar de ese almacenamiento los trabajos que considera más adecuados llevar a la memoria para su ejecución, de acuerdo con cierta política de gestión. El PLP es el principal responsable de que se cumplan los criterios de gestión establecidos para la utilización global del sistema; para ello debe realizar una mezcla adecuada de trabajos "destinados" al procesador y trabajos "destinados" al sistema de E/S, con el fin de mantener en todo momento un uso adecuado de los recursos.
Lo más usual es definir una función de prioridad y asignarle a cada programa un valor para la misma que se actualiza en instantes determinados por el PLP. Las tareas con mayor prioridad se llevan al estado preparado.
PLANIFICADOR A CORTO PLAZO
Este planificador decide que procesos toman el control de la CPU. El PCP asigna el procesador entre el conjunto de procesos preparados residentes en memoria. Su principal objetivo es maximizar el rendimiento del sistema de acuerdo a con el conjunto de criterios elegidos. Al estar a cargo de la transición de estado preparado a ejecución, el PCP deberá ser invocado cuando se realice una operación de conmutación de procesos para seleccionar
RELACIÓN ENTRE LOS PROCESOS
El sistema operativo debe suministrar los servicios que permitan el procesamiento concurrente, es decir simultaneidad de procesos. Estos servicios proporcionan los medios para la ejecución concurrente de los procesos y la sincronización entre estos.
También el S.O debe disponer de algoritmos de planificación y gestión de procesos que se encarguen de decidir que proceso se ejecutara o tomará el procesador, ver en qué están los procesos y sus prioridades.
Los procesos, dependiendo de la interacción entre ellos se pueden clasificar en:
1.      Procesos independientes.
2.      Procesos cooperativos
3.      Procesos competitivos
El sistema operativo es el encargado de armonizar, priorizar y ordenar la ejecución de los diferentes procesos que compiten por los recursos limitados con el objetivo final de permitir procesamiento concurrente de todos ellos.
Entre los requisitos de un buen algoritmo de planificación se cuentan: 
1.- Imparcialidad: asegurar que cada proceso tenga la parte que le corresponde de CPU.
2.- Eficiencia: mantener CPU ocupada 100% del tiempo.
3.- Tiempo de respuesta: minimizar el tiempo de respuesta para usuarios interactivos.
4.- Cambio de posición: minimizar el tiempo que los usuarios de un lote deben esperar para obtener la salida.
PRODUCTIVIDAD
La productividad se refiere a la cantidad de trabajo completada por mitad de tiempo. Un modo de expresarla es definiéndola como el numero de trabajos de usuario ejecutados por una unidad de tiempo. Cuando mayor sea este numero, más trabajo aparentemente esta siendo ejecutado por el sistema.
1.      La planificación del procesador se clasifica según la escala relativa de tiempo en que es realizada.
2.      Se define como el tiempo que transcurre desde el momento en que un Programa es remitido hasta que es totalmente completado por el mismo. T R = T S + T E.
3.      Es el tiempo que un proceso o trabajo consume a la espera de la asignación de algún recurso. Es un sistema con Multiprogramación.
4.      Se define como tiempo que transcurre desde el momento en que se introduce el último carácter de una orden que desencadena la ejecución de un programa. A menudo un proceso puede comenzar a producir alguna salida al usuario mientras continuo procesando la respuesta. Entonces, esta es una mejor medida desde el punto de vista del usuario.
5.      Determina qué nuevos programas son aceptados para ser procesados por el sistema, o sea determina el grado de multiprogramación. Una vez admitidos, se convierten en procesos que son agregados a la cola de Planificación a Corto Plazo. En algunos sistemas, son agregados a la cola de Planificación a Mediano Plazo, ya que los procesos creados recientemente comienzan en una condición de suspendidos. Relativamente, se ejecuta en forma poco frecuente.
La utilización de recursos al nivel deseado. Es importante conseguir una administración equilibrada para saber como conjugar procesos interactivos que tienen retardos especiales con procesos por lotes que son una simple de cola de cálculo. Por ejemplo, cuando la utilización del microprocesador puede admitir más trabajos, el planificador puede dar entrada al sistema a nuevos procesos y aumentar con ello la probabilidad de asignación de alguno de estos procesos al procesador.
Esquemas de planificación

Los momentos en que los planificadores son  invocados son:
Cuando un proceso se bloquea en una operación de E/S, o un semáforo, etc...
Cuandounprocesocambiadelestadoejecutandoalestadopronto.
Por ejemplo al ocurrir una interrupcióno se crea un nuevo proceso.
Cuando ocurre una interrupción de E/S y un proceso pasa del estado bloqueado a pronto.
Cuando un proceso finaliza su ejecución.
Cuando ocurre 1ó4, el planificador es invocado debido a que el proceso en ejecución libera el procesador.
Si el planificador es invocado cuando ocurre 2ó3, se dice que este es expropiativo (preemptive), ya que puede quitar el procesador al proceso que estaba en ejecución.

Sistemas multiprocesadores

En un sistema simétrico cualquier procesador podrá ejecutar procesos de usuario.
Una posibilidad es asignar una cola de procesos listos para cada procesador y de esa forma mantenerlos procesos asignados a un procesador (afinidad de procesador).
Esto es conveniente para aprovechar los datos que están frescos en la memoria cache del procesador, ya que al ejecutar un proceso en un procesador se nutre su cache con datos del proceso.
De esta forma, se logra mantener un mayor índice de cachehity, por lo tanto, un mayor rendimiento en el sistema.
Un problema que puede surgir es un desbalance en la cantidad de trabajo por procesador. En estos casos se migrarán procesos de cola para lograr balancear nuevamente la carga.

Despachador

Una vez que el planificador ejecuta y elige el proceso a asignar al procesador, se invoca al despachador (dispatcher) que es el encargado de asignar el proceso al procesador.

La tarea que realiza es:

Cambiar el contexto: Salvar registros del procesador en PCB del proceso saliente. Cargar los registros con los datos del PCB del proceso entrante.
Cambiar el bit de modo a usuario.
Saltar a la instrucción adecuada que había quedado el proceso que se asigno a la CPU (registro program counter).

Disciplinas del (Scheduling)
Las disciplinas del Scheduling son algoritmos usados para distribuir recursos entre los partidos que simultáneamente y asynchronously solicítelos. Las disciplinas del Scheduling se utilizan adentro rebajadoras (para manejar tráfico del paquete) así como adentro sistemas operativos (a la parte Tiempo CPU entre hilos de rosca y procesos).
Los propósitos principales de programar algoritmos son reducir al mínimo hambre del recurso y para asegurar la imparcialidad entre los partidos que utilizan los recursos.
POLITICAS DE PLANIFICACIÓN
A continuación se enumeran diversas políticas de planificación. Lo habitual es utilizar políticas mixtas. Generalmente, el planificador a corto plazo utiliza round-robin, mientras que el planificador a largo plazo utiliza varias colas FIFO. Cada una de estas colas corresponde a una prioridad diferente.
·         Planificación Round-robin
Round Robín es uno de los algoritmos de planificación de procesos más complejos y difíciles, dentro de un sistema operativo que asigna a cada proceso una porción de tiempo equitativa y ordenada, tratando a todos los procesos con la misma prioridad. En Sistemas operativos, la planificación Round Robin da un tiempo máximo de uso de CPU a cada proceso, pasado el cual es desalojado y retornado al estado de listo, la lista de procesos se planifica por FCFS, primero llegado, primero atendido.
FIFO - También conocido como FCFS "First Come, First Served".
FIFO es el acrónimo inglés de First In, First Out (primero en entrar, primero en salir). FIFO se utiliza en estructuras de datos para implementar colas. La implementación puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignación dinámica de memoria.
El término LIFO es el acrónimo inglés de Last In First Out (último en entrar, primero en salir).El término LIFO se utiliza en estructuras de datos y teoría de colas. Guarda analogía con una pila de platos, en la que los platos van poniéndose uno sobre el otro, y si se quiere sacar uno, se saca primero el último que se puso. LIFO es el algoritmo utilizado para implementar pilas.
SJB - Shortest Job First.
Si dos trabajos tienen el mismo tiempo se seleccionan según la estrategia FCFS. Esta estrategia es óptima desde el punto de vista de minimizar el tiempo de espera de los trabajos pendientes de ejecución. Su dificultad real estriba en conocer el tiempo que le queda a cada trabajo para terminar su ejecución. En entornos de producción donde los trabajos se ejecutan regularmente es posible tener una estima aceptable, pero en entornos de desarrollo rara vez se conoce el tiempo que tardara en ejecutarse un programa.

SRT - Shortest Remaining Time
El algoritmo SRT corresponde a la versión expropiativa del método SJF: es el método en el que se elige a continuación aquel proceso al que le queda menos tiempo para terminar su ejecución, incluyendo a los nuevos que lleguen
SPT - Shortest Process Time
El trabajo más corto primero se maneja y se completen.
     El paso para el uso de esta norma son:

Primero, El usuario deberá introducir el número de puestos de trabajo, los nombres de los trabajos, el tiempo de procesamiento y la fecha de vencimiento de cada puesto de trabajo o utilizar los datos de los valores se expresa en el punto de partida.
· 

El segundo paso es clasificar el menor tiempo de procesamiento entre los puestos de trabajo.
· 

En tercer lugar, Calcular el tiempo de flujo de cada trabajo mediante el tiempo de procesamiento. El tiempo de flujo es el tiempo de procesamiento Y acumulaciones de cada puesto de trabajo por cada puesto de trabajo.
· 

Los retrasos se calcula a partir del tiempo de flujo y fecha de vencimiento

Puestas en práctica del planificador del sistema operativo
Los sistemas operativos de diversa computadora ponen diversos esquemas en ejecución programar. Muy temprano MS-DOS y los sistemas del Microsoft Windows eran no-trabajo múltiples, y pues tales no ofrecieron un planificador. Windows 3.1 y el OS 9 (no OS X del Mac del Mac) y los sistemas operativos anteriormente basados utilizaron un planificador no comprado de antemano simple que requiere a programadores mandar a sus procesos “para rendir” (dé para arriba la CPU) para que otros procesos para ganar un cierto tiempo CPU. Esto proporcionó la ayuda primitiva para los trabajos múltiple, pero no proporcionó opciones programar más avanzadas.
Windows NT- los sistemas operativos basados utilizan a coleta de niveles múltiples de la regeneración. 32 niveles de la prioridad se definen, 0 a través a 31, con las prioridades 0 a 15 que son prioridades “normales” y las prioridades 16 a 31 que son prioridades suavemente en tiempo real, requiriendo privilegios de asignar. Los usuarios pueden seleccionar 5 de estas prioridades para asignar a un uso corriente del uso del encargado de la tarea, o a través de la gerencia APIs del hilo de rosca.
El núcleo puede cambiar el nivel de la prioridad de un hilo de rosca dependiendo de su uso de la entrada-salida y de la CPU y si es interactivo (es decir. acepta y responde a la entrada de seres humanos), levantar la prioridad de interactivo y de la entrada-salida limitó procesos y bajar que de procesos encuadernados de la CPU, para aumentar la sensibilidad de usos interactivo
]El planificador fue modificado adentro Windows Vista para utilizar el registro contrario de ciclo de los procesadores modernos para no perder de vista exactamente cuántos ciclos de la CPU un hilo de rosca ha ejecutado, más bien que apenas con una rutina de la interrupción del intervalo-contador de tiempo.

CRITERIOS PARA LA PLANIFICACION
Los algoritmos tienen distintas propiedades según los criterios en los que se basen para su construcción, lo cual se refleja en que un tipo de proceso se puede ver favorecido frente a otro en la disputa por el procesador. Así, antes de realizar la elección de un algoritmo se deben considerar las propiedades de estos frente al criterio de diseño elegido. Algunos de estos son:
A) Eficacia. Se expresa como un porcentaje del tiempo medio de utilización. Aunque puede parecer lógico intentar mantener este parámetro próximo al 100%, con un valor tan elevado otros aspectos importantes de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de espera.
B) Rendimiento (throughput). Es una medida del número de procesos completados por unidad de tiempo. Por ejemplo, 10 procesos por segundo.
C) Tiempo de retorno o regreso (turnaronund). Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que se completa por el sistema.
D) Tiempo de espera. Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida más adecuada de la eficiencia del sistema, ya que se elimina de la medida el tiempo que tarda en ejecutarse el mismo.
E) Tiempo de respuesta a un evento. Se denomina así al intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción de la rutina de servicio de dicho evento. El criterio de selección de un algoritmo se suele basar en la maximización o minimización de una función de los parámetros anteriores. Por ejemplo, maximizar la eficacia y el rendimiento, y minimizar el tiempo de espera, o bien, minimizar la varianza del tiempo de respuesta.


CONCLUSIONES

Después de haber leído y analizado esta investigación y tomando en cuenta lo que expresa el titulo "Planificadores", se ha podido concluir que dichas Técnicas son importantes y que son imprescindibles para el correcto funcionamiento de todos los sistemas operativos, También como en un instante dado, en el ordenador pueden existir diversos procesos listos para ser ejecutados y como sirve de base para los demás procesos.

Les damos gracias al maestro por permitirnos investigar y aprender sobre el tema ya tratado, así podemos saber expresarnos cuando de Planificadores se comente en cualquier ocasión.


SUGERENCIAS

ü  Conocer acerca de los Planificadores ya que son una herramienta clave de todo sistema operativo.

ü  Saber como planificar nuestra PC para no sobrecargarla.

ü  Conocer las diferentes políticas de planificación para llevar una jerarquía de nuestro S.O.

REFERENCIAS

Bibliografía:

·        Blazewicz, J., Ecker, K.H., Pesch, E., Schmidt, G. und J. Weglarz, computadora y procesos de fabricación, Berlín (Springer) del Scheduling 2001ISBN 3-540-41931-4
·        Stallings, Guillermo (2004). Sistemas operativos Internals y principios del diseño (quinto edición internacional). Prentice Pasillo. ISBN 0-13-147954-7

·        Stallings, Guillermo (2004). Sistemas operativos Internals y principios del diseño (cuarta edición). Prentice Pasillo


Hemeroteca:
Examen

1-¿Qué es planificar?
a) Aprender      
 b) Trazar los planos para la ejecución de una obra.          
 c) Ordenar
d) sentirnos fuertes
2- ¿Estudiar significa?
a) Compartir con tus amigos/as.
b) Lograr comprensión
c) adquirir información
d) 
3- ¿La planificación es un proceso?
a) Exitoso
b) organizado
c) gradual
d) 
4-¿Un sistema operativo en tiempo real se caracteriza por?          
a) poseer varias memorias
b) controlar la entrada de datos
c) garantizar la ejecución del programa
d) 
5-¿Es un tipo de planificador?
a) largo plazo
b) máximo plazo
c) mínimo plazo
d) gráfico
6-¿Los procesos se clasifican en?
a) cooperativos
b) independientes
c) inteligentes
d) 

7-¿Es  un requisito de un buen algoritmo de planificación?
a) Eficiencia
b) eficacia
c) excelencia
d) 

8-¿Es la cantidad completada de trabajo completada por unidad de tiempo ?
a) multiprogramación
b) esquema
c) productividad
d) sugerencias
9-¿Es una tarea del despachador?
a) cambiar el contexto
b) cambiar el pulso
c) cambiar el temporizador
d) cambiar nuestro estado de ánimo
10-¿Son las políticas de planificación importantes para ti?
a) Si
b) NO
c) Tal vez
d) nunca me interesaría por ellas.


No hay comentarios:

Publicar un comentario