• Nenhum resultado encontrado

Escalonador inteligente de tarefas para aplicações robóticas.

N/A
N/A
Protected

Academic year: 2021

Share "Escalonador inteligente de tarefas para aplicações robóticas."

Copied!
127
0
0

Texto

(1)

UNIVERSIDADE F E D E R A L DA PARAIBA

C E N T R O D E C I E N C I A S E T E C N O L O G I A

C O O R D E N A C A O DE POS-GRADUACAO E M I N F O R M A T I C A

Escalonador Inteligente de Tarefas para Aplicacoes Roboticas

Jose Ricardo da Silva Ferreira

Campina Grande - PB Julho de 1999

(2)

Jose Ricardo da Silva Ferreira

Escalonador Inteligente de Tarefas para Aplicacoes Roboticas

Dissertacao apresentada a Coordenacao de

Pos-graduacao em Informatica - COPIN - da

Universi-dade Federal da Paraiba - UFPB, como parte dos

re-quisites necessarios a obtencao do grau de Mestre

em Informatica.

Area de Concentracao: Ciencia da Computacao

Linha de pesquisa: Teoria da Computacao e Inteligencia Artificial

Orientador: Prof. Dr. Jose Homero Feitosa Cavalcanti

Campina Grande - PB Julho de 1999

(3)
(4)

E S C A L O N A D O R I N T E L I G E N T E D E T A R E F A S PARA A P L I C A C O E S R O B O T I C A S .JOSE R I C A R D O DA S I L V A F E R R E I R A D I S S E R T A C A O A P R O V A D A E M 26.07.1999 R O ; \ J O S E I I O M E R O F E I T O S A C A C A L C A N T 1 , Dr. ' Oricntador P R O F . R A I M U N D O N A Z A R E N O C U N H A A L V E S , D.Sc Examinador C A M PIN A G R A N D E - PB

(5)
(6)

Agradecimentos

Este trabalho so foi realizado devido as inumeras formas de ajuda que eu recebi de muitas

pessoas durante toda a minha caminhada ate aqui! Apos. a conclusao do mesmo e com grande satisfa9ao que eu agrade90 principalmente ao meu orientador Prof. Jose Homero Feitosa Ca-valcanti. que mesmo sem me conhecer acreditou em mim, me ofertando tao grandiosa tarefa e permitindo que eu chegasse onde estou hoje. Agrade90 tambem ao Prof. Edilson Ferneda pelo apoio no initio dessa Jornada, ao Coordenador da COPIN Prof. Marcus Sampaio pela orienta-9ao initial no mestrado, aos funcionarios da COPIN/DSC e ao meus companheiros do mes-trado. principalmente ao Claudio Monteiro que me incentivou a fazer o mesmes-trado. ao Mario

Ernesto pelas inumeras conversas elucidativas, ao Everaldo. Alexandre. Aleksandra, Giovanni

e Juracy pelo companheirismo e amizade que tornaram Campina Grande e o nordeste muito

mais agradavel.

Nao posso esquecer neste momento de agradecer tambem ao eterno carinho da minha familia que sempre me apoiou "mesmo distante" e aos bons exemplos que me nortearam na dire9ao do conhecimento, destacando aqui a minha eterna admira9ao por minha irma Celia, a qual sempre tera o meu respeito e gratidao e por meu irmao Saba que com suas atitudes me

ajudaram a entender melhor a vida. E claro que o meu maior agradecimento vai para a minha

esposa Cristiany que esteve ao meu lado durante todo o curso. ao meu pai Osvaldo e a minha mae Hildinair. mulher de fibra e de luta. por tudo o que sou (mae, este titulo tambem e seu!).

Quero registrar aqui tambem o meu agradecimento a Universidade da Amazonia

-U N A M A - por ter permitido que eu realizasse este trabalho. com a dispensa das atividades academicas e pelo auxilio financeiro atraves da sua Funda9ao Instituto para o Desenvolvi-mento da Amazonia - FIDES A. a Funda9ao Coordena9ao de Aperfei9oaDesenvolvi-mento de Pessoal de Nivel Superior - CAPES - pelo apoio financeiro e a Universidade Federal da Paraiba por manter o Curso de P6s-Gradua9ao em Informatica.

(7)

Resumo

Nesta dissertacao de mestrado apresenta-se um Escalonador Inteligente de Tarefas em tempo

real, desenvolvido para aplicacoes roboticas que implementam controle atraves de

microcom-putadores. O escalonador proposto foi idealizado a partir de observacoes feitas nos sistemas

de controle de robos, no Laboratorio de Redes Neurais e Automacao Inteligente

(NEURO-LAB) ligado a Coordena9ao de P6s-gradua9ao em Informatica (COPIN) da Universidade

Fe-deral da Paraiba (UFPB). Nesses sistemas cada etapa do controle dos robos era executada

atraves de tarefas em tempo real. Para que um robo executasse todos os movimentos

necessa-rios a realiza9ao de uma meta preestabelecida. varias tarefas eram ordenadas pelo especialista

e executadas seqiiencialmente. Observou-se uma constante interferencia do especialista na

ordena9ao e temporiza9ao de cada tarefa ate que se chegasse a uma sequencia otima para o

controle do robo. Utilizando-se o escalonador inteligente. proposto neste trabalho, o

escalo-namento passou a ser feito atraves de regras e inferencias nebulosas. A utilizasao dessa regras

juntamente com as restri9oes temporais. permitiu que a sele9ao e a execu9ao das tarefas

fos-sem realizadas pelo proprio software, dando mais autonomia ao sistema e consequentemente

(8)

Abstract

This dissertation presents a Real-time Intelligent Tasks Scheduler developed to robotics

appli-cation that implement microcomputer control. The proposed scheduler was idealized after

observations realized in robots' control system utilized in Intelligent Automation and Neural

Networks Laboratory (NEUROLAB) linked to Coordination of Computer Science Graduation

(COPIN) of Federal University of Paraiba (UFPB). In these systems, each control stage was

executed through real-time tasks. Several tasks were ordered by an expert and executed

se-quentially to a robot executed all necessary motions to realize an established goal. Was

ob-served a constant interference of expert in ordination and time definition of each task until

was to reach an optimal sequence of tasks to robot's control. With the Intelligent Tasks

Scheduler, that uses rules and inference fuzzy, the ordination and time definition of each task

now is realized by own system, permitting more autonomy to the system and consequentially

(9)

Sumario

LISTA DE FIGURAS V LISTA DE TABELAS V I I LISTA DE QUADROS V I I I LISTA DE EQUAQOES X LISTA DE REGRAS X I I

LISTA DE SIMBOLOS E ABREVIAQOES X I V

CAPITULO 1 1

INTRODUgAO 1

1.1. Os sistemas roboticos 1

1.2. Os sistemas de controle 1

1.3.0 escalonador de tarefas em tempo real 2

1.4. O escalonador inteligente de tarefas 2

1.5. Objetivos do trabalho 3 1.6. Estrutura da dissertacao 3 CAPITULO 2 5 ESCALONAMENTO DE TAREFAS 5 2.1. Resumo 5 2.2. Historico 5 2.3. Tarefas e processos 6

2.4. Estados das tarefas 7

(10)

2.6. Conceitos basicos sobre escalonamento de processos e tarefas 9

2.7. Algoritmos de escalonamento 11

2.8. Caracteristicas de escalonamento 14

2.8.1. Quanto a utilizacao 15

2.8.2. Quanto a restricao de tempo 15

2.8.3. Quanto a reorganizacao 16

2.8.4. Quanto ao conhecimento das informacoes sobre os processos 16

2.8.5. Quanto ao compartilhamento da CPU 17

2.8.6. Quanto a localizacao 17

2.8.7. Quanto a adaptabilidade 18

2.9. O escalonador em tempo real 18

2.10. Conclusao 21

CAPITULO 3 22

LOGIC A NEBULOSA 22

3.1. Resumo 22

3.2. Introducao 22

3.3. Fundamentos da logica nebulosa 23

3.4. Operacoes com conjuntos nebulosos 26

3.4.1. Complemento 26 3.4.2. Uniao 27 3.4.3. Intersecao 27 3.4.4. Comparacao 28 3.4.5. Contido 28 3.5. Variaveis lingiiisticas 29 3.6. Regras nebulosas 30

3.7. Utilizacao da logica nebulosa 31

(11)

3.8. Conclusao 34 CAPiTUL0 4 35 A APLICAgAO ROBOTICA 35 4.1. Resumo 35 4.2. Robos cooperantes 35 4.3. Os manipuladores roboticos 36 4.4. Especificacao do problema 38

4.5. Especificacao do piano de acao 38

4.5.1. A estrategia Pesa 40 4.5.2. A estrategia Doa 40 4.5.3. A estrategia Pega 41 4.5.4. A estrategia Solta 42 4.5.5. A estrategia Recebe 42 4.6. O Sistema inteligente 43

4.6.1. O Sistema de Controle Inteligente (SCI) 43

4.6.2. Gerencia da transferencia de carga 46

