[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...

Descripción completa

Detalles Bibliográficos
Autor: ALEXANDRE RUPERT ARPINI SKYRME
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
Descripción
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.