You are on page 1of 68

Captulo 6: Programacin de

la CPU

Operating System Concepts 9th Edition

Silberschatz, Galvin and Gagne 2013

Captulo 6: Programacin de la CPU


Conceptos bsicos
Criterios de programacin
Programacin de Algoritmos
programacin de subprocesos
Programacin de procesador mltiple
Real-Time planificacin de la CPU
Ejemplos de Sistemas Operativos
Evaluacin algoritmo

Operating System Concepts 9th Edition

6.2

Silberschatz, Galvin and Gagne 2013

objetivos
Para introducir la programacin de la CPU, que es la base para los

sistemas operativos multiprogramados

Para describir varios algoritmos de programacin de la CPU


Para discutir los criterios de evaluacin para la seleccin de un

algoritmo de programacin de la CPU para un sistema particular

Para examinar los algoritmos de planificacin de varios sistemas

operativos

Operating System Concepts 9th Edition

6.3

Silberschatz, Galvin and Gagne 2013

Conceptos bsicos
la mxima utilizacin de la CPU

obtenida con multiprogramacin

CPU-I O Ciclo / Rfaga -

Ejecucin proceso consiste en


una ciclo de ejecucin de CPU y
E / S esperar

rfaga de CPU seguido por Me

rfaga de E / S

distribucin rfaga de CPU es de

inters principal

Operating System Concepts 9th Edition

6.4

Silberschatz, Galvin and Gagne 2013

Histograma de los tiempos de CPUburst

Operating System Concepts 9th Edition

6.5

Silberschatz, Galvin and Gagne 2013

planificador de la CPU
Planificador de corto plazo selecciona de entre los procesos en cola de

listos, y asigna la CPU a una de ellos

Cola puede ser ordenado de diversas maneras

las decisiones de programacin de la CPU pueden tener lugar cuando un

proceso:

1. Cambia de correr a estado de espera


2. Cambia de funcionamiento al estado lista
3. Cambia de espera de listo
4.

termina

La programacin de los puntos 1 y 4 es nonpreemptive


Todos los dems programacin es con derecho preferente

Considere la posibilidad de acceso a los datos compartidos

Considere la posibilidad de preferencia, mientras que en el modo de


ncleo

Considere la posibilidad de interrupciones que se producen durante las


actividades cruciales del sistema operativo

Operating System Concepts 9th Edition

6.6

Silberschatz, Galvin and Gagne 2013

Transportista
mdulo despachador da el control de la CPU al proceso

seleccionado por el planificador de corto plazo; esto implica:

el cambio de contexto

el cambio al modo de usuario

saltar a la ubicacin correcta en el programa de usuario


para reiniciar dicho programa

latencia de despacho - Tiempo que toma al despachador

detener un proceso e iniciar otra ejecucin

Operating System Concepts 9th Edition

6.7

Silberschatz, Galvin and Gagne 2013

Criterios de programacin
utilizacin de la CPU - Mantener la CPU tan ocupada como sea

posible

rendimiento - # De procesos que completan su ejecucin por

unidad de tiempo

El tiempo de respuesta - Cantidad de tiempo para ejecutar un

proceso particular

Tiempo de espera - Cantidad de tiempo que un proceso ha

estado esperando en la cola de preparados

Tiempo de respuesta - Cantidad de tiempo que transcurre

desde que se present una solicitud hasta que se produce la


primera respuesta, no salida (para el entorno de tiempo
compartido)

Operating System Concepts 9th Edition

6.8

Silberschatz, Galvin and Gagne 2013

Criterios de optimizacin de la
programacin del algoritmo
aprovechamiento mximo de la CPU
rendimiento mximo
min tiempo de respuesta
min tiempo de espera
el tiempo mnimo de respuesta

Operating System Concepts 9th Edition

6.9

Silberschatz, Galvin and Gagne 2013

De primer llegado, primer servido-Scheduling (FCFS)


Proceso

Tiempo quemado

P1

24

P2

P3 3
Supongamos que los procesos llegan en el orden: P1 , P2 , P3

El diagrama de Gantt para el horario es:


P

24

P3

2
27

30

Tiempo de espera para P1 = 0; P2 = 24; P3= 27


Tiempo medio de espera: (0 + 24 + 27) / 3 = 17

Operating System Concepts 9th Edition

