Free Essay

Planificacion de Procesos

In:

Submitted By MarioEspinoza
Words 10707
Pages 43
Planicación de procesos
Gunnar Wolf 21 de octubre de 2013

Índice
1. Tipos de planicación
1.1. Tipos de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Midiendo la respuesta . . . . . . . . . . . . . . . . . . . . . . . . 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 2.9. Objetivos de la planicación . . . . . . . . . Primero llegado, primero servido (FCFS ) . Ronda (Round Robin ) . . . . . . . . . . . . El proceso más corto a continuación (SPN) Ronda egoísta (SRR) . . . . . . . . . . . . . Retroalimentación multinivel (FB) . . . . . Lotería . . . . . . . . . . . . . . . . . . . . . Esquemas híbridos . . . . . . . . . . . . . . Resumiendo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 7

4 5

2. Algoritmos de planicación

8 9 10 12 14 15 18 18 21

3. Planicación de hilos

3.1. Los hilos POSIX (pthreads) . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. Anidad a procesador . . . . . . . . . . . Balanceo de cargas . . . . . . . . . . . . . Colas de procesos: ¾Una o varias? . . . . . Procesadores con soporte a hilos hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (hyperthreading ) . . . . . . . . . . . .

23

25

4. Planicación de multiprocesadores

25

26 26 27 27 30 31 31

5. Tiempo real

5.1. Tiempo real duro y suave . . . . . . . . . . . . . . . . . . . . . . 5.2. Sistema operativo interrumpible (prevenible ) . . . . . . . . . . . 5.3. Inversión de prioridades . . . . . . . . . . . . . . . . . . . . . . .

29

6. Recursos adicionales

32

1

1. Tipos de planicación
La planicación de procesos se reere a cómo determina el sistema operativo al órden en que irá cediendo el uso del procesador a los procesos que lo vayan solicitando, y a las políticas que empleará para que el uso que den a dicho tiempo no sea excesivo respecto al uso esperado del sistema. Podemos hablar de tres tipos principales de planicación:

A largo plazo

Decide qué procesos serán los siguientes en ser iniciados. Este tipo de planicación era el más frecuente en los sistemas de lotes (principalmente aquellos con spool ) y multiprogramados en lotes; las decisiones eran tomadas principalmente considerando los requisitos pre-declarados de los procesos y los que el sistema tenía libres al terminar algún otro proceso. La planicación a largo plazo puede llevarse a cabo con periodicidad de una vez cada varios segundos, minutos e inclusive horas. En los sistemas de uso interactivo, casi la totalidad de los que se usan hoy en día, este tipo de planicación no se efectúa, dado que es típicamente el usuario quien indica expresamente qué procesos iniciar.

Figura 1: Planicador a largo plazo

A mediano plazo

Decide cuáles procesos es conveniente bloquear en determinado momento, sea por escacez/saturación de algún recurso (como la memoria primaria) o porque están realizando alguna solicitud que no puede satisfacerse momentaneamente; se encarga de tomar decisiones respecto a los procesos conforme entran y salen del estado de bloqueado (esto es, típicamente, están a la espera de algún evento externo o de la nalización de transferencia de datos con algún dispositivo). En algunos textos, al (scheduler ).

planicador a mediano plazo se le llama agendador

A corto plazo

Decide cómo compartir momento a momento al equipo entre todos los procesos que requieren de sus recursos, especialmente el procesador. La planicación a corto plazo se lleva a cabo decenas de veces por segundo (razón por la cual debe ser código muy simple, eciente y rápido); es el encargado de planicar los procesos que están listos para ejecución.

En algunos textos, al (dispatcher ).

planicador a corto plazo se le llama despachador
2

Figura 2: Planicador a mediano plazo, o

agendador

Figura 3: Planicador a corto plazo, o

despachador

(reproducido aquí por comodidad como gura 4), podríamos ubicar a estos tres planicadores en las siguientes transiciones entre estados: 1. El planicador a largo plazo se encarga de transición de Nuevo a Listo.

?? (Administración de procesos ), y volviendo al diagrama entonces presentado admitir un nuevo proceso: La

Relacionando con los estados de un proceso que abordamos en el capítulo

2. El planicador a mediano plazo maneja la activación y bloqueo de un proceso relacionado con eventos  Esto es, las transiciones entre En ejecución y Bloqueado, y entre Bloqueado y Listo. 3. El planicador a corto plazo decide entre los procesos que están listos para ejecutarse y determina a cuál de ellos activar, y detiene a aquellos que exceden su tiempo de procesador  Implementa las transiciones entre los estados Listo y En ejecución. En esta sección nos ocuparemos particularmente el planicador a corto plazo, y reriéndonos como mucho a algunas características del planicador a mediano plazo.

3

Figura 4: Diagrama de transición entre los estados de un proceso

1.1. Tipos de proceso
Como ya hemos visto, los procesos típicamente alternan entre ráfagas (periodos, en inglés bursts ) en que realizan principalmente cómputo interno (están limitados por CPU, CPU-bound ) y otras en que la atención está puesta en transmitir los datos desde o hacia dispositivos externos (están limitados por entrada-salida, I/O-bound ). Dado que cuando un proceso se suspende para realizar entrada-salida deja de estar listo (y pasa a estar bloqueado ), y desaparece de la atención del planicador a corto plazo, en todo momento podemos separar los procesos que están en ejecución y listos en:

Procesos largos

Aquellos que por mucho tiempo 1 han estado en listos o en ejecución, esto es, procesos que estén en una larga ráfaga limitada por CPU.

Procesos cortos

Aquellos que, ya sea que en este momento 2 estén en una ráfaga limitada por entrada-salida y requieran atención meramente ocasional del procesador, o tienden a estar bloqueados esperando a eventos (como los procesos interactivos).

Típicamente buscaremos dar un tratamiento preferente a los procesos cortos, en particular a los interactivos. Cuando un usuario está interactuando con un
1 ¾Cuánto es mucho? Dependerá de las políticas generales que denamos para el sistema 2 Y también, este momento debe ser interpretado con la granularidad acorde a nuestro sistema 4

proceso, si no tiene una respuesta inmediata a su interacción con el equipo (sea proporcionar comandos, recibir la respuesta a un teclazo o mover el puntero en el GUI) su percepción será la de una respuesta degradada.

1.2. Midiendo la respuesta
Resulta intuitivo que cada patrón de uso del sistema debe seguir políticas de planicación distintas. Por ejemplo, en el caso de un proceso interactivo, buscaremos ubicar al proceso en una cola preferente (para obtener un tiempo de respuesta más ágil, para mejorar la percepción del usuario), pero en caso de sufrir demoras, es preferible buscar dar una respuesta consistente, aún si la respuesta promedio es más lenta. Esto es, si a todas las operaciones sigue una demora de un segundo, el usuario sentirá menos falta de control si en promedio tardan medio segundo, pero ocasionalmente hay picos de cinco. Para este tema, en vez de emplear unidades temporales formales (p. ej. fracciones de segundo), es común emplear quantums y ticks. Esto es en buena medida porque, si bien en el campo del cómputo las velocidades de acceso y uso efectivo cambian constantemente, los conceptos y las deniciones permanecen. Además, al ser ambos parámetros ajustables, una misma implementación puede sobrevivir ajustándose a la evolución del hardware.

Tick

Quantum

Una fracción de segundo durante la cual se puede realizar trabajo útil. Es una medida caprichosa y arbitraria; en Linux (a partir de la versión 2.6.8), un tick dura un milisegundo, en Windows, entre 10 y 15 milisegundos. El tiempo mínimo que se permitirá a un proceso el uso del procesador. En Windows, dependiendo de la clase de proceso que se trate, un quantum durará entre 2 y 12 ticks (esto es, entre 20 y 180 ms), y en Linux, entre 10 y 200 ticks (o milisegundos).

¾Qué mecanismos o métricas podemos emplear para medir el comportamiento del sistema bajo determinado planicador? Partamos de los siguientes conceptos, para un proceso p que requiere de un tiempo t de ejecución:

Tiempo de respuesta (T )

Cuánto tiempo total es necesario para completar el trabajo pendiente de un proceso p, incluyendo el tiempo que está inactivo esperando ejecución (pero está en la cola de procesos listos). También referido como tiempo perdido. Del tiempo de respuesta total, cuánto tiempo p está listo y esperando ejecutar. Desde la óptica de p, desearíamos que Ep → 0

Tiempo en espera (E = T − t)

Proporción de penalización (P

= T ) Fracción del tiempo de respuesta dut rante la cual p estuvo en espera.
Inverso de P . Fracción del tiempo de respuesta durante la cual p pudo ejecutarse.

t Proporción de respuesta (R = T )

5

Para referirnos a un grupo de procesos con requisitos similares, todos ellos requiriendo de un mismo tiempo t, nos referiremos a T (t), E(t) = T (t) − t, t P (t) = T (t) y R(t) = T (t) . t Además de estos tiempos, expresados en relación al tiempo efectivo de los diversos procesos del sistema, tenemos también:

Tiempo núcleo o

Tiempo que pasa el sistema en espacio de núcleo, incluyendo entre otras funciones3 el empleado en decidir e implementar la política de planicación y los cambios de contexto.

kernel

Tiempo desocupado (idle )

Tiempo en que la cola de procesos listos está vacía y no puede realizarse ningún trabajo.

Utilización del CPU Porcentaje del tiempo en que el CPU está realizando trabajo útil. Si bien conceptualmente podemos ubicar dicha utilización entre 0 y 100 %, en sistemas reales se ha observado (Silberschatz, p.179) que se ubica en un rango entre el 40 y el 90 %.

Por ejemplo, si llegan a la cola de procesos listos: Proceso A B C D Ticks 7 3 12 4 Llegada 0 2 6 20

tendríamos:

tick, y la duración de cada quantum es de 5 ticks, en un ordenamiento de ronda,4

Si el tiempo que toma al sistema efectuar un cambio de contexto es de un

Figura 5: Ejecución de cuatro procesos con contexto de 2 ticks al sistema, y cubrir diversas tareas administrativas.

quantums de 5 ticks y cambios de

3 Estas funciones incluyen principalmente la atención a interrupciones, el servicio a llamadas 4 Claro está, veremos este ordenamiento en breve, en la sección 2.3.

6

Si consideráramos al tiempo ocupado por el núcleo como un proceso más, cuyo trabajo en este espacio de tiempo nalizó junto con los demás,5 tendríamos por resultado: Proceso A B C D Promedio útil Núcleo Promedio total

t 7 3 12 4 6.5 6 6.4

T 18 7 26 9 15 32 18.4

E 11 4 14 5 8.50 26 12.00

P 2.57 2.33 2.17 2.25 2.31 5.33 2.88