4.6.3. A transferencia de carga 47

4.7. Resultados experimentais 51

4.8. Conclusao 52

CAPITULO 5 53

O ESCALONADOR INTELIGENTE DE TAREFAS 53

5.1. Resumo 53 5.2. Introducao 53 5.3. Desenvolvimento do EIT 54 5.4. A transferencia de carga 57 5.4.1. A estrategia Pesa 58 i l l

(12)

5.4.2. A estrategia Doa 60 5.4.3. A estrategia Pega 62 5.4.4. A estrategia Solta 63 5.4.5. A estrategia Recebe 65 5.5. Resultados experimentais 66 5.6. Conclusao 67 CAPITULO 6 68 CONCLUSAO 68 6.1. Resultados obtidos 68 6.2. Trabalhos futures 69 REFERENCIAS BIBLIOGRAFICAS 70 APENDICES 75

APENDICE A - INTERFACE MOTORES CC 75

APENDICE B O DETECTOR DE POSIQAO N A ESTRATEGIA PESA 79

APENDICE C CONTROLADOR NEURAL 82

APENDICE D TREINAMENTO DA RNMC 85

APENDICE E ALGORITMOS DAS TAREFAS DO ETR 89

APENDICE F O SISTEMA DE TRANSFERENCIA DE CARGA 93

APENDICE G ALGORITMOS DAS TAREFAS DO EIT 98

(13)

Lista de Figuras

Figura 2.1 - Estados das tarefas e transicoes entre estados 8

Figura 2.2 - Escalonamento em fila 11

Figura 2.3 - Processos compartilhando a CPU em um escalonamento FIFO 12

Figura 2.4 - Processos compartilhando a CPU 12

Figura 2.5 - Escalonamento por revezamento 13

Figura 2.6 - Escalonamento com prioridade 14

Figura 3.1 - Representacao de valores na logica nebulosa 23

Figura 3.2 - Conjuntos nebulosos dos tamanhos das arvores de uma loja 25

Figura 3.3 - Representacoes de funcoes de pertinencia 26

Figura 3.4 - Representacao grafica da operacao complemento 27

Figura 3.5 - Representacao grafica da operacao uniao 27

Figura 3.6 - Representacao grafica da operacao intersecao 28

Figura 3.7 - Representacao grafica da operacao comparacao 28

Figura 3.8 - Representacao grafica da operacao contido 29

Figura 3.9 - Variaveis linguisticas 30

Figura 3.10 - Grafico nebulosos da altura normalizada 31

Figura 3.11 - Grafico nebuloso da altura normalizada 33

Figura 4.1 - Esquema geral de montagem da estrutura robotica 36

Figura 4.2 - Representacao do manipulador em forma de pendulo 37

Figura 4.3 - Seqiiencia de estrategias de movimentacao 39

Figura 4.4 - Diagrama de estado da seqiiencia de movimentos 39

(14)

Figura 4.5 - Grafico nebuloso da estrategia "es a 40

Figura 4.6 - Travas mecanicas do motor livre 41

Figura 4.7 - O Sistema de Controle Inteligente (SCI) 44

Figura 4.8 - O controlador neural adaptativo direto 44

Figura 4.9 - ETR dependente do tempo 46

Figura 4.10 - Representacao da transferencia da carga do manipulador 1 para o 2 48

Figura 4 . 1 1 - Resultados experimentais da transferencia de carga com o ETR 52

Figura 5.1 - Escalonador Inteligente 55

Figura 5.2 - Execucao das tarefas e regras no tempo 56

Figura 5.3 - Resultados experimentais da transferencia de carga com o EIT 66

Figura A . l - Conector DB25/Femea 75

Figura A.2 - Diagrama esquematico da interface controladora de motores CC 76

Figura A.3 - Circuito de acionamento na forma de ponte monofasica completa 78

Figura B . l - Esquema de montagem de um detector de posicao 79

Figura B.2 - Analise grafica de um detector de posicao duplo 80

Figura B.3 - Exemplo de movimentacao durante a estrategia ^ es a 80

Figura B.4 - Grafico nebuloso utilizado na estrategia Pesa 81

Figura C.l - Configuracoes de controles 83

Figura C.2 - Controle neural adaptativo direto 83

Figura C.3 - Sistema de controle neural adaptativo direto 84

Figura D . l - Valores iniciais das entradas e representacao dos pesos 86

Figura F.l - Janela "sobre" do sistema 93

Figura F.2 - Janela principal do sistema 94

Figura F.3 - Janela de dialogo para confirmacao da transferencia 95

Figura F.5 - Janela de visualizacao e alteracao dos dados da RNMC 96

Figura F.6 - Janela de visualizacao dos pesos e indices da RNMC 97

(15)

Lista de Tabelas

Tabela 2.1 - Tempo de execucao dos processos 12

Tabela 3.1 - Tempo de execucao dos processos 33

Tabela A . l - Relacao dos componentes utilizados na interface 78

(16)

Lista de Quadros

Quadro 2.1 - Descritor de tarefas 19

Quadro 2.2 - Algoritmo simplificado do escalonador em tempo real 20

Quadro 3.1 - Regras nebulosas 30

Quadro 3.2 - Regras nebulosas 32

Quadro 4.1 - Algoritmo simplificado do ETR 46

Quadro 4.2 - Relacao das tarefas do sistema 47

Quadro 4.3 - Tarefas da estrategia Pesa 48

Quadro 4.4 - Tarefa 9 ativada apos 2000 ms 49

Quadro 4.5 - Tarefa 1 para a transferencia de carga do manipulador 1 para o 2 49

Quadro 4.6 - Tarefas 10 para a transferencia do manipulador 2 para o 1 50

Quadro 4.7 - Descritores das tarefas da estrategia Doa 50

Quadro 4.8 - Descritores das tarefas da estrategia Pega 51

Quadro 4.9 - Descritor da tarefa da estrategia Solta 51

Quadro 4 . 1 0 - Descritor da tarefa da estrategia Recebe 51

Quadro 5.1 - Descritor de tarefas 55

Quadro 5.2 - Algoritmo simplificado do EIT 56

Quadro 5.3 - Relacao das tarefas do sistema com o EIT 58

Quadro 5.4 - Tarefas da estrategia Pesa 58

Quadro 5.5 - Tarefas da estrategia Doa a partir da tarefa 1 60

Quadro 5.6 - Tarefas da estrategia Doa a partir da tarefa 10 61

Quadro 5.7 - Tarefas da estrategia Pega a partir da tarefa 18 62

(17)

Quadro 5.8 - Tarefas da estrategia Pega a partir da tarefa 17 63

Quadro 5.9 - Tarefas da estrategia Solta a partir da tarefa 12 64

Quadro 5.10 - Tarefas da estrategia Solta a partir da tarefa 13 64

Quadro 5.11 - Tarefas da estrategia Recebe a partir da tarefa 18 65

Quadro 5.12 - Tarefas da estrategia Recebe a partir da tarefa 17 66

Quadro D . l - Caracteristicas de um neuronio 85

Quadro D.2 - Algoritmo de propagacao das entradas na RNMC 87

Quadro D.3 - Algoritmo de propagacao retroativa do erro 88

(18)

Lista de equates

(3.1) : //v(.x-)-.H->[0.l] 24

(3.2) : X = {x9jux{x)} 2 5

(3.3) : juA,{x) = l-juA{x) V J C G Z 26

(3.4) : Avj B ^ JUa(X)^J jUB(x)=max(jUA(x\jUB(x)) \/x e X 27

(3.5) : AnB juA(x)njUB(x) = m'm(juA(x\jUH(x)) V x e l 28

(3.6) : A = B-^> juA(x) = juB(x) V x e X 28 (3.7) : AaB-+ /n, (x)< jiB(x) Vx e X 28 (3.8) : Saidaq =^-k 33

5 > . v ( * )

d2 6 (4.1) : 77( l ) = ML2 + PLsm(0U))= ML20'' + PLsQn(0{l)) 38 (4.2) : Tl{l]=PLSen(0{l)) 38 (4.3) : Tm{/) = k2Vs%Sen(0) 38 (4.4) : 0 = ^ U = KU 38

(4.5) : £ = 0,

( ( t l )

-0

(

,

+ 1 )

45

(4.0,: '"' = - ' " " • / • : 45 at/ st/,,,, X

(19)

/ \ 01

(

4

-

7

)

;

U

{l+i)

=U

{l)+

[-vVj=U

{l)+

-v—

dI } rr

I = u

{l) +

at; j

(/ + !) at/, 45 (4-8): /( ,;)= i £2= i ( ^+ 1)- ^ +I )) : .45 ( D . l ) : Z* * ^ i _ | j * ( z * - Z ) * / ? 88 (D.2): Z * * f l - | j * ( ^ * ^ ) * ^ 88 (D.3): w = W + S •• (D.4): s = e*T*p XI

(20)

Lista de regras

Regra (4.1): Se 6if == G e 03f == P entao ha_cargal = 1, ha_carga2 = 0; 40

