• No se han encontrado resultados

Apuntes U2 de S-O 2020-1

N/A
N/A
Protected

Academic year: 2020

Share "Apuntes U2 de S-O 2020-1"

Copied!
12
0
0

Texto completo

(1)

ENERO/JUNIO 2020

APUNTES U2

Unidad 2.

Administración de procesos y del procesador

2.1. Concepto de proceso

2.2. Estados y transiciones de los procesos

2.3. Procesos ligeros: Hilos o hebras

2.4. Concurrencia y secuencialidad

2.5. Niveles, objetivos y criterios de planificación

2.6. Técnicas de administración del planificado

2.1. Concepto de proceso

Un

proceso

puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados".

Concepto de programa

El término programa hace referencia a un plan o proyecto organizado de las distintas actividades que se irá a realizar. También, es un sistema de distribución de las distintas materias de un curso o asignatura.

Concepto de procesador

El procesador es en los sistemas informáticos el complejo de circuitos que configura la unidad central de procesamiento o CPU.

Típicamente, un procesador o microprocesador es parte de cualquier computadora o de equipos electrónicos digitales y es la unidad que hace las veces de “motor” de todos los procesos informáticos desde los más sencillos hasta los más complejos.

Todos los sistemas operativos de multiprogramación están construidos en torno al concepto de proceso. Por lo tanto, los requisitos principales que deben satisfacer un S.O. están expresados haciendo referencia a procesos:

· Debe intercalar la ejecución de un conjunto de procesos para maximizar la utilización del procesador ofreciendo a la vez un tiempo de respuesta razonable.

· Debe asignar los recursos a los procesos en conformidad con un política específica

· Podría tener que dar soporte a la comunicación entre procesos y la creación de procesos por parte del usuario

El procesador ejecutará instrucciones de entre un repertorio en una secuencia dictada por los valores cambiantes del IP. A lo largo del tiempo, este contador puede apuntar a códigos de programas diferentes que son parte de diferentes aplicaciones. Desde el punto de vista de un programa individual, su ejecución involucra una secuencia de instrucciones del programa. La ejecución de un programa individual se conoce como proceso o tarea.

(2)

El comportamiento de un proceso individual puede caracterizarse por la traza, que es un listado de la secuencia de instrucciones que se ejecutan para dicho proceso. El comportamiento del procesador puede caracterizarse

mostrando la forma en que se intercalan las trazas de varios procesos. Todo sistema operativo permite a un proceso continuar su ejecución sólo por un cantidad máxima determinada de ciclos, después de los cuales es interrumpido (time-out); esto impide que un solo proceso monopolice el tiempo del procesador.

2.2. Estados y transiciones de los procesos

· Ejecución: si suponemos un computador con un único procesador, entonces sólo podrá haber un proceso en este estado.

· Listo: proceso que está preparado para ejecutar, en cuanto se le dé la oportunidad

· Bloqueados: proceso que no puede ejecutar hasta que se produzca cierto suceso, como la terminación de una operación de E/S.

· Nuevo: proceso que se acaba de crear, pero que aún no ha sido admitido por el sistema operativo en el grupo de procesos ejecutables.

· Terminado: un proceso que ha sido excluido del grupo de procesos ejecutables, porque se detuvo o porque fue abandonado por alguna razón.

Si un nuevo usuario intenta conectarse a un sistema de tiempo compartido o si un nuevo trabajo por lotes es remitido para su ejecución. El sistema operativo puede definir un nuevo proceso en dos pasos. Primero, el S.O: lleva a acabo algunas tareas necesarias de gestión interna Se le asocia un identificador al proceso y se construyen y asignan algunas tablas necesarias para gestionar el proceso. En este punto, el proceso estará en el estado Nuevo. Esto significa que se han llevado a cabo las acciones necesarias para crear el proceso pero no se ha comprometido aún a su ejecución.

Asimismo, un proceso sale de un sistema en dos pasos. Primero, el proceso termina cuando llega al punto normal de terminación, cuando se abandona debido a un error irrecuperable o cuando otro proceso con la

