[pt] COMPARTILHAMENTO SEGURO DE REGISTROS EM LINGUAGES DE PROGRAMAÇÃO DINÂMICAS
[pt] Linguagens de programação dinâmicas estão cada vez mais populares e já foram utilizadas para desenvolver uma ampla gama de aplicações. Enquanto isso, processadores multi-núcleo se tornaram padrão, mesmo em computadores pessoais e dispositivos móveis. Dessa forma, os programadores precisam recor...
| Autor: | |
|---|---|
| Tipo de recurso: | tesis doctoral |
| Estado: | Versión publicada |
| Fecha de publicación: | 2016 |
| País: | Brasil |
| Institución: | Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) |
| Repositorio: | Repositório Institucional da PUC-RIO (Projeto Maxwell) |
| Idioma: | inglés |
| OAI Identifier: | oai:MAXWELL.puc-rio.br:25871 |
| Acceso en línea: | https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=25871&idi=1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=25871&idi=2 http://doi.org/10.17771/PUCRio.acad.25871 |
| Access Level: | acceso abierto |
| Palabra clave: | [pt] COMUNICACAO [pt] CONCORRENCIA [pt] COMPARTILHAMENTO [pt] MULTITHREADING [pt] LUA [en] COMMUNICATION [en] CONCURRENCE [en] SHARE [en] MULTITHREADING [en] LUA |
| Sumario: | [pt] Linguagens de programação dinâmicas estão cada vez mais populares e já foram utilizadas para desenvolver uma ampla gama de aplicações. Enquanto isso, processadores multi-núcleo se tornaram padrão, mesmo em computadores pessoais e dispositivos móveis. Dessa forma, os programadores precisam recorrer ao paralelismo para aprimorar o desempenho de seus programas. Entretanto, a programação concorrente permanece difícil. Adicionalmente, a despeito de avanços em linguagens estáticas, avaliamos que linguagens dinâmicas ainda carecem de suporte adequado à concorrência. Nesta tese argumentamos que o principal problema da programação concorrente é a imprevisibilidade - comportamentos inesperados de programas, tais como retornar valores descabidos. Observamos que a imprevisibilidade é mais provável quando memória compartilhada é utilizada. Consequentemente, propomos um modelo de comunicação para concorrência que visa disciplinar o compartilhamento de memória em linguagens dinâmicas. O modelo é baseado nos padrões emergentes de concorrência de não compartilhar dados por padrão, imutabilidade de dados e tipos e efeitos (que transformamos em capacidades). Ele demanda a utilização de objetos compartilháveis para compartilhar dados e utiliza troca de mensagens para comunicação entre fluxos de execução. Objetos compartilháveis podem ser compartilhados apenas para leitura ou para leitura e escrita, o que permite acesso individual de escrita e acessos paralelos de leitura. Implementamos um protótipo em Lua para experimentar com o modelo na prática, bem como para conduzir uma avaliação geral de desempenho. A avaliação demonstra que há benefícios na utilização de memória compartilhada, mas ao mesmo tempo revela que os controles utilizados para assegurar a disciplina ocasionam um impacto de desempenho. |
|---|