Regra (4.2): Se 03 f == G e 0 if == P entao ha_cargal = 0, ha_carga2 = 1; 40

Regra (4.3): Se ha_cargal == 1 entao 0! r = 7t/6 e 62 r = 7i/4 41

Regra (4.4): Se ha_carga2 == 1 entao 63 r = -7i/6 e 04 r = -tt/4 41

Regra (4.5): Se ha_cargal == 1 entao 03r = -n/6 41

Regra (4.6): Se ha_cargal = 1 e 93 r == -n/6 entao 04 r = -n/4 41

Regra (4.7): Se ha_carga2 == 1 entao 0|r = n/6 42

Regra (4.8): Se ha_carga2 == 1 e 0l r == n/6 entao e2 r = n/4 42

Regra (4.9): Se ha_cargal == 1 entao 02 f = "ZE" 42

Regra (4.10): Se ha_cargal == 1 e e2 r == 0 entao 0,r - 0 42

Regra (4.11): Se ha_carga2 == 1 entao e4 r = 0 42

Regra (4.12): Se ha_carga2 == 1 e 64 r == 0 entao 03 r = 0 42

Regra (4.13): Se hacargal == 1 entao 0] r = 0 42

Regra (4.14): Se hacargal == 1 e 0,r == 0 entao 02 r = 0 42

Regra (4.15): Se ha_carga2 == 1 entao 03 r = 0 42

Regra (4.16): Se ha_carga2 == 1 e 03 r == 0 entao 04 r = 0 42

Regra (5.1): §e 0 i f = 0irf entao desativa as tarefas 2, 3 e 9 e ativa atarefa 1; 59

Regra (5.2): §e 03f == 03 rf entao desativa as tarefas 2, 3 e 9 e ativa a tarefa 10; 59

Regra (5.3): §e 0 if= = 6l r f o u 0 u = -;Z E "e nt ao ativa atarefa 7; 60

Regra (5.4):S e 9 ,r= = 0 ,r f 0u e ,f= " Z E " e nt 5o ativa atarefa 18; 61

(21)

Regra (5.5):S e 93 f = = 93rfOU e3 f = = "ZE" entao ativa a tarefa 18; 61

Regra (5.6):S e 93 f= 93 r f ou 9 3 f = "Z E" entao a t i v a a t a r e f a 1- 6 2

Regra (5.7): Se 93 r = = 93 r f entao 93 r = 1 senao se 93 r f = = "ZE" entao ativa a tarefa 11; 62

Regra (5.8):S e 93 f = = 93 r f ou 93 r = = "Z E" entao desativa a tarefa 12. e,r l. = "ZE": 63

Regra (5.9):S e e| f == el r |.entao ativa tarefa 12 s e na0 se 9 ,f = = "Z E" entao a" v a tarefa 14: 63

Regra (5.10):S e 9 „= = 9l r l ou 9 „ = = "Z E" entao desativa a tarefa 13. e4 r l - "ZE"; 63

(22)

Lista de simbolos e abrevia^oes

Simbolos

9t - Con junto universal

ft) - Representa9ao do tempo na forma discreta = - Representa a operagao de atribuicao

= = - Representa a operacao de igualdade

a - Elemento do conjunto de arvores

A - Subconjunto nebuloso de X

A' - Complemento do subconjunto nebuloso^ B - Subconjunto nebuloso de A"

E - Erro obtido na saida da planta f(y) - Funcao de transferencia do neuronio

freq - Intervalo em que uma tarefa e novamente ativada G - Conjunto nebuloso das arvores grandes

id - Identificac&o de uma tarefa L - Comprimento do pendulo

M - Conjunto nebuloso das arvores medias

MP - Conjunto nebuloso das arvores muito pequenas

NG - Subconjunto nebuloso Negativo Grande do controlador

N M - Subconjunto nebuloso Negativo Medio do controlador

NP - Subconjunto nebuloso Negativo Pequeno do controlador

nvf - Numero do motor relacionada a uma regra

P - Conjunto nebuloso das arvores pequenas

P - Peso do pendulo

PG - Subconjunto nebuloso Positivo Grande do controlador

PM - Subconjunto nebuloso Positivo Medio do controlador

PP - Subconjunto nebuloso Positivo Pequeno do controlador

(23)

St Estado de uma tarefa

t Tempo na forma discreta

tempo Tempo de espera para execucao de uma tarefa

Tl Torque do pendulo

u

Tensao do motor

u«)

Tensao do motor informada ao controlador neural

u«*l)

Tensao fornecida pelo controlador neural

uf

Tensao fuzzy ficada do motor

VD Valor desejado

vf Variavel linguistica do angulo "fuzzyficado " do motor W

i

Pesos da RNMC

X Elemento do subconjunto X

X Subconjunto de y\ ou o conjunto universo

X i Entradas da RNMC

ZE Subconjunto nebuloso Zero do controlador

Simbolos gregos

Variacao da tensao fuzzy ficada

a

Aceleracao angular do pendulo

Xf Fator de treinamento da rede neural

M Constante da funcao ^sigm(^)

0 Angulo do pendulo

0(0 Angulo informado ao controlador neural

0(t+i) Angulo lido na saida da planta

0ft. i) Angulo obtido no controle anterior

0i Angulo do motor 1

0if Angulo fuzzyficado do motor 1

01r Angulo de referenda do motor 1

02 Angulo do motor 2

02/ Angulo fuzzyficado do motor 2

02r Angulo de referenda do motor 2

03 Angulo do motor 3

(24)

e

4 Angulo do motor 4

Angulo fuzzy>ficado do motor 3 Angulo de referenda do motor 3

04/ Angulo fuzzyficado do motor 4

04r Angulo de referenda do motor 4

%

Angulo fuzzyficado

Angulo do motor /

Angulo do motor i fuzzyficado

@r(t+l) Angulo de referenda informado ao controlador neural

Abreviacoes

APR Algoritmo de propagacao retroativa do erro

CC Corrente continua

COPIN Coordenacao de Pos-Graduacao em Informatica

CPU Unidade Central de Processamento (do ingles Central Processing Unit)

E/S Entrada e Saida

EIT Escalonador Inteligente de Tarefas em Tempo Real

ETR Escalonador de Tarefas em Tempo Real

FIFO First In First Out (definicao de fila em ingles)

IA Inteligencia Artificial

I B M International Business Machine

IBM-PC Definicao padrao dos microcomputadores baseados na familia de

proces-sadores 8086

Motor CC Motor de corrente continua

ms Milissegundo

NEUROLAB - Laboratorio de Redes Neurais e Automacao Inteligente

PC Contador de programa (do ingles Program Counter)

pu Por unidade (medida normalizada. explicada no capitulo 3 e 4)

PWM Modulacao de Largura de Pulso (do ingles. Pulse Width Modulation)

RNA Rede Neural Artificial

RNMC Rede Neural Artificial Multicamadas

RTC Relogio de tempo real (do ingles Real-Time Clock)

SCI Sistema de Controle Inteligente

(25)

SI - Sistema Inteligente

SP - Apontador de pilha (do ingles Stack Pointer)

TCB - Task Control Block (bloco de controle de tarefa em ingles)

UFPB - Universidade Federal da Paraiba

(26)

"Nao e possivel observar ou medir um objeto sent interfe-rir nele, sem o alterar, e a tal panto que o objeto que sai

de um processo de medicdo nao e o mesmo que Id en-trou. " (Heisemberg & Bohr, citado em Araujo, 1998).

(27)

Capitulo 1

Introdu^ao

1.1. Os sistemas roboticos

O gerenciamento de sistemas roboticos atraves de microcomputadores envolve diversas areas

do conhecimento tais como Engenharia Eletrica, Engenharia Mecanica, Computacao, entre

ferramentas e tecnologias foram propostas e estao sendo utilizadas para se ter

robos mais autonomos e eficazes. Pode-se citar: processamento digital de imagem, aquisicao

de conhecimento, redes neurais artificials, logica nebulosa, algoritmos geneticos e

controlado-res adaptativos. Essas sao as principais razoes que tornaram os sistemas roboticos amplamente

utilizados por pesquisadores do mundo todo como plataformas de teste para novas tecnicas e

pesquisas cientificas.

Cavalcanti et al. (1994) apresentaram um Sistema de Controle Inteligente (SCI),

base-ado em Rede Neural Artificial Multicamada e Logica Nebulosa, capaz de controlar uma

es-trutura robotica elementar (planta) em tempo real. Posteriormente Alsina & Cavalcanti (1997)

utilizaram esse SCI aplicado na transferencia de carga entre dois robos cooperantes. Todo o

gerenciamento dos modulos dinamicos do SCI foi realizado por um escalonador de tarefas em

tempo real. O SCI se mostrou adequado ao controle dinamico da planta, principalmente

devi-do as propriedades adaptativos da rede neural (Alsina, 1996, p.29). Porem, como os modulos

dinamicos do sistemas foram implementados em forma de tarefas, a ordenacao e a

temporiza-cao destas foram feitas heuristicamente pelo especialista, limitando o escalonador a

