Uma máquina virtual para uma linguagem concorrente intermédia
Autor(a) principal: | |
---|---|
Data de Publicação: | 2013 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | http://hdl.handle.net/10451/10264 |
Resumo: | Tese de mestrado em Engenharia Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2013 |
id |
RCAP_ec71f1809fa3b028dd8ca5c4488c4f84 |
---|---|
oai_identifier_str |
oai:repositorio.ul.pt:10451/10264 |
network_acronym_str |
RCAP |
network_name_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
7160 |
spelling |
Uma máquina virtual para uma linguagem concorrente intermédiaMILLinguagem intermédia tipificadaCondições de corridaImpassesMultiprocessadorTeses de mestrado - 2013Tese de mestrado em Engenharia Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2013A necessidade de aumentar o poder de computação exigiu a produção de hardware com maior capacidade de processamento. Esta situação levou os fabricantes a abandonar o modelo tradicional de Von Neumann e a adotar sistemas com múltiplos processadores/ núcleos. Para que o software acompanhasse a evolução do hardware, as linguagens de programação concorrente ganharam protagonismo, mas com este regressaram os problemas bem conhecidos dos sistemas concorrentes e distribuídos, condições de corrida e impasses. O mecanismo mais popular que suporta programação concorrente é o uso de múltiplos fios de execução, que partilham variáveis. Neste contexto, propomos o desenvolvimento de uma máquina virtual para a linguagem MIL que imponha, estaticamente, que programas bem tipificados são livres de condições de corrida e não entrem em impasses. A primeira propriedade é conseguida através da imposição de uma disciplina no uso de trincos através de tipos singulares; a segunda é alcançada através de anotações polimórficas sobre a ordem pela qual os trincos são fechados. O sistema de tipos recusa programas cujos fios de execução dependam, ciclicamente, uns dos outros no fecho de trincos. No entanto, a introdução de anotações sobre trincos pode introduzir uma complexidade desnecessária no processo de geração de código. De forma a resolver este problema propomos um algoritmo para inferir as anotações polimórficas sobre trincos. A inferência faz-se da recolha de restrições locais sobre a ordem pela qual os trincos são fechados. As restrições são passadas a um SMT que averigua a sua consistência. Implementámos o algoritmo e experimentámo-lo extensivamente em programas MIL, nomeadamente, em código de alguma dimensão, obtido através da compilação de programas escritos numa linguagem de objetos concorrentes. Para além disso, pretendemos potenciar a integração da linguagem MIL, quer com linguagens de alto nível que tenham o MIL como alvo de compilação, quer com o desenvolvimento e integração de outras ferramentas, como, depuradores para multiprocessadores.The constant need for computing power required the production of yet more powerful hardware. This induced manufacturers to abandon the traditional Von Neumann model and to embrace systems with multiple processors/nuclei. In order to make the software able to keep the evolution of the hardware, concurrent programming languages come to the rescue, but brought together the well race condition and deadlock problems. The most popular mechanism that supports concurrent programming is the use of multiple threads, on top shared variables. Within this frame we intend to propose the development of a virtual machine for the MIL language able to guarantee that well-typed programs are free from race conditions and avoiding deadlock situations, statically. The first property is achieved the imposing of a discipline on the use of locks (through singleton types); the second is achieved through polymorphic annotations dictating the order locks are closed. Type system refuses programs whose threads depend on each other in acquiring locks cyclically. However, annotating locks can cause unnecessary complexity in the process of code generation. In order to solve this problem we propose an algorithm to infer the polymorphic annotations of locks. The inference is made by collecting of local restrictions by that gather the order locks are acquired. There restrictions are the passed to an SMT solver that ascertains its consistency. We implemented the algorithm and tested it extensively using MIL programs, particularly in big code obtained by compiling program from a concurrent object oriented language into MIL. In addition, we intend to enhance MIL language integration, both with high-level concurrent languages targeting MIL, and with the development and integration with development tools such as, debuggers for multiprocessors.Martins, Francisco Cipriano da Cunha, 1972-Vasconcelos, Vasco Thudichum, 1964-Repositório da Universidade de LisboaSilva, Roberto Rosa da2014-01-23T16:43:12Z20132013-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/10264TID:201291045porinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T15:55:33Zoai:repositorio.ul.pt:10451/10264Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:34:19.127978Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
dc.title.none.fl_str_mv |
Uma máquina virtual para uma linguagem concorrente intermédia |
title |
Uma máquina virtual para uma linguagem concorrente intermédia |
spellingShingle |
Uma máquina virtual para uma linguagem concorrente intermédia Silva, Roberto Rosa da MIL Linguagem intermédia tipificada Condições de corrida Impasses Multiprocessador Teses de mestrado - 2013 |
title_short |
Uma máquina virtual para uma linguagem concorrente intermédia |
title_full |
Uma máquina virtual para uma linguagem concorrente intermédia |
title_fullStr |
Uma máquina virtual para uma linguagem concorrente intermédia |
title_full_unstemmed |
Uma máquina virtual para uma linguagem concorrente intermédia |
title_sort |
Uma máquina virtual para uma linguagem concorrente intermédia |
author |
Silva, Roberto Rosa da |
author_facet |
Silva, Roberto Rosa da |
author_role |
author |
dc.contributor.none.fl_str_mv |
Martins, Francisco Cipriano da Cunha, 1972- Vasconcelos, Vasco Thudichum, 1964- Repositório da Universidade de Lisboa |
dc.contributor.author.fl_str_mv |
Silva, Roberto Rosa da |
dc.subject.por.fl_str_mv |
MIL Linguagem intermédia tipificada Condições de corrida Impasses Multiprocessador Teses de mestrado - 2013 |
topic |
MIL Linguagem intermédia tipificada Condições de corrida Impasses Multiprocessador Teses de mestrado - 2013 |
description |
Tese de mestrado em Engenharia Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2013 |
publishDate |
2013 |
dc.date.none.fl_str_mv |
2013 2013-01-01T00:00:00Z 2014-01-23T16:43:12Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10451/10264 TID:201291045 |
url |
http://hdl.handle.net/10451/10264 |
identifier_str_mv |
TID:201291045 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799134237878648832 |