6.10

Silberschatz, Galvin and Gagne 2013

FCFS Programacin (Cont.)


Supongamos que los procesos llegan en el orden:
P2 , P3 , P1
El diagrama de Gantt para el horario es:

P
0

P1

30

Tiempo de espera para P1= 6; P2 = 0;P3=3


Tiempo medio de espera: (6 + 0 + 3) / 3 = 3
Mucho mejor que caso anterior
efecto convoy - Corto proceso detrs proceso largo

Considere la posibilidad de que yo los procesos de E / S con destino


a vinculados a la CPU y muchos

Operating System Concepts 9th Edition

6.11

Silberschatz, Galvin and Gagne 2013

Ms corta-Trabajo-First (SJF)
Programacin
Asociar con cada proceso la longitud de su siguiente rfaga de

CPU

Utilice estas longitudes para programar el proceso con el


tiempo ms corto

SJF es ptimo - da tiempo medio de espera mnimo para un

determinado conjunto de procesos

La dificultad es saber la longitud de la siguiente peticin de la


CPU

Se puede pedir al usuario

Operating System Concepts 9th Edition

6.12

Silberschatz, Galvin and Gagne 2013

Ejemplo de SJF
ProcesoHora de llegada Tiempo quemado
P1 0.0

P22.0

P3 4.0

P4 5.0

SJF grfico de programacin

P
0

4
3

P3

1
9

P2
16

24

Tiempo medio de espera = (3 + 9 + 16 + 0) / 4 = 7

Operating System Concepts 9th Edition

6.13

Silberschatz, Galvin and Gagne 2013

La determinacin de la longitud
siguiente rfaga de CPU
Slo se puede estimar la longitud - debe ser similar a la anterior

A continuacin, elija proceso con menor predicho siguiente


rfaga de CPU

Se puede hacer mediante el uso de la longitud de las rfagas de

CPU anteriores, utilizando elth promedio exponencial


1. t n actual length of n CPU burst

2. n 1 predicted value for the next CPU burst


3. , 0 1
4. Define :

n 1 t n 1 n .

Comnmente, conjunto a
versin preferente llamada ms corto restante en tiempo-primero

Operating System Concepts 9th Edition

6.14

Silberschatz, Galvin and Gagne 2013

Prediccin de la longitud de la siguiente rfaga de CPU

Operating System Concepts 9th Edition

6.15

Silberschatz, Galvin and Gagne 2013

Ejemplos de promedio exponencial


=0

n + 1 = norte

La historia reciente no cuenta

=1

n + 1 = tnorte
Slo el ltimo recuento real de la CPU se ech

Si ampliamos la frmula, obtenemos:

norte+1 = T norte+ (1 - )tnorte -1 + ...


+ (1 - )j tnorte -j + ...
+ (1 - )norte +1 0
Dado que tanto y (1 - ) son menos que o igual a 1, cada

trmino sucesivo tiene menos peso que su predecesor

Operating System Concepts 9th Edition

6.16

Silberschatz, Galvin and Gagne 2013

Ejemplo de ms corta-restante-tiempoprimero
Ahora aadimos los conceptos de diferentes tiempos de llegada y de

preferencia al anlisis

ProcesoUN arri Llegada HoraT Tiempo quemado


P1

P21

P3

P4

Con derecho preferente Grfico Gantt SJF

P
0

P4

P1
10

P3
17

26

Tiempo medio de espera = [(10-1) + (1-1) + (17-2) + 5-3)] / 4 = 26/4 =

6.5 mseg

Operating System Concepts 9th Edition

6.17

Silberschatz, Galvin and Gagne 2013

prioridad de programacin
Un nmero de prioridad (entero) se asocia con cada proceso
La CPU se asigna al proceso con la prioridad ms alta (menor

entero prioridad ms alta)

Con derecho preferente

nonpreemptive

SJF es programacin de prioridad donde la prioridad es la inversa

del tiempo predicho siguiente rfaga de CPU

Problema Inanicin - Los procesos de baja prioridad no pueden

ejecutar

solucin Envejecimiento - A medida que pasa el tiempo

aumentar la prioridad del proceso

Operating System Concepts 9th Edition

6.18

Silberschatz, Galvin and Gagne 2013