R 0.389 0.429 0.462 0.444 0.433 0.188 0.348

Tomemos en cuenta que, para obtener T , se parte del momento en que el proceso llegó a la cola, no el punto de inicio de nuestra línea de tiempo. Asumimos en este caso que el núcleo llega también en 0. Respecto al patrón de llegada y salida de los procesos, lo manejaremos también basados en una proporción. Si tenemos una frecuencia de llegada promedio de nuevos procesos a la cola de procesos listos α, y el tiempo de servicio requerido promedio β , denimos el valor de saturación ρ como ρ = α . β Cuando ρ = 0, nunca llegan nuevos procesos, por lo cual nuestro sistema estará desocupado. Cuando ρ = 1, los procesos son despachados al mismo ritmo al que van llegando. Cuando ρ > 1, el ritmo de llegada de procesos es mayor que la velocidad a la cual la computadora puede darles servicio, con lo cual la cola de procesos listos tenderá a crecer (y la calidad de servicio, la proporción de respuesta R, para cada proceso se decrementará).

2. Algoritmos de planicación
El planicador a corto plazo puede ser invocado cuando un proceso se encuentra en algunas de las cuatro siguientes circunstancias: 1. Pasa de estar ejecutando a estar en espera (por ejemplo, por solicitar una operación de E/S, esperar a la sincronización con otro proceso, etc.) 2. Pasa de estar ejecutando a estar listo (por ejemplo, al ocurrir la interrupción del temporizador, o de algún evento externo) 3. Deja de estar en espera a estar listo (por ejemplo, al nalizar la operación de E/S que solicitó) 4. Finaliza su ejecución, y pasa de
5 Normalmente

ejecutando a terminado ante los resultados deseados del sistema

no

consideramos al núcleo al hacer este cálculo, dado que en este ámbito

todo el trabajo que hace puede verse como

burocracia

7

En el primer y cuarto casos, el sistema operativo siempre tomará el control6 ; un sistema que opera bajo multitarea preventiva implementará también el segundo y tercer casos, mientras que uno que opera bajo multitarea cooperativa no necesariamente reconocerá dichos estados. Ahora, para los algoritmos a continuación, recordemos que en este caso estamos hablando únicamente del despachador. Un proceso siempre abandonará la cola de procesos listos al requerir de un servicio del sistema. Para todos los ejemplos a continuación, asumamos que los tiempos están dados en ticks ; no nos preocupa en este caso a cuánto tiempo de reloj estos equivalen, sino el rendimiento relativo del sistema entero ante una carga dada. Revisemos, pues, los principales algoritmos de planicación. La presente sección está basada fuertemente en el capítulo 2 de An operating systems vade mecum (Raphael Finkel, 1988).

2.1. Objetivos de la planicación
Los algoritmos que presentaremos a continuación son respuestas que intentan, de diferentes maneras y desde distintos supuestos base, darse a los siguientes objetivos principales (tomemos en cuenta que algunos de estos objetivos pueden ser mutuamente contradictorios):

Ser justo

Debemos tratar de igual manera a todos los procesos que compartan las mismas características7 , y nunca postergar indenidamente a uno de ellos. unidad de tiempo. Dar servicio a la mayor parte de procesos por

Maximizar el rendimiento Ser predecible

Un mismo trabajo debe tomar aproximadamente la misma cantidad de tiempo en completarse independientemente de la carga del sistema.

Minimizar la sobrecarga

El tiempo que el algoritmo pierda en burocracia debe mantenerse al mínimo, dado que éste es tiempo de procesamiento útil perdido Favorecer a los procesos que empleen recursos subutilizados, penalizar a los que peleen por un recurso sobreutilizado causando contención en el sistema la prioridad de los procesos obtener algún recurso por el planicador a mediano plazo, de diferente manera a los

Equilibrar el uso de recursos

Evitar la postergación indenida Aumentar más viejos, para favorecer que alcancen a cual estén esperando
6 En

el primer caso, el proceso entrará en el dominio del veremos, un algoritmo de planicación puede

mientras que en el cuarto saldrá denitivamente de la lista de ejecución.

7 Como

priorizar

procesos según distintos criterios, sin por ello dejar de ser justo, siempre que dé la misma prioridad y respuesta a procesos equivalentes.

8

Favorecer el

del sistema En un sistema con usuarios interactivos, maximizar la prioridad de los procesos que sirvan a solicitudes iniciadas por éste (aún a cambio de penalizar a los procesos /de sistema)

uso esperado

Dar preferencia a los procesos que podrían

Si un proceso de baja prioridad está empleando un recurso del sistema por el cual más procesos están esperando, favorecer que éste termine de emplearlo más rápido

causar bloqueo deseable

Favorecer a los procesos con un comportamiento

Si un proceso causa muchas demoras (por ejemplo, atraviesa una ráfaga de entrada/salida que le requiere hacer muchas llamadas a sistema o interrupciones), se le puede penaliza porque degrada el rendimiento global del sistema Si bien el nivel ideal de utilización del procesador es al 100 %, es imposible mantenerse siempre a este nivel. Un algoritmo puede buscar responder con la menor penalización a los procesos preexistentes al momento de exceder este umbral.

Degradarse suavemente

2.2. Primero llegado, primero servido (FCFS ) mínima lógica posible: Cada proceso se ejecuta en el órden en que fue llegando, y hasta que suelta el control. El despachador es muy simple, básicamente una cola FIFO. Consideremos los siguientes procesos: (Finkel 1988, p.35) Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12 El esquema más simple de planicación es el Primero llegado, primero servido (First come, rst serve, FCFS ). Este es un mecanismo cooperativo, con la

t
3 5 2 5 5 4

Inicio 0 3 8 10 15

Fin 3 8 10 15 20

T
3 7 7 6 8 6.2

E
0 2 5 1 3 2.2

P
1 1.4 3.5 1.2 1.6 1.74

Si bien un esquema FCFS reduce al mínimo la sobrecarga administrativa (que incluye tanto al tiempo requerido por el planicador para seleccionar al siguiente proceso como el tiempo requerido para el cambio de contexto), el rendimiento percibido por los últimos procesos en llegar (o por procesos cortos llegados en un momento inconveniente) resulta inaceptable. Este algoritmo dará servicio y salida a todos los procesos siempre que ρ ≤ 1. En caso de que se sostenga ρ > 1, la demora para iniciar la atención de un proceso crecerá cada vez más, cayendo en una cada vez mayor inanición.

9

Figura 6: Primero llegado, primero servido (FCFS) FCFS tiene características claramente inadecuadas para trabajo interactivo, sin embargo, al no requerir de hardware de apoyo (como un temporizador) sigue siendo ampliamente empleado.

2.3. Ronda (Round

Robin )

El esquema ronda busca dar una relación de respuesta buena tanto para procesos largos como para los cortos. La principal diferencia entre la ronda y FCFS es que en este caso sí emplearemos multitarea preventiva: A cada proceso que esté en la lista de procesos listos lo atenderemos por un sólo quantum (q ). Si un proceso no ha terminado de ejecutar al nal de su quantum, será interrumpido y puesto al nal de la lista de procesos listos, para que espere a su turno nuevamente. Los procesos que nos entreguen los planicadores a mediano o largo plazo se agregarán también al nal de esta lista. Con la misma tabla de procesos que encontramos en el caso anterior (y, por ahora, ignorando la sobrecarga administrativa provocada por los cambios de contexto), obtendríamos los siguientes resultados: Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Inicio 0 1 4 9 12

Fin 6 11 8 18 20

T
6 10 5 9 8 7.6

E
3 5 3 4 3 3.6

P
2.0 2.0 2.5 1.8 1.6 1.98

La ronda puede ser ajustada modicando la duración de q . Conforme incrementamos q , la ronda tiende a convertirse en FCFS  Si cada quantum es arbitrariamente grande, todo proceso terminará su ejecución dentro de su quantum ; por otro lado, conforme decrece q, mayor frecuencia de cambios de contexto tendremos; esto llevaría a una mayor ilusión de tener un procesador dedicado por parte de cada uno de los procesos, dado que cada proceso sería incapaz de notar las ráfagas de atención que éste le da (avance rápido durante un periodo corto seguido de un periodo sin avance). Claro está, el procesador simulado sería 10

Figura 7: Ronda (Round

Robin )

cada vez más lento, dada la fuerte penalización que iría agregando la sobrecarga administrativa. Finkel (1988, p.35) se reere a esto como el principio de la histéresis : Hay que resistirse al cambio. Como ya lo mencionamos, FCFS mantiene al mínimo posible la sobrecarga administrativa, y aunque sea marginalmente resulta en mejor rendimiento global. Si repetimos el análisis anterior bajo este mismo mecanismo, pero con un quantum de 4 ticks, tendremos: Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Inicio 0 3 7 10 14

Fin 3 10 9 19 20

T
3 9 6 10 8 7.2

E
0 4 4 5 3 3.2

P
1.0 1.8 3.0 2.0 1.6 1.88

Figura 8: Ronda (Round

Robin ), con q = 4

Si bien aumentar el quantum mejora los tiempos promedio de respuesta, aumentarlo hasta convertirlo en un FCFS efectivo degenera en una penalización a los procesos cortos, y puede llevar a la inanición cuando ρ > 1. Silberschatz apunta (p.188) a que típicamente el quantum debe mantenerse inferior a la duración promedio del 80 % de los procesos. 11

2.4. El proceso más corto a continuación (SPN)
(Del inglés, Shortest Process Next ) Cuando no tenemos la posibilidad de implementar multitarea preventiva, pero requerimos de un algoritmo más justo, y contamos con información por anticipado acerca del tiempo que requieren los procesos que forman la lista, podemos elegir el más corto de los presentes. Ahora bien, es muy difícil contar con esta información antes de ejecutar el proceso. Es más frecuente buscar caracterizar las necesidades del proceso: Ver si durante su historia de ejecución8 ha sido un proceso tendiente a manejar ráfagas limitadas por entrada-salida o limitadas por procesador, y cuál es su tendencia actual. Para estimar el tiempo que requerirá un proceso p en su próxima invocación, es común emplear el promedio exponencial ep . Denimos un factor atenuante 0 ≤ f ≤ 1, que determinará qué tan reactivo será el promedio obtenido a la última duración; es común que este valor sea cercano a 0.9. Si el p empleó q quantums durante su última invocación,

ep = f ep + (1 − f )q
Podemos tomar como semilla para el ep inicial un número elegido arbitrariamente, o uno que ilustre el comportamiento actual del sistema (como el promedio del ep de los procesos actualmente en ejecución).

Figura 9: Promedio exponencial (predicción de próxima solicitud de tiempo) de un proceso. (Silberschatz, p.183)
8 No perdamos de vista que todos estos mecanismos se aplican al