debida autoridad hace que el proceso abandone. La terminación pasa el proceso al estado Terminado. En este punto, el proceso ya no se elige más para la ejecución. Sin embargo, las tablas y otra información asociada con el trabajo son conservadas temporalmente. Esto le da tiempo a otros programas auxiliares o de soporte para extraer la información necesaria.

(3)

ENERO/JUNIO 2020

APUNTES U2

Transiciones de estado

Los estados de un proceso obedecen a su participación y disponibilidad dentro del sistema operativo y surgen de la necesidad de controlar la ejecución de cada proceso. Los procesadores sólo pueden ejecutar un solo proceso a la vez, turnándolos para el uso de éste. Existen procesos no apropiativos o cooperativos que básicamente ocupan todo el tiempo del procesador hasta que ellos deciden dejarlo. Los procesos apropiativos son aquellos que ocupan por un período de tiempo el procesador hasta que una interrupción o señal llega al procesador para hacer el cambio de proceso, a esto se le conoce como cambio de contexto.

Los posibles estados que puede tener un proceso son ejecución, bloqueado y listo:

Ejecución, es un proceso que está haciendo uso del procesador.

Bloqueado, No puede ejecutarse hasta que un evento externo sea llevado a cabo. Listo, ha dejado disponible al

 

procesador para que otro proceso pueda ocuparlo.

Las posibles transiciones son 4. La primera se realiza cuando el sistema operativo determina que el proceso no puede continuar justo en ese momento, en algunos sistemas se puede hacer una llamada al sistema "pause" para pasar al estado bloqueado, en Unix cuando el proceso está leyendo datos provenientes de una canalización o de un archivo especial (terminal) y no hay entrada disponible, el proceso se bloquea de forma automática.

Las transiciones 2 y 3 son llevadas a cabo por el planificador de procesos, siendo que el proceso no tiene

conocimiento de éste. La transición 2 se da cuando el planificador de procesos decide que el proceso ya estuvo el tiempo suficiente en ejecución y debe dar paso a la ejecución de otros procesos (adquieran tiempo del

procesador). La transición 3 se realiza cuando todos los procesos han ocupado tiempo del procesador y debe retomarse el primer proceso.

La transición 4 ocurre cuando se produce un evento externo por el que un proceso estaba en espera, por ejemplos, introducir datos desde la terminal. Si no hay otro proceso en ejecución en ese instante, la transición 3 se activa y el proceso comienza a ejecutarse; también podría pasar al estado de "listo" y esperar un momento para iniciar la ejecución.

TRANSICION DE ESTADOS DE UN PROCESO

Cuando un proceso se crea, pasa a la cola de procesos listos. Se dice que existe una transición de estado cuando un proceso cambia de un estado a otro.

(4)

Está claro que el cambio de contexto es un concepto distinto del cambio de proceso. En los cambios de estado del proceso, por ejemplo, si el proceso que estaba ejecutándose pasa a otro estado (Listo, Bloqueado, etc) los pasos que se llevan a cabo son:

1. Salvar el contexto del procesador

2. Actualizar el PCB que estaba en estado de Ejecución. Esto implica cambiar el estado del proceso a alguno de los otros estados.

3. Mover el PCB a la cola apropiada (Listos, Bloqueados, etc.)

4. Seleccionar otro proceso para ejecución

5. Actualizar el PCB del proceso seleccionado. Esto incluye cambiar el estado del proceso a Ejecución.

6. Actualizar las estructuras de datos de gestión de memoria.

7. Restaurar el contexto del proceso a aquél que existía en el momento en el que el proceso seleccionado dejó por última vez el estado de Ejecución.

2.3. Procesos ligeros: Hilos o hebras

Se ha presentado el concepto de proceso incluyendo las dos características siguientes:

· Unidad de propiedad de los recursos: a cada proceso se le asigna un espacio de direcciones virtuales para albergar a la imagen del proceso y, de cuando en cuando, al proceso se le puede asignar memoria virtual y otros recursos, tales como canales de E/S, dispositivos de E/S y archivos.

· Unidad de expedición: un proceso es un camino de ejecución (traza) a través de uno o más programas. Esta ejecución puede ser intercalada con la de otros procesos. De este modo, un proceso tiene un estado (Ejecución, Listo, etc.) y una prioridad de expedición. La unidad planificada y expedida por el S.O. es el proceso.