Ejemplo de prioridad de
programacin
ProcesoUn arri Tiempo quemadoT

Prioridad

P1

10

P21

P3

P4

P55 2
Prioridad Grfico Gantt para la programacin

P
0

P1

P3
16

P4
18

19

tiempo de espera promedio = 8.2 ms

Operating System Concepts 9th Edition

6.19

Silberschatz, Galvin and Gagne 2013

Round Robin (RR)


Cada proceso obtiene una pequea unidad de tiempo de CPU

(hora cuntico q), Por lo general 10 a 100 milisegundos.


Despus de transcurrido este tiempo, el proceso se adelant y se
aade al final de la cola de listos.

Si hay norte Los procesos en la cola de listos y el cuanto de

tiempo es q, Entonces cada proceso obtiene 1 /norte del tiempo


de CPU en trozos de a lo sumo q unidades de tiempo a la vez.
Ningn proceso espera ms de (norte-1)qunidades de tiempo.

Temporizador interrumpe cada cuntica para programar el

prximo proceso de

Actuacin

q grande FIFO

q pequea qdebe ser grande con respecto al cambio de


contexto, de lo contrario sobrecarga es demasiado alto

Operating System Concepts 9th Edition

6.20

Silberschatz, Galvin and Gagne 2013

Ejemplo de RR con Time Quantum = 4


Proceso Tiempo quemado
P124
P23
P33
El diagrama de Gantt es:

P
0

3
10

1
14

1
18

P1

22

26

30

Por lo general, un mayor cambio promedio que SJF, pero mejor

respuesta

q debe ser grande en comparacin con el tiempo de cambio de contexto


q normalmente 10 ms a 100 ms, cambio de contexto <10 us

Operating System Concepts 9th Edition

6.21

Silberschatz, Galvin and Gagne 2013

Tiempo de Quantum y el tiempo de cambio


de contexto

Operating System Concepts 9th Edition

6.22

Silberschatz, Galvin and Gagne 2013

Tiempo de respuesta vara con el tiempo Quantum

80% de las rfagas de


CPU debe ser ms corto
que q

Operating System Concepts 9th Edition

6.23

Silberschatz, Galvin and Gagne 2013

multinivel cola
cola de listos se divide en colas separadas, por ejemplo:

primer plano (interactivo)

fondo (lote)

Proceso de forma permanente en una cola dada


Cada cola tiene su propio algoritmo de planificacin:

primer plano - RR

background - FCFS

La programacin debe realizarse entre las colas:

programacin de prioridad fija; (Es decir, servir a todos desde el


primer plano de fondo a continuacin). Posibilidad de hambre.

rebanada de tiempo - cada cola para crear una cierta cantidad


de tiempo de CPU que se puede programar entre sus procesos;
es decir, el 80% a los conocimientos previos en RR

20% a fondo en el orden de llegada

Operating System Concepts 9th Edition

6.24

Silberschatz, Galvin and Gagne 2013

Programacin de colas multinivel

Operating System Concepts 9th Edition

6.25

Silberschatz, Galvin and Gagne 2013

Comentarios cola de multinivel


Un proceso puede moverse entre las distintas colas; el

envejecimiento puede ser implementado de esta manera

planificador multinivel-feedback-cola definida por los siguientes

parmetros:

nmero de colas

algoritmos de planificacin para cada cola

mtodo utilizado para determinar el momento de actualizar un


proceso de

mtodo utilizado para determinar cundo se debe degradar un


proceso de

mtodo utilizado para determinar qu cola un proceso entrar


cuando ese proceso requiere un servicio

Operating System Concepts 9th Edition

6.26

Silberschatz, Galvin and Gagne 2013

Ejemplo de Evaluacin de colas


multinivel
Tres colas:

Q0 - RR con cuanto de tiempo de 8


milisegundos

Q1 - RR tiempo de 16 milisegundos cuntica

Q2 - FCFS

programacin

Un nuevo trabajo entra en cola Q0 que se


sirve FCFS

Cuando llega al CPU, trabajo recibe 8


milisegundos
Si no termina en 8 ms, el trabajo se
mueve a la cola Q1

A Q1 trabajo est otra vez con FCFS y


recibe 16 milisegundos adicionales

Si an no se completa, hasta que sea


apropiado y se traslad a la cola Q2