responsa-bilidade de simplesmente autorizar a execucao de cada tarefa seqtiencialmente, trabalhando

como um simples despachador (Comer, 1988).

1.2. Os sistemas de controle

Um sistema de controle pode ser classificado em duas categorias: os sistemas de controle

di-namicos e os sistemas de controle de processos. O controle dinamico envolve sempre o

con-trole de uma planta, enquanto o concon-trole de processo tern como objetivo a temporizacao,

(28)

tempo-Capitulo I - Introduqao 2

rizacao pode ser vista como o tempo de espera para a execucao de cada evento; a

seqiienciali-zacao e a ordenacao temporal dos eventos; a sincroniseqiienciali-zacao pode ser vista como a necessidade

de comunicacao entre os eventos, preferencialmente de uma forma estruturada e; o

intertra-vamento e a competicao entre os eventos por recursos. Todos esses itens estao relacionados

com o escalonamento dos eventos ou tarefas que representam o processo. Portanto, em um sistema robotico existe sempre a presenca de um sistema de controle de processos e por

con-seqiiencia, a necessidade de um algoritmo de escalonamento adequado. o que justifica o

pre-sente estudo de um "Escalonador Inteligente de Tarefas para Aplicacoes Robotica".

1.3. O escalonador de tarefas em tempo real

Alsina & Cavalcanti (1997) apresentaram um sistema robotico composto de dois

manipulado-res cooperantes utilizados na transferencia de carga entre eles. Nesse sistema todo o controle

dos manipuladores e da transferencia de carga foi implementado em forma de tarefas e essas

gerenciadas por um Escalonador de Tarefas em Tempo Real (ETR), baseado no

escalona-mento em fila (Shay, 1996, p.264). Observou-se nesse sistema que o escalonador poderia

to-mar algumas decisoes, ditas inteligentes, para substituir as constantes interferencias do

espe-cialista, necessarias no ETR para a ordenacao e temporizacao das tarefas, e ao mesmo tempo

ter o seu codigo reduzido o maximo possivel para garantir o escalonamento de todas as tarefas

em tempo real.

As caracteristicas do escalonamento em tempo real e da aplicacao (sistema robotico) impuseram restricoes de tempo e de pendencias de posicao dos manipuladores que

precisa-vam ser rigorosamente cumpridas, pois tanto o controle dinamico da planta (os motores dos

manipuladores) quanto o controle do processo (a transferencia de carga) dependiam

direta-mente do fator "tempo" e da posicao dos manipuladores em cada etapa da transferencia.

1.4. O escalonador inteligente de tarefas

A partir da analise dos problemas verificados na utilizacao do ETR e na relacao de controle de

processos com o escalonamento de tarefas. idealizou-se o Escalonador Inteligente de Tarefas

em Tempo Real (EIT). O EIT utiliza a Logica Nebulosa para representar o conhecimento do

especialista e por conseqiiencia permitir que o escalonador proceda de uma forma inteligente

(29)

Capitulo 1 - Introducao 3

A solucao proposta (Ferreira et al., 1998, 1999a, 1999b) foi associar a cada tarefa uma

regra nebulosa do tipo se-entdo com inferencias sobre variaveis nebulosas. Para isso,

associ-ou-se essas variaveis a cada um dos atuadores (motores de corrente continua) dos

manipula-dores, de tal forma que fosse possivel, que o proprio escalonador fizesse inferencias, sobre

essas variaveis, detectando quando o movimento em cada etapa foi ou nao bem sucedido. O

relacionamento entre regras e variaveis nebulosas possibilitou mais autonomia ao sistema e

conseqiientemente permitiu que o mesmo pudesse ser considerado inteligente, visto que o

mesmo, alem de ser temporizado, passou a tomar suas proprias decisoes a partir de

informa-coes adquiridas do ambiente em tempo real.

1.5. Objetivos do trabalho

Esta dissertacao tern como principal objetivo propor e descrever o projeto e a implementacao

de um escalonador inteligente de tarefas para aplicacoes roboticas. Esse escalonador e

utiliza-do no gerenciamento das tarefas de um sistema de controle inteligente que controla a mudan-9a de estado e os atuadores de dois manipuladores roboticos durante a transferencia de carga entre eles. O escalonador proposto utiliza inferencias e variaveis nebulosas na otimiza9ao da

ordena9ao das tarefas para garantir o escalonamento de cada uma delas em tempo real.

1.6. Estrutura da dissertacao

Esta disserta9ao esta dividida em seis capitulos, sendo que 0 primeiro capitulo e esta propria introdu9ao, onde apresenta-se os motivos que conduziram ao estudo proposto, os objetivos da

disserta9ao e um resumo geral de todo o conteudo da mesma.

Faz-se no Capitulo 2 um estudo sobre o escalonamento de tarefas, definindo-se os

conceitos basicos sobre escalonamento, os algoritmos de escalonamento mais utilizados, as

principais caracteristicas de um escalonamento. bem como as taxinomias sugeridas por alguns

autores. Encerra-se o capitulo, com uma breve analise das caracteristicas de opera9ao

necessa-rias a implementa9ao de um escalonador em tempo real para o gerenciamento do controle de

tarefas.

Apresenta-se no Capitulo 3 um breve estudo sobre a Logica Nebulosa, descrevendo-se

os seus fundamentos e destacando-se a defini9ao de conjuntos nebulosos e a sua

(30)

Capitulo 1 - Introducao 4

variaveis nebulosas e de regras nebulosas. Finaliza-se o capitulo com um estudo de utilizacao

da logica nebulosa, evidenciando-se a seqiiencia na qual cada conceito deve ser empregado

para que se tire o melhor proveito dessa logica.

Apresenta-se no Capitulo 4 uma descricao detalhada da aplicacao robotica,

destacan-do-se o projeto e desenvolvimento do prototipo utilizado para a implementacao do

escalona-dor proposto. Descreve-se tambem o sistema inteligente dividido em um sistema de controle

inteligente, utilizado no controle dos motores eletricos de corrente continua e um sistema de

controle de processos, utilizado no controle das etapas da transferencia de carga. Finaliza-se o

capitulo com uma breve analise da estrutura robotica e do sistema inteligente.

Finalmente, apresenta-se no Capitulo 5 o "Escalonador Inteligente de Tarefas para

Aplicacoes Roboticas" proposto nesta dissertacao. Inicialmente, descreve-se os motivos que

conduziram ao desenvolvimento desse escalonador, apresentando-se uma breve introducao,

contendo as principais caracteristicas de escalonamento que o mesmo deve apresentar. Em seguida descreve-se como esse escalonador foi desenvolvido, apresentando-se as estrategias

de movimento, definidas no Capitulo 4, com as devidas alteracoes para serem utilizadas nessa

nova abordagem. Encerra-se o capitulo com uma analise do novo escalonador apresentado.

Conclui-se a dissertacao no capitulo 6, no qual e feita uma analise das principais

van-tagens obtidas com o escalonador inteligente de tarefas, destacando-se principalmente a

to-mada de decisao pelo proprio sistema, a utilizacao de regras sem a necessidade de se criar

uma base de conhecimento e a maior independencia do sistema em relacao ao especialista.

(31)

Capitulo 2

Escalonamento de tarefas

2.1. Resumo

Neste capitulo inicialmente apresenta-se um breve historico sobre o escalonamento de tarefas,

os conceitos basicos sobre escalonamento e os principais algoritmos de escalonamento.

Apre-senta-se tambem um estudo sucinto sobre "job" , processos e tarefas, destacando-se os

dife-rentes conceitos apresentados por alguns autores e os possiveis estados que uma tarefa ou

processo pode assumir. Finaliza-se o capitulo apresentando-se o escalonador de tarefas em

tempo real, destacando-se as principais caracteristicas que o mesmo deve ter para ser utilizado

no gerenciamento do controle de processo e na implementacao do escalonador inteligente de

tarefas proposto no capitulo 5.

2.2. Historico

O escalonamento de processos tern sua origem relacionada com os primeiros sistemas

opera-cionais. Quando surgiram os antigos sistemas em lote (do ingles Batch Systems) - os sistemas

360 da I B M com processamento em lote - o escalonamento de processos se resumia em fazer

com que o proximo job da fila fosse posto para executar (Tanenbaum, 1995, p.44). Nesta epo-ca os jobs representavam processos que fiepo-cavam armazenados em fita magnetiepo-ca a espera da

execucao. O escalonador, parte do sistema operacional responsavel por fazer o

escalonamen-to, era uma rotina muito simples, responsavel pela ativacao e execucao dos jobs.

Posterior-mente, quando os processos passaram a depender do tempo, os algoritmos de escalonamento

foram aperfeicoados e alguns autores passaram a tratar os processos como tarefas.

1 Este termo nao foi traduzido pois nenhum autor da lingua portuguesa consultado fez a traducao do mesmo. O

autor desta dissertacao acredita que a traducao do termo, que no caso seria "trabalho", nao refletiria o conceito exato dentro do contexto em estudo.

(32)

