Está en la página 1de 14

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN

UNIVERSIDAD ALEJANDRO DE HUMBOLDT

ASIGNATURA: SISTEMA OPERATIVOS I

TRABAJO Y ENERGÍA

CARACAS, FEBRERO DEL 2016.

Í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

La Planificación hace referencia a un conjunto políticas y mecanismos incorporados al sistema


operativo que gobiernan el orden en que deben ser ejecutados los trabajos que deben
cumplimentarse por el sistema operativo. El Objetivo de la planificación es optimizar el rendimiento
del sistema.

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

Los objetivos de la planificación de proceso son:

 Equidad, todos los procesos deben poder ejecutarse


 Eficacia, mantener ocupada la CPU un 100% del tiempo
 Tiempo de respuesta, minimizar el tiempo de respuesta al usuario
 Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para
obtener sus resultados
 Rendimiento, maximizar el número de tareas procesadas por hora.

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.

Planificación por prioridad

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.

Primero el trabajo más cortó

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

En este modelo de planificación se tiene en cuenta la cantidad de usuarios en el sistema y se le


asigna a cada uno el tiempo de ejecución de 1/n (siendo n la cantidad total de usuarios) de esa
forma el planificador tiene que llevar cuenta del tiempo de ejecución de los procesos y balancear el
tiempo que están utilizando el procesador para cumplir con la ecuación previa.

Análisis Personal:

Es de suma importancia administrar los procesos de manera adecuada, porque de lo contrario el


procesador llegaría a un colapso, que para nosotros es conocido como vulgarmente hablando
Pantalla Azul o Screen Dead.

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.

El problema del productor y consumidor

Un ejemplo de un problema de concurrencia sería el siguiente: Dados dos procesos A (productor) y


B (consumidor), suponiendo que ambos se ejecutan indefinidamente en el tiempo, el proceso A
debe recibir tiempo de ejecución antes que B, tras esto, el proceso B debe recibir su oportunidad
de ejecución, dando paso de nuevo al proceso A y así sucesivamente, siguiendo un esquema de
alternancia estricta.

proceso A |-- -- --

proceso B | -- -- --

|_____________

Recuerde que el planificador de procesos, al desconocer la naturaleza de los procesos y sus


objetivos, no dispone de información suficiente para garantizar la secuencia de ejecución descrita
en el ejemplo anterior. Por tanto, suponiendo que ambos procesos se encuentran en estado
preparado, podría seleccionar al proceso B para pasar a estado activo antes de seleccionar al
proceso A, situación que no es deseada.

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:

Mecanismos de sincronización: el sistema operativo ofrece mecanismos que permiten a los


procesos coordinar su ejecución para conseguir el objetivo sin que sucedan situaciones no
deseadas, como por ejemplo que dos o más procesos coincidan simultáneamente en el acceso a
un cierto recurso que no se puede compartir.

Mecanismos de mensajería: el sistema operativo ofrece mecanismos de comunicación entre


procesos mediante mensajes. El intercambio de mensajes entre procesos permite coordinarlos.

Programación concurrente

El término programación concurrente se emplea con frecuencia para referirse a un conjunto de


programas que funcionan en cooperación.

Hay tres formas de interacción entre procesos cooperativos:

Concurrencia: Hay un recurso común, si varios procesos modificaran la misma información a la


vez, cada uno podría destruir parte del trabajo de los demás. Si lo hace uno tras otro, en serie, se
obtendrá el resultado correcto.
Sincronización: El Sistema Operativo se encarga de enviarle señales a los procesos para coordinar
su evolución y conseguir que progrese armónicamente.

Comunicación: El S.O. transmite mensajes entre los procesos, que se usan para intercambiar,
enviar o recibir información.

Se le llama programación concurrente ya que la concurrencia fue la primera forma de iterar


recursos entre procesos cooperativos.

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:

No más de un proceso por sección crítica y recurso compartido.