planicador a corto plazo.

Cuando un proceso se bloquea esperando una operación de E/S, sigue en ejecución, y la información de contabilidad que tenemos sigue alimentándose. SPN se nutre precisamente de dicha información de contabilidad

12

Empleando el mismo juego de datos de procesos que hemos venido manejando como resultados de las estimaciones, obtendríamos el siguiente resultado: Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Inicio 0 5 3 10 15

Fin 3 10 5 15 20

T
3 9 2 6 8 5.6

E
0 4 0 1 3 1.6

P
1.0 1.8 1.0 1.2 1.6 1.32

Figura 10: El proceso más corto a continuación (SPN) Como era de esperarse, SPN favorece a los procesos cortos. Sin embargo, un proceso largo puede esperar mucho tiempo antes de ser atendido, especialmente con valores de ρ cercanos o superiores a 1  Un proceso más largo que el promedio está predispuesto a sufrir inanición. En un sistema poco ocupado, en que la cola de procesos listos es corta, SPN generará resultados muy similares a los de FCFS. Sin embargo, podemos observar en el ejemplo que con sólo una permutación en los cinco procesos ejemplos (B y C ), los factores de penalización a los procesos ejemplo resultaron muy beneciados.

2.4.1. SPN preventivo (PSPN) (Preemptive Shortest Process Next )

Finkel (1988, p.44) apunta a que, a pesar de que intuitivamente daría una mayor ganancia combinar las estrategias de SPN con un esquema de multitarea preventiva, el comportamiento obtenido es muy similar para la amplia mayoría de los procesos. Incluso para procesos muy largos, PSPN no los penaliza mucho más allá de lo que lo haría la ronda, y obtiene mejores promedios de forma consistente porque, al despachar primero a los procesos más cortos, mantiene la lista de procesos pendientes corta, lo que lleva naturalmente a menores índices de penalización.

13

2.4.2. El más penalizado a continuación (HPRN) (Highest Penalty Ratio Next )

Si no contamos con multitarea preventiva, las alternativas presentadas hasta ahora resultan invariablmente injustas: FCFS favorece a los procesos largos, y SPN a los cortos. Un intento de llegar a un algoritmo más balanceado es HPRN. Todo proceso inicia su paso por la cola de procesos listos con un valor de penalización P = 1. Cada vez que es obligado a esperar un tiempo w por otro proceso, P se actualiza como P = w+t . El proceso que se elige como activo será t el que tenga mayor P . Mientras ρ < 1, HPRN evitará que incluso los procesos más largos sufran inanición. En los experimentos realizados por Finkel, HPRN se sitúa siempre en un punto medio entre FCFS y SPN; su principal desventaja se presenta conforme crece la cola de procesos listos, ya que P tiene que calcularse para todos ellos cada vez que el despachador toma una decisión.

2.5. Ronda egoísta (SRR)
(Selsh Round Robin ) Este método busca favorecer a los procesos que ya han pasado tiempo ejecutando que a los recién llegados. De hecho, los nuevos procesos no son programados directamente para su ejecución, sino que se les forma en la cola de procesos nuevos, y se avanza únicamente con la cola de procesos aceptados. Para SRR emplearemos los parámetros a y b, ajustables según las necesidades de nuestro sistema. a indica el ritmo según el cual se incrementará la prioridad de los procesos de la cola de procesos nuevos, y b el ritmo del incremento de prioridad para los procesos aceptados. Cuando la prioridad de un proceso nuevo alcanza a la prioridad de un proceso aceptado, el nuevo se vuelve aceptado. Si la cola de procesos aceptados queda vacía, se acepta el proceso nuevo con mayor prioridad. Veamos el comportamiento en nuestro ejemplo: Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Inicio 0 2 6 10 15

Fin 4 10 9 15 20

T
4 9 6 6 8 6.6

E
1 4 4 1 3 2.6

P
1.3 1.8 3.0 1.2 1.6 1.79

b Mientras a < 1, la prioridad de un proceso entrante eventualmente alcanzará a la de los procesos aceptados, y comenzará a ejecutarse. Mientras el control va alternando entre dos o más procesos, la prioridad de todos ellos será la misma (esto es, son despachados efectivamente por una simple ronda). b Incluso cuando a ≥ 1, el proceso en ejecución terminará, y B será aceptado. En este caso, este esquema se convierte en FCFS.

14

Figura 11: Ronda egoísta (SRR) con a = 2 y b = 1 b Si a = 0 (esto es, si b = 0), los procesos recién llegados serán aceptados b inmediatamente, con lo cual se convierte en una ronda. Mientras 0 < a < 1, la ronda será relativamente egoísta, dándole entrada a los nuevos procesos incluso si los que llevan mucho tiempo ejecutando son muy largos (y por tanto, su prioridad es muy alta).

2.6. Retroalimentación multinivel (FB)
(Multilevel Feedback ) El mecanismo descrito en la sección anterior, la ronda egoísta, introdujo el concepto de tener no una sino que varias colas de procesos, que recibirán diferente tratamiento. Este mecanismo es muy poderoso, y se emplea en prácticamente todos los planicadores en uso hoy en día. Veamos brevemente, antes de abordar al esquema de retroalimentación multinivel, cómo opera un sistema con múltiples colas de prioridad.

Figura 12: Representación de un sistema con cinco colas de prioridad y siete procesos listos La gura 12 nos ilustra cómo se presentaría una situación bajo esta lógica: El sistema hipotético tiene cinco colas de prioridad, y siete procesos listos para ser puestos en ejecución. Puede haber colas vacías, como en este caso la 3. Dado que la cola de mayor prioridad es la 0, el planicador elegirá únicamente entre 15

los procesos que están formados en ella: F o C . Sólo cuando estos procesos terminen (o sean enviados a alguna otra cola), el planicador continuará con aquellos que estén en las siguientes colas. La retroalimentación multinivel basa su operación en más de una cola  Pero en este caso, todas ellas tendrán el mismo tratamiento general, distinguiéndose sólo por su nivel de prioridad, C0 a Cn . El despachador elegirá para su ejecución al proceso que esté al frente de la cola de mayor prioridad que tenga algún proceso esperando Ci , y tras un número predeterminado de ejecuciones, lo degrada a la cola de prioridad inmediata inferior Ci+1 . El mecanismo de retroalimentación multinivel favorece a los procesos cortos, dado que terminarán sus tareas sin haber sido marcados como de prioridades inferiores. La ejecución del mismo juego de datos que hemos manejado bajo este esquema nos da los siguientes resultados: Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Inicio 0 1 3 9 12

Fin 7 18 6 19 20

T
7 17 3 10 8 9

E
4 12 1 5 3 5

P
1.7 3.4 1.5 2.0 1.6 2.04

Dado que ahora tenemos que representar la cola en la que está cada uno de los procesos, en la gura 13 presentamos sobre cada una de las líneas de proceso la prioridad de la cola en que se encuentra antes del quantum en que se ejecuta:

Figura 13: Retroalimentación multinivel (FB) básica Podemos observar que prácticamente todos los números apuntan a que esta es una peor estrategia que las presentadas anteriormente  Los únicos procesos beneciados en esta ocasión son los recién llegados, que podrán avanzar al principio, mientras los procesos más largos serán castigados y podrán eventualmente (a mayor ρ) enfrentar inanición. Sin embargo, esta estrategia nos permite ajustar dos variables: Una es la cantidad de veces que un proceso debe ser ejecutado antes de ser degradado a 16

la prioridad inferior, y la otra es la duración del quantum asignado a las colas subsecuentes. Vemos también un caso que se repite a los ticks 8, 10, 11, 13 y 14: El despachador interrumpe la ejecución del proceso activo, para volver a cedérsela. Esto ocurre porque, efectivamente, concluyó su quantum  Idealmente, el despachador se dará cuenta de esta situación de inmediato y no iniciará un cambio de contexto al mismo proceso. En caso contrario, el trabajo perdido por gasto administrativo se vuelve innecesariamente alto. El panorama cambia si ajustamos estas variables: Si elegimos un quantum de 2n q , donde n es el identicador de cola y q la longitud del quantum base, un proceso largo será detenido por un cambio de contexto al llegar a q , 3q , 7q , 15q , etc. lo que llevará al número total de cambios de contexto a log( t(p) ), lo q cual resulta atractivo frente a los t(p) cambios de contexto que tendría bajo un q esquema de ronda. Veamos cómo se comporta nuestro juego de procesos con una retroalimentación multinivel con un incremento exponencial al quantum : Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Inicio 0 1 4 10 13

Fin 4 10 8 18 20

T
4 9 5 9 8 7

E
1 4 3 4 3 3

P
1.3 1.8 2.5 1.8 1.6 1.8

Figura 14: Retroalimentación multinivel (FB) con q exponencial Vemos en este caso que, a pesar de que esta estrategia favorece a los procesos recién llegados, al tick 3, 9 y 10, llegan nuevos procesos, pero a pesar de estar en la cola de mayor prioridad, no son puestos en ejecución, dado que llegaron a la mitad del quantum (largo) de otro proceso. Incluso los promedios de tiempos de terminación, respuesta, espera y penalización para este conjunto de procesos resultan mejores que los de la ronda. Típicamente veremos incrementos mucho más suaves, y de crecimiento más controlado, como nq o inlcuso q log(n), dado que en caso contrario un proceso 17

muy largo podría causar muy largas inaniciones para el resto del sistema. Para evitar la inanición, puede considerarse también la retroalimentación en sentido inverso: Si un proceso largo fue degradado a la cola CP y pasa determinado tiempo sin recibir servicio, puede promoverse de nuevo a la cola $CP−1$ para que no sufra inanición. Hoy en día, muchos de los principales sistemas operativos operan bajo diferentes versiones de retroalimentación multinivel, y típicamente con hasta decenas de colas.

2.7. Lotería
Los mecanismos hasta aquí descritos vienen con largas décadas de desarrollo. Uno de los últimos algoritmos que ha sido ampliamente difundido en unirse a esta lista es el de planicación por lotería, publicado por Carl Waldspurger y William Weihl (1994). Bajo el esquema de la lotería, cada proceso tiene un número determinado de boletos, y cada boleto le representa una oportunidad de jugar a la lotería. Cada vez que el planicador tiene que elegir el siguiente proceso a poner en ejecución, elige un número al azar9 , y otorga el siguiente quantum al proceso que tenga el boleto ganador. El boleto ganador no es retirado, esto es, la probabilidad de que determinado proceso sea puesto en ejecución no varía entre invocaciones sucesivas del planicador. Las prioridades pueden representarse en este esquema de forma muy sencilla: Un proceso al que se le quiere dar mayor prioridad simplemente tendrá más boletos; si el proceso A tiene 20 boletos y el proceso B tiene 60, será tres veces más probable que el siguiente turno toque a B que a A. El esquema de planicación por lotería contempla que los procesos puedan cooperar entre sí: Si B estuviera esperando un resultado de A, podría transferirle sus boletos para aumentar la probabilidad de que sea puesto en ejecución. A pesar de su simplicidad, el esquema de planicación por lotería resulta justo tanto a procesos cortos como a largos, y presenta una degradación muy suave incluso en entornos de saturación. Claro, al derivar de un proceso aleatorio, resulta imposible presentar una comparación de este mecanismo con los que abordamos previamente.

