2010-03-09 26 views
8

Deseo saber cómo el algoritmo de programación de Old Linux SJF (el trabajo más corto primero) calcula el tiempo de ejecución del proceso?Programación del kernel de Linux

+0

Pregunta suficiente, pero ¿está seguro de que Linux alguna vez usó un programador SJF? – zdav

+1

@zdav: estoy bastante seguro de que las primeras versiones de Linux 2.0 tenían un programador SJF experimental, que tenía una vida muy corta. Volvería a Redhat 4, aproximadamente alrededor de 1996/1997 más o menos. IIRC, solo las personas que hicieron rodar Linux con GNU realmente lo estaban probando, RH no lo incluyó. ICBW, fue hace mucho tiempo. –

Respuesta

5

Este problema es uno de los principales motivos por los que rara vez se utiliza en entornos comunes, ya que el algoritmo SJF requiere una estimación precisa del tiempo de ejecución de todos los procesos, que solo se da en entornos especializados.

En situaciones comunes, solo puede obtener un tiempo de proceso estimado e inexacto, por ejemplo, registrando la longitud de ráfagas de CPU previas del mismo proceso, y utiliza métodos matemáticos de aproximación para calcular cuánto tiempo se ejecutará la próxima vez .

1

Si tiene algo de ancho de banda para quemar, podría ser capaz de encontrar el código real here. Comience en 2.0, donde creo que lo encontrará como experimental.

SJF era (IIRC) extremadamente de corta vida, para el exacto reasons that ZelluX noted.

Creo que su única esperanza de entender el método detrás de su locura vive en el código en este punto. Usted puede ser capaz de construirlo e iniciarlo en un simulador.

Editar:

ahora no estoy completamente seguro de si alguna vez se entrar en la línea principal. Si no puede encontrarlo, no me culpe :)

Cuestiones relacionadas