200 likes | 316 Views
Escalonamento de Processos EDF Algorithm. Flávio Couto (frco@di.ufpe.br). EDF Scheduler.
E N D
Escalonamento de ProcessosEDF Algorithm Flávio Couto (frco@di.ufpe.br)
EDF Scheduler • Software que executa um algoritmo para encontrar um escalonamento ótimo em um único processador para um dado conjunto de processos, tal que cada processos iniciasua execução após seu release time e completa seu tempo de execução antes de seu deadline, e que um dado conjunto de relações de precedência e um dado conjunto de relações de exclusão são satisfeitas. Este algoritmo pode ser aplicado para o problema do escalonamento pre-run-time de processos com relações arbitrárias de precedência e de exclusão em hard-real-time systems
Conceitos Importantes • Release Time • instante de tempo a partir do qual o processo pode iniciar a sua execução • Computation Time • tempo de execução de um processo • Deadline • instante de tempo máximo em que um processo deve terminar sua execução para satisfazer os requisitos temporais
Conceitos Importantes (Cont.) • Escalonador Pre-run-time • Decisões de escalonamento são tomadas antes do início da execução dos processos • Relação de Precedência • A precede B : processo A deve terminar sua execução antes do início da execução de B • Relação de Exclusão • A exclui B : processo A não pode ser preemptado pelo processo B
Relação de Precedência Processo 1 precede Processo2: • Situação Incorreta
Relação de Precedência Processo 1 precede Processo2: • Situação Incorreta
Relação de Precedência Processo 1 precede Processo2: • Situação Correta
Relação de Exclusão Processo 1 exclui Processo2: • Situação Incorreta
Relação de Exclusão Processo 1 exclui Processo2: • Situação Correta
Algoritmo da Implementação O algoritmo usado utiliza a técnica branch-and-bound. Ele tem uma árvore de busca onde no nó raiz é utilizada a técnica Earliest-deadline-first para computar um “solução válida inicial” que satisfaça as restrições de release time e todas relações de exclusão e precedência existentes inicialmente. Então sistematicamente vamos desenvolvendo aquela solução inicial até um escalonamento optimalou feasible ser encontrado.
Solução Válida(Escalonamento Válido) Deverá satifazer as seguintes condições: i, j Conj(Processos) • startTime[i] >= releaseTime[i] • Se i precede j • completionTime[i] <= startTime[j] • Se i exclui j e startTime[i] < startTime[j] • completionTime[i] <= startTime[j]
Solução InicialEarliest-deadline-first • Os processos com os deadlines menores devem ser executados antes dos processos com os deadlines “maiores”, desde que satisfaçam as relações de precedência e exclusão entre os processos, além do releasetime de cada processos
Solução InicialEarliest-deadline-first r[P0]= 40 ; c[P0]=20; d[P0]=110; r[P1]= 60 ; c[P1]=20; d[P1]= 90; r[P2]= 50 ; c[P2]=20; d[P2]= 91; r[P3]= 0 ; c[P3]=20; d[P3]=120; P0 exclui P1 - P2 exclui P0 P1 exclui P0 - P1 exclui P2 P0 exclui P2 - P2 exclui P1
Solução InicialEarliest-deadline-first r[P0]= 0 ; c[P0]=60; d[P0]=122; r[P1]= 20 ; c[P1]=20; d[P1]=121; r[P2]= 30 ; c[P2]=20; d[P2]=120; r[P3]= 90 ; c[P3]=20; d[P3]=110; P0 exclui P3
Refinamento da Solução Inicial • Em cada nó da árvore de busca, nós encontramos o último segmento na solução válida daquele nó. Nós identificamos conjuntos de segmentos de “expansão” G1 e G2 tal que esta solução possa ser refinada. • G1 => o último segmento da solução do nó que será expandido é escalonado antes de um segmento de G1. • G2 => o último segmento da solução do nó que será expandido preempta um segmento de G2. • OBS: último segmento: segmento que é responsável pelo lateness(completionTime - deadline) do escalonamento.
Uso do EDF Scheduler • Abrir o browser e entrar na URL: http://www.di.ufpe.br/~frco/EDF/index.html • Entrar com os seguintes dados: r[A] = 0 ; r[B] = 20 ; r[C] = 30 ; r[D] = 90 c[A] = 60 ; c[B] = 20 ; c[C] = 20 ; c[D] = 20 d[A]=122; d[B]=121; d[C]=120 ;d[D] = 110
Uso do EDF Scheduler(Cont.) • Selecionar a relação: • P0 exclui P3 • Em seguida clicar em Adicionar Relação • Finalmente clicar em Submeter Dados
Tecnologia Utilizada • Applet Java • possibilitar que usuários da internet possam utilizar este software • Funcionamento: usuário entra na homepage e o applet é carregado na sua máquina. Todo processamento é feito na própria máquina do usuário
Bibliografia • Jia Xu and David Parnas, “Scheduling Processes with Release Times, Deadlines, Precedence, and Exclusion Relations”, IEEE Transactions on Software Engeneering, vol.16, March 1990.
Homepage • Provisoriamente em: http://www.di.ufpe.br/~frco/EDF/index.html