2.8. Esquemas híbridos
En líneas generales, podemos clasicar a los siete algoritmos presentados sobre dos discriminadores primarios: Si están pensados para emplearse en multitarea cooperativa o preventiva, y si emplean información intrínseca a los pro9 Si bien operar un generador de números aleatorios en estricto sentido sería demasiado caro para un proceso que se ejecuta decenas o cientos de veces por segundo, para presentado presenta la implementación del algoritmo Park-Miller, con

jugar

a la lotería es

suciente emplear un generador débil pseudoaleatorio. El artículo en que este mecanismo fue

S = (A × S)mod(231 − 1)

A = 16807,

implementado en 12 instrucciones de procesador RISC.

18

cesos evaluados o no lo hacen, esto es, si un proceso es tratado de distinta forma dependiendo de su historial de ejecución. Cuadro 1: Caracterización de los mecanismos de planicación a corto plazo

Cooperativa Preventiva

No considera intrínseca

Primero llegado primero servido (FCFS) Ronda (RR) Lotería

Considera intrínseca

Proceso más corto (SPN), Proceso más penalizado (HPRN) Proceso más corto preventivo (PSPN), Retroalimentación (FB), Ronda egoísta (SRR)

Ahora bien, estas características primarias pueden ser empleadas en conjunto, empleando diferentes algoritmos a diferentes niveles, o cambiándolos según el patrón de uso del sistema, aprovechando de mejor manera sus bondades y logrando evitar sus deciencias. A continuación, algunos ejemplos de esquemas híbridos.

2.8.1. Algoritmo por cola dentro de FB
Al introducir varias colas, se abre la posibilidad de que cada una de ellas siga un esquema diferente para elegir cuál de sus procesos está a la cabeza. En los ejemplos antes presentados, todas las colas operaban siguiendo una ronda, pero podríamos contemplar, por ejemplo, que parte de las colas sean procesadas siguiendo una variación de PSPN que empuje a los procesos más largos a colas que les puedan dar atención con menor número de interrupciones (incluso sin haberlos ejecutado aún). Podría emplearse un esquema SRR para las colas de menor prioridad, siendo que ya tienen procesos que han esperado mucho tiempo para su ejecución, para sin que repercutan en el tiempo de respuesta de los procesos cortos que van entrando a las colas superiores terminen lo antes posible su ejecución.

2.8.2. Métodos dependientes del estado del sistema
Podemos variar también ciertos parámetros dependiendo del estado actual del sistema, e incluso tomando en consideración valores externos al despachador. Algunas ideas al respecto son: Si los procesos listos son en promedio no muy largos, y el valor de saturación es bajo (ρ < 1), optar por los métodos que menos sobrecarga administrativa signiquen, como FCFS o SPN (o, para evitar los peligros 19

de la multitarea cooperativa, un RR con un quantum muy largo). Si el despachador observa que la longitud de la cola excede un valor determinado (o muestra una tendencia en ese sentido, al incrementarse ρ), cambiar a un mecanismo que garantice una mejor distribución de la atención, como un RR con quantum corto o PSPN. Usar un esquema simple de ronda. La duración de un quantum puede ser ajustada periódicamente (a cada cambio de contexto, o como un cálculo periódico), para que la duración del siguiente quantum dependa de la q cantidad de procesos en espera en la lista, Q = n . Si hay pocos procesos esperando, cada uno de ellos recibirá un quantum más largo, reduciendo la cantidad de cambios de contexto. Si hay muchos, cada uno de ellos tendrá que esperar menos tiempo para comenzar a liberar sus pendientes.

Claro está, la duración de un quantum no debe reducirse más allá de cierto valor mínimo, denido según la realidad del sistema en cuestión, dado que podría aumentar demasiado la carga burocrática. Despachar los procesos siguiendo una ronda, pero asignarles una duración de quantum proporcional a su prioridad externa (jada por el usuario). Un proceso de mayor prioridad ejecutará quantums más largos.

Peor servicio a continuación (WSN, Worst Service Next ). Es una generalización sobre varios de los mecanismos mencionados; su principal diferencia respecto a HPRN es que no sólo se considera penalización el tiempo que ha pasado esperando en la cola, sino que se considera el número de veces que ha sido interrumpido por el temporizador o su prioridad externa, y se considera (puede ser a favor o en contra) el tiempo que ha tenido que esperar por E/S u otros recursos. El proceso que ha sufrido del peor servicio es seleccionado para su ejecución, y si varios empatan, se elige uno en ronda.

La principal desventaja de WSN es que, al considerar tantos factores, el tiempo requerido por un lado para recopilar todos estos datos, y por otro lado calcular el peso que darán a cada uno de los procesos implicados, puede impactar en el tiempo global de ejecución. Es posible acudir a WSN periódicamente (y no cada vez que el despachador es invocado) para que reordene las colas según criterios generales, y abanzar sobre dichas colas con algoritmos más simples, aunque esto reduce la velocidad de reacción ante cambios de comportamiento. Algunas versiones históricas de Unix manejaban un esquema en que la prioridad especicada por el usuario10 era matizada y re-evaluada en el transcurso de su ejecución.
10 La

lindura,

o

niceness

de un proceso, llamada así por establecerse a través del comando

nice

al iniciar su ejecución, o

renice

una vez en ejecución

20

Periódicamente, para cada proceso se calcula una prioridad interna, que depende de la prioridad externa (especicada por el usuario) y el tiempo consumido recientemente por el proceso. Conforme el proceso recibe mayor tiempo de procesador, esta última cantidad decrece, y aumenta conforme el proceso espera (sea por decisión del despachador o por estar en alguna espera). Esta prioridad interna depende también del tamaño de la lista de procesos listos para su ejecución: Entre más procesos haya pendientes, más fuerte será la modicación que efectúe. El despachador ejecutará al proceso que tenga una mayor prioridad después de realizar estos pesos, decidiendo por ronda en caso de haber empates. Claro está, este algoritmo resulta sensiblemente más caro computacionalmente, aunque más justo, que aquellos sobre los cuales construye.

2.9. Resumiendo
En esta sección presentamos algunos mecanismos básicos de planicación a corto plazo. Como lo indicamos en la parte nal, es muy poco común encontrar a ninguno de estos mecanismos en un estado puro  Normalmente se encuentra combinación de ellos, con diferentes parámetros según el nivel en el cual se está ejecutando.

2.9.1. Rendimiento ante diferentes cargas de procesos
Recordemos que, si bien presentamos una comparación de los diferentes algoritmos ante una determinada carga de procesos, no podemos asumir que su comportamiento será igual ante diferentes distribuciones: Un patrón de trabajo donde predominen los procesos cortos y haya unos pocos procesos largos probablemente se verá mucho más penalizado por un esquema SRR (y mucho más favorecido por un SPN o PSPN) que uno en el cual predominen los procesos largos. Raphael Finkel realizó estudios bajo diversas cargas de trabajo, buscando comparar de forma signicativa estos distintos mecanismos. Finkel simuló el comportamiento que estos algoritmos tendrían ante 50,000 procesos generados de forma aleatoria, siguiendo una distribución exponencial tanto en sus tiempos de llegada como duraciones en ejecución, y manteniendo como parámetro de equilibrio un nivel de saturación ρ = 0,8(α = 0,8, β = 1,0), obteniendo como resultado las guras que aquí reproducimos (15 y 16) comparando algunos aspectos importantes de los diferentes despachadores.

2.9.2. Duración mínima del quantum
Observamos que la penalización por cambios de contexto en esquemas preventivos como la ronda puede evitarse empleando quantums mayores. Por otro lado, ¾qué tan corto tiene sentido que sea un quantum ? Con el hardware y las estructuras requeridas por los sistemas operativos de uso general disponibles 21

Figura 15: Proporción de penalización registrada por cada proceso contra el porcentaje del tiempo que éste requiere (Finkel, p.33) hoy en día, un cambio de contexto requiere del órden de 10 microsegundos (Silberschatz, p.187), por lo que incluso con el quantum de 10ms (el más corto que manejan tanto Linux como Windows), representa apenas la milésima parte del tiempo efectivo de proceso. Una estrategia empleada por Control Data Corporation para la CDC6600 (comercializada a partir de 1964, y diseñada por Seymour Cray) fue emplear hardware especializado que permitiera efectivamente compartir el procesador : Un sólo procesador tenía 10 juegos de registros, permitiéndole alternar entre 10 procesos con un quantum efectivo igual a la velocidad del reloj. A cada paso del reloj, el procesador cambiaba el juego de registros. De este modo, un sólo procesador de muy alta velocidad para su momento (1 MHz) aparecía ante las aplicaciones como 10 procesadores efectivos, cada uno de 100 KHz, reduciendo los costos al implementar sólamente una vez cada una de las unidades funcionales. Podemos ver una evolución de esta idea retomada hacia mediados de la década del 2000 en los procesadores que manejan hilos de ejecución.11 . Esta arquitectura permitía tener multitarea real sin tener que realizar cambios de contexto, sin embargo, al tener un nivel de concurrencia jo establecido en hardware no es tan fácil adecuar a un entorno cambiante, con picos de ocupación.
11 Aunque procesadores la arquitecura de la CDC6600 era

Hyperthreading,

plenamente superescalar,

a diferencia de los

que abordaremos brevemente en la sección 4.4, en que para

que dos instrucciones se ejecuten simultáneamente deben ser de naturalezas distintas, no requiriendo ambas de la misma manejaba

unidad funcional del CPU. El procesador de la CDC6600 no pipelines, sino que cada ejecución empleaba al CPU completo

22

Figura 16: Tiempo (Finkel, p.34)

perdido contra porcentaje de tiempo requerido por proceso

3. Planicación de hilos
Ahora bien, tras centrarnos para toda la presente discusión en los procesos, ¾cómo caben los hilos en este panorama? Depende de cómo éstos son mapeados a procesos a ojos del planicador. Como vimos en la unidad de Administración de procesos, hay dos clases principales de hilo: Los hilos de usuario o hilos verdes, que son completamente gestionados dentro del proceso y sin ayuda del sistema operativo, y los hilos de núcleo o hilos de kernel, que sí son gestionados por el sistema operativo como si fueran procesos. Partiendo de esto, podemos hablar de tres modelos principales de mapeo:

