Uma máquina virtual para uma linguagem concorrente intermédia

Detalhes bibliográficos
Autor(a) principal: Silva, Roberto Rosa da
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