El mismo proceso no puede usar el mismo recurso compartido indefinidamente.

Todo proceso debe entrar antes o después a usar el recurso.

Si el recurso está sin uso, cualquiera que lo requiera dispondrá de él inmediatamente.

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.

Tipos de mecanismos de sincronización

Los mecanismos de sincronización los podemos catalogar en dos categorías:

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

Este mecanismo debe emplearse si el programador considera que la frecuencia de acceso a un


recurso compartido es baja, es decir, que supone que la probabilidad de coincidencia de dos o más
procesos al recurso compartido es baja.

Los inconvenientes de este tipo de mecanismo son dos:

Se consume más memoria, pues hay que realizar una copia del recurso compartido para efectuar
la actualización.

En situaciones de coincidencia, se tiene que volver a realizar la operación, por tanto, se


desperdician recursos de procesamiento.

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.

Un mecanismo de sincronización optimista funciona de la siguiente manera:

Paso 1. Realiza una copia del estado en el que está el recurso compartido.

Paso 2. Opera con esa copia.

Paso 3. Compruebo si mi copia alterada coincide con el original aplicándole también el tratamiento.
Pesimista

Este mecanismo debe emplearse si se considera que la frecuencia de acceso al recurso


compartido es alta.

En este mecanismo disponemos de tres partes:

 El protocolo de entrada, en el que se emplea un mecanismo que no permite continuar con la


ejecución si otro u otros procesos están accediendo al recurso compartido.
 La sección crítica, en el que se realizan las operaciones pertinentes con el recurso compartido.
 El protocolo de salida, en el que se vuelve a permitir el acceso al recurso compartido.

Los protocolos de entrada y salida son, generalmente, operaciones costosas en términos de


recursos de procesamiento, pues requieren el uso de instrucciones atómicas cuyo tiempo de
ejecución es alto.

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.

Implementación del control de concurrencia pesimista

El control de concurrencia pesimista se puede implementar de dos formas mediante:

Espera ocupada o activa, mediante cerrojos. En este mecanismo se comprueba continuamente la


condición que permite franquear en el protocolo de entrada, por tanto, el proceso permanece en
estado activo comprobando continuadamente la condición que le permite progresar en su
ejecución, tiempo que está siendo desaprovechado por el procesador.

Espera no ocupada o bloqueante, mediante semáforos, monitores o mensajería. Estos


mecanismos hacen que el proceso pase a estado bloqueado cuando no se puede franquear el
protocolo de entrada, por tanto, al quedar un proceso que no puede progresar en estado
bloqueado, el planificador de procesos tiene que seleccionar a otro proceso.

Descripción de políticas de planificación de trabajos y procesos.

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 (First In First Out). Cada una de estas colas corresponde a
una prioridad diferente.

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.

Prioridades monótonas en frecuencia (RMS (Rate-monotonic scheduling))


En ciencias de la computación, RMS (Rate Monotonic Scheduling) es un algoritmo de
programación utilizado en los sistemas operativos de tiempo real con prioridad estática.Las
prioridades estáticas se asignan en función de la duración del trabajo. El trabajo más corto tiene la
de mayor prioridad.

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:

 No comparten recursos, por ejemplo colas, semáforos, puertos, etc.


 Los plazos deterministas son exactamente igual a los períodos.
 Las prioridades son estáticas. La tarea de mayor prioridad estática que es ejecutable
inmediatamente desaloja a todas las demás tareas.
 Las prioridades estáticas son asignadas de acuerdo a la convención de tasa monótona . La
tarea con la menor relación período/plazo tiene la prioridad más alta.
 Los tiempos de cambio de contexto y otras operaciones del sistema operativo no tienen ningún
impacto sobre el modelo.
Se trata de un modelo matemático que contiene una simulación calculada de períodos en un
sistema cerrado, donde los planificadores round robin de tiempo compartido no cumplen con la
programación de las necesidades. La planificación RMS realiza una modelización de ejecución de
todos los procesos/hilos en el sistema y determina la cantidad de tiempo que se necesita para
cumplir con las garantías para el conjunto de procesos/hilos que se trate.

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:

Donde Ci es el tiempo de cómputo, Ti es el período y n es el número de procesos/hilos.

Entonces

Con lo que encontramos un método fácil de calcular la planificabilidad.

Menor tiempo de respuesta primero (EDF (Earliest deadline first scheduling))


O menos tiempo para ir es una dinámica algoritmo de programación utilizado en los sistemas
operativos en tiempo real para colocar los procesos en una cola de prioridad . Cada vez que un
evento de programación se produce (finalice la tarea, la tarea nueva en libertad, etc.) la cola se
buscará el proceso más cercano a su fecha límite. Este proceso es el siguiente en ser
programado para su ejecución.

EDF es una óptima algoritmo de planificación de monoprocesadores de preferencia, en el


siguiente sentido: si una colección de independientes puestos de trabajo, cada una
caracterizada por un tiempo de llegada, un requisito de ejecución y una fecha límite, se pueden
programar (por cualquier algoritmo) de una manera que asegura que todos los trabajos
completos de su fecha límite, el EDF programarán esta colección de puestos de trabajo por lo
que todos completos por su fecha límite.

Con la programación de procesos periódicos que tienen plazos iguales a sus


períodos, EDF tiene una utilización consolidado de 100%. Por lo tanto, la prueba de
planificabilidad de EDF es:
Donde el son el peor de los casos de cálculo de los tiempos de los procesos y el
son sus periodos entre llegadas respectivas (que se supone que es igual a los plazos
relativos).

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.

En cambio, la mayoría de los sistemas informáticos en tiempo real utilizan la programación de


prioridad fija (normalmente programación de velocidad monotónica ). Con prioridades fijas, es
fácil predecir que las condiciones de sobrecarga hará que los procesos de baja prioridad que
se pierda plazos, mientras que el proceso de mayor prioridad seguirá cumplir con el plazo.

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.

FIFO - También conocido como FCFS "First Come, First Served".

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’.

En informática, FIFO se utiliza en estructuras de datos para implementar colas. La implementación


puede efectuarse con ayuda de arreglos o vectores, o bien mediante el uso
depunteros y asignación dinámica de memoria.
Si se implementa mediante vectores, el número máximo de elementos que puede almacenar FIFO
está limitado al que se haya establecido en el código del programa antes de la compilación (cola
estática) o durante su ejecución (cola pseudoestática o dinámica). Sea cual sea la opción elegida,
el número de elementos que podrá almacenar la cola quedará determinado durante toda la
ejecución del programa. Así, el sistema debe reservar el tamaño de memoria necesario para
acoger todos los datos, sea cual sea el número de elementos usados.

En algunas aplicaciones, esto supone un problema ya que puede desconocerse el número de


elementos a contener en la cola. La sencilla solución de reservar más memoria de la que se
supone que se necesitará, puede conducir a un despilfarro de la memoria (la cola puede que esté
llena, aprovechando toda la memoria reservada; o bien, nunca terminar de llenarse, ocupando
recursos innecesarios en memoria). Sin embargo, si se usa asignación dinámica de memoria, el
número máximo no está declarado en tiempo de compilación sino en tiempo de ejecución, es decir,
se reserva memoria a medida que se necesite expandir el tamaño de la cola (adaptándose al
tamaño necesario en cada momento en función de los elementos que hay en la cola), haciendo un
mejor uso de la memoria disponible.

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.

LIFO es el algoritmo utilizado para implementar pilas.


Entre otras…
Conclusión / Análisis Personal

La conclusión que podemos sacar lo expresado, podemos resumirla de la siguiente manera: La


planificación es una de las áreas del desarrollo de un sistema operativo de más relevancia, ya que
de ella depende en gran medida la performance del mismo.

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”

También podría gustarte