

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
O controle de concorrência em sistemas de banco de dados objetiva garantir que transações executadas simultaneamente produzam resultados equivalentes a alguma execução serial. Anomalias clássicas surgem quando a isolação entre transações é insuficiente. Nesse sentido, assinale a alternativa correta.
O Protocolo de Bloqueio em Duas Fases (2PL) garante a serializabilidade de escalonamentos: na fase crescente, a transação somente adquire bloqueios; na fase decrescente, somente os libera, sem adquirir novos bloqueios.
Uma leitura suja (dirty read) ocorre quando duas transações leem o mesmo item concorrentemente e, a partir dessa leitura, cada uma calcula um novo valor e confirma sua escrita, de modo que a atualização da primeira é silenciosamente sobrescrita pela segunda — que desconhecia a modificação anterior — e definitivamente perdida.
O Protocolo de Bloqueio em Duas Fases (2PL) garante a propriedade de durabilidade das transações, assegurando que os efeitos de toda transação confirmada persistam mesmo após falhas do sistema.
Uma leitura fantasma (phantom read) ocorre quando uma transação lê o mesmo item de dado duas vezes e obtém valores diferentes, porque outra transação o atualizou e confirmou entre as duas leituras.
A propriedade de atomicidade do ACID é a responsável por garantir que transações executadas concorrentemente fiquem completamente isoladas umas das outras, como se executassem em série.
Em sistemas gerenciadores de bancos de dados relacionais, o controle de concorrência busca garantir que transações simultâneas sejam executadas de forma segura, mantendo a consistência dos dados. Em um sistema bancário, a Transação A obteve bloqueio exclusivo sobre o registro da Conta Corrente e aguarda o bloqueio sobre o registro de Transferência, enquanto a Transação B obteve bloqueio exclusivo sobre o registro de Transferência e aguarda o bloqueio sobre o registro da Conta Corrente, formando uma espera mútua indefinida. Com base no conceito de deadlock em bancos de dados relacionais, assinale a alternativa CORRETA.
O cenário descrito caracteriza livelock, que difere do deadlock por não envolver bloqueios mútuos.
O deadlock ocorre apenas em registros da mesma tabela, sendo impossível entre tabelas diferentes.
Para resolver o impasse, o SGBD identifica uma das transações como vítima e a encerra com rollback, liberando os recursos bloqueados para que a outra transação possa prosseguir normalmente.
A estratégia de bloqueio otimista elimina a possibilidade de deadlock, pois verifica conflitos apenas no commit.
O protocolo de bloqueio em duas fases (2PL) elimina a ocorrência de deadlock, impedindo espera circular.
O protocolo de bloqueio em duas fases (Two-Phase Locking ou 2PL) é um dos mecanismos mais usados para garantir serializabilidade de transações em sistemas gerenciadores de bancos de dados (SGBDs) relacionais. Uma característica essencial do protocolo 2PL é que ele
permite que bloqueios sejam adquiridos e liberados em qualquer ordem, desde que não haja conflito direto ou transitivo entre as transações concorrentes.
assegura a ausência de deadlocks entre transações, pois impede que duas transações adquiram bloqueios em ordem inversa.
elimina a necessidade de verificação de conflitos em bloqueios, utilizando o conceito carimbos de tempo (timestamps) para realizar o controle de concorrência entre transações que solicitam o bloqueio do mesmo item de dado.
exige que uma transação passe por uma fase de crescimento, na qual pode adquirir bloqueios, e uma fase de encolhimento, na qual pode liberá-los, sendo proibido adquirir novos bloqueios após começar a liberar.
No modelo ACID de transações em bancos de dados relacionais, o princípio de isolamento garante que transações concorrentes não interfiram de forma incorreta umas nas outras. Assinale a opção em que é indicado o mecanismo que implementa o princípio de isolamento por meio do uso de bloqueios que só são liberados depois da conclusão da fase de crescimento da transação.
snapshot isolation
timestamp ordering
2PL (two-phase locking)
controle de concorrência otimista
MVCC (multiversion concurrency control)
Em um ambiente de banco de dados de um sistema bancário, duas transações são executadas simultaneamente: uma delas adquire bloqueio exclusivo em A e, em seguida, em B; a outra adquire bloqueio exclusivo em B e, em seguida, em A. Ambas só liberam todos os bloqueios ao término da execução.
Nesse cenário, é mais provável que ocorra
starvation da transação mais lenta, sendo a melhor prevenção a implementação de um escalonador baseado em prioridades.
violação de isolamento, sendo a melhor prevenção a elevação do nível de isolamento para serializable.
detecção de deadlock por timeout, sendo a melhor prevenção a imposição de limites de tempo para a aquisição de bloqueios.
deadlock, sendo a melhor prevenção a imposição de uma ordenação total aos recursos, exigindo-se que todas as transações adquiram bloqueios em uma mesma sequência predefinida.
condição de corrida (race condition), sendo a melhor prevenção a utilização de bloqueios compartilhados em vez de exclusivos.


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
De acordo com a técnica de duas fases para controle de concorrência, o bloqueio que possui os estados de read_lock, write_ lock e unlock é o bloqueio
de protocolo.
binário.
de conversão.
compartilhado.
unitário.
Em sistemas de gerenciamento de banco de dados, o controle de concorrência tem como objetivo garantir que múltiplas transações executadas simultaneamente não comprometam a integridade dos dados. Um dos principais protocolos utilizados nesses sistemas é o 2PL (two-phase locking). Acerca desse protocolo, assinale a opção correta.
O protocolo 2PL estrito exige que todos os bloqueios sejam liberados após a fase de crescimento, antes do commit.
O protocolo 2PL estrito garante serializabilidade ao manter os bloqueios até o final da transação.
O 2PL básico impede completamente a ocorrência de interbloqueios (deadlocks).
O protocolo 2PL não se aplica a bancos de dados que utilizam transações distribuídas.
O uso de bloqueios pessimistas elimina a necessidade de controle de concorrência.
Segundo o protocolo do bloqueio em duas fases, utilizado em bancos de dados relacionais, há uma dessas fases em que uma transação pode obter, mas não liberar bloqueios.
Tal fase recebe, especificamente, a denominação de fase de
composição.
imposição.
encolhimento.
transformação.
crescimento.
Ana identificou que, em seu banco de dados, ocorria muita demora na execução de algumas transações específicas, que chegavam até a falhar algumas vezes. Ao efetuar uma análise, viu que não havia controle nas transações ocorridas. Como forma de garantir seus schedules estritos, Ana implementou um bloqueio em 2 fases rigoroso.
Esse bloqueio implementado por Ana fará com que:
uma transação bloqueie todos os itens que ela acessa antes que a transação inicie a execução;
seja executado um downgrade do bloqueio ao se emitir uma operação read_lock(X), mesmo com a transação ainda em execução;
uma transação T não libere nenhum de seus bloqueios exclusivos (gravação) até depois de confirmar ou abortar;
seja gerado um rótulo de tempo, que será usado para garantir a serialização das transações;
uma transação T não libere nenhum de seus bloqueios (exclusivo ou compartilhado) até depois de confirmar ou abortar.
No contexto de gerenciamento de processos e recursos pelo sistema operacional do computador, analise a situação a seguir.
Dois processos, “A” e “B”, querem enviar para a impressora um arquivo que está em um pen-drive, estando esses recursos disponíveis. “A” solicita e consegue acesso à impressora. “B” solicita e consegue acesso ao arquivo. Agora, “A” solicita acesso ao arquivo, mas é negado até que “B” o libere. Porém, “B”, agora, solicita a impressora, que também é negada, até que “A” a libere. Assim, os dois processos são bloqueados.
A situação descrita mostra a ocorrência de
fila.
pilha.
deadlock.
preempção.
interrupção.


Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Dentre os protocolos utilizados para o tratamento de bloqueios está o protocolo de bloqueio em duas fases, denominadas fases de crescimento e encolhimento, sendo certo que, na fase de
crescimento, a cada novo bloqueio obtido, há a liberação de um bloqueio obtido anteriormente.
crescimento, uma transação pode liberar um único bloqueio.
crescimento, uma transação pode obter bloqueios, mas não os liberar.
encolhimento, uma transação pode obter, no máximo, um novo bloqueio.
encolhimento, os bloqueios obtidos são agrupados em um único bloqueio.
O design responsivo busca melhorar a experiência dos usuários no uso da internet para dispositivos diversos como PC, smartphones, tablets, geladeiras, banheiras e qualquer dispositivo que acesse a internet. Acerca das medidas escaláveis utilizadas no design responsivo, é correto afirmar:
o Ems (em) é uma unidade escalável, usada para dimensionar a fonte, devendo-se considerar que 1 em é igual ao tamanho atual da fonte do elemento-pai.
a porcentagem (%) é uma unidade de medida escalável que se baseia sempre no tamanho da fonte atual para calcular o seu percentual em qualquer contexto no qual for aplicada.
ponto (point) é uma unidade de medida escalável muito utilizada para CSS de impressão.
pixel (px) é uma unidade de medida escalável que baseia sempre o tamanho do pixel na resolução de tela.
Considerando os fundamentos de engenharia de software. Um sistema Web, em uma abordagem que se baseie em desenvolvimento e entregas iterativas, composto a partir de componentes reusáveis, poderá ser inviável para um sistema de sistemas, em que, o detalhamento das especificações das interações do sistema necessitam estar especificadas antes, a fim de que cada um dos sistemas possa ser desenvolvido em separado. O acima exposto enseja que haja fundamentos de engenharia que são aplicáveis e questões mais particulares, porém, existem fundamentos de engenharia de software que se aplicam a todos os tipos de sistemas de software.
Assinale a opção que contem estes fundamentos.
1 - Devem ser desenvolvidos em um processo gerenciado e compreendido. 2 - Confiança e desempenho são importantes para todos os tipos de sistema. 3 - É importante entender e gerenciar a especificação e os requisitos de software 4 - Você deve fazer o melhor uso possível dos recursos existentes.
1 - Devem ser desenvolvidos em um processo orçamentários e competitivo. 2 - Atenção constante na reusabilidade e coesão. 3 - É importante entender e gerenciar a especificação e os requisitos de software 4 - Você deve fazer o melhor uso possível dos recursos existentes.
1 - Devem ser desenvolvidos em um processo gerenciado e competitivo. 2 - Atenção constante na reusabilidade e coesão. 3 - É importante entender e gerenciar a especificação e os requisitos de software 4 - Você deve fazer o melhor uso possível dos recursos existentes.
1 - Devem ser desenvolvidos em um processo gerenciado e competitivo. 2 - Atenção constante na reusabilidade e coesão. 3 - É importante entender e gerenciar recursos humanos e a especificação e os requisitos de software 4 - Você deve fazer o melhor uso possível dos recursos existentes.
Para tentar administrar a complexidade inerente aos sistemas de software, emergiu um conceito chamado Independência Funcional. Esse conceito está intimamente ligado a modularidade, ocultação de informações e abstração. Em sistemas de software, a Independência Funcional pode ser medida através de dois critérios: coesão e acoplamento.
Assinale a alternativa que define adequadamente tais critérios.
Coesão é uma medida da força funcional relativa de um módulo. Em outras palavras, a coesão mede o grau com que as tarefas executadas por um único módulo se relacionam entre si. Acoplamento é uma medida da interdependência relativa entre os módulos. Para sistemas de software orientados a objetos, pode-se definir acoplamento como sendo o grau com o qual classes estão conectadas entre si.
Para software orientado a objetos, acoplamento pode ser conceituado como sendo o quanto uma classe encapsula atributos e operações que estão fortemente relacionados uns aos outros. Para sistemas de software orientados a objetos, pode-se definir coesão como sendo o grau com o qual classes estão conectadas entre si.
Acoplamento é uma medida da interdependência relativa entre os módulos. Para sistemas de software orientados a objetos, pode-se definir acoplamento como sendo o grau com o qual classes estão conectadas entre si. Coesão é uma medida da interdependência relativa entre os módulos.
Acoplamento é uma medida da força funcional relativa de um módulo. Em outras palavras, o acoplamento mede o grau com que as tarefas executadas por um único módulo se relacionam entre si. Coesão é uma medida da interdependência relativa entre os módulos. Para sistemas de software orientados a objetos, pode-se definir coesão como sendo o grau com o qual classes estão conectadas entre si.
Analise o seguinte conceito.
“Situação que dois ou mais usuários (ou processos) se autobloqueiam devido a não liberação de recursos concorrentes, onde, cada um, separadamente, espera indefinidamente que o outro finalize o processamento, criando um impasse. Portanto, é uma situação em que duas ou mais transações se encontram em estado de espera simultânea, cada uma esperando que uma outra finalize o processamento para poder prosseguir”.
A denominação desse conceito e o termo técnico que o provoca são, respectivamente:
deadlock e bloqueio.
bloqueio e deadlock.
bloqueio e inconsistência.
inconsistência e bloqueio.
deadlock e inconsistência.