Capitulo 2 - Escalonamento de tarefas 6

Com a melhoria dos computadores e por conseqiiencia dos sistemas operacionais,

im-pulsionados pelas suas utilizacoes no setor comercial. o escalonamento de tarefas tambem

evoluiu, tendo seus algoritmos uma importancia mais destacada no estudo e implementacao

dos sistemas operacionais. O computador podia ser utilizado por varios usuarios ao mesmo

tempo e a sua Unidade Central de Processamento (CPU, do ingles Central Processing Unit)

precisava ser compartilhada entre esses usuarios. Era necessario tirar o maximo proveito do

computador, visto que o custo do mesmo era muito elevado, sendo de vital importancia que a

sua CPU ficasse ocupada 100% do tempo. Para isso. era necessario implementar uma rotina

de escalonamento que garantisse essa eficiencia na utilizacao da CPU. Entretanto, apos a

im-plementacao de rotinas 100% eficientes, certos tipos de usuarios foram prejudicados, entao

percebeu-se que somente a eficiencia nao garantia a melhor utilizacao da CPU, pois um

sistema com eficiencia maxima, nao representava a melhor caracteristica para determinados t i

-pos de usuarios.

Isso conduziu ao desenvolvimento de diferentes algoritmos de escalonamento, onde

cada um procurava melhorar o desempenho do sistema para cada tipo de usuario. Entretanto,

muitos sistemas precisavam atender as necessidade de diferentes usuarios ao mesmo tempo e

conseqtientemente, precisavam apresentar um balanceamento das inumeras caracteristicas

existentes, sendo conhecidos como escalonamento de proposito geral. Os escalonamentos

feitos para atender uma determinada caracteristica foram denominados de escalonamento

es-pecifico, sendo o mais conhecido o escalonamento em tempo real que precisa atender a

rigo-rosas restricoes de tempo.

2.3. Tarefas e processos

O estudo sobre escalonamento induz ao estudo dos conceitos de jobs, tarefas e processos. A l

-guns autores (Shay, 1996) (Comer, 1988) os tratam como se eles representassem o mesmo

conceito. Outros autores fazem distincao entre eles (Mullender, 1995). Atualmente o conceito

de job e pouco utilizado, visto que o mesmo e quase sempre relacionado com os antigos

sis-temas em lote, onde um job representava um programa ou um conjunto de programas

(Ta-nenbaum, 1995, p.44) postos para executar. Os conceitos de tarefa e processo sao

interrelaci-onados, chegando a variar de sistema para sistema, segundo Comer (1988, p.7).

Um processo representa um programa em execucao sendo constituido do codigo

(33)

pro-Capitulo 2 - Escalonamento de tarefas 1

grama (registrador PC, do ingles Program Counter), do valor do apontador de pilha

(registra-dor SP, do ingles Stack Pointer) e outras informacoes necessarias para a execucao do

progra-ma (Tanenbaum, 1995, p. 10). Mullender (1995, p.392) apresenta esse mesmo conceito,

desta-cando que um processo e uma abstracao de um programa sendo executado. Segundo

Mullen-der (1995. p.392), a definicao confusa de processo e tarefa e ressaltada com a nova

aborda-gem de sistemas distribuidos, pois diferentes grupos de pesquisa usam diferentes e

conflitan-tes conceitos relacionados a tarefas e processos. Para Shay (1996, p. 17), o conceito de

proces-so e equivalente ao de tarefa. Entao, e possivel concluir que a maioria dos procedimentos

adotados para tratamento dos processos pode ser aplicado tambem para tratamento das tarefas.

A definicao entendida pelo autor desta dissertacao e a seguinte. Um processo e o

con-junto de informacoes de baixo nivel manipuladas pelo escalonador do sistema operacional,

enquanto uma tarefa e a representacao de uma acao definida por um conjunto de instrucoes dependentes do tempo, manipuladas por um escalonador em alto nivel. Uma tarefa pode dar

origem a varios processos. Todo o estudo de escalonamento discutido a partir deste ponto

nesta dissertacao. esta relacionado com o escalonamento de tarefas.

2.4. Estados das tarefas

As tarefas possuem estados bem definidos, onde cada tarefa pode estar em um determinado

estado a cada instante. O conceito de estado e importante para se entender como o escalona-dor pode manipular as tarefas. Supondo-se que uma tarefa executa uma operacao de entrada e

saida (E/S), entao ela deve ser interrompida para permitir que outras tarefas utilizem a CPU

enquanto a sua operacao de E/S e realizada. Assim, a tarefa que estava no estado

"executan-do" passa para o estado "espera por E/S\ Supondo-se tambem que uma outra tarefa esgotou o

seu tempo de uso da CPU antes mesmo que o seu processamento chegasse ao final, assim ela e interrompida e enviada para o final da lista de tarefas em espera, a fim de receber uma nova

fatia de tempo para terminar o seu processamento. Neste caso, a tarefa passa do estado

"exe-cutando" para o estado "espera por execucao". Em ambos os casos, assim que as tarefas sao

interrompidas uma outra tarefa recebe o controle da CPU e inicia o seu processamento, pas-sando do estado "espera por execuqao" para o estado "executando".

Os exemplos evidenciam que uma tarefa pode passar por varios estados diferentes,