Operating System Concepts 9th Edition

6.27

Silberschatz, Galvin and Gagne 2013

programacin de subprocesos
Distincin entre el nivel de usuario y las discusiones a nivel del ncleo
Cuando las roscas compatibles, las discusiones programadas, no los

procesos

Muchos-a-uno y muchos-a-muchos modelos, hilos de rosca horarios de

la biblioteca de nivel de usuario se ejecutan en LWP

Conocido como alcance del proceso de contencin (PCS)ya que la


competencia de programacin es en el proceso de

Normalmente hecho a travs de prioridad establecido por el


programador

hilo del ncleo programado en la CPU disponible es alcance sistema de

contencin (SCS)- La competencia entre todos los hilos en el sistema

Operating System Concepts 9th Edition

6.28

Silberschatz, Galvin and Gagne 2013

programacin pthread
API permite especificar cualquiera de PCS o SCS durante la

creacin del hilo

PTHREAD_SCOPE_PROCESS horarios hilos utilizando


PCS programacin

PTHREAD_SCOPE_SYSTEM horarios hilos utilizando SCS


programacin

Puede ser limitado por el sistema operativo - Linux y Mac OS X

slo permiten PTHREAD_SCOPE_SYSTEM

Operating System Concepts 9th Edition

6.29

Silberschatz, Galvin and Gagne 2013

Pthread Programacin API


# include <pthread.h>
#include <stdio.h>
NUM_THREADS #define 5
int main (int argc, char * argv []) {
int i, mbito de aplicacin;
pthread_t tid [HILOS NUM];
attr pthread_attr_t;
/ * Obtener los atributos por defecto * /
pthread_attr_init (y attr);
/ * Se deber consultar en el mbito actual * /
si (pthread_attr_getscope (y attr, y mbito de aplicacin)! = 0)
fprintf (stderr, "No se puede obtener la programacin de alcance \
n");
else {
si (== alcance PTHREAD_SCOPE_PROCESS)
printf ( "PTHREAD_SCOPE_PROCESS");
else if (alcance == PTHREAD_SCOPE_SYSTEM)
printf ( "PTHREAD_SCOPE_SYSTEM");
ms
fprintf (stderr, "Valor ilegal alcance. \ n");
}

Operating System Concepts 9th Edition

6.30

Silberschatz, Galvin and Gagne 2013

Pthread Programacin API


/ * Establecer el algoritmo de planificacin de PCS o SCS * /
pthread_attr_setscope (y attr, PTHREAD_SCOPE_SYSTEM);
/ * Crear los hilos * /
for (i = 0; i <NUM_THREADS; i ++)
pthread_create (tres veces al da y [i], y attr, corredor,
NULL);
/ * Ahora unirse en cada hilo * /
for (i = 0; i <NUM_THREADS; i ++)
pthread_join (tid [i], NULL);
}
/ * Cada hilo se iniciar el control de esta funcin * /
void * corredor (void * param)
{
/* Haz algo de trabajo ... */
pthread_exit (0);
}

Operating System Concepts 9th Edition

6.31

Silberschatz, Galvin and Gagne 2013

Programacin de procesador mltiple


planificacin de la CPU ms complejo cuando varias CPU estn

disponibles

Homogneo procesadores dentro de un multiprocesador


multiprocesamiento asimtrico - Slo un procesador accede a las

estructuras de datos del sistema, aliviando la necesidad de


intercambio de datos

El multiprocesamiento simtrico (SMP)- Cada procesador es auto-

programacin, todos los procesos en cola de preparados comn, o


cada uno tiene su propia cola privada de los procesos listos

Actualmente, ms comn

la afinidad del procesador - Proceso tiene afinidad por el

procesador en el que se est ejecutando actualmente

afinidad suave

afinidad duro

Las variaciones incluyendo los conjuntos de procesadores

Operating System Concepts 9th Edition

6.32

Silberschatz, Galvin and Gagne 2013

NUMA y CPU Programacin

Tenga en cuenta que los algoritmos de memoria de colocacin


tambin pueden considerar afinidad

Operating System Concepts 9th Edition

6.33

Silberschatz, Galvin and Gagne 2013

Varias en la programacin del procesador Equilibrio de carga


Si SMP, la necesidad de mantener todas las CPU cargados

para la eficiencia

