Baixe o app para aproveitar ainda mais
Prévia do material em texto
PCS 3216 – Lista de Exercícios para Orientar o Estudo Referente às aulas 01 a 06 Apresentação • Nessa lista foram incluídos diversos exercícios longos, que são projetos, e outros, que envolvem um trabalho grande para serem desenvolvidos por extenso. • Não se espera que sejam todos elaborados completamente, mas que sejam utilizados como roteiro de estudo e como fonte de inspiração para a pesquisa de assuntos a estudar, usando como fontes as notas de aula e as publicações da literatura. • A simples leitura e encaminhamento de respostas para o conjunto de exercícios apresentado deve ser suficiente para fomentar um aprendizado bastante intenso da matéria desta disciplina. Aula 01 1. Conceitualmente, o que são os programas de sistema e quais características os distinguem dos demais? 2. Faça uma síntese do capítulo 1 do livro do Calingaert, acerca dos tradutores de linguagens de programação e seu papel. 3. Resuma o capítulo 1 do livro do Beck, que discorre sobre a relação entre a estrutura das máquinas e os programas de sistema. 4. Após uma inspeção cuidadosa, faça um relato rápido do conteúdo dos cinco primeiros capítulos (cerca de 100 páginas) do livro do Nisan e do Schoeken, nos quais é estudado o computador em suas raízes elétricas e lógicas antes de iniciar o estudo dos seus programas de sistema. Aula 02 1. Elabore um rápido panorama histórico da evolução dos conceitos ligados aos softwares de sistema. 2. Inspirando-se no método de cálculo de quadrados perfeitos, elabore um método complementar, que efetue o cálculo da raiz quadrada aproximada de um número fornecido. 3. Enumerar as características técnicas das máquinas computacionais baseadas no modelo de Von Neumann. 4. Qual é o impacto do conceito de máquina com programa armazenado introduzido pelo modelo de von Neumann? 5. Apresentar um conjunto de características, vantagens e desvantagens da atividade da programação em linguagem de máquina 6. Em que consiste a atividade de carga de programas, qual é o seu papel no sistema computacional e quais são os detalhes técnicos de sua possível implementação? Aula 03 1. O que é, para que serve e como funciona um bootloader? Apresente o contraste entre a operação de um processador sem e com bootloader. 2. Tente descobrir e explique como funciona o programa apresentado no slide 6 desta aula. Como devem estar organizados os dados de entrada para este programa funcionar adequadamente? 3. O slide 15 desta aula afirma a necessidade de intervenção manual, ainda que restrita. Argumente acerca desta afirmação. 4. Explique os passos da preparação de programas para a execução, mostrados no slide 18. 5. Que são dumpers, para que servem e como operam? Como devem estar formatados os dados que eles manipulam? 6. Que são bibliotecas e quais são as características dos programas de que são compostas? Como as bibliotecas participam dos sistemas computacionais e qual é o papel dos seus componentes na composição dos programas do usuário? Aula 04 1. Por que migrar da programação binária para a programação simbólica? 2. Qual é o papel dos mnemônicos na programação simbólica? 3. De que maneira é possível melhorar a legibilidade de programas em linguagem de baixo nível? 4. Que é um montador, para que serve e como funciona? 5. Como é feita a transcrição de programas simbólicos para o código numérico binário equivalente correspondente? 6. Explique com cuidado o papel das tabelas de mnemônicos e de símbolos em um montador. 7. Explique como é feita a montagem de cada um dos tipos de instrução que o montador trata. 8. Quais são as principais características, méritos e deméritos das linguagens simbólicas em relação às linguagens binárias? 9. Relacione os níveis de abstração com as correspondentes linguagens e comente sua forma de processamento. 10. Explique as diferenças que existem entre compiladores e interpretadores Aulas 05 e 06 (slides 1 a 5) 1. Que significa simulação? Até que ponto pode uma simulação fornecer resultados úteis nas suas diversas aplicações? Como se pode aferir a fidelidade dos resultados de uma simulação? 2. Eventos são fenômenos com ocorrência temporal. No contexto da simulação dirigida por eventos, no entanto, nem sempre os elementos que atuam como eventos são de fato fenômenos temporais. Comente e justifique o procedimento. 3. Há uma prática que adota o seguinte: “em simulação vale adotar (quase) qualquer hipótese, desde que os resultados obtidos por seu intermédio possam ser sempre entendidos e interpretados à luz da realidade do fenômeno que se deseja simular, e nunca entrem em conflito com ela.” Comente essa afirmação e avalie suas implicações. 4. Que significa espelhar a simulação dirigida por eventos aos fenômenos que ocorrem em um sistema de interrupção de um sistema computacional? 5. Que é um sistema reativo? Como opera? Trace semelhanças entre seu funcionamento e o de um simulador dirigido por eventos. 6. Observe o teclado de uma máquina de calcular de bolso, das mais simples. Identifique seus comandos e como funcionam. Em seguida, crie uma tabela relacionando o conjunto de todos os possíveis eventos (apertos de botões) com as correspondentes reações da máquina (o que esta faz quando cada botão é apertado). Aulas 05 e 06 (slides 6 e seguintes) 1. Que vem a ser modelagem discreta? 2. O que é um “motor de eventos” e como ele opera nas aplicações de simulação? 3. Explique com cuidado a operação da simulação discreta dirigida por eventos. 4. Quais elementos distinguem simulações de diferentes fenômenos, mas que se utilizam de um mesmo motor de eventos? 5. Explique detalhadamente os processos representados nos desenhos contidos nos slides 7, 8, 9 e 11 desta aula. Repare nos aspectos que eles têm em comum e naqueles em que eles diferem. 6. Quais outros exemplos você acrescentaria aos listados nos slides 10 e 12? 7. Faça uma lista de alguns possíveis níveis de detalhe em que podem ser feitas as modelagens e simulações de processadores, sendo a finalidade do uso do simulador executar programas sem preocupações com detalhes microscópicos dos fenômenos do hardware. 8. Explique a proposta de simulação apresentada nos slides 18 a 23. 9. Estude e entenda cuidadosamente a figura no slide 28. Como pode ser adaptada para a simulação de outra máquina? Proponha a simulação de algum outro processador a cuja descrição você tem acesso. 10. Interprete a listagem da figura 31 (Esse slide foi construído manualmente). Para qualquer outro algoritmo pequeno à sua escolha, codifique um programa simbólico e traduza-o manualmente para linguagem de máquina.
Compartilhar