En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso. Para distinguir estas dos características, la unidad de expedición es llamada thread y la unidad de propiedad de los recursos, task. Un thread (también llamado hilo, hebra o proceso liviano) es, básicamente, la unidad de utilización de la CPU.

Multi-threading

Algunos sistemas operativos soportan múltiples hilos en la ejecución dentro de un proceso simple. Esto es conocido como multi-threading. Los procesos continúan teniendo un PCB y una cantidad de memoria para el usuario, pero cada hilo que pertenece a dicho proceso tiene un bloque de control de hilos, una pila de usuario y una pila de kernel propias.

Implementación de los hilos

Existen dos características generales en la implementación de los hilos:

· Hilos de nivel usuario: en este nivel todo el trabajo de los hilos es realizado por la aplicación y el kernel no se percata de la existencia de dichos hilos. Una aplicación (que puede ser programada para ser multithread

usando bibliotecas de hilos) comienza con un hilo simple. La aplicación y su hilo son localizados en un proceso simple administrado por el kernel. La generación de nuevos hilos es realizada invocando al utilitario que se encuentra en la biblioteca de hilos.

(5)

ENERO/JUNIO 2020

APUNTES U2

· Hilos de nivel kernel: tiene la desventaja de que el cambio de hilos requiere siempre la intervención del kernel. No hay un código de administración de hilos en el área de la aplicación, sino simplemente una interface de una aplicación programada (API) para el kernel. El kernel mantiene la información del contexto del proceso entero y de cada uno de los procesos hilos que se encuentran dentro del mismo. La ventaja que presenta es que si uno de estos procesos hilos se encuentra en estado bloqueado, el kernel puede ejecutar otro proceso hilo del mismo padre.

Algunas características de los threads

Los threads poseen las siguientes características:

· Tienen un pequeño estado no compartido

· Un threads individual tiene su propio registro de estado y generalmente su propio Stack

· Los hilos pueden estar en uno de los siguientes estados: listos, bloqueados, ejecutando o terminados. O sea, igual que un proceso tradicional. Los hilos comparten CPU, por lo que un solo hilo puede estar ejecutándose.

· Un hilo dentro de un proceso se ejecuta secuencialmente.

· Los hilos pueden crear hilos hijos.

· Un hilo puede leer o escribir sobre cualquier otra pila de otro hilo. No se provee protección porque no es necesaria, ya que solo un usuario puede tener una tarea individual con múltiples hilos.

· Una tarea no hace nada sin hilos y un hilo debe estar en una tarea

· Un cambio de contexto en el hilo requiere un cambio en el juego de registros, pero el trabajo relacionado con manejo de memoria no es necesario hacerlo.

· Un hilo único a nivel usuario ejecutando un System Call causará a la tarea entera esperar hasta que el System Call sea devuelto.

(6)

2.4. Concurrencia y secuencialidad

Principios Generales de Concurrencia

Es aparente que las nociones de procesos y recursos están estrechamente vinculadas. Un proceso es una tarea, identificada como una secuencia de instrucciones ejecutándose, o una colección de instrucciones formando un programa. Un recurso, por otra parte, es un término incluido en el sistema operativo, como también impresoras, discos, cintas de discos, procesos y repartos de la capacidad de memoria. Sin embargo, los recursos no son tratados en forma igualitaria por el S.O. y dependiendo de su cinta, tratará los procesos en forma diferente. Los recursos no expropiables (No Preemption) son usados por los procesos que requieren una utilización de recursos ininterrumpidos. Los recursos expropiables (Preemption) requieren un control del S.O. para cambiar correctamente la utilización de los recursos.

En un sistema multiprogramado (se llama multiprogramación a la gestión de varios procesos dentro de un sistema monoprocesador), los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea, aunque no se consigue un proceso paralelo real y aunque se produce una cierta sobrecarga en los intercambios de procesos de un sitio a otro, la ejecución intercalada produce beneficios importantes en la eficiencia del

procesamiento y en la estructuración de los programas.