Balanceo de carga los intentos de mantener la carga de

trabajo distribuida uniformemente

la migracin de empuje - Comprobaciones peridicas de

trabajo se cargan en cada procesador, y si se encuentra tarea


empuja desde la CPU sobrecargada con otras CPUs

la migracin de arrastre - Procesadores ociosos esperando

tirones tarea de procesador ocupado

Operating System Concepts 9th Edition

6.34

Silberschatz, Galvin and Gagne 2013

Los procesadores de mltiples


ncleos
tendencia reciente para colocar mltiples ncleos de

procesador en mismo chip fsico

Ms rpido y consume menos energa


Mltiples hilos por ncleo tambin est creciendo

Se aprovecha de la parada de memoria para avanzar en


otro hilo, mientras que la memoria recuperar sucede

Operating System Concepts 9th Edition

6.35

Silberschatz, Galvin and Gagne 2013

Sistema multincleo multihilo

Operating System Concepts 9th Edition

6.36

Silberschatz, Galvin and Gagne 2013

Real-Time planificacin de la CPU


Puede presentar desafos obvios
sistemas de tiempo real suaves -

Se programar ninguna garanta en


cuanto al proceso cuando crticos
en tiempo real

Los sistemas de tiempo real -

Tarea debe ser reparado por su


plazo

Hay dos tipos de latencias afectan

al rendimiento
1.

Interrupcin de latencia - tiempo desde


la llegada de interrupcin al inicio de la
rutina que interrumpen los servicios

2.

Despacho de latencia - tiempo para el


horario para tomar proceso actual de la
CPU y cambiar a otro

Operating System Concepts 9th Edition

6.37

Silberschatz, Galvin and Gagne 2013

En tiempo real de la CPU


Programacin (Cont.)
fase de latencia

conflicto de expedicin:
1.

Derecho preferente
de compra de
cualquier proceso
que se ejecuta en
modo de ncleo

2.

La liberacin por el
proceso de baja
prioridad de los
recursos
necesarios para los
procesos de alta
prioridad

Operating System Concepts 9th Edition

6.38

Silberschatz, Galvin and Gagne 2013

Programacin basada en prioridades


Para la programacin en tiempo real, el planificador debe ser

compatible con la programacin preventiva, basada en prioridades

Pero slo garantiza suave en tiempo real

Por tiempo real duro tambin debe proporcionar la capacidad para

cumplir los plazos

Los procesos tienen nuevas caractersticas: peridico cules

requieren de la CPU a intervalos constantes

Tiene tiempo de procesamiento t, fecha tope re, perodo p

0 t re p

Tarifa de la tarea peridica es 1 /p

Operating System Concepts 9th Edition

6.39

Silberschatz, Galvin and Gagne 2013

Virtualizacin y Programacin
horarios de software de virtualizacin de mltiples

huspedes Onto CPU (s)

Cada invitado haciendo su propia programacin

Sin saber que doesn't poseen las CPUs

Puede resultar en un tiempo de respuesta

Puede afectar los relojes de la hora del da en los


huspedes

Puede deshacer buenos esfuerzos algoritmo de

planificacin de los huspedes

Operating System Concepts 9th Edition

6.40

Silberschatz, Galvin and Gagne 2013

Programacin tasa Montonic


Se asigna una prioridad basada en la inversa de su periodo
perodos ms cortos = mayor prioridad;
Los perodos ms largos = prioridad ms baja
P1 se le asigna una prioridad mayor que P2.

Operating System Concepts 9th Edition

6.41

Silberschatz, Galvin and Gagne 2013

Incumplimiento de plazos con una tasa de


Monotnica Programacin

Operating System Concepts 9th Edition

6.42

Silberschatz, Galvin and Gagne 2013

La fecha lmite ms temprana Primera


Programacin (EDF)
Las prioridades se asignan de acuerdo a los plazos:

cuanto antes de la fecha lmite, mayor es la prioridad;


la tarde de la fecha lmite, menor ser la prioridad

Operating System Concepts 9th Edition

6.43

Silberschatz, Galvin and Gagne 2013

Compartir proporcional Programacin


T se asignan cuotas entre todos los procesos en el sistema
Una aplicacin recibe norte acciones cuando N <T
Esto asegura que cada aplicacin recibir norte / T del tiempo

