Avaliação de concorrência e de sincronização no Android

Bibliographic Details
Main Author: Vargas, William Wilbert
Publication Date: 2019
Format: Bachelor thesis
Language: por
Source: Repositório Institucional da UFRGS
Download full: http://hdl.handle.net/10183/213331
Summary: A consolidação do mercado de smartphones ampliou o acesso das pessoas à computação. Um dos principais objetivos das aplicações desenvolvidas para esse mercado é proporcionar uma boa experiência ao usuário. Uma aplicação precisa manter a sua interface fluída com feedback imediato para que possa fornecer uma boa experiência de usuário. A partir do momento que tarefas custosas passam a ser executadas nesse ambiente, essas características somente se tornam possíveis quando a aplicação inicia fluxos de execução concorrentes para que essas tarefas executem em background sem interromper a interação da aplicação com o usuário. Dessa forma, o objetivo desse trabalho é avaliar alguns mecanismos para criação e gerenciamento desses fluxos de concorrência no sistema operacional Android, que é o sistema operacional mais utilizado para smartphones. Para tanto, considera diferentes testes para avaliar mecanismos como Threads, framework HaMeR, Thread Pool, Kotlin Coroutines, IntentServices e AsyncTasks. Considerando características como sua escalabilidade frente aos recursos paralelos de hardware, o uso eficiente de recursos de rede, a sobrecarga introduzida para realizar o gerenciamento de muitos fluxos concorrentes e a sua justiça na distribuição de recursos entre os fluxos concorrentes. Além disso, serão avaliados mecanismos tradicionais de sincronização, como Semáforos, Lock e Condition, blocos Synchronized de Kotlin e variáveis atômicas, no contexto de aplicações móveis para Android. Os resultados obtidos indicam que existe um ganho de escalabilidade no uso de recursos paralelos ao se usar Kotlin coroutines, contudo existe uma alta sobrecarga durante a execução dos fluxos concorrentes ao se usar esse mecanismo. Indicam também que o HaMeR framework tende a ser mais justo para gerenciar um cenário com muitos fluxos competindo pela obtenção de recursos. Indicam ainda que o uso de semáforos introduz uma sobrecarga menor do que os outros mecanismos de sincronização quando tarefas com diferentes funções operam em um ambiente cooperativo.
id UFRGS-2_7a04d68f15d41695d9e0ab8f2057470c
oai_identifier_str oai:www.lume.ufrgs.br:10183/213331
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Vargas, William WilbertGeyer, Claudio Fernando ResinAnjos, Julio Cesar Santos dos2020-09-04T03:40:43Z2019http://hdl.handle.net/10183/213331001117336A consolidação do mercado de smartphones ampliou o acesso das pessoas à computação. Um dos principais objetivos das aplicações desenvolvidas para esse mercado é proporcionar uma boa experiência ao usuário. Uma aplicação precisa manter a sua interface fluída com feedback imediato para que possa fornecer uma boa experiência de usuário. A partir do momento que tarefas custosas passam a ser executadas nesse ambiente, essas características somente se tornam possíveis quando a aplicação inicia fluxos de execução concorrentes para que essas tarefas executem em background sem interromper a interação da aplicação com o usuário. Dessa forma, o objetivo desse trabalho é avaliar alguns mecanismos para criação e gerenciamento desses fluxos de concorrência no sistema operacional Android, que é o sistema operacional mais utilizado para smartphones. Para tanto, considera diferentes testes para avaliar mecanismos como Threads, framework HaMeR, Thread Pool, Kotlin Coroutines, IntentServices e AsyncTasks. Considerando características como sua escalabilidade frente aos recursos paralelos de hardware, o uso eficiente de recursos de rede, a sobrecarga introduzida para realizar o gerenciamento de muitos fluxos concorrentes e a sua justiça na distribuição de recursos entre os fluxos concorrentes. Além disso, serão avaliados mecanismos tradicionais de sincronização, como Semáforos, Lock e Condition, blocos Synchronized de Kotlin e variáveis atômicas, no contexto de aplicações móveis para Android. Os resultados obtidos indicam que existe um ganho de escalabilidade no uso de recursos paralelos ao se usar Kotlin coroutines, contudo existe uma alta sobrecarga durante a execução dos fluxos concorrentes ao se usar esse mecanismo. Indicam também que o HaMeR framework tende a ser mais justo para gerenciar um cenário com muitos fluxos competindo pela obtenção de recursos. Indicam ainda que o uso de semáforos introduz uma sobrecarga menor do que os outros mecanismos de sincronização quando tarefas com diferentes funções operam em um ambiente cooperativo.The consolidation of the smartphone market has expanded people’s access to computation. One of the main goals of the applications developed for this market is to provide a good user experience. An application needs to provide a fluid user interface and immediate feedback in order to provide a good user experience. Once costly tasks are executed in mobile environments, these characteristics only become possible when the application starts concurrent executions streams allowing these tasks to execute in the background without disrupting the application’s interaction with the user. Thus, the purpose of this work is to evaluate some mechanics for creating and managing these concurrent execution streams in the Android operating system, that is the most used operating system for smartphones. Therefore, it considers different tests to evaluate mechanisms such as Threads, HaMeR framework, Thread Pool, Kotlin Coroutines, IntentServices and AsyncTasks. Considering characteristics such as its scalability against parallel hardware resources, the efficient use of network resources, the overhead introduced to perform the management of many concurrent executions and fairness of resource distribution among concurrent execution stream. In addition, traditional synchronization mechanisms, such as Semaphores, Lock and Condition, Kotlin’s Synchronized blocks and atomic variables, will be evaluated in the context of Android mobile applications. The obtained results indicate that there is a scalability gain in the use of parallel resources when using Kotlin coroutines, however there is an introduction of overhead when running concurrent execution streams using this mechanism. They also indicate that HaMeR framework tends to be fairer to managing a scenario with multiples execution streams competing for resources. The results also show that using semaphores introduces a lower overhead than other synchronization mechanisms when tasks with different functions operate in a cooperative environment.application/pdfporAndroidSincronizacaoSistema operacionalInterface de usuárioConcurrencyHaMeR frameworkKotlin coroutinesAvaliação de concorrência e de sincronização no AndroidConcurrency and synchronization evaluation on android info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RSCiência da Computação: Ênfase em Ciência da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001117336.pdf.txt001117336.pdf.txtExtracted Texttext/plain140807http://www.lume.ufrgs.br/bitstream/10183/213331/2/001117336.pdf.txtff4fc6dbbf3e0dd2d530d00485af6470MD52ORIGINAL001117336.pdfTexto completoapplication/pdf1066665http://www.lume.ufrgs.br/bitstream/10183/213331/1/001117336.pdf911b3b7bfaad0aed77c4bd656c47151fMD5110183/2133312024-08-03 06:31:29.370088oai:www.lume.ufrgs.br:10183/213331Repositório InstitucionalPUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.bropendoar:2024-08-03T09:31:29Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Avaliação de concorrência e de sincronização no Android
dc.title.alternative.en.fl_str_mv Concurrency and synchronization evaluation on android
title Avaliação de concorrência e de sincronização no Android
spellingShingle Avaliação de concorrência e de sincronização no Android
Vargas, William Wilbert
Android
Sincronizacao
Sistema operacional
Interface de usuário
Concurrency
HaMeR framework
Kotlin coroutines
title_short Avaliação de concorrência e de sincronização no Android
title_full Avaliação de concorrência e de sincronização no Android
title_fullStr Avaliação de concorrência e de sincronização no Android
title_full_unstemmed Avaliação de concorrência e de sincronização no Android
title_sort Avaliação de concorrência e de sincronização no Android
author Vargas, William Wilbert
author_facet Vargas, William Wilbert
author_role author
dc.contributor.author.fl_str_mv Vargas, William Wilbert
dc.contributor.advisor1.fl_str_mv Geyer, Claudio Fernando Resin
dc.contributor.advisor-co1.fl_str_mv Anjos, Julio Cesar Santos dos
contributor_str_mv Geyer, Claudio Fernando Resin
Anjos, Julio Cesar Santos dos
dc.subject.por.fl_str_mv Android
Sincronizacao
Sistema operacional
Interface de usuário
topic Android
Sincronizacao
Sistema operacional
Interface de usuário
Concurrency
HaMeR framework
Kotlin coroutines
dc.subject.eng.fl_str_mv Concurrency
HaMeR framework
Kotlin coroutines
description A consolidação do mercado de smartphones ampliou o acesso das pessoas à computação. Um dos principais objetivos das aplicações desenvolvidas para esse mercado é proporcionar uma boa experiência ao usuário. Uma aplicação precisa manter a sua interface fluída com feedback imediato para que possa fornecer uma boa experiência de usuário. A partir do momento que tarefas custosas passam a ser executadas nesse ambiente, essas características somente se tornam possíveis quando a aplicação inicia fluxos de execução concorrentes para que essas tarefas executem em background sem interromper a interação da aplicação com o usuário. Dessa forma, o objetivo desse trabalho é avaliar alguns mecanismos para criação e gerenciamento desses fluxos de concorrência no sistema operacional Android, que é o sistema operacional mais utilizado para smartphones. Para tanto, considera diferentes testes para avaliar mecanismos como Threads, framework HaMeR, Thread Pool, Kotlin Coroutines, IntentServices e AsyncTasks. Considerando características como sua escalabilidade frente aos recursos paralelos de hardware, o uso eficiente de recursos de rede, a sobrecarga introduzida para realizar o gerenciamento de muitos fluxos concorrentes e a sua justiça na distribuição de recursos entre os fluxos concorrentes. Além disso, serão avaliados mecanismos tradicionais de sincronização, como Semáforos, Lock e Condition, blocos Synchronized de Kotlin e variáveis atômicas, no contexto de aplicações móveis para Android. Os resultados obtidos indicam que existe um ganho de escalabilidade no uso de recursos paralelos ao se usar Kotlin coroutines, contudo existe uma alta sobrecarga durante a execução dos fluxos concorrentes ao se usar esse mecanismo. Indicam também que o HaMeR framework tende a ser mais justo para gerenciar um cenário com muitos fluxos competindo pela obtenção de recursos. Indicam ainda que o uso de semáforos introduz uma sobrecarga menor do que os outros mecanismos de sincronização quando tarefas com diferentes funções operam em um ambiente cooperativo.
publishDate 2019
dc.date.issued.fl_str_mv 2019
dc.date.accessioned.fl_str_mv 2020-09-04T03:40:43Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/213331
dc.identifier.nrb.pt_BR.fl_str_mv 001117336
url http://hdl.handle.net/10183/213331
identifier_str_mv 001117336
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 Institucional da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Repositório Institucional da UFRGS
collection Repositório Institucional da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/213331/2/001117336.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/213331/1/001117336.pdf
bitstream.checksum.fl_str_mv ff4fc6dbbf3e0dd2d530d00485af6470
911b3b7bfaad0aed77c4bd656c47151f
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br
_version_ 1834472260705976320