En un sistema con varios procesadores, no sólo es posible intercalar los procesos, sino también superponerlos. Ambas técnicas, la intercalación y la superposición, pueden contemplarse como ejemplos de proceso concurrente y ambas plantean los mismos problemas. En el caso de un sistema monoprocesador, los problemas creados por la multiprogramación parten del hecho de que la velocidad relativa de ejecución de los procesos no puede predecirse. Depende de la actividad de otros procesos, de la forma en que el sistema operativo trata las interrupciones y de las políticas de planificación.

La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos.

Concurrencia, Exclusión Mutua y Sincronización

La intercalación y la superposición pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador, los problemas son Entronización de la velocidad de ejecución de los procesos que no pueden predecirse y depende de las actividades de otros procesos

Exclusión Mutua

Se puede utilizar el paso de mensajes para cumplir con la exclusión mutua. Esta técnica dice que si hay más de un proceso ejecutando la acción receive concurrentemente, entonces:

· Si hay un mensaje, se entrega sólo a uno de los procesos y los otros se bloquean.

· Si el buzón está vacío, todos los procesos se bloquean. Cuando haya un mensaje disponible, sólo se activa y toma el mensaje uno de los procesos bloqueados. Una vez que un proceso ha conseguido el mensaje, ejecuta su sección crítica y, después, devuelve el mensaje al buzón. De este modo, el mensaje funciona como un testigo (token) que se pasa de un proceso a otro.

(7)

ENERO/JUNIO 2020

APUNTES U2

Sincronización

La comunicación de un mensaje entre 2 procesos implica cierto nivel de sincronización entre ambos. El receptor no puede recibir un mensaje hasta que sea enviado por otro proceso. Además hace falta especificar que le sucede a un proceso después de ejecutar una primitiva SEND o RECEIVE.

2.5. Niveles, objetivos y criterios de planificación

Conceptos Básicos

Un planificador de tareas es una aplicación de software empresarial que se encarga de las ejecuciones de fondo sin vigilancia, comúnmente conocido por razones históricas como“el procesamiento por lotes”.

Que es un procesamiento por lotes? Es la ejecución de una serie de programas.

Hay muchos conceptos que son centrales para la aplicación casi todos los trabajos Planificador y que son ampliamente reconocidos con variaciones mínimas:

 Empleos

 Dependencias

 Flujos de trabajo

 Usuarios

Más allá de la básica, herramientas de programación única instancia de SO hay dos arquitecturas principales que existen para el software de planificación de trabajo.

Maestro / Agente de la arquitectura: El software Job Scheduling se instala en una sola máquina (Master), mientras que en equipos de producción sólo un componente muy pequeño (agente) está instalado que le espera a las órdenes del Maestro, los ejecuta, y devuelve el código de salida de nuevo al maestro.

Arquitectura Cooperativa: Esto permite equilibrar la carga de trabajo dinámico para maximizar la utilización de los recursos de hardware y de alta disponibilidad para garantizar la prestación de servicios.

PLANIFICACION: Gestión del procesador realizada por el sistema operativo a través de distintas políticas y

mecanismos.

(8)

OBJETIVO: Dar un buen servicio a los procesos.

FUNCION: Reparto de tiempo del procesador para los procesos.

PLANIFICADOR: Parte del sistema operativo que toma decisiones en cuanto a los procesos del sistema.

NIVELES DE PLANIFICACION

 Planificación a Largo Plazo (Planificador de trabajo).  Planificación a mediano plazo (planificador de swapping).  Planificación a corto plazo (planificador del procesador).

NIVELES OBJETIVOS

 JUSTICIA

 MAXIMA CAPACIDAD DE EJECUCION

 MAXIMO NUMEROS DE USUARIOS INTERACTIVOS  PRODECIBILIDAD

 MINIMIZACION DE SOBRECARGA  EQUILIBRIO DE USO DE RECURSOS  SEGURIDAD DE PROPIEDADES

2.6. Técnicas de administración del planificado

Tipos de planeación

•Planeación a Plazo Fijo

Este planificador está presente en algunos sistemas que admiten además de procesos interactivos trabajos por lotes. Usualmente , se les asigna una prioridad baja a los trabajos por lotes, utilizándose estos para mantener ocupados a los recursos del sistema durante períodos de baja actividad de los procesos interactivos.

Normalmente, los trabajos por lotes realizan tareas rutinarias como el cálculo de nóminas; en este tipo de tareas el programador puede estimar su gasto en recursos, indicándoselo al sistema. Esto facilita el funcionamiento del planificador a largo plazo.