total del procesador

Operating System Concepts 9th Edition

6.44

Silberschatz, Galvin and Gagne 2013

Programacin POSIX en tiempo real


los estndar POSIX.1b
API proporciona funciones para la gestin en tiempo real trapos
rerecisa dos clases de planificacin para las discusiones en tiempo

real:

SCHED_FIFO - hilos se programan utilizando una estrategia FCFS con


una cola FIFO. No hay tiempo compartido de hilos de igual prioridad

SCHED_RR - Similar a SCHED_FIFO excepto el tiempo compartido se


produce de hilos de igual prioridad

Define dos funciones para obtener y establecer la poltica de

programacin:

pthread_attr_getsched_policy(pthread_attr_t *attr,int
*poltica)

pthread_attr_setsched_poltica(pthread_attr_t
*attr,int poltica)

Operating System Concepts 9th Edition

6.45

Silberschatz, Galvin and Gagne 2013

POSIX en tiempo real API de


programacin
# include <pthread.h>
#include <stdio.h>
NUM_THREADS #define 5
int main (int argc, char * argv [])
{
int i, la poltica;
pthread_t_tid [NUM_THREADS];
attr pthread_attr_t;
/ * Obtener los atributos por defecto * /
pthread_attr_init (y attr);
/ * Obtener la poltica de planificacin actual * /
si (pthread_attr_getschedpolicy (y attr, y la poltica)! = 0)
fprintf (stderr, "No se puede obtener la poltica. \ n");
else {
si (== poltica SCHED_OTHER) printf ( "SCHED_OTHER \ n");
else if (poltica == SCHED_RR) printf ( "SCHED_RR \ n");
else if (poltica == SCHED_FIFO) printf ( "SCHED_FIFO \ n");
}

Operating System Concepts 9th Edition

6.46

Silberschatz, Galvin and Gagne 2013

POSIX en tiempo real Programacin API


(Cont.)
/ * Establecer la poltica de planificacin - FIFO, RR, u OTROS * /
si (pthread_attr_setschedpolicy (y attr, SCHED_FIFO)! = 0)
fprintf (stderr, "No se puede establecer la poltica. \ n");
/ * Crear los hilos * /
for (i = 0; i <NUM_THREADS; i ++)
pthread_create (tres veces al da y [i], y attr, corredor, NULL);
/ * Ahora unirse en cada hilo * /
for (i = 0; i <NUM_THREADS; i ++)
pthread_join (tid [i], NULL);
}
/ * Cada hilo se iniciar el control de esta funcin * /
void * corredor (void * param)
{
/* Haz algo de trabajo ... */
pthread_exit (0);
}

Operating System Concepts 9th Edition

6.47

Silberschatz, Galvin and Gagne 2013

Ejemplos del sistema operativo


planificacin de Linux
programacin de windows
la programacin de Solaris

Operating System Concepts 9th Edition

6.48

Silberschatz, Galvin and Gagne 2013

Linux Programacin A travs de la versin


2.5
Antes de la versin del kernel 2.5, corri variacin del algoritmo de programacin

estndar de UNIX

La versin 2.5 se traslad a fin constante O(1) Tiempo de programacin

Preventivo, basado en prioridades

dos rangos de prioridad: tiempo compartido y en tiempo real

Tiempo real variar de 0 a 99 y bonito valor 100-140

Mapa en prioridad global con los valores ms bajos indican numricamente mayor
prioridad

Mayor prioridad se hace ms grande q

Ejecutar la tarea factible, siempre y cuando el tiempo que queda en divisin de tiempo
(activo)

Si hay tiempo (muerto), No-poder ejecutar hasta que todas las otras tareas utilizan sus
rebanadas

Todas las tareas de ejecucin, capaz de seguimiento en cada CPU cola de ejecucin
estructura de datos

Dos matrices de prioridad (activo, expirado)

Tareas indexado por prioridad

Cuando no es ms activa, las matrices se intercambian

Funcionado bien, pero los tiempos de respuesta pobres para los procesos
interactivos

Operating System Concepts 9th Edition

6.49

Silberschatz, Galvin and Gagne 2013

Programacin Linux en la versin 2.6.23 +

Completely Fair Scheduler (CFS)

clases de planificacin

Cada uno tiene prioridad especfica

