Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TRABAJO Y ENERGÍA
Índice
xeIntroducción...................................................................................................................................3
Administración de Procesos...............................................................................................................4
Expulsión........................................................................................................................................4
Objetivos de la planificación..........................................................................................................4
Algoritmos de planificación............................................................................................................4
Planificación Round-Robin.............................................................................................................4
Planificación por prioridad.............................................................................................................4
Colas múltiples...............................................................................................................................5
Primero el trabajo más cortó.........................................................................................................5
Planificación garantizada................................................................................................................5
Análisis Personal:...........................................................................................................................5
Concurrencia de Procesos..................................................................................................................5
El problema del productor y consumidor.......................................................................................5
Mecanismos de arbitraje................................................................................................................6
Sección crítica.................................................................................................................................7
Tipos de mecanismos de sincronización.........................................................................................7
Implantación y mecanismos de sincronización..................................................................................8
Mecanismos de sincronización.......................................................................................................8
Optimistas......................................................................................................................................8
Pesimista........................................................................................................................................9
Implementación del control de concurrencia pesimista....................................................................9
Descripción de políticas de planificación de trabajos y procesos.......................................................9
Planificación Round-robin............................................................................................................10
Prioridades monótonas en frecuencia (RMS (Rate-monotonic scheduling))................................10
Menor tiempo de respuesta primero (EDF (Earliest deadline first scheduling))...........................11
FIFO - También conocido como FCFS "First Come, First Served"..................................................12
LIFO..............................................................................................................................................13
Conclusión / Análisis Personal..........................................................................................................14
Introducción
Nombraremos tres grandes grupos relacionado con la filosofía del sistema: Planificación en
sistemas con un Procesador, Multiprocesador y Tiempo real; identificando en cada caso sus
componentes, sus finalidades y funciones.
Administración de Procesos
La planificación es el proceso por el cual el sistema operativo selecciona que proceso ejecutar.
La selección del proceso se basa en alguno de los algoritmos de planificación que se describen
más abajo.
Expulsión
Es la característica por el cual el sistema operativo puede o no expulsar del estado de ejecución a
un proceso dado. En este sentido entonces tenemos la planificación apropiada en la cual el
sistema operativo puede cortar en cualquier momento la ejecución de un proceso y la planificación
no apropiada en la cual una vez que el proceso está en ejecución el sistema operativo no puede
sacarlo de ese estado.
Objetivos de la planificación
Algoritmos de planificación
Los algoritmos de planificación son los que definen que política se va a seguir para que un
proceso pase al estado de ejecución.
Planificación Round-Robin
En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y
en el caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la
cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse
que todos los procesos reciban ese quantum de procesamiento.
En la planificación round-robin todos los procesos son tratados con la misma prioridad. Para el
caso de este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son
ejecutados.
Colas múltiples
Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que
se tienen que ejecutar.
Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento or lotes
en los cuales se puede saber cuál es el tiempo de duración de la ejecución de cada proceso y
entonces se puede seleccionar primero el trabajo más corto. El problema que se presenta con éste
algoritmo es que los grandes procesos podrían sufrir de inanición dado que cualquier proceso
pequeño se “cuela” sobre uno de mayor tamaño y como resultado final se podría dar el caso que el
proceso grande nunca obtenga procesamiento.
Planificación garantizada
Análisis Personal:
Concurrencia de Procesos
La concurrencia de procesos se refiere a las situaciones en las que dos o más procesos puedan
coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran coordinarse
en su ejecución. Para evitar dicha coincidencia, el sistema operativo ofrece mecanismos de
arbitraje que permiten coordinar la ejecución de los procesos.
proceso A |-- -- --
proceso B | -- -- --
|_____________
Recuerde que el planificador de procesos, como hemos visto en capítulos anteriores, emplea
criterios de planificación que no tienen en consideración el objetivo de los procesos. Podemos decir
que el planificador de procesos desconoce cuál es el propósito de los procesos, únicamente puede
observar su comportamiento, es decir, si presentan un comportamiento más o menos interactivo.
Por tanto, el programador, a la hora de modelar los procesos, debe emplear mecanismos de
arbitraje que ofrece el sistema operativo y que permiten resolver el problema de concurrencia que
se plantee.
Mecanismos de arbitraje
Los mecanismos de arbitraje que ofrece el sistema operativo son básicamente dos:
Programación concurrente
Comunicación: El S.O. transmite mensajes entre los procesos, que se usan para intercambiar,
enviar o recibir información.
Sección crítica
Una sección crítica se trata de una sección del código que puede ser ejecutada por un único
proceso o hilo simultáneamente. Un ejemplo de sección crítica es la sección de código en la que se
accede a un recurso compartido. Para evitar el acceso simultáneo a la sección crítica se emplean
mecanismos que garantizan la exclusión mutua.
La exclusión mutua se debe realizar de forma coordinada y eficiente, para ello se requiere:
Si hay varios esperando usar el recurso y éste se libera, uno de los que estaba esperando lo usará
durante un tiempo determinado.
Para llevar esto a cabo se necesita un protocolo que indique cuando el recurso está libre y cuando
está siendo ocupado.
Optimistas: Este mecanismo considera que la frecuencia de acceso a un cierto recurso compartido
es baja. Este tipo tiene más consumo de memoria, ya que tiene que copiar el recurso compartido y
en caso de interferencia en el hilo tiene que volver a ejecutarlo y consume más recursos.
Pesimistas: Este mecanismo permite coordinar la ejecución de dos o más procesos que acceden al
recurso compartido con una frecuencia alta.
Dependerá del criterio del programador el tipo de mecanismo que utilice ya que puede que no elija
el tipo correcto. Por ejemplo, puede que la frecuencia de acceso a un cierto recurso sea alta y el
programador le asigna un mecanismo optimista, esto provocaría no obtener el resultado esperado.
Implantación y mecanismos de sincronización.
Mecanismos de sincronización
Optimistas
Se consume más memoria, pues hay que realizar una copia del recurso compartido para efectuar
la actualización.
En base al ejemplo anterior, hay que garantizar que la operación de comprobación y actualización
es atómica. Se dice que una operación es atómica cuando es indivisible, es decir, que no
quedamos en una situación intermedia al ejecutar dicha operación.
Como ventaja, este tipo de mecanismo nos ofrece un mayor grado de paralelismo, por tanto, una
mayor tasa de transferencia, siempre que se emplee en una situación donde la frecuencia de
concurrencia sea baja.
Por último, si el programador ha empleado una aproximación optimista para una situación en la que
la frecuencia de coincidencia es alta, podría darse el caso de que un hilo no progrese en su
ejecución de manera indefinida, al tener que volver a reintentar la actualización una y otra vez
hasta conseguirlo sin que haya concurrencia.
Paso 1. Realiza una copia del estado en el que está el recurso compartido.
Paso 3. Compruebo si mi copia alterada coincide con el original aplicándole también el tratamiento.
Pesimista
Por último, se podría emplear un control de concurrencia pesimista para resolver un problema que
se resuelve con un control de concurrencia optimista, pero no al revés.
Planificación Round-robin
Round-robin 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. El nombre
del algoritmo viene del principio de Round-Robin conocido de otros campos, donde cada persona
toma una parte de un algo compartido en cantidades parejas.
Una forma sencilla de entender el Round-robin es imaginar una secuencia para "tomar turnos". En
operaciones computacionales, un método para ejecutar diferentes procesos de manera
concurrente, para la utilización equitativa de los recursos del equipo, es limitando cada proceso a
un pequeño período (quantum), y luego suspendiendo este proceso para dar oportunidad a otro
proceso y así sucesivamente. A esto se le denomina comúnmente como Planificación Round-
Robin.
Estos sistemas operativos son apropiativos (con desalojo) y tienen garantías deterministas en
cuanto a los tiempos de respuesta. RMS se utiliza en conjunción con esos sistemas para
proporcionar garantías de tiempos de respuesta para una aplicación particular.
La versión básica del algoritmo de planificación de tasa monotónica asume que los procesos/hilos
tienen las siguientes propiedades:
Layland en 1973 demostró que para un conjunto de n tareas periódicas con períodos únicos, existe
una planificación factible que siempre va a cumplir con los plazos si la utilización de la CPU está
por debajo de un límite dependiente del número de tareas. La prueba de planificabilidad para RMS
es:
Entonces
Es decir, del FED puede garantizar que todos los plazos se cumplen siempre que el total de la
CPU de utilización no es más de 100%. En comparación con las técnicas de programación de
prioridad fija como programación de velocidad monotónica , EDF puede garantizar todos los
plazos establecidos en el sistema de carga más alta.
Sin embargo, cuando el sistema está sobrecargado, el conjunto de procesos que se perderá
los plazos es en gran medida impredecible (que estará en función de los plazos y hora en que
se produce la sobrecarga exacta.) Esto es una desventaja considerable para un diseñador de
sistemas de tiempo real. El algoritmo también es difícil de implementar en hardware y no es un
tema complicado de representar los plazos en diferentes rangos (plazos no pueden ser más
precisa que la granularidad del reloj utilizado para la programación). Si se utiliza una aritmética
modular para calcular los plazos futuros en relación con el momento, el campo que almacena
un futuro fecha límite relativa debe acomodar al menos el valor de la ( "duración" ({de la hora
prevista más larga hasta la finalización} * 2) + "ahora" ). Por lo tanto EDF no se encuentra
comúnmente en los sistemas informáticos industriales en tiempo real.
Hay una cantidad significativa de investigaciones tratar con EDF programación en tiempo
real ; es posible calcular peores tiempos de respuesta caso de procesos de EDF , para hacer
frente a otros tipos de procesos distintos periódicos y utilizar los servidores para regular las
sobrecargas.
Primero en entrar, primero en salir”, en inglés first in, first out (FIFO), es un concepto utilizado en
estructuras de datos, contabilidad de costes y teoría de colas. Guarda analogía con las personas
que esperan en una cola y van siendo atendidas en el orden en que llegaron, es decir, que ‘la
primera persona que entra es la primera persona que sale’.
Uno de los usos de las colas es la exploración ‘en anchura’ de un árbol binario de búsqueda. Otro
uso típico de las colas, es la gestión de descargas de una aplicación P2P.
También se le denomina «primero en llegar, primero en ser atendido», en inglés first come,
first served (FCFS).
LIFO.
El término LIFO es el acrónimo inglés de Last In, First Out (“último en entrar, primero en salir”),
también conocido como FILO que es la sigla de First In, Last Out (“primero en entrar, último en
salir”). Puede tener distintos significados según el contexto.
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 ha puesto.
Notamos que en sistemas más complejos, como los de tiempo real, la planificación correcta es
sumamente importante, considerando que estos son usados para controlar, en su mayoría,
sucesos de la vida real y no cumplirían su cometido si fallan por tener una planificación de
procesos deficiente que provoque lentitud o “cuelgues”