•Planeación del Primero en Entrar Primero en Salir (FIFO)

Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que llevara más tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente.

La ventaja de este algoritmo es su fácil implementación, sin embargo, no es válido para entornos interactivos ya que un proceso de mucho cálculo de CPU hace aumentar el tiempo de espera de los demás procesos . Para implementar el algoritmo sólo se necesita mantener una cola con los procesos listos ordenada por tiempo de llegada. Cuando un proceso pasa de bloqueado a listo se sitúa el último de la cola.

•Planeación de Asignación en Rueda (RR: Round Robin)

Este es uno de los algoritmos más antiguos, sencillos y equitativos en el reparto de la CPU entre los procesos, muy válido para entornos de tiempo compartido. Cada proceso tiene asignado un intervalo de tiempo de ejecución,

(9)

ENERO/JUNIO 2020

APUNTES U2

llamado cuantum o cuánto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU. El round robin es muy fácil de implementar.

Planificación por Prioridad al más corto (SJF, Short Job First).

Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por tanto, sólo es útil para entornos batch. Su característica es que cuando se activa el planificador, éste elige la ráfaga de menor duración. Es decir, introduce una noción de prioridad entre ráfagas. Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecución de los procesos.

FIRST IN FIRST OUT (FIFO)

El primero que llega se atiende primero (FIFO) por sus siglas en inglés. Es un algoritmo que no usa expropiación, y que consiste en atender a los procesos por estricto orden de llegada a la cola READY. Cada proceso se ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de I/O), o sea, ejecuta su fase de CPU completa. La gracia es que se trata de un algoritmo muy simple: la cola READY se maneja como una simple cola FIFO. El

problema es que el algoritmo es bastante malo.

Tiempo de espera: Consideremos que los procesos P1, P2 y P3 están LISTOS para ejecutar su siguiente fase de CPU, cuya duración será de 24, 3 y 3 milisegundos, respectivamente. Si ejecutan en el orden P1, P2, P3, entonces los tiempos de espera son: 0 para P1, 24 para P2 y 27 para P3, o sea, en promedio, 17 ms. Pero si ejecutan en orden P2, P3, P1, entonces el promedio es sólo 3 ms.

En consecuencia, FIFO no asegura para nada que los tiempos de espera sean los mínimos posibles; peor aún, con un poco de mala suerte pueden llegar a ser los máximos posibles. Utilización de CPU: Ahora supongamos que tenemos un proceso intensivo en CPU y varios procesos intensivos en I/O.

Entonces podría pasar lo siguiente. El proceso intensivo en CPU toma la CPU por un período largo, suficiente como para que todas las operaciones de I/O pendientes se completen. En esa situación, todos los procesos están LISTOS, y los dispositivos desocupados. En algún momento, el proceso intensivo en CPU va a solicitar I/O y va a liberar la CPU.

Entonces van a ejecutar los otros procesos, pero como son intensivos en I/O, van a liberar la CPU muy rápidamente y se va a invertir la situación todos los procesos van a estar BLOQUEADOS, y la CPU desocupada. Este fenómeno se conoce como efecto convoy, y se traduce en una baja utilización tanto de la CPU como de los dispositivos de I/O.