Programador recoge ms alta tarea de prioridad ms alta en la clase de planificacin

En lugar de cuntico basado en asignaciones de tiempo fijos, basados en la proporcin de


tiempo de CPU

2 clases de planificacin incluidos, otros pueden ser aadidos


1.

defecto

2.

tiempo real

Quantum estimado a partir de buena relacin calidad-precio -20-19

Un valor ms bajo es ms alta prioridad

calcula latencia objetivo - Intervalo de tiempo durante el cual la tarea debe ejecutarse al
menos una vez

latencia objetivo puede aumentar si decir nmero de tareas activas aumenta

CFS planificador mantiene por tarea tiempo de ejecucin virtuales en la variable


vruntime

Asociado con el factor de atenuacin en funcin de la prioridad de la tarea - menor prioridad


es mayor tasa de descomposicin

prioridad por defecto normal rinde tiempo de ejecucin virtuales = tiempo de ejecucin real

Para decidir siguiente tarea a ejecutar, la tarea del planificador selecciones con
menor tiempo de ejecucin virtuales

Operating System Concepts 9th Edition

6.50

Silberschatz, Galvin and Gagne 2013

Rendimiento SFC

Operating System Concepts 9th Edition

6.51

Silberschatz, Galvin and Gagne 2013

Linux Programacin (Cont.)


programacin en tiempo real de acuerdo con POSIX.1b

tareas en tiempo real tienen prioridades estticas

En tiempo real ms el mapa normal en rgimen de prioridad global


Buen valor de los mapas de -20 a 100 prioridad global
Buen valor de 19 se asigna a la prioridad 139

Operating System Concepts 9th Edition

6.52

Silberschatz, Galvin and Gagne 2013

programacin de windows
Windows utiliza la programacin preventiva basada en

prioridades

subproceso de prioridad ms alta corre junto


Transportista es planificador
El hilo se termina hasta que (1) bloques, (2) utiliza porcin

de tiempo, (3) apropiado por mayor prioridad hilo

las discusiones en tiempo real pueden adelantarse en

tiempo no real

esquema de prioridad de 32 niveles


variable de clase es 1-15, clase en tiempo real es 16-31
La prioridad 0 es el hilo de administracin de memoria
Cola para cada prioridad
Si hay hilo de ejecucin podr, corre subproceso inactivo

Operating System Concepts 9th Edition

6.53

Silberschatz, Galvin and Gagne 2013

Las clases de prioridad de Windows

Win32 API identifica varias clases de prioridad a los que un proceso puede
pertenecer

REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS,
ABOVE_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS,
BELOW_NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS

Todos son variables, excepto TIEMPO REAL

Un hilo dentro de una clase de prioridad dada tiene una prioridad relativa

TIME_CRITICAL, MS ALTO, ABOVE_NORMAL, NORMAL, BELOW_NORMAL,


BAJO, EN REPOSO

clase de prioridad y la prioridad que se combinan para dar prioridad numrica

prioridad de base es normal dentro de la clase

Si expira cuntica, la prioridad baja, pero nunca por debajo de la base

Operating System Concepts 9th Edition

6.54

Silberschatz, Galvin and Gagne 2013

Las clases de prioridad de Windows (Cont.)


Si se produce de espera, la prioridad aument en funcin de lo que

estaba esperado

ventana en primer plano 3x dada aumento de prioridad


Windows 7 ha aadido programacin en modo de usuario (UMS)

Las aplicaciones crean y administran las discusiones


independientes del ncleo

Para gran nmero de hilos, mucho ms eficiente

UMS programadores provienen de bibliotecas lenguaje de


programacin como C ++ Tiempo de ejecucin concurrente
(ConcRT) Marco

Operating System Concepts 9th Edition

6.55

Silberschatz, Galvin and Gagne 2013

Prioridades de windows

Operating System Concepts 9th Edition

6.56

Silberschatz, Galvin and Gagne 2013

Solaris
La programacin basada en prioridad
Seis clases disponibles

El tiempo compartido (por defecto) (TS)

Interactiva (IA)

en tiempo real (RT)

Sistema (SYS)

De reparto justo (FSS)

prioridad fija (PF)

subproceso dado puede estar en una clase a la vez


Cada clase tiene su propio algoritmo de planificacin
El tiempo compartido es cola de retroalimentacin de varios niveles

