Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTRUTURA DE DADOS 7a aula Lupa Disciplina: CCT0826 - ESTRUTURA DE DADOS 1 Questão Complete os espaços na afirmativa abaixo e assinale a alternativa que apresenta as respostas corretas: O escalonamento .................... é do tipo.................., em que o processo que chegar primeiro na fila de pronto é o escolhido para ser executado. SJF (Shortest-Job-First), preemptivo. FIFO, não-preemptivo. Circular, não-preemptivo. LIFO, não-preemptivo. Por prioridades, preemptivo. Respondido em 21/09/2020 20:12:56 Explicação: O algoritmo de escalonamento FIFO (First in, first out, em português: "O primeiro a entrar é o primeiro a sair, sigla PEPS), ou FCFS(First come, first served, em português: "O primeiro a chegar é o primeiro a ser servido") é conhecido popularmente por Algoritmo de Fila Simples, é uma estrutura de dados que apresenta o seguinte critério: O primeiro elemento a ser retirado é o primeiro que tiver sido inserido, é um algoritmo de escalonamento não preemptivo que entrega a CPU os processos pela ordem de chegada. Ele executa o processo como um todo do inicio ao fim não interrompendo o processo executado até ser finalizado, então quando um novo processo chega e existe um ainda em execução ele vai para uma fila de espera. Esta fila de espera nada mais é do que uma fila que organiza os processos que chegam até eles serem atendidos pela CPU. Neste escalonamento todos os processos tendem a serem atendidos (por isso evita o fenômeno do starvation) ao menos que um processo possua um erro ou loop infinito. O loop infinito irá parar a máquina, pois com o FIFO não terá como dar continuidade a execução dos processos que estão aguardando na fila de espera. O algoritmo FIFO não garante um tempo de resposta rápido pois é extremamente sensível a ordem de chegada de cada processo e dos antecessores (se existirem) e se processos que tendem a demorar mais tempo chegarem primeiro o tempo médio de espera e o turnaround acabam sendo aumentados. 2 Questão javascript:diminui(); javascript:aumenta(); Qual estrutura de dados é mais adequada para armazenar em um sistema operacional os processos que estão prontos para utilizar o processador? Lista Pilha Árvore Grafo Fila Respondido em 21/09/2020 20:12:52 Explicação: Pode se ter uma fila de processos para a CPU (processador), visto que o primeiro processo a chegar à fila será atendido primeiro e sairá da fila primeiro, o que faz a lógica FIFO, que rege a fila. Observe a característica linear do problema. Por tudo isso, a resposta é fila. Lista : linear e não segue FIFO. Insere-se em qualquer posição e retira-se de qualquer posição ou se mantém a ordem, se for ordenada. Pilha : segue LIFO Árvore e Grafo : estrutura de dados não linear. 3 Questão Para organizar o acesso dos processos que demandam recursos do computador (uso da CPU, acesso ao disco rígido e a outros dispositivos de Entrada e Saída), o Sistema Operacional gerencia essas demandas colocando os processos requisitantes em: Pilhas Structs Listas Árvores Filas Respondido em 21/09/2020 20:14:55 Explicação: Um exemplo de aplicação de fila : fila de processos para CPU. O primeiro processo a chegar fará uso da CPU. O mesmo para os dispostivos de I/O. 4 Questão IFMT - Técnico em Tecnologia da Informação - 2013 Considere a função insere(x: inteiro), que recebe como parâmetro um número inteiro e o insere em uma Fila, e ainda, a função remove(), que retira um valor de uma Fila. Dada a Fila [3-4-6-8-10], executam-se os comandos na ordem: insere(1), insere(2), remove(). Após a execução desses comandos, qual será a Fila resultante? [2-1-3-4-6-8] [3-4-6-8-10] [3-4-6-8-10-1] [2-3-4-6-8-10] [4-6-8-10-1-2] Respondido em 21/09/2020 20:16:20 Explicação: Temos a fila inicialmente 3 4 6 8 10 Após inserir 1, a fila ficará : 3 4 6 8 10 1 Após isnerir 2 : 3 4 6 8 10 1 2 Após uma remoção : 4 6 8 10 1 2 5 Questão Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente desenfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo. struct Fila { in t v[100], inicio, fim; } ; Fila F; F. inicio = 0; F.fim = -1; void desenfileirar(Fila &F) { if (F.fim == -1 && F.inicio == 0) cout << "Não há agentes para retirar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } } void desenfileirar(Fila &F) { if (F.inicio > F.fim) cout << "Não há agentes para retirar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; } } void desenfileirar(Fila F) { cout << "Removido o agente " << F.v[F.inicio]; F.inicio--; } void desenfileirar(Fila &F) { if (F.inicio > F.fim) cout << "Não há agentes para retirar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } } void desenfileirar(Fila F) { if (F.inicio > F.fim) cout << "Não há agentes para retirar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } } Respondido em 21/09/2020 20:18:01 Gabarito Comentado 6 Questão Considerando que uma fila seqüencial utiliza dois apontadores para indicar suas posições de final e início da estrutura, supondo que a fila foi criada com os apontadores apontando para a posição zero do vetor, qual das alternativas a seguir pode caracterizar uma fila vazia? Quando o apontador de início apontar para zero. Quando o apontador de final apontar para zero. Quando os apontadores de final e início apontarem para zero. Quando o apontador de final menos um (final-1) for igual ao inicio. Quando o apontador de posição final for igual ao início. Respondido em 21/09/2020 20:26:24 Explicação: Suponha que nossa fila mora em um vetor fila[0..N-1]. (A natureza dos elementos do vetor é irrelevante: eles podem ser inteiros, bytes, ponteiros, etc.) Digamos que a parte do vetor ocupada pela fila é fila[p..u-1] . https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4107577239&cod_hist_prova=205808548&pag_voltar=otacka https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4107577239&cod_hist_prova=205808548&pag_voltar=otacka O primeiro elemento da fila está na posição p e o último na posição u-1. A fila está vazia se p == u e cheia se u == N. 7 Questão Analisando a figura abaixo, marque a alternativa correta que apresenta o tipo de estrutura de dados utilizado. Fila Struct Matriz Pilha Hash Respondido em 21/09/2020 20:27:09 Explicação: Na fila insere-se no fim e retira-se do início. Gabarito Comentado 8 Questão https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4107577239&cod_hist_prova=205808548&pag_voltar=otacka https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4107577239&cod_hist_prova=205808548&pag_voltar=otacka Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma deespionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente enfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo. struct Fila { in t v[100], inicio, fim; } ; Fila F; F. inicio = 0; F.fim = -1; void enfileirar(Fila F, int codigo) { F.fim++; F.v[F.fim] = codigo; } void enfileirar(Fila &F, int codigo) { F.v[F.fim] = codigo; F.fim++; } void enfileirar(Fila &F, int codigo) { if (F.fim == 99) cout << "Não há espaço na firma para mais agentes. " << endl; else F.fim++; F.v[F.fim] = codigo; } void enfileirar(Fila &F, int codigo) { if (F.fim == 99) cout << "Não há espaço na firma para mais agentes. " << endl; else { F.fim++; F.v[F.fim] = codigo; } } void enfileirar(Fila F, int codigo) { if (F.fim == 100) cout << "Não há espaço na firma para mais agentes. " << endl; else { F.fim++; F.v[F.fim] = codigo; } } Respondido em 21/09/2020 20:31:11 Gabarito Comentado https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4107577239&cod_hist_prova=205808548&pag_voltar=otacka https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4107577239&cod_hist_prova=205808548&pag_voltar=otacka javascript:abre_colabore('38403','205808548','4107577239');
Compartilhar