Muchos a uno Muchos hilos son agrupados en un sólo proceso. Los hilos verdes entran en este supuesto: Para el sistema operativo, hay un sólo proceso; mientras tiene la ejecución, éste se encarga de repartir el tiempo entre sus hilos.

Figura 17: Mapeo de hilos

muchos a uno (imagen: Beth Plale)
23

Bajo este modelo, si bien el código escrito es más portable entre diferentes sistemas operativos, los hilos no aprovechan realmente al paralelismo, y todos los hilos pueden tener que bloquearse cuando uno sólo de ellos realiza una llamada bloqueante al sistema.

Uno a uno Cada hilo es ejecutado como un proceso ligero (lightweight process o LWP ); podría dar la impresión de que este esquema desperdicia la

principal característica de los hilos, que es una mayor sencillez y rapidez de inicialización que los procesos, sin embargo, la información de estado requerida para crear un LWP es mucho menor que la de un proceso regular, y mantiene como ventaja que los hilos continúan compartiendo su memoria, descriptores de archivos y demás estructuras.

Figura 18: Mapeo de hilos

uno a uno (imagen: Beth Plale)

Este mecanismo permite a los hilos aprovechar las ventajas del paralelismo, pudiendo ejecutarse cada hilo en un procesador distinto, y como única condición para su existencia, el sistema operativo debe poder implementar los LWP.

Muchos a muchos

Este mecanismo permite que existan hilos de ambos modelos: Permite la existencia de hilos unidos (bound threads ), en que cada hilo corresponde a un (y sólo un) LWP, y de hilos no unidos (unbound threads ), de los cuales uno o más estarán mapeados a cada LWP.

Figura 19: Mapeo de hilos

muchos a muchos (imagen: Beth Plale)

El esquema muchos a muchos proporciona las principales características de ambos esquemas; en caso de ejecutarse en un sistema que no soporte más que el modelo uno a muchos, el sistema puede caer en éste como modo degradado. No nos ocupamos en este caso de los primeros  Cada marco de desarrollo o máquina virtual que emplee hilos de usuario actuará cual sistema operativo ante ellos, probablemente con alguno de los mecanismos ilustrados anteriormente. 24

3.1. Los hilos POSIX (pthreads)
La clasiciación recién presentada de modelos de mapeo entre hilos y procesos se reeja aproximadamente en la categorización de los hilos POSIX (pthreads) denominada el ámbito de contención. Hay dos enfoques respecto a la contención que deben tener los hilos, esto es: En el momento que un proceso separa su ejecución en dos hilos, ¾debe cada uno de estos recibir la misma atención que recibiría un proceso completo?

Ámbito de contención de proceso (Process Contention Scope, PCS ;

en POSIX, PTHREAD_SCOPE_PROCESS) Una respuesta es que todos los hilos deben ser atendidos sin exceder el tiempo que sería asignado a un sólo proceso. Un proceso que consta de varios hilos siguiendo el modelo muchos a uno, o uno que multiplexa varios hilos no unidos bajo un modelo muchos a muchos, se ejecuta bajo este ámbito.

Ámbito de contención de sistema (System Contention Scope, SCS ; en POSIX,
PTHREAD_SCOPE_SYSTEM) Este ámbito es cuando, en contraposición, cada hilo es visto por el planicador como un proceso independiente; este es el ámbito en el que se ejecutarían los hilos bajo el modelo uno a uno, o cada uno de los hilos unidos bajo un modelo muchos a muchos, dado que los hilos son tratados, para propósitos de planicación, cual procesos normales.

La denición de pthreads apunta a que, si bien el programador puede solicitar que sus hilos sean tratados bajo cualquiera de estos procesos, una implementación especíca puede implementar ambos o sólo uno de los ámbitos. Un proceso que solicite que sus hilos sean programados bajo un ámbito no implementado serán ejecutados bajo el otro, noticando del error (pero permitiendo continuar con la operación). Las implementaciones de pthreads tanto en Windows como en Linux sólo contemplan SCS. Respecto a los otros aspectos mencionados en esta unidad, la especicación pthreads incluye funciones por medio de las cuales el programador puede solicitar al núcleo la prioridad de cada uno de los hilos por separado (pthread_setschedprio) e incluso solicitar el empleo de determinado algoritmo de planicación (sched_setscheduler).

4. Planicación de multiprocesadores
Hasta este punto, nos hemos concentrado en la planicación asumiendo un sólo procesador. Del mismo modo que lo que vimos hasta este momento, no hay una sóla estrategia que pueda ser vista como superior a las demás. Para trabajar en multiprocesadores, puede mantenerse una sóla lista de procesos e ir despachándolos a cada uno de los procesadores como unidades de ejecución equivalentes e idénticas, o pueden mantenerse listas separadas de procesos. Veremos algunos argumentos respecto a estos enfoques. 25

4.1. Anidad a procesador
En un entorno multiprocesador, después de que un proceso se ejecutó por cierto tiempo, tendrá parte importante de sus datos copiados en el caché del procesador en el que fue ejecutado. Si el despachador decidiera lanzarlo en un procesador que no compartiera dicho caché, estos datos tendrían que ser invalidados para mantener la coherencia, y muy probablemente (por localidad de referencia ) serían vueltos a cargar al caché del nuevo procesador. Los procesadores actuales normalmente tienen disponibles varios niveles de caché; si un proceso es migrado entre dos núcleos del mismo procesador, probablemente sólo haga falta invalidar los datos en el caché más interno (L1), dado que el caché en chip (L2) es compartido entre los varios núcleos del mismo chip; si un proceso es migrado a un CPU físicamente separado, será necesario invalidar también el caché en chip (L2), y mantener únicamente el del controlador de memoria (L3). Pero dado que la situación antes descrita varía de computadora a computadora, no podemos enunciar una regla general  Más allá de que el sistema operativo debe conocer cómo están estructurados los diversos procesadores que tiene a su disposición, y buscar realizar las migraciones más baratas, aquellas que tengan lugar entre los procesadores más cercanos. Resulta obvio por esto que un proceso que fue ejecutado en determinado procesador vuelva a ser ejecutado en el mismo, esto es, el proceso tiene anidad por cierto procesador. Un proceso que preferentemente será ejecutado en determinado procesador se dice que tiene anidad suave por ese procesador, pero determinados patrones de carga (por ejemplo, una mucho mayor cantidad de procesos anes a cierto procesador que a otro, saturando su cola de procesos listos, mientras que el segundo procesador tiene tiempo disponible) pueden llevar a que el despachador decida activarlo en otro procesador. Por otro lado, algunos sistemas operativos ofrecen la posibilidad de declarar anidad dura, con lo cual se garantiza a un proceso que siempre será ejecutado en un procesador, o en un conjunto de procesadores. Un entorno NUMA, por ejemplo, funcionará mucho mejor si el sistema que lo emplea maneja tanto un esquema de anidad dura como algoritmos de asignación de memoria que le aseguren que un proceso siempre se ejecutará en el procesador que tenga mejor acceso a sus datos.

4.2. Balanceo de cargas
En un sistema multiprocesador, la situación ideal es que todos los procesadores estén despachando trabajos al 100 % de su capacidad. Sin embargo, ante una denición tan rígida, la realidad es que siempre habrá uno o más procesadores con menos del 100 % de carga, o uno o más procesadores con procesos encolados y a la espera, o incluso ambas situaciones. La divergencia entre la carga de cada uno de los procesadores debe ser lo más pequeña posible. Para lograr esto, podemos emplear esquemas de balanceo de cargas : Algoritmos que analicen el estado de las colas de procesos y, de ser 26

el caso, transeran procesos entre las colas para homogeneizarlas. Claro está, el balanceo de cargas puede actuar precisamente en sentido contrario de la anidad al procesador, y efectivamente puede reubicar a los procesos con anidad suave. Hay dos estrategias primarias de balanceo: Por un lado, la migración activa o migración por empuje (push migration ) consiste en una tarea que ejecuta como parte del núcleo y periódicamente revisa el estado de los procesadores, y en caso de encontrar un desbalance mayor a cierto umbral, empuja a uno o más procesos de la cola del procesador más ocupado a la del procesador más libre. Linux ejecuta este algoritmo cada 200 milisegundos. Por otro lado, está la migración pasiva o migración por jalón (pull migration ). Cuando algún procesador queda sin tareas pendientes, ejecuta al proceso especial desocupado (idle ). Ahora, el proceso desocupado no signica que el procesador detenga su actividad  Ese tiempo puede utilizarse para ejecutar tareas del núcleo. Una de esas tareas puede consistir en averiguar si hay procesos en espera en algún otro de los procesadores, y de ser así, jalarlo a la cola de este procesador. Ambos mecanismos pueden emplearse y normalmente lo hacen en el mismo sistema. Los principales sistemas operativos modernos emplean casi siempre ambos mecanismos. Como sea, debemos mantener en mente que todo balanceo de cargas que se haga entre los procesadores conllevará una penalización en términos de anidad al CPU.

4.3. Colas de procesos: ¾Una o varias?
En esta sección partimos del supuesto que hay una cola de procesos listos por cada procesador. Si, en cambio, hubiera una cola global de procesos listos de la cual el siguiente proceso a ejecutarse fuera asignándose al siguiente procesador, fuera éste cualquiera de los disponibles, podríamos ahorrarnos incluso elegir entre una estrategia de migración por empuje o por jalón  Mientras hubiera procesos pendientes, éstos serían asignados al siguiente procesador que tuviera tiempo disponible. El enfoque de una sóla cola, sin embargo, no se usa en ningún sistema en uso amplio. Esto es en buena medida porque un mecanismo así haría mucho más difícil mantener la anidad a cierto procesador y restaría exibilidad al sistema completo.

4.4. Procesadores con soporte a threading )

hilos hardware

(hyper-

El término de hilos como abstracción general de algo que corre con mayor frecuencia y dentro de un mismo proceso puede llevarnos a una confusión, dado que en esta sección abordaremos dos temas relacionados. En este caso, nos referimos a los hilos en hardware que forman parte de ciertos procesadores, ofreciendo al sistema una casi concurrencia adicional.

27

Conforme han subido las frecuencias de reloj en el cómputo más allá de lo que podemos llevar al sistema entero como una sóla unidad, una respuesta recurrente ha sido incrementar el paralelismo. Y esto no sólo se hace proveyendo componentes completos adicionales, sino que separando las unidades funcionales de un procesador. El ujo de una sóla instrucción a través de un procesador simple como el MIPS puede ser dividido en cinco secciones principales, creando una estructura conocida como pipeline (tubería): Recuperación de la instrucción (Instruction Ejecución (Execution, EX) Acceso a datos (MEM) Almacenamiento (Writeback, WB)

Fetch, IF) Decode, ID)

