Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. 2. 3. Fazer teste: Semana 6 - Atividade Avaliativa PERGUNTA 1 1. Marque a alternativa que compare corretamente dois ou mais ambientes de execução. Um ambiente baseado em pilhas requer o acompanhamento das referências durante a execução. Já o ambiente de execução totalmente dinâmico não precisa desse recurso. Linguagens funcionais precisam de uma forma mais geral de ambiente de execução. Nesse caso, o ambiente de execução baseado em pilhas é mais adequado do que os demais. Todos os ambientes de execução são muito parecidos. Os criadores das linguagens os escolhem por afinidade com as interfaces. Um ambiente de execução totalmente estático dá suporte para que variáveis locais recebam novas posições a cada ativação. Isso não acontece em ambientes de execução baseados em pilhas. Apesar da complexidade adicional do ambiente de execução totalmente dinâmico, a estrutura básica de um registro de ativação continua igual à do ambiente de execução baseado em pilhas. 1,25 pontos PERGUNTA 2 1. No código (em C): int main() { int *c; while (1) { int *c = malloc(sizeof(int)); } return 0; } há um problema de estouro de memória, isto é, o espaço de memória reservado para o programa termina. A região do ambiente de execução em que esse erro acontece é: a. a região de código. b. a memória RAM. c. a pilha. d. a região de memória. e. o heap. 1,25 pontos PERGUNTA 3 1. Sobre a organização da memória durante a execução de programas, marque a alternativa que rotula corretamente as afirmações entre verdadeiras (V) e falsas (F). ( ) Na maioria das linguagens compiladas, não é possível efetuar alterações na área de código durante a execução. ( ) Todos os endereços de código são computáveis durante a compilação. ( ) O ponto de entrada de cada procedimento e função é conhecido durante a compilação. ( ) Em C, é necessário alocar espaço na área de dados globais para funções e procedimentos globais. V; F; V; F. V; V; V; V. F; V; F; V. F; F; F; V. V; V; V; F. 1,25 pontos PERGUNTA 4 1. Um programa compilado organiza sua memória em um ambiente de execução. Dentro desse ambiente, a memória é segmentada em algumas regiões. Quais são essas regiões? Espaço para código, espaço para variáveis globais/estáticas, pilha e heap. Uma CPU, teclado, mouse e monitor. Linguagens de programação, compilador e sistema operacional. Pilha, lista ligada, heap e tabela de símbolos. Um vetor ordenado através do algoritmo mergesort. 1,25 pontos PERGUNTA 5 1. Marque a alternativa que descreve corretamente uma característica da organização de memória durante a execução de programas. A área de memória utilizada para a alocação de dados dinâmicos pode ser organizada em uma área de pilha e uma área de heap, com a área de pilha usada para alocação dinâmica que não obedece ao protocolo FIFO e nem ao LIFO. A área de memória utilizada para a alocação de dados dinâmicos pode ser organizada em uma área de pilha e uma área de heap, com a área de heap usada para dados cuja alocação ocorre de forma LIFO. área de memória utilizada para a alocação de dados dinâmicos pode ser organizada em uma área de pilha e uma área de heap, com a área de pilha usada para alocação dinâmica que não obedece ao protocolo LIFO. Na máquina-alvo, costuma-se incluir uma pilha de processador para ativações de procedimentos. registro de ativação de procedimentos contém memória alocada para os dados globais de um procedimento ou função na medida em que é ativado. 1,25 pontos PERGUNTA 6 1. Marque a alternativa que descreve corretamente uma característica de um ambiente de execução totalmente dinâmico. Em ambientes totalmente dinâmicos, os registros de ativação precisam ser liberados dinamicamente, em instantes pré-determinados durante a execução. Quando um ambiente de execução baseado em pilhas é adequado, o ambiente de execução totalmente dinâmico é a melhor escolha. Uma desvantagem de ambientes totalmente dinâmicos é a incapacidade de lidar com áreas inacessíveis de memória em instantes arbitrários durante a execução. Assim como ambientes baseado em pilhas, o ambiente totalmente dinâmico requer o acompanhamento das referências durante a execução Ambientes totalmente dinâmicos podem retirar os registros de ativação apenas quando todas as referências a eles tiverem desaparecido. 1,25 pontos PERGUNTA 7 1. Em determinadas situações, não sabemos ao certo quanta memória será usada em uma variável, por isso recorremos à alocação dinâmica de memória. Porém, isso gera uma desvantagem. Qual é essa desvantagem? Causar falha de segmentação mais frequentemente. Gerar programas mais rápidos, que usam memória dinâmica. Gerar programas mais lentos, pois é necessário administrar a memória dinâmica. Gerar programas menores, que otimizam o uso de memória em tempo de execução. Gerar programas maiores, que usam mais memória. 1,25 pontos PERGUNTA 8 1. Em chamadas de função, tipicamente temos a passagem de parâmetros por valor e a passagem de parâmetros por referência. O que é passagem por valor? Uma forma de passar parâmetros na qual é não é criada uma cópia da variável passada, de forma que a subrotina ou subprograma consegue modificar seu valor original. Uma avaliação atrasada. Uma forma de passar parâmetros na qual é criada uma cópia da variável passada, de forma que a subrotina ou subprograma não consegue modificá-la. Uma forma de passar parâmetros na qual é não é criada uma cópia da variável passada, de forma que a subrotina ou subprograma não consegue modificar seu valor original. Uma forma de passar parâmetros na qual é criada uma cópia da variável passada, de forma que a subrotina ou subprograma consegue modificar seu valor original. 1,25 pontos Clique em Salvar e Enviar para salvar e enviar. Clique em Salvar todas as respostas para salvar todas as respostas. Salvar e Enviar
Compartilhar