Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Desenvolvimento de aplicações com Pthreads
Exercícios
1. A maior parte das tarefas que são executadas na atualidade envolve o
processamento de uma grande quantidade de dados. Com o crescimento da
tecnologia, foram construídos computadores com mais poder de processamento,
surgindo, assim, o conceito de paralelismo. Um thread estabelece um processo
leve, conduzido por meio de um fluxo sequencial de controle que atua ligado a
determinado programa.
A respeito do thread, considere as seguintes afirmativas e classifique-as em V
(verdadeiras) ou F (falsas):
( ) Um thread, em suma, é uma unidade de uso da CPU que abrange informações de
identificação (ID).
( ) Um processo com diversos threads poderá executar também diversas tarefas
simultaneamente.
( ) Entre as características de um thread, temos parâmetros de escalonamento e
tamanho da pilha.
( ) No processo tradicional, há somente um segmento de controle, que executa
várias tarefas simultaneamente.
Assinale a alternativa que indica a sequência correta.
Resposta correta.
A. V – V – V – F.
O thread define um processo leve que é conduzido por meio de um fluxo sequencial de
controle que atua atrelado a um programa específico. Representa uma unidade básica de
utilização da CPU, incluindo informações de identificação (ID), um contador de programa,
um conjunto de registradores e uma pilha.
Os  processos   tradicionais   têm um segmento  de  controle,  mas,   se  um processo   tiver
vários threads de   controle,   será   capaz   de   executar   várias   tarefas   ao  mesmo   tempo,
possibilitando a criação de modelos de programação.
Cada thread tem um identificador, um conjunto de registradores (incluindo o contador de
programa) e um conjunto de características, que são armazenados em uma estrutura. As
características incluem tamanho da pilha, parâmetros de escalonamento e outros itens
necessários para a utilização do thread.
2. Foram surgindo algumas desvantagens relacionadas com os threads, pois os
fabricantes passaram a desenvolver versões próprias de threads, trazendo
dificuldades aos desenvolvedores na criação de aplicativos portáteis devido às
diferenças das implementações. Portanto, foi necessária uma interface de
programação, possibilitando, assim, o aproveitamento dos recursos dos threads. O
Posix (do inglês portable operating system interface) é um conceito readaptado
de thread, criado especialmente para sistemas operacionais com base no Unix.
A respeito do thread no ambiente Unix, escolha a alternativa correta.
Você acertou!
C. No ambiente Unix, o thread é capaz de compartilhar os recursos do processo com os
demais threads.
O   Posix   funciona   como   um   conjunto   de   padrões   implementado   para   criar   e
manipular threads, tendo como objetivo atuar como uma API padrão.
No  ambiente  Unix,   um thread existe   dentro  de  um processo  e  utiliza   os   recursos  do
processo em que está alocado; funciona por meio de um fluxo de controle independente,
desde   que   seu   processo   pai   e   o   sistema   operacional   existam;   duplica   somente   os
recursos essenciais necessários para ser considerado escalonável; pode compartilhar os
recursos do processo com outros threads, mas cada um segue funcionando de maneira
independente; se o processo pai for encerrado, a Pthread também será encerrada.
3. Quando um thread é criado, a sua execução costuma ocupar um espaço na CPU
temporariamente, não importando a arquitetura de sistema em que funciona ou da
sua padronização. Nessa conjuntura, quando uma aplicação multithread é
executada, um thread ocupa diferentes estados durante o seu ciclo de vida. Em
relação às Pthreads, todo o processo que abrange sua operação é o mesmo.
A respeito das estruturas e das funções de Pthreads, avalie as afirmativas a seguir:
I. As funções essenciais para a execução do thread são determinadas pela
biblioteca pthreads.2.
II. A biblioteca pthread_join tem a função de criar novos threads e direcionar o ID
como valor da função.
III. A biblioteca pthread_t (struct) tem como função levar as informações a respeito
da estrutura da Pthread.
É(são) verdadeira(s) a(s) afirmativa(s):
Você acertou!
B. III.
Sempre que uma aplicação multithread é executada, um thread passa a ocupar diferentes
estados   no   decorrer   do   seu   ciclo   de   vida:   em   execução,   bloqueado   (aguardando
recursos), pronto para ser executado ou finalizado. Todas as funções necessárias para a
execução de um thread são definidas de acordo com a biblioteca pthreads.h, que define
as estruturas e funções usadas.
Na estrutura das Pthreads, entre suas bibliotecas e funções, temos a pthread_join, cuja
função é que, quando uma Pthread aguardar que outro finalize, ele chama essa função.
Na biblioteca pthread_t (struct), são carregadas informações sobre a estrutura da Pthread.
4. Como as Pthreads de um processo atuam em conjunto, existem algumas
situações em que é necessário que o código escrito pelo mesmo programador
alterne entre a execução. Nesses casos, há duas chamadas que podem ser usadas
pelas Pthreads na programação.
A respeito dessas duas chamadas, avalie as afirmativas a seguir:
I. O pthread_attr_destroy tem a função de retirar a estrutura de atributos de
um thread, sem afetar os demais.
II. O pthread_attr_destroy efetua a liberação da memória por meio da adição da
estrutura de atributos ao thread.
III. O pthread_attr_init bloqueia a estrutura de atributos relacionada com
um thread e o ativa com os valores padrão.
IV. Com a função pthread_attr_init, podem ser alterados os valores quando a
estrutura dos atributos é manipulada.
É(são) verdadeira(s) a(s) afirmativa(s):
Você acertou!
D. I e IV.
Como as Pthreads de um processo trabalham em conjunto, em alguns casos, é preciso
que o  código  escrito  pelo  mesmo programador  alterne entre  a execução.  Para   tanto,
existem duas chamadas que podem ser usadas pelas Pthreads na programação, sendo
elas:  pthread_attr_init,  que cria  a  estrutura de atributos  associada com um thread e o
inicializa com os valores padrão, sendo que os valores podem ser modificados sempre
que a estrutura dos atributos for manipulada através dos campos; pthread_attr_destroy, a
função que remove a estrutura de atributos de um thread e a memória é liberada, sem
que os demais sejam prejudicados.
5. Os threads são usados para que diversas atividades sejam executadas ao mesmo
tempo no mesmo processo e as Pthreads foram criadas para assegurar que, nos
sistemas Unix, determinadas bibliotecas sejam usadas para chamar essas funções.
A respeito da utilização de thread, considere as seguintes afirmações e classifique-
as em V (verdadeiras) ou F (falsas):
( ) O processo de identificação dos usuários novos que estão conectados ao
sistema é realizado com o uso de thread.
( ) O reconhecimento da ocorrência da conexão de usuários é feito pelo sistema
operacional com a utilização de thread.
( ) Uma das rotinas básicas executadas por meio da utilização de thread é o envio
de mensagens entre os usuários.
Assinale a alternativa que contenha a sequência correta:
Você acertou!
A. V – V – V.
Existem algumas rotinas básicas que são executadas pelo sistema operacional  com a
utilização de thread,  como as  tarefas que dizem respeito  à  identificação dos usuários
novos que estão conectados ao sistema.
As   tarefas   de   recebimento   e   envio   de  mensagens   entre   os   usuários   também   são
realizadas com o uso de thread.
A  identificação  de  eventos  em que os  usuários  se  conectam ou se  desconectam do
sistema é executada com o uso de thread.
Na maioria das vezes, essas tarefas são executadas simultaneamente. Entretanto, nem
sempre um único processo é capaz de suportá-las. Quando um processo é segmentado
em Pthreads,  se  torna  mais  eficiente.  Um deles  trata  das  conexões ativas;outro,  do
gerenciamento de mensagens; e outro, da identificação de novas contas.
	Desenvolvimento de aplicações com Pthreads
	Exercícios

Mais conteúdos dessa disciplina