cargable tabla configurable por el administrador de sistemas

Operating System Concepts 9th Edition

6.57

Silberschatz, Galvin and Gagne 2013

Tabla de despacho de Solaris

Operating System Concepts 9th Edition

6.58

Silberschatz, Galvin and Gagne 2013

programacin de Solaris

Operating System Concepts 9th Edition

6.59

Silberschatz, Galvin and Gagne 2013

Programacin de Solaris (Cont.)


Programador convierte prioridades especficas de clase en una

prioridad global hilos por

Hilo con mayor prioridad pasa al lado

Se ejecuta hasta que (1) bloques, (2) utiliza porcin de


tiempo, (3) apropiado por mayor prioridad hilo

Varios subprocesos al mismo prioridad seleccionados a travs


de RR

Operating System Concepts 9th Edition

6.60

Silberschatz, Galvin and Gagne 2013

Evaluacin algoritmo
Cmo seleccionar el algoritmo de CPU-programacin para un

sistema operativo?

Determinar los criterios, a continuacin, evaluar los algoritmos


modelado determinista

Tipo de evaluacin analtica

Toma una carga de trabajo particular predeterminada y define el


rendimiento de cada algoritmo para que la carga de trabajo

Considere 5 procesos que lleguen a tiempo 0:

Operating System Concepts 9th Edition

6.61

Silberschatz, Galvin and Gagne 2013

Evaluacin determinista
Para cada algoritmo, calcular el tiempo medio de espera mnimo
Sencillo y rpido, pero requiere los nmeros exactos de entrada, se

aplica nicamente a las entradas

FCS es 28ms:

No preferente USF es 13ms:

RR es 23 ms:

Operating System Concepts 9th Edition

6.62

Silberschatz, Galvin and Gagne 2013

Modelos de colas
Describe la llegada de los procesos, y la CPU y E / S irrumpe

probabilsticamente

Comnmente exponencial, y descrito por media

Calcula la media utilizacin de rendimiento, tiempo de


espera, etc.

sistema informtico descrito como la red de servidores, cada uno

con cola de procesos en espera

Conocer las tasas de llegada y las tarifas de servicios

Calcula la utilizacin, la longitud media de la cola, el tiempo


promedio de espera, etc.

Operating System Concepts 9th Edition

6.63

Silberschatz, Galvin and Gagne 2013

Pequeo's Frmula
norte = Longitud media de la cola
W = Tiempo medio de espera en la cola
= Tasa media de llegada a la cola
Pequeo'Ley s - en estado estacionario, dejando procesa la cola

debe ser igual a los procesos de llegar, por lo tanto:


norte=incgnita W

Vlido para cualquier algoritmo de planificacin y distribucin


de la llegada

Por ejemplo, si una media de 7 procesos llegar por segundo, y

normalmente 14 procesos en la cola, el tiempo promedio de


espera entonces por proceso = 2 segundos

Operating System Concepts 9th Edition

6.64

Silberschatz, Galvin and Gagne 2013

simulaciones
modelos de colas limitados
simulaciones ms preciso

modelo programada del sistema informtico

Reloj es una variable

Recopilar estadsticas que indican rendimiento de los algoritmos

Datos a la unidad de simulacin conseguida a travs del

Generador de nmeros aleatorios de acuerdo a las probabilidades

Distribuciones define matemticamente o empricamente

Traza cintas secuencias de registro de eventos reales en sistemas


reales

Operating System Concepts 9th Edition

6.65

Silberschatz, Galvin and Gagne 2013

Evaluacin de la CPU Schedulers por


Simulacin

Operating System Concepts 9th Edition

6.66

Silberschatz, Galvin and Gagne 2013

Implementacin

simulaciones incluso tienen una precisin limitada

Slo aplicar nuevo planificador y la prueba en sistemas reales

Alto costo, de alto riesgo

ambientes varan

La mayora de los programadores flexibles pueden ser modificados


por el lugar o por sistema

O API para modificar las prioridades

Pero una vez ms entornos varan

Operating System Concepts 9th Edition

6.67

Silberschatz, Galvin and Gagne 2013

Final del captulo 6

Operating System Concepts 9th Edition

Silberschatz, Galvin and Gagne 2013

You might also like