[en] A COLLABORATIVE MODEL FOR EVENT SCHEDULING USING COROUTINES
Ano de defesa: | 2006 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Tese |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
MAXWELL
|
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=8079&idi=1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=8079&idi=2 http://doi.org/10.17771/PUCRio.acad.8079 |
Resumo: | [pt] Sistemas orientados a eventos estão se tornando cada vez mais presentes em diversos domínios de aplicação. Sistemas gráficos interativos e sistemas distribuídos são exemplos clássicos de cenários favoráveis ao emprego do paradigma de programação orientada a eventos. Atualmente, novos cenários estão surgindo, tais como os ambientes de programação para telefones celulares e, apesar dessa crescente presença em sistemas computacionais, o paradigma de orientação a eventos ainda apresenta uma série de desafios, tais como a elaboração de mecanismos eficientes para o despacho de eventos e o gerenciamento concorrente da execução desses tratadores, otimizando o uso dos recursos computacionais disponíveis. Este trabalho apresenta um modelo para o desenvolvimento de escalonadores de eventos em ambientes de programação orientados a eventos. É feito um estudo dos principais modelos de escalonamento colaborativo dos eventos, utilizando corrotinas em conjunto com outros padrões de projeto estudados. Defende-se um modelo onde o escalonador é responsável por encapsular a complexidade do gerenciamento de múltiplas linhas de execução colaborativas, procurando otimizar o uso de CPU durante chamadas de métodos bloqueantes. O uso de corrotinas permite o fácil gerenciamento dessas múltiplas linhas de execução, através da definição de mecanismos de abstração de controle, que permitem o encapsulamento do contexto de execução e a suspensão e retomada do processamento de forma transparente ao escalonador e às próprias linhas de execução. O fato de ser um modelo de concorrência colaborativa evita problemas com o controle de acessos concorrentes ao estado compartilhado pelas várias linhas de execução gerenciadas pelo escalonador. O modelo é aplicado em dois cenários distintos: uma ferramenta de programação para telefones celulares, que são inerentemente orientados a eventos de processamento assíncrono e apresentam pouco poder de processamento e fortes restrições no uso da memória disponível; e um middleware CORBA escrito em Lua, onde a comunicação entre os objetos distribuídos é toda baseada no modelo de chamada remota de métodos. |