Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA, E TECNOLOGIA DO CEARÁ FÁBIO SOUZA FREITAS Sistemas Operacionais Lista 01 - Atividade avaliativa CEDRO-CEARÁ 2020.2 https://classroom.google.com/u/1/c/MTY1MzU2NjU2MDM1 FÁBIO SOUZA FREITAS Sistemas Operacionais Lista 01 - Atividade avaliativa Trabalho apresentado ao curso de Bacharelado em Sistema de Informação do Instituo Federal de Educação, Ciência, Tecnologia do Ceará- Campus Cedro como requisito parcial para conclusão da primeira etapa da disciplina de Sistemas Operacionais. Professor: Paulo Roberto Pessoa Amora CEDRO-CEARÁ 2020.2 https://classroom.google.com/u/1/c/MTY1MzU2NjU2MDM1 1. Diga duas razões pelas quais caches são úteis. Que problemas eles re- solvem? Que problemas eles causam? Se um dispositivo de cache tem o mesmo tamanho do dispositivo a ser cacheado, existe a necessidade de haver o cache? Argumente contra e a favor. 2. Como a distinção entre modo núcleo e modo usuário funciona como uma forma rudimentar de segurança do sistema? 3. Falamos muito sobre um SO fazer uso eficiente dos recursos computa- cionais. Quando é apropriado para o SO ignorar esse prinćıpio e ”des- perdiçar” recursos? Por que esse sistema não está realmente desperdiçando? 4. Qual o maior obstáculo que um desenvolvedor deve superar enquanto de- senvolve um SO de tempo real? 5. Quais operações abaixo devem ter priviĺegios elevados? • Modificar o valor do timer • Ler o relógio • Limpar a memória • Enviar uma instrução de TRAP • Desligar interrupções • Modificar entradas na tabela de dispositivos • Mudar entre modo usuário e modo núcleo • Acessar dispositivo de I/O 6. Qual o propósito das chamadas de sistema? 7. Quais são as 5 principais atividades do SO em relação ao gerenciamento de processos? 8. Que chamada de sistema deve ser executada por um interpretador ou shell para iniciar um novo processo? 9. Como um sistema poderia ser projetado para permitir uma escolha entre SOs para iniciar? O que o programa de bootstrap necessitaria fazer? Respostas 1. Caches visam obter uma velocidade de memória mais rápidas, e ao mesmo tempo disponibilizar no sistema uma memória de grande capacidade, a custo similar de memória de semicondutores mais baratas. Os dados no cache precisam ser mantidos estáveis com os dados nos componentes. Quando houver mudanças no valor dos dados o cache também precisara ser atualizado, esse é um grande problema em sistemas com multiprocessadores e conhecido por coerência de cache. O armazenamento que tende a ser mais rápido tende a ser mais caro, pois isso um componente poderá ser removido por um cache que tenha tamanhos iguais se ambos tiverem as capacidades iguais para salvar o estado e se cache for alcançável. 2. Modo Kernel - No modo Kernel, o código em execução tem acesso completo e irrestrito ao hardware subjacente. Ele pode executar qualquer instrução da CPU e fazer referência a qualquer endereço de memória. O modo kernel é geralmente reservado para as funções de nível mais baixo e mais confiáveis do sistema operacional. As falhas no modo kernel são catastróficas; eles irão parar o PC inteiro. Modo de usuário - No modo de usuário, o código em execução não tem capacidade de acessar diretamente o hardware ou a memória de referência. O código em execução no modo de usuário deve delegar às APIs do sistema para acessar o hardware ou a memória. Devido à proteção proporcionada por este tipo de isolamento, as falhas no modo de usuário são sempre recuperáveis. A maior parte do código em execução em seu computador será executada no modo de usuário. 3. Sistemas operacionais monousuários devem maximizar o uso do sistema para o usuário. Uma GUI (Interface gráfica do utilizador) pode desperdiçar ciclos de CPU (Unidade Central de Processamento) mas deve otimizar a interação do usurário com o sistema. 4. O maior obstáculo é manter o sistema operacional dentro das restrições de tempo fixadas de um sistema de tempo real, pois se não completar uma tarefa em um determinado período de tempo, poderá causar uma queda de todo o sistema. 5. Modificar o valor do timer, limpar a memória, desligar interrupções, modificar entradas na tabela de dispositivos, acessar dispositivo de I/O. 6. Uma chamada de sistema é são como portas de entrada para se ter acesso as rotinas. Também fornecem uma interface com os serviços disponibilizados por um sistema operacional. 7. As 5 principais atividades de um sistema operacional com relação à gerência de processos: Executar o escalonamento de processos e threads nas CPUs. Criar e excluir processos de usuário do sistema. Suspender e retomar processos. Fornecer mecanismos de sincronização de processos Fornecer mecanismos de comunicação entre processos. 8. No sistema Unix para iniciar um novo processo o shell executa uma chamada de sistema fork. Em seguida, o programa selecionado é carregado na memoria por meio de uma chamada de sistema exec e é executado. 9. Na maioria dos sistemas de computação um pequeno bloco de código conhecido como programa bootstrasp localiza o kernel carrega-o na memória principal e inicia sua execução. Alguns sistemas de computação, como Pcs, usam um processo de dois passos em que um carregar bootstrap simples acessa um programa de inicialização mais complexo em disco que, por sua vez carrega o kernel. Esse sistema de inicialização fica responsável de escolher qual sistema operacional será utilizado.
Compartilhar