Decodicación de la instrucción (Instruction

Figura 20: Descomposición de una instrucción en sus cinco pasos clásicos para organizarse en un pipeline La complejidad de los procesadores actuales ha crecido ya por encima de lo aquí delineado (el Pentium 4 tiene más de 20 etapas), sin embargo tomaremos esta separación como base para la explicación. Un procesador puede iniciar el procesamiento de una instrucción cuando la siguiente apenas avanzó la quinta parte de su recorrido  De este modo, puede lograr un paralelismo interno, manteniendo idealmente siempre ocupadas a sus partes funcionales. Sin embargo, se ha observado que un hay patrones recurrentes que intercalan operaciones que requieren servicio de diferentes componentes del procesador, o que requieren de la inserción de burbujas porque una unidad es más lenta que las otras  Lo cual lleva a que incluso empleando pipelines, un procesador puede pasar hasta el 50 % del tiempo esperando a que haya datos disponibles solicitados a la memoria. Para remediar esto, varias de las principales familias de procesadores presentan a un mismo núcleo de procesador como si estuviera compuesto de dos o más hilos hardware (conocidos en el mercado como hyper-threads ). Esto puede llevar 28

Figura 21: Alternando ciclos de cómputo y espera por memoria, un procesador que implementa hilos hardware (hyperthreaded ) se presenta como dos procesadores a una mayor utilización del procesador, siguiendo patrones como el ilustrado en el esquema. Hay que recordar que, a pesar de que se presenten como hilos independientes, el rendimiento de cada uno depende de la secuencia particular de instrucciones del otro  No podemos esperar que el incremento en el procesamiento sea de 2x, ni mucho menos. La planicación de los hilos hardware sale del ámbito del presente curso, y este tema se presenta únicamente para aclarar un concepto que probablemente confunda al alumno por su similitud; los hilos en hardware implican cuestiones de complejidad tal como el ordenamiento especíco de las instrucciones, predicción de ramas de ejecución, e incluso asuntos relativos a la seguridad, dado que se han presentado goteos que permiten a un proceso ejecutando en un hilo espiar el estado del procesador correspondiente a otro de los hilos. Para abundar al respecto, el ámbito adecuado podría ser un curso orientado a la construcción de compiladores (ordenamiento de instrucciones, aprovechamiento del paralelismo), o uno de arquitectura de sistemas (estudio del pipeline, aspectos del hardware). Esta estrategia guarda gran similitud, y no puede evitar hacerse el paralelo, con la compartición de procesador presentada en la sección nal de Algoritmos de planicación.

5. Tiempo real
Todos los esquemas de manejo de tiempo hasta este momento se han enfocado a repartir el tiempo disponible entre todos los procesos que requieren atención. No hemos tocado, sin embargo, a los procesos que requieren garantías de tiempo  Esto es, procesos que para poder ejecutarse deben garantizar el haber tenido determinado tiempo de proceso antes de que un tiempo límite. Los procesos con estas características se conocen como de tiempo real. Podemos encontrar ejemplos de procesos que requieren este tipo de plan-

29

icación a todo nivel  los ejemplos más comunes son los controladores de dispositivos y los recodicadores o reproductores de medios (audio, video). La lógica general es la misma: Para agendarse como un proceso con requisitos de tiempo real, éste debe declarar sus requisitos (formalmente, efectuar su reserva de recursos ) de tiempo al iniciar su ejecución o en el transcurso de la misma. Claro está, siendo que los procesos de tiempo real obtienen una prioridad mucho mayor a otros, normalmente se requerirá al iniciar el proceso que éste declare que durante parte de su ejecución trabajará con restricciones de tiempo real.

5.1. Tiempo real duro y suave
Supongamos que un dispositivo genera periódicamente determinada cantidad de información y la va colocando en un área determinada de memoria compartida (en un buer ). Al inicializarse, su controlador declarará al sistema operativo cuánto tiempo de ejecución le tomará recoger y procesar dicha información, liberando el buer para el siguiente ciclo de escritura del dispositivo, y la frecuencia con que dicha operación tiene que ocurrir. En un sistema capaz de operar con garantías de tiempo real, si el sistema operativo puede garantizar que en ese intervalo le otorgará al proceso en cuestión suciente tiempo para procesar esta información, el proceso se ejecuta; en caso contrario, recibe un error por medio del cual podrá alertar al usuario. Los sistemas en que el tiempo máximo es garantizable son conocidos como de tiempo real duro. La necesidad de atención en tiempo real puede manejarse periódica (por ejemplo, requiero del procesador por 30ms cada segundo ), o aperiódica, por ocurrencia única (necesito que este proceso, que me tomará 600ms, termine de ejecutarse en menos de 2s ). Realizar una reserva de recursos requiere que el planicador sepa con certeza cuánto tiempo toma realizar las tareas de sistema que ocurrirán en el periodo en cuestión. Cuando entran en juego algunos componentes de los sistemas operativos de propósito general que tienen una latencia con variaciones impredecibles (como el almacenamiento en disco o la memoria virtual) se vuelve imposible mantener las garantías de tiempo ofrecidas, por lo cual, en un sistema operativo de uso general no es posible implementar tiempo real duro en dichos sistemas. Para solventar necesidades como las expresadas en sistemas de uso general, el tiempo real suave sigue requiriendo que los procesos críticos reciban un trato prioritario por encima de los processos comunes; agendar a un proceso con esta prioridad puede llevar a la inanición de procesos de menor prioridad y un comportamiento que bajo ciertas métricas resultaría injusto. Un esquema de tiempo real suave puede implementarse a través de un esquema similar al de la retroalimentación multinivel, con las siguientes particularidades: La cola de tiempo real recibe prioridad sobre todas las demás colas La prioridad de un proceso de tiempo real ejecuta repetidamente 30

no se degrada conforme se

La prioridad de los demás procesos nunca llegan a subir al nivel de tiempo real por un proceso automático (aunque sí puede hacerse por una llamada explícita) La latencia de despacho debe ser mínima Casi todos los sistemas operativos en uso amplio hoy en día ofrecen facilidades básicas de tiempo real suave.

5.2. Sistema operativo interrumpible (prevenible )
Para que la implementación de tiempo real suave sea apta para estos requisitos es necesario modicar el comportamiento del sistema operativo. Cuando un proceso de usuario hace una llamada al sistema, o cuando una interrupción corta el ujo de ejecución, hace falta que el sistema procese completa la rutina que da servicio a dicha solicitud antes de que continúe operando. Se dice entonces que el sistema operativo no es prevenible o no es interrumpible. Para lograr que el núcleo pueda ser interrumpido para dar el control de vuelta a procesos de usuario, un enfoque fue el poner puntos de interrupción en los puntos de las funciones del sistema donde fuera seguro, tras asegurarse que las estructuras estaban en un estado estable. Esto, sin embargo, no modica en mucho la situación porque estos puntos son relativamente pocos, y es muy difícil reestructurar su lógica para permitir puntos de prevención adicionales. Otro enfoque es hacer al núcleo entero completamente interrumpible, asegurándose de que, a lo largo de todo su código, todas las modicaciones a estructuras internas estén protegidas por mecanismos de sincronización, como los estudiados en la unidad anterior. Este método ralentiza varios procesos del núcleo, pero es mucho más exible, y ha sido adoptado por los diversos sistemas operativos. Tiene la ventaja adicional de que permite que haya hilos del núcleo corriendo de forma concurrente en todos los procesadores del sistema.

5.3. Inversión de prioridades
Un efecto colateral de que las estructuras del núcleo estén protegidas por mecanismos de sincronización es que puede presentarse la inversión de prioridades. Esto es: Un proceso A de baja prioridad hace una llamada al sistema, y es interrumpido a la mitad de dicha llamada Un proceso B de prioridad tiempo real hace una segunda llamada al sistema, que requiere de la misma estructura que la que tiene bloqueada

A

Al presentarse esta situación, B se quedará esperando hasta que A pueda ser nuevamente agendado  Esto es, un proceso de alta prioridad no podrá avanzar hasta que uno de baja prioridad libere su recurso. 31

La respuesta introducida por Solaris 2 a esta situación a este fenómeno es la herencia de prioridades : Todos los procesos que estén accesando (y, por tanto, bloqueando) recursos requeridos por un proceso de mayor prioridad, serán tratados como si fueran de la prioridad de dicho recurso hasta que terminen de utilizar el recurso en cuestión, tras lo cual volverán a su prioridad nativa.

6. Recursos adicionales
Simulación de algoritmos de planicación: Programa en Java escrito por P. A. Krishnan para un curso como este, presentando la simulación de distintos algoritmos de planicación. Thread Scheduling (ctd): quanta, switching and scheduling algorithms (Javamex tutorial and performance information ) Microprocessor Design / Pipelined Processors, WikiBooks.org Thread scheduling and synchronization, Beth Plale, Indiana University

Páginas de manual de Linux para pthreads, pthread_attr_setscope, sched_setscheduler (kernel.org )
Windows Internals, 6th edition, de Mark Russinovich, David A. Solomon y Alex Ionescu, por Microsoft Press. El capítulo 5 aborda a profundidad los temas de hilos y procesos bajo Windows; está disponible como ejemplo del libro para su descarga en la página referida, y en el sitio del curso. Optimizing preemption, Jonathan Corbet, Linux 2013

Weekly News, agosto del

32

Similar Documents

Free Essay

Utomatismos Electricos

...Hoy en día el número de empresas que cuentan con maquinas de automatismos esta creciendo exponencialmente gracias a las mejoras en la tecnología y la creación de nuevas máquinas inteligentes dotadas de sensores y circuitos eléctricos de última generación que agilizan y abaratan los costes. Estas empresas necesitan por tanto la figura del técnico en automatismos eléctricos para el correcto funcionamiento del conjunto de maquinaria. El curso de automatismos eléctricos está dirigido a aquellas personas que quieran formarse en una rama de la electricidad ligada a industria y maquinaria, así como para los profesionales del sector industrial e ingeniería que quieran completar sus conocimientos dentro del área de los automatismos. Creado por expertos de la materia, el curso trata de que el alumno se forme como técnico del sector a su ritmo, con una planificación personalizada, el apoyo de una comunidad de estudiantes abierta y la ayuda de los expertos en la materia. Todo ello gracias a un campus online puntero que permite estudiar en cualquier dispositivo conectado a internet y controlar el avance de los estudios. ¿Qué consigo con este Curso de Automatismos Eléctricos? * Conocer los diferentes componentes que pueden utilizarse en un automatismo eléctrico, y saber cuál es la función de cada uno. * Conocer los principales tipos de sensores que se utilizan en los procesos industriales, con el fin de poder detectar diferentes situaciones que se puedan dar en un automatismo. ...

Words: 315 - Pages: 2

Free Essay

Auditoria de Rrhh

...Factores que limitan la gestión de los RRHH según los resultados de la auditoría RESULTADOS: De acuerdo a las verificaciones realizadas a la empresa Importadora y Exportadora Rousen, se pudo apreciar de modo general que aunque la empresa genera altos ingresos carece de un bien estructurado departamento de Recursos Humanos y por consiguiente de una Gestión de Recursos Humanos bien definida, tiene muchos detalles que deberá solventar en el tiempo que la Administración se lo proponga. Estos detalles de manera parcial en el grado de economía, eficiencia y eficacia relacionadas con los recursos humanos; ya que fueron detectados algunos aspectos que presentan un grado de deterioro parcial y que pueden incidir negativamente en la gestión de dicha Entidad. La reclutadora es la jefa de contabilidad, quien carece de la expertiz necesaria en el sistema de reclutamiento y contratación de personal. 10. Propuesta para mejorar la gestión de RRHH dentro de la empresa: Objetivos: 1. Garantizar la excelencia en el proceso de servicio como factor esencial del desarrollo de la actividad empresarial, mediante el empleo de administradores y trabajadores Idóneos y debidamente calificados. 2. Garantizar la elaboración y puesta en práctica de las políticas de recursos humanos de la empresa. 3. Diagnosticar los cambios organizativos y estructurales que se requieran en la empresa y contribuir a perfeccionar los métodos y estilos de administración en función de propiciar una mayor participación...

Words: 1396 - Pages: 6

Free Essay

Reingenieria de Procesos

...REINGENIERIA DE PROCESOS La reingeniería de procesos es el rediseño radical y la reconcepción fundamental de los procesos de negocios para lograr mejoras dramáticas en medidas como en costos, calidad, servicio y rapidez. Es la actividad destinada a incrementar las capacidades de gestión del nivel operativo y complementarias de las apuestas estratégicas y políticas de una organización. Es un modo planificado de establecer secuencias nuevas e interacciones novedosas en los procesos administrativos, regulativos y sustantivos con la pretensión de elevar la eficiencia, la eficacia, la productividad y la efectividad de la red de producción institucional y alcanzar un balance global positivo. Se trata de una reconfiguración profunda del proceso que se trate e implica una visión integral de la organización en la cual se desarrolla. Preguntas como: ¿por qué hacemos lo que hacemos? y ¿por qué lo hacemos como lo hacemos?, llevan a interpelarnos sobre los fundamentos de los procesos de trabajo. La reingeniería de procesos es radical de cierta manera, ya que busca llegar a la raíz de las cosas, no se trata solamente de mejorar los procesos, sino y principalmente, busca reinventarlos con el fin de crear ventajas competitivas osadas e innovar en las maneras de hacer las cosas. Una confusión usual es equiparar la reingeniería de procesos al rediseño o diseño organizacional, no hay que confundir, son los procesos y no las organizaciones los sujetos a reingeniería. En general la tarea de reingeniería...

Words: 638 - Pages: 3

Free Essay

Icecream Analysis

...Francisco José Moralejo Módulo: Dirección de Operaciones Consultor del Módulo: Antonio Salado Ortiz Fecha de presentación: 26 de Febrero de 2012 Dirección de Operaciones [pic] Enunciado: Caso práctico: Planificación Estratégica de Operaciones. PREGUNTAS, Tras haber leído el artículo adjunto, habéis podido conocer cómo se prepara una estrategia a largo plazo. En base a las explicaciones del artículo, trabajaréis 2 tipos de empresas diferentes, a saber: 1) la primera de fabricación de helados en el área de España y Portugal, con una estrategia definida y orientada a la Calidad y a la fiabilidad de las entregas; 2) y una segunda empresa dedicada a la extrusión y fabricación de productos de aluminio para toda Europa, que compite con compañías multinacionales con diferentes centros de producción. En base al artículo de referencia, debéis responder de forma razonada a las siguientes preguntas: 1) Definid las prioridades estratégicas de ambas empresas. 2) A partir de la respuesta dada a la pregunta1, desarrollad los conceptos de Desagregación, Descomposición, Traducción, Evaluación y Conclusión, para sus posibles IEP; tal como indica el artículo de referencia. 3) Explicad cuáles son las diferencias claves entre la planificación de la empresa de helados y la empresa multinacional de productos de aluminio. 4) En base a las empresas mencionadas y a sus procesos de producción, que aunque no conocemos en detalle...