como: pronta (do ingles ready) para assumir o controle da CPU, executando (do ingles

(34)

Capitulo 2 - Escalonamento de tarefas

S

ter encerrado o seu processamento. bloqueada (do ingles blocked) por ter gerada uma

opera-cao de E/S ou pronta novamente. por ter esgotado o tempo de uso da CPU com retorno a lista

de tarefas em espera (Guimaraes. 1989). Neste caso diz-se que a tarefa sofreu uma

preemp-cao. Os estados das tarefas permitem ao escalonador um controle mais eficiente sobre todas as

tarefas. pois as tarefas bloqueadas nao precisam concorrer pelo uso da CPU. diminuindo

as-sim o tamanho da lista de tarefas esperando para o uso da CPU, e diminuindo tambem o

tem-po de manipulacao dessa lista, alem de evitar o processamento desnecessario de tarefas

blo-queadas. Os estados que uma tarefa pode assumir sao pronta, executando, bloqueada e inativa

e estao representados na Figura 2.1 pelas elipses. As possiveis transicoes de um estado para o

outro tambem sao ilustradas nessa mesma figura e estao representadas pelas setas em forma

de arco com as respectivas descricoes.

Sinai

Bloqueia tarefs Sinaliza^

tarefa

Executando Encerra tarefa Tarefa concluida \ Encerrax

(^Bloqueada Libera'

tarefa Nova tarefa I Inicia tarefa

Interrompe tarefa Pronta Executa tarefa Reinicia tarefa

Figura 2.1 - Estados das tarefas e transicoes entre estados.

Os eventos esternos. que nao representam transicoes entre estados, mas que modificam

o estado de uma tarefas. estao representados pelos retangulos. Quando uma nova tarefa e

cria-da, ela ja recebe o estado pronta, entrando diretamente na lista de tarefas em espera para

exe-cucao. Ao final da execucao de uma tarefa, ela passa para o estado inativa ou e simplesmente removida do sistema (tarefa concluida). As tarefas no estado bloqueada precisam de um sinal

para avisa-las que o evento que elas aguardavam ja foi concluido e as mesmas ja podem voltar

para o estado pronta para concorrem ao uso da CPU.

Alguns autores apresentam o estado bloqueada dividido em outros estados como

ra ocupada. Isso indica que uma tarefa foi bloqueada por ter ocorrido um erro por estar

espe-rando por um evento gerado por outra tarefa ou por ela Ter gerado um evento de solicitacao

de E/S. Essa divisao e justificada por Shay (1996. p.250), para que as tarefas no estado

(35)

solicita-Capitulo 2 - Escalonamento de tarefas 9

do, diferente das tarefas no estado bloqueada por erro, que somente dificultariam a gerencia

das outras tarefas. Porem, a maioria dos autores apresenta um unico estado para essa situacao,

devido a sua subdivisao ser empregada somente em alguns casos particulares.

2.5. BIoco de controle das tarefas

A lista de tarefas, ate o momento apresentada como sendo o conjunto de tarefas do sistema

prontas para serem escalonadas, na verdade representa uma lista de descritores ou blocos de

controle das tarefas (TCB, do ingles Task Control Block) (Shay, 1996, p.254). O descritor ou

TCB de uma tarefa contem algumas informacoes que o sistema precisa saber sobre a tarefa,

tais como: numero de identificacao, estado, tempo maximo de execucao, prioridade,

localiza-cao do codigo da tarefa, apontador para a entrada na lista de tarefas, valor do contador de

pro-grama, valor do apontador de pilha e valor dos registradores, entre outros.

O conteudo do descritor varia de um sistema operacional para outro, pois muitas

infor-macoes podem ser desnecessarias, dependendo do tipo de escalonamento adotado. Por

exem-plo, em um escalonamento onde e permitido interromper a execucao de uma tarefa antes do

seu final, e necessario saber todas as informacoes sobre o apontador de pilha, contador de

programa e valor dos registradores. para que a tarefa que foi interrompida possa ser reiniciada

com todos os valores desses itens restaurados. Em um escalonamento onde a interrupcao nao

e permitida. esses itens sao desnecessarios.

2.6. Conceitos basicos sobre escalonamento de processos e tarefas

A busca pela eficiencia na utilizacao da CPU (otimizacao no uso do computador), juntamente

com a meta de se implementar o melhor algoritmo de escalonamento possivel. deram origem

a alguns conceitos basicos que devem ser considerados na implementacao de um escalonador.

Tanenbaum (1995, p.45) e Shay (1996, p.241) relacionaram alguns desses conceitos que

de-vem estar presentes em um bom algoritmo de escalonamento, a saber:

• Eficiencia - Segundo Tanenbaum (1995, p.45), eficiencia e manter o processador

ocu-pado durante 100% do tempo, pois esse tipo de equipamento e relativamente caro e se o

mesmo fica parte do tempo ocioso, torna questionavel o investimento feito nele. Por sua

vez, Shay (1996, p.242) define eficiencia pela medida de producao de processamento, afirmando que, a producao e o numero de processos que sao executados por unidade de

(36)

Capitulo 2 - Escalonamento de tarefas 10

tempo. Entao, a producao e baixa quando sao completados poucos processos e alta

quando muitos processos sao completados concluindo que, deve-se tentar conseguir a

producao mais alta possivel. Esta definicao de producao e apresentada por Tanenbaum

como "Throughput":

• Capacidade de resposta - O mesmo algoritmo que garante a eficiencia deve garantir

tambem a resposta (resultado do processamento) dentro de uma faixa de tempo

aceita-vel. Em determinadas situacoes, a garantia de resposta dentro de um tempo pequeno se

opoe a eficiencia, visto que um escalonador que e totalmente eficiente mas que demora

excessivamente a dar respostas para "usuarios batch" (usuarios que executam processos

em lote), nao tera muita aceitacao;

• Tempo de resposta - O sistema deve responder rapidamente as solicitacdes dos usuarios

interativos", dentro de um tempo razoavelmente aceitavel. Esses usuarios exigem mais

rigidez (tempo de resposta minimo) no tempo de resposta pois os mesmos estao intera-gindo diretamente com o sistema, esperando uma resposta do sistema para cada

solicita-cao enviada. Em oposisolicita-cao aos usuarios interativos, pode-se citar os usuarios batch, que

normalmente enviam um conjunto de jobs e nao esperam por uma resposta imediata. O

mais importante para esses usuarios e o tempo total de execucao de todo o conjunto de

jobs e nao a execucao de cada job isolado;

• Consistencia - O tempo que o sistema leva para executar uma determinada tarefa deve ser sempre 0 mesmo. independente do horario que a tarefa for posta para execucao. Isto e, se um usuario executa regularmente a mesma tarefa, a resposta do sistema deve ser

dentro de um tempo aproximadamente igual, mesmo que o usuario apresente a tarefa em

momentos diferentes;

• Justica - Todos os processos devem ter chances iguais no uso do processador. Este

con-ceito pode ser visto como um balanceamento dos outros concon-ceitos apresentados de tal

forma que todos os usuarios tenham o seu processamento garantido. Um bom exemplo e a comparacao entre usuarios batch e interativos que fazem solicitacoes diferentes e

con-flitantes. Ou seja, se o sistema beneficiar os usuarios interativos, certamente ele

prejudi-2 Usuarios que operam diretamente em um terminal onde comandos curtos sao enviados e respostas imediatas

(37)

Capitulo 2 - Escalonamento de tarefas 1 1

cara os usuarios batch e vice-versa. A melhor saida entao e tentar atender as necessida-des de todos os usuarios distribuindo perdas e ganhos entre todos.

2.7. Algoritmos de escalonamento

Varios algoritmos de escalonamento de tarefas que apresentam uma combinacao dos

concei-tos basicos sobre escalonamento foram proposconcei-tos ao longo dos anos. Os mais conhecidos

es-tabeleceram padroes e atualmente sao referencias para qualquer estudo sobre escalonamento.

O algoritmo considerado mais simples de implementar e o escalonamento em fila ou

escalo-namento FIFO (Shay, 1996, p.264), que utiliza uma lista de processos ou tarefas representadas

pelos quadrados com a letra P, conforme ilustrado na Figura 2.2. A lista utilizada obedece o

conceito de fila, isto e, o primeiro processo a entrar na fila sera o primeiro a sair. A sigla FIFO

e uma abreviacao em ingles do conceito de fila que significa "First In First Out" ("Primeiro

que entra, primeiro que sai" ).

n+l Novo processo

Fila sequencial de processos

Processo em execucao Pn P, P? P, w 1 11 A 3 1 2 X 1 W

C P U

Processo finalizado

Figura 2.2 - Escalonamento em fila.

Nesse tipo de escalonamento, um processo que recebe o controle da CPU (processo

em execucao na Figura 2.2) so a libera quando o seu processamento chega ao final (processo finalizado na Figura 2.2). Ou seja, um processo nao pode ser interrompido antes que ele

ter-mine completamente o seu processamento. Este escalonamento e apropriado para casos

parti-culars, em que se faz muito processamento e poucas operacoes de E/S. Shay (1996, p.265)

apresenta um bom exemplo para a utilizacao do escalonamento em fila, descrito a seguir:

Suponha que tres processos A, B e C, entrem no sistema simultaneamente. Suponha

tambem que cada um requeira exatamente uma hora de tempo da CPU. Considere um

escalo-nador FIFO e que o processo A foi escalonado em primeiro lugar (Figura 2.3). Como o pro-cesso A precisa de uma hora de CPU e apresenta pouca ou nenhuma E/S, ele terminara em

(38)

con-Capitulo 2 - Escalonamento de tarefas 12

trole da CPU ao processo B, que tambem terminara em aproximadamente uma hora, ou seja,

mais ou menos duas horas depois de ter entrado no sistema. Finalmente o processo C e

exe-cutado e tambem termina depois de uma hora aproximadamente.

Processo A Processo B Processo C

~7

/

/

W 1 hora / 2 hora 3 hora

/

Tempo

Figura 2.3 - Processos compartilhando a CPU em um escalonamento FIFO.

Analisando-se esse exemplo, conforme os informacoes resumidas na Tabela 2.1,

veri-fica-se que o processo A termina no seu tempo previsto, ja o processo B termina com o seu tempo previsto e mais o tempo do processo A, enquanto o processo C nao se beneficia de

forma alguma e termina no pi or tempo.

Tabela 2.1 - Tempo de execucao dos processos.

FIFO Tempo para o processo A I hora Tempo para o processo B 2 horas Tempo para o processo C 3 horas Tempo medio 2 horas

Entretanto se eles tivessem compartilhando a CPU, todos terminariam em aproxima-damente 3 horas, piorando o tempo de resposta para todos os processos, conforme ilustrado na

Figura 2.4. Esse tipo de escalonamento que permite o compartilhamento da CPU e

apresenta-do a seguir.

Processo Processo Processo

Pirn do processo B Q=quanlum 1Q 2Q 3 0 4Q 5 0 6 0 A

\

C Processo B Processo A Processo C im do

/

Processo B

/

Fim do * Tempo processo A • processo C Apos 3 h

(39)

Capitulo 2 - Escalonamento de tarefas 13

Um outro tipo de escalonamento e o mais conhecido e o escalonamento por

reveza-mento (Shay, 1996, p.257) ou "escalonareveza-mento robin round" (Tanenbaum, 1995, p.45), que

implementa uma lista seqiiencial de processos na memoria, ilustrado na Figura 2.5, de onde os

processos ou tarefas, representados pelos quadrados com a letra P, sao ativados

seqiiencial-mente para execucao. A lista de processos neste algoritmo tambem e implementada atraves do

conceito de fila (Fila seqiiencial de processos na Figura 2.5). Cada processo possui um

inter-valo de tempo, conhecido como "quantum" para a utilizacao da CPU (Processo em execucao

na Figura 2.5), se esse tempo se esgota antes do final da execucao do processo, o mesmo e

interrompido e enviado para o final da fila para ser escalonado novamente com um novo

quantum. A essa interrupcao de um processo antes do final de sua execucao da-se o nome de

preempcao (do ingles preemption). Um processo tambem pode ser interrompido quando o

mesmo executa uma operacao de E/S, liberando a CPU para o proximo processo em espera na

fila seqiiencial, evitando assim que a CPU fique ociosa.

Novo processo

i

Fim do quantum

Processo vai para o final da fila Fila seqiiencial de processos

n+1

p.

p

3

p. p,

E/S finalizada P

C P U

Processo em execucao Processo finalizado

Espera por E/S

Figura 2.5 - Escalonamento por revezamento.

Um outro tipo e o escalonamento com prioridade que visa atribuir prioridade aos

pro-cessos. permitindo que um processo possa passar a frente de outro na lista de espera. Este

conceito anula a ideia de lista seqiiencial proposta pelos escalonamentos por revezamento e

em fila, pois cada processo e escalonado de acordo com a sua prioridade. Essa prioridade e

definida atraves de numeros atribuidos a cada processo quando o mesmo e criado. Em

algu-mas situacoes, e necessario que um processo que acabou de ser criado seja imediatamente

executado, como e o caso de processos em um computador de uma universidade, onde os

pro-cessos criados pela reitoria devem ter prioridade sobre os propro-cessos criados pelos professores,

3 Quantum e a denominacao normalmente utilizada para designar o intervalo de tempo que um processo pode

(40)

Capitulo 2 - Escalonamento de tarefas 14

enquanto estes ultimos devem ter prioridade sobre os processos criados pelos alunos. O

esca-lonamento com prioridade pode ser visto como um conjunto de escaesca-lonamentos em fila

se-qiiencial, pois os processos com a mesma prioridade sao executados de acordo com a ordem

de chegada, conforme ilustrado na Figura 2.6.

Filas seqiienciais de processos

Maior prioridade Pn+l Maior prioridade P„

p

2 P, Pn+l w P„

p

2 P, Novo

processo Prioridade media Novo

processo Prioridade media P„ P2 P,

Novo processo w P„ P2 P, Novo processo w Novo processo Menor prioridade P„ P: P, • P„ P: P, Prioridade media

C P U

Processo em execucao Menor prioridade

Figura 2.6 - Escalonamento com prioridade.

Muitas outras formas de escalonamento, tambem de igual importancia. foram propos-tas, tais como as filas multiplas com varias listas com prioridade, mas com um quantum

dife-rente em cada lista, de tal forma que um processo que precisasse de um tempo muito grande

receberia um quantum cada vez maior a cada reescalonamento4, entretanto a sua prioridade

iria diminuindo. Ja o escalonamento "menor job primeiro" procurava dar prioridade ao job

com menor tempo de processamento, de tal forma que um job que consumia pouco tempo de processamento era processado primeiro para aumentar o desempenho do sistema, enquanto

urn job com um tempo de processamento muito grande era prejudicado neste tipo de

escalo-namento. Esses escalonamentos e muitos outros existentes e que nao foram apresentados aqui.

possuem suas vantagens e desvantagens, sendo que a utilizacao de cada um deles depende do

tipo de problema que se pretende resolver.

2.8. Caracteristicas de escalonamento

Os diferentes algoritmos de escalonamento deram origem a uma grande variedade de tipo de

escalonadores. Algumas taxinomias foram apresentadas (Kopetz, 1995, p.491) na tentativa de

4 Este termo e utilizado para indicar a troca de contexto de processo na memoria, ou seja, e o procedimento de

liberacao da CPU por um processo (guardando as informacoes deste) e a entrada de um outro processo para execucao (carregando as suas informacoes).

(41)

Capitulo 2 - Escalonamento de tarefas 15

estabelecer uma classificacao para os diferentes tipos de escalonadores existentes. As

classifi-cacoes mais comuns sao relacionadas a seguir, sendo que cada uma delas apresenta suas

van-tagens e desvanvan-tagens, ficando a cargo do sistema operacional ou do projetista a escolha pela

utilizacao delas. Mullender (1995) relaciona as caracteristicas listadas a seguir atraves de

hie-rarquias, ou seja, uma dependente de outra ou como subdivisao de outra. Entretanto as

taxo-nomias mais utilizadas sao explicadas a seguir.

2.8.1. Quanto a utilizacao

• Proposito geral - o escalonador e utilizado em diferentes aplicacoes e precisa aplicar um

bom algoritmo de escalonamento que beneficie todas as aplicacoes. A maioria dos

esca-lonadores presentes nos sistemas operacionais e de proposito geral;

• Especifico - o escalonador trabalha para apenas uma aplicacao e precisa atender as

ne-cessidades especificas dessa aplicacao. Alguns sistemas sao desenvolvidos para gerenciar

um problema especifico. como o caso dos sistemas em tempo real que devem atender as

rigorosas restricoes de tempo necessarias em controle de processos, por exemplo;

2.8.2. Quanto a restricao de tempo

• Tempo real flexivel - o escalonamento nao e totalmente preso as restricoes de tempo, ou

seja, e toleravel que em certas circunstancias nem todas as tarefas sejam executadas den-tro do tempo predefinido. A grande maioria dos sistemas apresenta essa caracteristica,

pois as solicitacoes de grande parte dos usuarios nao exigem precisao no tempo de

execu-cao. Normalmente, os processos possuem um tempo limite (do ingles deadline) bem

fle-xivel para a execucao;

• Tempo real inflexivel - as tarefas precisam ter seu escalonamento garantido e as

restri-coes de tempo precisam ser rigorosamente satisfeitas. Alguns sistemas especificos apre-sentam essa caracteristica quando utilizados em controle de processos, controle de trafego

aereo, controle de usinas nucleares e outros, que impoem rigorosas restricoes de tempo.

Como exemplo, pode-se afirmar que um atraso de alguns milissegundos e totalmente

to-leravel em um sistema bancario, mas esse mesmo atraso pode ser extremamente prejudi-cial em um sistema de controle de trafego aereo;

(42)

Capitulo 2 - Escalonamento de tarefas 16

2.8.3. Quanto a reorganizacao

• Estatico - o escalonamento e feito "of-line", ou seja, todas as informacoes sobre as tarefas

devem ser conhecidas para que o escalonador monte a lista de processos escalonaveis

antes do processamento. A execucao de cada processo e feita a partir dessa lista sem ser

permitida alteracoes durante o escalonamento. Os sistemas que implementam essa

carac-teristica normalmente fazem periodicamente uma reorganizacao da lista de processos

para inserir os novos processos que foram criados apos o escalonamento. A lista de

pro-cesso e reorganizada de acordo com o tipo de escalonamento utilizado (prioridade, menor

job primeiro etc.). O termo reescalonamento foi evitado para nao confundir com a

pre-empcao de um processo. Este termo foi utilizado anteriormente para indicar que um

pro-cesso foi interrompido e enviado para o final da fila de propro-cessos em espera.

• Dinamico - o escalonamento e feito "on-line" no momento que cada processo e criado,

mesmo que ja existam processos em execucao. ou seja. as decisoes de escalonamento sao

tomadas em tempo de execucao baseadas nos requerimentos correntes. Os processos vao

sendo posicionados dinamicamente na lista de processos de acordo com o tipo de

escalo-namento utilizado (prioridade, menor job primeiro etc.). Essa caracteristica e vantajosa,

pois nao ha a necessidade de interromper o escalonamento para a reorganizacao da lista

de processos. Entretanto, e gasto algum tempo para a verificacao de novos processos e a

sua insercao na fila de processos;

2.8.4. Quanto ao conhecimento das informacoes sobre os processos

• Deterministico - o escalonamento e determinado antes da execucao dos processos. E

pos-sivel conhecer todas as informacoes sobre as tarefas antes de suas execucoes e inferir

como elas vao se comportar durante o tempo em que terao o controle da CPU. A maioria

dos sistemas apresenta essa caracteristica, mesmo sabendo-se que uma vez que o

proces-so assume o controle da CPU, nao e garantido que tudo ocorrera conforme o previsto.

principalmente com relacao ao tempo de processamento;

• Nao deterministico - as informacoes sobre os processos nao podem ser conhecidas antes de suas execucoes. 0 escalonamento neste caso precisa ser dinamico para que os novos

processos sejam escalonados em tempo de execucao. Alguns sistemas especificos como

(43)

Capitulo 2 - Escalonamento de tarefas 17

essa caracteristica, pois dependendo da realimentacao, podem ser gerados novos

proces-sos ou alteradas as informacoes dos procesproces-sos existentes, o que exige uma nova

reorgani-zacao da lista de processos;

2.8.5. Quanto ao compartilhamento da C P U

• Preemptivo - Um processo pode ter seu processamento interrompido antes mesmo do seu

processamento ter terminado, permitindo assim que outro processo utilize a CPU. Isso

pode ocorrer por varios motivos, tais como fim do quantum e requisicao de servico. A

grande maioria dos sistemas implementam essa caracteristica, pois e ela que permite que

uma CPU seja compartilhada por varios processos, tirando o maximo proveito da

maqui-na;

• Nao preemptivo - os processos nao podem ter seu processamento interrompido antes do

seu final. Um processo, apos receber o controle da CPU, so a libera quando o seu

proces-samento chega ao final, mesmo que o processo em execucao faca uma solicitacao de

ser-vice como um acesso a disco, e seja necessario esperar pela resposta dessa solicitacao.

Isso mantem a CPU ociosa, impedido-a de realizar o processamento de um outro

proces-so. Segundo Kopetz (1995, p.492), o escalonamento nao preemptivo e razoavel em um

cenario onde muitas tarefas curtas tern de ser executadas;

2.8.6. Quanto a localizacao

• Centralizado - o escalonamento e feito em um processador dedicado em sistemas

distri-buidos. A central izacao do escalonamento facilita o controle dos processos, evitando

re-dundancia ou desatualizacao;

• Descentralizado - o escalonamento e feito em varios processadores. A principal final

ida-de ida-dessa caracteristica e implementar a tolerancia a falhas no sistema. Com o

escalona-mento descentralizado, se ocorrer algum problema com uma das maquinas que faz o

es-calonamento, nem todo o sistema e afetado, pois ainda existem outros processos em

ou-tras maquinas prontos para serem escalonados. Uma outra vantagem e o ganho de tempo

de escalonamento, pois como os processos estao distribuidos em porcoes menores e

(44)

Capitulo 2 - Escalonamento de tarefas 18

2.8.7. Quanto a adaptabilidade

• Adaptavel - o escalonamento pode se auto modificar de acordo com resultados

anterio-res. Isto significa que em determinada situacao, o escalonamento pode ser feito por

prio-ridade ou por revezamento, de acordo com informacoes obtidas previamente. Em

algu-mas situacoes onde a consistencia nao e garantida ou nao e desejada, um escalonamento

adaptavel passa a ser interessante, pois em um determinado momento pode haver uma

in-cidencia muito grande de processos pequenos com muitas operacoes de E/S, enquanto

num outro momento esses processos sao inexistentes, dando lugar a uma grande

quanti-dade de processos grandes sem operacoes de E/S mas com muito processamento e;

• Nao adaptavel - o escalonamento e sempre o mesmo, mantendo sua estrutura inalteravel.

O escalonamento e realizado de acordo com um determinado tipo, mesmo que a demanda de diferentes processos varie de um periodo para outro. A vantagem deste escalonamento

e a garantia de um mesmo mecanismo, visto que se um usuario interativo precisar, por

exemplo, utilizar o sistema por varias horas do dia e varios dias seguidos, ele deve querer

que o sistema seja consistente, pois e inaceitavel que um processo que foi executado em

segundos passe a ser executado em minutos ou horas.

2.9. O escalonador em tempo real

Ao ser desenvolver um escalonador deve-se considerar os conceitos basicos e os algoritmos

de escalonamento existentes, alem de se poder utilizar as caracteristicas de escalonamento de

acordo com sua finalidade. O desenvolvimento do escalonador proposto nesta dissertacao foi

defmido a partir de estudos realizados sobre o escalonador em tempo real utilizado por Alsina

& Cavalcanti (1997). Eles utilizaram com sucesso um escalonador em tempo real, o qual deu

origem a ideia de se desenvolver um escalonador com procedimentos inteligentes. O

algorit-mo de escalonamento base foi o escalonamento em fila, devido a nao haver necessidade de

preempcao de tarefas, reduzindo bastante a complexidade do mesmo. As caracteristicas mais

importantes incorporadas foram: escalonamento especifico, tempo real inflexivel, dinamico,

deterministico, nao preemptivo, centralizado e nao adaptavel.

O escalonamento deve ser especifico, pois e evidente que ele nao vai tratar de tarefas

de usuarios interativos ou usuarios batch; ele deve tratar de tarefas relacionadas com

(45)

ro-Capitulo 2 - Escalonamento de tarefas 19

botica. O escalonamento em tempo real inflexivel e fundamental para garantir que todas as

tarefas sejam executadas dentro de uma rigorosa restricao de tempo, garantindo o sucessos do

controle e acionamento dos motores.

O escalonamento deve ser dinamico para permitir que durante o escalonamento em

tempo real, seja possivel alterar a ordem de execucao das tarefas a partir de informacoes

ad-quiridas do ambiente. O escalonamento deve tambem ser deterministico visto que as tarefas

sao todas conhecidas. A garantia de que o escalonamento nao sera preemptivo elimina muitos

problemas tradicionais dos sistemas operacionais {"deadlock", condicao de corrida e outros),

pois uma tarefa jamais pode ser interrompida depois que a mesma assume o controle do

pro-cessador.

O fato do escalonamento nao ser preemptivo teve sua importancia evidenciada depois

que analises exaustivas na utilizacao de aplicacoes similares demostraram que o tempo de

execucao das tarefas e pequeno (Alsina & Cavalcanti, 1997), nao havendo problema de tempo

para a execucao do conjunto de tarefas a cada interrupcao. E evidente que o escalonamento

deve ser centralizado pois esse tipo de aplicacao e caracteristico de sistemas centralizados.

Por ultimo, e considerado o escalonamento nao-adaptavel pois, como o escalonamento e

es-pecifico, o tipo das tarefas e conhecido sem a necessidade de mudanca no tipo de

escalona-mento.

Considerando-se todas essas informacoes sobre o escalonamento, definiu-se as

infor-macoes necessarias que devem constar nos descritores das tarefas, ilustradas no Quadro 2.1. O fato do escalonamento ser nao preemptivo, permitiu reduzir significativamente a quantidade

de informacoes no descritor de tarefas: id, identifica a tarefa. E usado tambem para localizar o

codigo da tarefa a ser executado; st guarda o estado da tarefa. Os possiveis estados que as

tarefas podem assumir sao: pronta, bloqueada e executando; tempo indica o intervalo de

tem-po que a tarefa deve esperar para ser executada; freq indica a frequencia de reativacao da tarefa, isto e, a tarefa pode ser ativada varias vezes com o intervalo de ativacao igual a freq.

Quadro 2.1 - Descritor de tarefas.

5 Termo utilizado para indicar que uma tarefa e novamente acionada, diferindo de reescalonamento que

(46)

Capitulo 2 - Escalonamento de tarefas 20

Descritor(/V/, st, tempo, freq)

id - identificacao da tarefa st - estado atual da tarefa

tempo - intervalo de tempo para acionamento

freq - freqiiencia de reacionamento

O Escalonador de tarefas em tempo real, utilizado em (Cavalcanti et al., 1994), (Lima

et al., 1994) e (Alsina & Cavalcanti, 1997), foi projetado para manipular as tarefas de acordo

com as informacoes do descritor apresentado no Quadro 2.1. O algoritmo simplificado desse

escalonador e descrito no Quadro 2.2. A cada interrupcao de tempo que ocorre a cada milisse-gundo, o escalonador verifica o tempo de espera de cada tarefa; se esse for igual a zero, o

es-calonador muda o estado (st) da tarefa para 1 e atualiza o tempo com o conteudo de freq, que

define a freqiiencia de reativacao.

Quadro 2.2 - Algoritmo simplificado do escalonador em tempo real.

Faca {

Para i = 1 ate totaltarefas Se (tempo == 0) st= 1; tempo = freq; Senao tempo = tempo - 1; S e ( s t = = l )

Localiza codigo da tarefa;

st = -1;

Executa tarefa; Fim para

}(a cada interrupcao)

Nesse sistema, todas as tarefas sao criadas com st igual a 0 (bloqueadas); durante o

es-calonamento, elas podem passar para o estado pronta (st == I)6 ou para o estado executando

(st == -I). Caso o tempo seja diferente de zero, entao o escalonador decrementa o tempo de

uma unidade. Cada unidade representa 1 ms, visto que o escalonador e executado a cada 1 ms.

Isso permite que as tarefas sejam programadas para serem ativadas de acordo com um tempo

predefinido em ms. Em seguida, o escalonador verifica o estado da tarefa (st); se esse for

6 O sinal == e utilizado nesta dissertacao para representar a operacao de igualdade em oposicao ao sinal = que

(47)

Capitulo 2 - Escalonamento de tarefas 21

igual a 1, ou seja pronta, ele localiza o codigo da tarefa para execucao, muda o estado da

mesma para -1 (executando) e executa a tarefa.

Todas as tarefas sao sempre mantidas em uma unica lista de tarefas, independente do

estado de cada uma delas. Este procedimento foi adotado devido ao numero total de tarefas do

sistema ser pequeno e a mudanca dos descritores das tarefas de uma lista para outra consumir

muito tempo de processamento.

2.10. Conclusao

Apresentou-se neste capitulo a definicao de um escalonador de tarefas para uma aplicacao

robotica. Evidenciou-se que os conceitos de tarefa e processos sao tidos por muitos autores

como conceitos similares. Entretanto, para o autor desta dissertacao, e possivel diferencia-los,

Referências

Documentos relacionados

[r]

Fonte: IDC, 2015 (Inquérito a 467 organizações portuguesas que possuem alguma presença na Internet)..

Figura 3 - Sistema de geração tipo inversor central. Para que seja possível o fluxo de potência dos painéis para a rede, é necessário que o valor da tensão da associação série

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Apresenta-se neste trabalho uma sinopse das espécies de Bromeliaceae da região do curso médio do rio Toropi (Rio Grande do Sul, Brasil), sendo também fornecida uma chave

Analysis of relief and toponymy of the landscape based on the interpretation of the military topographic survey: Altimetry, Hypsometry, Hydrography, Slopes, Solar orientation,

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

l Embora o homem circuncisado esteja mais protegido das doenças de transmissão sexual, se ele for HIV positivo pode passar o vírus para a mulher através do líquido que sai do