(Vacías). Obviamente, el rendimiento mejora si se mantienen ocupados la CPU y los dispositivos (o sea, conviene que no haya colas.

(10)

ROUND ROBIN (RR).

Es una de la más simple programación de algoritmos para procesos en un sistema operativo que asigna períodos de tiempo a uno en porciones iguales y en orden circular, manejo de todos los procesos sin prioridad (también conocido como Ejecutivo cíclica). Planificación Round-robin es simple y fácil de implementar y hambre-libre. Programación de turnos puede aplicarse también a otros problemas de programación, tales como los paquetes de datos de programación en redes de computadoras.

El nombre del algoritmo viene desde el principio de round-robin conocido de otros campos, donde cada persona tiene una parte igual de algo a su vez.

Programación de trabajos de round-robin no puede ser conveniente si los tamaños de los puestos de trabajo o las tareas son muy variables. Podría favorecer un proceso que produce trabajos de gran tamaño sobre otros

procesos. Este problema puede resolverse por tiempo compartido, es decir, dando a cada trabajo una franja horaria o cuántica (su asignación de tiempo de CPU) y interrumpir el trabajo si no se cumplimenta en ese entonces. El trabajo se reanuda la próxima vez que se asigna un horario a ese proceso.

Ejemplo: La franja horaria podría ser 100 milisegundos. Si job1 toma un tiempo total de 250ms para completar, el programador de round-robin se suspender el trabajo después de 100 MS y otros trabajos de su tiempo en la CPU. Una vez que los otros puestos de trabajo han tenido su igualdad compartir (100ms cada), job1 recibirán otra asignación de tiempo de CPU y se repetirá el ciclo. Este proceso continúa hasta que el trabajo finaliza y no necesita más tiempo de la CPU.

SHORTEST JOB FIRST (SJF).

Más corta-trabajo-First (SJF) es una disciplina no preferente en la que trabajo de espera (o proceso) con la más pequeña estimada run-tiempo-a-finalización se ejecuta siguiente. En otras palabras, cuando la CPU está disponible, se asigna al proceso que tiene más pequeña CPU siguiente ráfaga.

La programación de SJF es especialmente adecuada para trabajos por lotes para que los tiempos de ejecución son conocidos de antemano. Ya que el algoritmo de programación SJF da el tiempo promedio mínimo para un

(11)

ENERO/JUNIO 2020

APUNTES U2

El algoritmo SJF favorece cortos de puestos de trabajo (o procesadores) a expensas de los más largos.

El problema evidente con el esquema de SJF es que requiere un conocimiento preciso de cuánto tiempo un trabajo o proceso se ejecutará y esta información no está disponible por lo general.

El algoritmo SJF mejor puede hacer es confiar en las estimaciones de usuario de tiempos de ejecución.

En el entorno de producción, donde los mismos trabajos se ejecutan regularmente, puede ser posible

proporcionar una estimación razonable de tiempo de ejecución, basado en el rendimiento pasado del proceso. Pero en los usuarios del entorno de desarrollo rara vez saber cómo va a ejecutar su programa.

Como FCFS, SJF es no preventivo por lo tanto, no es útil en entorno de tiempo compartido en el que hay que garantizar el tiempo de respuesta razonable.

SHORTEST REMAINING TIME(STR).

Menor tiempo restante es un método de la CPU de programación que es una versión preventiva de puestos de trabajo más corta próximo de programación. En este algoritmo de programación, el proceso con la menor cantidad de tiempo que queda hasta la terminación es seleccionado para ejecutar. Dado que el proceso está ejecutando actualmente es el único con el menor lapso de tiempo restante por definición, y desde ese momento sólo debería reducir a medida que progresa de ejecución, procesos siempre va ejecutar hasta que completen o un nuevo proceso se agrega que requiere una menor cantidad de tiempo.

Menor tiempo restante es ventajoso porque procesos cortos se controlan muy rápidamente. El sistema también requiere muy poca carga, ya que sólo hace una decisión cuando un proceso finaliza o se agrega un nuevo proceso, y cuando se agrega un nuevo proceso de que sólo el algoritmo necesita comparar el proceso actualmente en ejecución con el nuevo proceso, haciendo caso omiso de todos los demás procesos actualmente espera de ejecución. Sin embargo, tiene el potencial para el proceso de hambre para los procesos que requieren mucho tiempo para completar si continuamente se agregan procesos cortos, aunque esta amenaza puede ser mínimo cuando tiempos de proceso siguen una distribución de cola pesada

HIGHEST RESPONSE RATIO NEXT (HNR)

Proporción más alta de respuesta siguiente (HRRN) la programación es una disciplina no preventiva, similar a la Siguiente trabajo más corta (SJN), en el que la prioridad de cada trabajo es dependiente de su tiempo de ejecución estimado y también la cantidad de tiempo ha pasado a la espera. Puestos de trabajo obtienen mayor prioridad que cuanto más tiempo esperan que impide que el aplazamiento indefinido (proceso de hambre). De hecho, los trabajos que se han pasado un largo tiempo espera compitan contra las que se estima que tienen tiempos de ejecución.

Otra perspectiva

Técnicas de administración del planificador

FIFO : "Es muy simple, los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos. Una vez que el proceso obtiene la cpu, se ejecuta hasta terminar, ya que es una disciplina “no apropiativa”. Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no importantes hagan esperar a procesos importantes. Es más predecible que otros esquemas. No puede

(12)

garantizar buenos tiempos de respuesta interactivos. Suele utilizarse integrado a otros esquemas, por ejemplo, de la siguiente manera: Los procesos se despachan con algún esquema de prioridad. Los procesos con igual prioridad se despachan “FIFO”.

RR : Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de cpu, llamada “división de tiempo” o “cuanto”. Si un proceso no termina antes de expirar su tiempo de cpu ocurren las siguientes acciones: La cpu es apropiada. La cpu es otorgada al siguiente proceso en espera. El proceso apropiado es situado al final de la lista de listos. Es efectiva en ambientes de tiempo compartido. La sobrecarga de la apropiación se mantiene baja mediante mecanismos eficientes de intercambio de contexto y con suficiente memoria principal para los procesos. "

SJF : "Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo compartido. El proceso en espera con el menor tiempo estimado de ejecución hasta su terminación es el siguiente en ejecutarse. Los tiempos promedio de espera son menores que con “FIFO”. Los tiempos de espera son menos predecibles que en “FIFO”. Favorece a los procesos cortos en detrimento de los largos. Tiende a reducir el número de procesos en espera y el número de procesos que esperan detrás de procesos largos. Requiere un conocimiento preciso del tiempo de ejecución de un proceso, lo que generalmente se desconoce. Se pueden estimar los tiempos en base a series de valores anteriores. "

Queves multi-level : "Los esquemas analizados hasta ahora suponen que todos los procesos ejecutables están en la memoria principal. Si la memoria principal es insuficiente, ocurrirá lo siguiente.Habrá procesos ejecutables que se mantengan en disco. Habrá importantes implicaciones para la planificación, tales como las siguientes: El tiempo de alternancia entre procesos para traer y procesar un proceso del disco es considerablemente mayor que el tiempo para un proceso que ya está en la memoria principal. Es más eficiente el intercambio de los procesos con un planificador de dos niveles. El esquema operativo de un planificador de dos niveles es como sigue: Se carga en la memoria principal cierto subconjunto de los procesos ejecutables. El planificador se restringe a ellos durante cierto tiempo. Periódicamente se llama a un planificador de nivel superior. El planificador de nivel superior se encarga de desplazar los procesos de memoria a disco y viceversa.

Multi-level feedback queves : Proporcionan una estructura para lograr los siguientes objetivos: Favorecer trabajos cortos. Favorecer trabajos limitados por la Entrada / Salida para optimizar el uso de los dispositivos de Entrada / Salida. Determinar la naturaleza de un trabajo lo más rápido posible y planificar el trabajo (proceso) en consecuencia. Un nuevo proceso entra en la red de línea de espera al final de la cola superior. Se mueve por esta cola “FIFO” hasta obtener la cpu. Si el trabajo termina o abandona la cpu para esperar por la terminación de una operación de Entrada / Salida o la terminación de algún otro suceso, el trabajo abandona la red de línea de espera.

Referencias

Documento similar

Los directivos más exitosos en las escuelas heterogéneas mantienen su atención prioritaria en mejorar la enseñanza, las prácticas de aula y ayudar a los docentes a

Si la inclinación supera la latitud del lugar de lanzamiento (gura 2c) hay dos posibilidades en las que será necesario determinar el Azimut, Az adecuado para insertar directamente

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Residuos de industrias pesqueras. - Las conser- vas de pescados tienen como residuos las cabezas y tripas de estos. animales, que, cocidas para extraer las grasas, desecadas

Para crear el perfil se pedirán el nombre y un check que indica si está activo o no y además tiene el listado de los nombres del objeto de cada pantalla (estos nombres serán

A partir de los resultados de este análisis en los que la entrevistadora es la protagonista frente a los entrevistados, la información política veraz, que se supone que

de mutuo acuerdo y en igual de condiciones, otras veces de mutuo acuerdo pero en desigualdad porque no le queda más remedio a una de ellas (se encuentra en