Words: 2546 - Pages: 11

Free Essay

Modelo Scor

...IX Congreso de Ingeniería de Organización Gijón, 8 y 9 de septiembre de 2005 Análisis del modelo SCOR para la Gestión de la Cadena de Suministro José Luis Calderón Lama1, Francisco-Cruz Lario Esteban2 Dpto. de Organización de Empresas. Universidad Politécnica de Valencia. Campus de Vera, 46022 Valencia (Comunidad Valenciana). jocalla@doctor.upv.es. Universidad de Piura (Perú). 2 Centro de Investigación Gestión e Ingeniería de Producción (CIGIP). Universidad Politécnica de Valencia. Campus de Vera, 46022 Valencia. fclario@omp.upv.es 1 Resumen El presente trabajo analiza el modelo SCOR como herramienta para la Gestión de la Cadena de Suministro, y se ha realizado en el ámbito del Proyecto de la Generalitat Valenciana “Planificación Colaborativa y Ayuda a la Toma de Decisiones en la Gestión de la Cadena de Suministro” y en el contexto del Programa de Doctorado “Gestión de la Cadena de Suministro en el contexto de Empresa Virtual, Ingeniería y Modelización Empresarial” de la Universidad Politécnica de Valencia. Este informe se subdivide en tres secciones que abarcan: la descripción del modelo SCOR en sí, el análisis de casos de aplicación del mismo en diversas empresas, y las conclusiones. El trabajo ha sido realizado en base a la información brindada en la página web del Consejo de la Cadena de Suministro (http://www.supply-chain.org) entre los meses de julio y diciembre de 2004. Palabras clave: Modelado, Gestión de la Cadena de Suministro, SCOR 1. Descripción...

Words: 3791 - Pages: 16

Free Essay

Arquitectura Empresarial

...años la Arquitectura Empresarial (AE) ha evolucionado de ser una disciplina netamente técnica que visualiza el desempeño de la infraestructura tecnológica de una empresa a convertirse en una disciplina gerencial que permite visualizar el estado actual de una organización a través de modelos (actuales) y evaluar la dirección estratégica, planteando arquitecturas y modelos de escenarios (futuros) para una mejor toma de decisiones. La evolución de AE ha tenido un fuerte impulso al convertirse en una herramienta que podría resolver el problema de la alineación del negocio con las tecnologías de Información (TI). FACTORES CLAVES: Los factores claves para la implementación de AE son principalmente: un marco de referencia, combinar procesos y modelamiento y priorizar áreas que demanden crear arquitecturas o trabajar incrementalmente en cada capa de dominio de arquitectura, añadiendo valor en cada paso. Se propone un marco de referencia que incluya la AE en conjunto con el modelo EFQM para tener un mecanismo de autoevaluación y el Cuadro de Mando Integral o BSC para poder establecer indicadores y medir el desempeño operativo de la organización ya que esto no cubre un AE. CONCEPTO DE ARQUITECTURA EMPRESARIAL: “Arquitectura Empresarial es un conjunto coherente de principios, métodos y modelos que son usados en el diseño y en la realización de la estructura organizacional empresarial, procesos de negocio, sistemas de información e infraestructura” AE es una disciplina...

Words: 1012 - Pages: 5

Free Essay

Arquitectura Orientada a Servicios

...4 2. SOA (Service Oriented Architecture) 5 3. Historia de Soa 5 4. Beneficios 6 4.1 Para el Negocio 6 4.2 Para las tecnologías 6 5. ¿Por qué debo saber de SOA? 7 6. Valor aportado por SOA 8 7. SOA desde el punto de vista del negocio 8 8. Agilidad en el negocio articulada por SOA 9 9. SOA y la Cadena de Valor 10 10. Facilitadores tecnológicos clave de SOA 12 10.1 BPM o Business Process Management 12 10.2 La tecnología de Web Services 12 10.3 El ESB o Enterprise Service Bus 12 10.4 BAM o Business Activity Monitoring 12 10.5 El Gobierno de desarrollo el ESR o Enterprise Service Repositorio 13 10.6 El Gobierno de ejecución 13 11. Beneficios SOA para la Industria 13 12. Rol del Arquitecto SOA 14 13. Descripción del Problema 14 13.1 Solución Costosa (P2P) 15 13.2 Solución Óptima (BUS) 16 14. Bus de Servicios de Empresa (ESB) 17 14.1 ¿Por qué utilizar un ESB? 18 14.2 Funcionalidades de un ESB 18 15. Herramienta SOA: Mule ESB 19 15.1 Características 20 15.2 Ventajas 20 15.3 Historia 20 15.4 Anypoint Studio 21 16. Clientes de Mule 22 16.1 eBay Enterprise 22 16.2 Nespresso 22 17. Reportes: Cuadrante Mágico de Gartner 23 17.1 Criterios de Evaluación 24 17.2 Cuadrante Mágico para Plataformas de Integración Empresarial como Servicio (iPaaS) 26 17.3 Cuadrante Mágico para Gobernabilidad de Servicios de Aplicaciones 27 17.4 Cuadrante Mágico para Integración de Aplicaciones 28 17.4 Cuadrante Mágico para Proyectos SOA...

Words: 5247 - Pages: 21

Free Essay

Cost Alocattion

...TABLEROS DE CONTROL DE LA GESTIÓN BASADA EN ACTIVIDADES Autor: Marco Antonio Machado Rivera País: Colombia Universidad: Universidad de Antioquia Dirección de correo electrónico: mmachado@agustinianos.udea.edu.co Palabras clave: Control Gestión Actividades Tema del trabajo presentado: Indicadores integrales de gestión Recursos audiovisuales requeridos para la presentación: PC y Video bean para la presentación en formato power point 98 TABLEROS DE CONTROL DE LA GESTIÓN BASADA EN ACTIVIDADES Palabras clave: Control Gestión Actividades Tema del trabajo presentado: Indicadores de integrales de gestión Resumen: La contabilidad y el control de la gestión, son dos elementos disciplinales esenciales que permiten el diseño de instrumentos para el seguimiento (monitoreo) de los costos de las actividades desarrolladas por un ente productivo. La gestión de los costos se constituye en un sistema complejo de actividades con un carácter esencialmente estratégico. Los tableros de control permiten abordar visiones integrales de la realidad empresarial; como instrumento operativo se constituye en una herramienta esencial en marco de la gestión de costos. La gestión de los costos basados en actividades puede ser analizada y evaluada a la luz del logro de la Efectividad en las Actividades de la Organización (EAO), la cual se define integralmente en función de la eficiencia, la eficacia, la calidad, la economía, competitividad y entornabilidad. Los indicadores...

Words: 7611 - Pages: 31

Free Essay

Norma Iso 14001

...certifiée ISO 14001 Sistemas de gestión ambiental - Requisitos con orientación para su uso Environmental management systems — Requirements with guidance for use Systèmes de management environnemental — Exigences et lignes directrices pour son utilisation Número de referencia ISO 14001:2004 (ES) (traducción certificada) © ISO 2004 ISO 14001:2004 (traducción certificada) PDF – Exoneración de responsabilidad El presente fichero PDF puede contener pólizas de caracteres integradas. Conforme a las condiciones de licencia de Adobe, este fichero podrá ser impreso o visualizado, pero no deberá ser modificado a menos que el ordenador empleado para tal fin disfrute de una licencia que autorice la utilización de estas pólizas y que éstas estén instaladas en el ordenador. Al descargar este fichero, las partes implicadas aceptan de hecho la responsabilidad de no infringir las condiciones de licencia de Adobe. La Secretaría Central de ISO rehusa toda responsabilidad sobre esta cuestión. Adobe es una marca registrada de Adobe Systems Incorporated. Los detalles relativos a los productos software utilizados para la creación del presente fichero PDF están disponibles en la sección General Info del fichero. Los parámetros de creación PDF han sido optimizados para la impresión. Se han adoptado todas las medidas pertinentes para garantizar la explotación de este fichero por los comités miembros de ISO. En la eventualidad poco probable de surgir un problema de utilización, sírvase comunicarlo...

Words: 12176 - Pages: 49

Free Essay

Herramientas Calidad

...Las siete herramientas de la calidad Joanna Florián Debido a los pasos agigantados de la globalización, esto ha ido generando no sólo que la calidad de los bienes o servicios se conviertan en un aspecto indispensable para la diferenciación y competitividad de una empresa, si no también que los clientes sean cada vez más exigentes. En la actualidad una empresa debe ser adaptable a los cambios, no solamente evolucionando en equipos, expectativas de los clientes y tecnologías, etc., si no también debe ofrecer un nivel de calidad flexible y no estable en el tiempo. Se debe tener en cuenta que muchas veces el mercado es el que fija los precios y la utilidad de una empresa depende de su reducción de costos. Es ahí cuando la mejora continua se vuelve una estrategia indispensable en una empresa que desee progresar. Al aplicarlo se establecen métodos para identificar, seleccionar, desarrollar y estandarizar etapas. Todo esto forma un paquete de información para la toma de decisiones y estas decisiones dependen del análisis de todos estos datos. La experiencia indica que las siete herramientas de la calidad proporcionan una metodología práctica, que no es necesario un alto grado de preparación profesional, para solucionar efectivamente los problemas, mejorar los procesos y establecer controles en las operaciones de dichos procesos. Antes de implementar un proceso de mejora continua de calidad, es necesario adoptar ciertas etapas para poder maximizar el resultado del proyecto. Las...

Words: 1199 - Pages: 5

Premium Essay

Conceptos Lean Manufacturing

...CONCEPTOS LEAN MANUFACTURING ACTIVITY-BASED COSTING Un sistema de contabilidad que asigna costes a los productos basándose en la cantidad de recursos usados (incluso la cantidad de trabajo, materia prima, horas de la máquina y el esfuerzo humano) para diseñar, pedir o producir un producto. Contrasta con el cálculo tradicional de costes sobre estándares. CUADRO DE MANDD (ANDON BORRAD) Un dispositivo visual en una área de la producción, típicamente un despliegue manual o electrónico que muestra el estado actual del sistema de producción a los miembros del equipo, alertando si surgen problemas en el producto o proceso de manufactura. FABRICACIÓN AGIL Y VIRTUAL (AGILE AND VIRTUAL MANUFACTURING) Reúne habilidades y competencias clave de varias empresas con el fin de satisfacer rápidamente nuevas demandas de clientes. También es una forma ajustada de fabricar, mientras no tenga muchos gastos generales permanentes y se pueda incurrir en tales gastos sólo cuando se necesite. Prácticamente se unen varias empresas para satisfacer una necesidad específica y puntual del mercado, disolviendo la unión una vez satisfecha la demanda. CUADRO DE MANDO INTEGRAL (BALANCED SCORECARD) Metodología para un conjunto equilibrado de medidas de rendimiento de operaciones donde las medidas financieras son solamente un elemento más en el conjunto. Según Kaplan y Norton hay cuatro aspectos que cualquier sistema de medidas de rendimiento necesita cubrir: los financieros, aquellos orientados...

Words: 5365 - Pages: 22

Free Essay

Caso Abc

...Accounting Es un método de acumulación de costos que usan algunas empresas que adoptan los sistemas de producción Just in time (JIT), el cual consiste en reducir los inventarios, manteniendo sólo lo que efectivamente se venderá o se usará (en caso de los materiales). El objetivo Principal de este método es procurar la eliminación de inventarios al considerar que los costos, a nivel de producción, deberían estar integrados solamente por los costos de los inventarios y que los costos de conversión, deberían considerarse sólo como costos de los productos terminados y que no deberían incluirse en la producción en proceso. Throughput Accounting En este sistema, se considera que la materia prima es el único costo variable de producción que existe y que la mano de obra y los gastos de fabricación deben ser considerados como costos fijos llevándose directamente a resultados. En este sistema se basa en que no deberían existir inventarios en la empresa, ya que los productos terminados no generan ingresos hasta que son vendidos y cobrados, y que, además, el dinero generado por los productos es sólo la diferencia entre el precio de venta y el costo del material, porque se excluye la mano de obra y los gastos de fabricación. La definición de ciclo de vida del producto (life cycle costing) se puede expresar como el tiempo en el que el producto o servicio permanece vigente en el mercado, desde que nace hasta que se retira del mercado. Considera diferentes etapas: 1. Etapa de desarrollo: no...

Words: 963 - Pages: 4

Free Essay

Proceso de Paz En Colombia

...INTRODUCCIÓN Actualmente, Colombia está pasando por un proceso en el cual se están generando diálogos de paz con uno de los grupos insurgentes al margen de la ley, las FARC-EP (Fuerzas Armadas Revolucionarias de Colombia – Ejército del Pueblo), para dar una solución al conflicto armado que hoy en día tiene lugar en el país, principalmente causado por grupos subversivos como las FARC y el ELN (Ejército de Liberación Nacional). En el siguiente documento, se contextualizará un poco acerca del comienzo de los conflictos armados en Colombia y una breve descripción de estos dos grupos insurgentes. Después de esta contextualización histórica, se dará paso a desarrollar el tema de los procesos y negociaciones de paz que ha llevado a cabo el Gobierno Colombiano a lo largo de la lidia con estos grupos armados. Para esto, el documento estará basado en escritos, revistas, y libros de algunos autores que han hecho estudios e investigaciones en cuanto a esta temática. EL CONFLICTO ARMADO El conflicto armado en Colombia tiene sus inicios en el siglo XIX, cuando los partidos políticos liberales y conservadores no hallaban otra solución a sus diferencias ideológicas, más que utilizar la violencia. Estos dos partidos políticos limitaban a la política en Colombia, al servicio de los intereses de la elite, y excluían totalmente a la sociedad. Fueron entonces estas situaciones las que llevaron a la conformación de grupos insurgentes al margen de la ley como las FARC y el ELN, ambos creados en...

Words: 1095 - Pages: 5

Free Essay

Proceso Haber/Bosch

...Producción de Amoniaco por el proceso Haber–Bosch Introducción A continuación se dará a conocer el método Haber- Bosch y su empleo para la producción del Amoniaco. Para comenzar se dará una descripción detallada del Amoniaco el cual es el producto a producir, y posteriormente daremos paso a conocer la historia. En la historia del Proceso veremos cómo es que tanto Fritz Harber como Carl Bosch colaboraron en esto y como es que todo comenzó. Tras haber obtenido esta información básica, daremos paso a la descripción completa y detallada del proceso Haber-Bosch. Amoniaco El amoniaco es un compuesto químico el cual consiste de un átomo de nitrógeno y tres átomos de hidrógeno. Su geometría es piramidal trigonal, aunque en una solución acuosa podría comportarse como base y así ser un tetraedro. Sin embargo a temperatura ambiente el amoniaco es un gas. Este gas se disuelve con facilidad en agua y se evapora. El amoniaco resulta ser un producto riesgoso para nuestra salud. Su ingestión, inhalación, así como el contacto con la piel u ojos podrían traer grandes consecuencias tales como: vómito, irritaciones, quemaduras y daños permanentes. El amoniaco puede ser utilizado como fertilizante, ya que su uso aumenta los niveles que existen en el suelo de hidrógeno. También puede ser utilizado como producto de limpieza y se le conoce como un fuerte desengrasante, el cual ayuda a retirar manchas. La cantidad que producimos cada año de amoniaco es igual a la cantidad producida por la naturaleza...

Words: 1154 - Pages: 5

Free Essay

Erp Clasificacion

...Doc. de apoyo para ERP II. “Clasificación de ERP” La clasificación de un determinado software de gestión como ERP determina que disponga de una serie de requisitos y funcionalidades que posibiliten su diferenciación. En el mercado del software de hoy en día es habitual que cualquier suite de gestión pretenda un mayor reconocimiento (por lo general irreal, dado que es igualmente necesario un software de gestión normal que un ERP, sólo que para niveles diferentes) por el hecho de ser conocida como ERP en lugar de como software de gestión. Así podemos ver como estrategias de marketing que determinados programas de gestión que llevan en el mercado varios años, cambian bruscamente su denominación a ERP, buscando un nicho de trabajo superior (por lo general acompañado de una mayor remuneración, reconocimiento, etc) sin incrementar proporcionalmente la funcionalidad. La principal diferencia estriba en la definición. Un ERP es una aplicación que integra en un único sistema todos los procesos de negocio de una empresa. Adicionalmente se pretende que todos los datos estén disponibles todo el tiempo para todo el mundo en la empresa (obviando por el momento permisos sobre disponibilidad, etc) de una manera centralizada. Esto descarta como ERP aquellos programas basados en múltiples aplicaciones (denominados comúnmente suites) independientes o modulares que duplican la información (aun cuando la enlacen automáticamente) o no la centralizan en una única base de datos. También elimina aquellos...

Words: 750 - Pages: 3