Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lista de Exercícios de Sistemas Operacionais – 09/03/2017 Individual ou em dupla. Postar no Moodle as respostas. Alunos: LUIS ANTONIO VILLAR REIS. 1. Diferencie Sistema Operacional Monotarefa de Sistema Operacional Multitarefa Os sistemas monotarefas realizam uma única tarefa num tempo T, ermitia aexecução de apenas um programa por vez. Para executar outro programa, o usuário precisa encerrar a aplicação que estava sendoutilizada. Caracteriza-se por dedicar todos os recursos do sistema para uma única aplicação; como exemplo o MS-DOS. Os sistema multitarefa simula a execução de mais de uma tarefa simultaneamente em um tempo T, rpartindo a utilização do processador entre varias tarefas, os recursos são compartilhados entre usuários e aplicações., de forma que o sistema operacional gerencia acesso aos periféricos, processador e memória de ordenadamente. O sistema operacional mantém uma lista dos processos (ou programas) que estão sendo executados. Quando cada processo da lista é iniciado, ele recebe do sistema operacional uma prioridade e como a CPU somente pode processar um processo de cada vez, existe um escalonador para ceder o tempo de uso de CPU para cada processo da fila e depois retirar o processo , permitindo assim um revrezamento na utilização do processador.. Estesistemas ser classificados como Monousuário ou Multiusuário, de acordo com o número de usuários que interagem no sistema. A direferença entre os sistemas Monotarefas e Multitarefas basicamente é a capacidade de execução de diversos programas ao mesmo tempo. 2. Diferencie Sistema Operacional Monousuário de Sistema Operacional Multiusuário. Todo S. O. Multitarefa é Multiusuário? Sistemas operacionais monousuário, ou seja num instante de tempo T o computador atende somente um usuário mesmo podendo atender a vários aplicativos de forma simultanea; são os típicos sistemas domesticos mais antigos como Windows 95, ou sistemas modernos de aparelhos moveis como o sistema Android. Já os sistema multiusuário são aqueles que permitem acesso simultâneo de múltiplos usuários ao computador, um exemplo calssico disso são os sistemas de tempo compartilhado, ou seja , é claro que, para tanto, o sistema operacional multiusuário também tem de ser multitarefa. Lembrando que NEM todo sistema Multitarefa é multiusuario, pois como dito acima sistema monousuários tambme poderiam executar tarefas simultaneas. 3. Diferencie sistema operacional batch, sistema operacional online e sistema operacional de tempo real. Os sistemas batch possuem processamento de programs em lote com a característica codificar os comandos (instruçõespara o sistema) em cartões ou fita perfurados que eram então colocados em uma leitora para que osistema operacional pudesse ler e interpretar seqüencialmente. Este sistema não exige interação do usuário com a aplicação, e embora sendo ultrapasssado esse tipo de sistema ainda encontra sua aplicabilidade onde possam ser executadas tarefas de sgundo plano que não necessitem de inteveção do ususário. Sistemas de tempo compartilhado ou online permitem que diversos programas sejam executados simultaneamente, isso é possível devido a divisão do tempo do processador em pequenos intervalos, conhecidos como ‘‘time-slice’’, ele vai compartilhando os recursos do sistemas com os ususários, e são aqueles que interagem com os ususários mas não tem prazo de tempo para responder ao ususário. Os sistemas operacionais de tempo real utiliza o processador o tempo que for necessário ou até que apareça algo mais prioritário, em outras palavras, a importância ou prioridade de execução de um programa é definida pela própria aplicação e não pelo sistema operacional. possuem parametros de respostas prefixados para atender tarefas criticas que necessitam de dados com tempos de respostas extremamente rapidos, sua característica essencial é ter um comportamento temporal previsível (ou seja, seu tempo de resposta deve ser conhecido no melhor e pior caso de operação).A estrutura interna de um sistema operacional de tempo real deve ser construída de forma a minimizar esperas e latências imprevisíveis, como tempos de acesso a disco e sincronizações excessivas. Ex: refinarias de petróleo, tráfego aéreo, usinas nucleares e de energia 4. Entre os sistemas operacionais com múltiplos processadores, diferencie sistemas fortemente acoplados de sistemas fracamente acoplados. Sistemas fortemente acoplados possuem comunicação entre os processadores mais integrada . estão interligados atraves do compartilhamento da memoria com uma comunicação muita rapida entre os processadores, que trabalham na mesma frequencia. Os sistemas fracamente acoplados se distinguem dos primeiros por possuirem memorias individualizadas, gerenciando seus processadores, memórias e dispositivos de E/S Executam a comunicação entre outros tipos de dispositivos como rede, barramentos mais lentos etc. Eles se comunicam com frequencias diferentes de forma independente um dos outros. Acomunicação entre os processsadores é mais lenta. 5. Quais os componentes principais de um processador? O que faz cada um deles? 1) Contador de programa: Pequena memória que guarda o endereço de memória da próxima instrução a ser executada: a instrução que está no endereço que corresponde ao conteúdo do contador de programa é a próxima instrução que o processador irá executar. 2) Registrador de instruções: Pequena memória que armazena as instruções que serão executadas pelo processador. Como inicialmente todas as instruções estão na memória de instruções, estas precisam ser armazenadas internamente no processador para execução. 3) Decodificador de instruções: Circuito que decodifica, ou seja, descobre o que é a instrução (o que ela faz) e quais os seus operandos. O decodificador de instruções descobre o que tem na palavra de instrução. 4) Banco de registradores: Registradores podem ser entendidos como pequenas memórias que se localizam internamente em processadores. Os registradores que armazenam as variáveis dos algoritmos são chamados de banco de registradores. Existem registradores para armazenar também palavras de instrução (registrador de instruções e algumas informações de controle para o processador, como por exemplo, se uma instrução resultou em resultado negativo. Os processadores possuem tipicamente entre 8 e 128 registradores. 5) Unidade Lógica e Aritmética (ULA): É a unidade executora do processador. A ULA é composta por uma série de circuitos que executam as operações lógicoaritméticas dos processadores: todas as instruções que o processador possui em seu conjunto de instruções devem poder ser executadas na sua ULA. Por exemplo, se o processador possuir uma instrução de multiplicação no seu conjunto de instruções, a ULA deve possuir um circuito multiplicador. Lembre que, como visto na aula 3, mesmo que determinada instrução não esteja presente no conjunto de instruções (e portanto não pode executar na ULA) ainda assim o processador é capaz de executa-la. 6) Barramentos de comunicação internos. São os canais de comunicação que existem internamente na arquitetura do processador. Estes canais permitem que os componentes internos do processador consigam se comunicar, o que é essencial para a execução de instruções, 6. Para que serve a memória cache? Compare as ordens de grandeza da memória cache com a memória principal, nos computadores pessoais atuais, com relação ao espaço de armazenamento e velocidade de acesso. A memória cache é uma pequena quantidade de memória SRAM (Static RAM) embutida dentro do chip do processador, que se diferenciam das memórias convencionais DRAM (Dynamic RAM) por serem muito rápida e tambḿe infinitamente mais cara. Ela então é utilizidaem pequenas capacidades de maneira esytrategica, snedo responsável por guardar alguns dados mais importantes e frequentemente acessados pelo processador evitando que o mesmo necessite de acessar a memoria principal (DRAM) para carregar os dados. Aa memória cache atua como um intermediário. O trabalho da memória cache é tão importante que, sem ela, o desempenho de um processador pode ser seriamente comprometido. A memória cache é fabricada em megabytes devido ao seu alto custo, já a memória DRAM principal normalmente trabalha com gigabytes devido seu alta comercialização atual. 7. O que é o Pipelining, no contexto de um processador? Tecninca utilizada para executar mais de uma tarefa em tempos simultaneos, de forma enfileirada, sendo executada uma nova tarefa antes da tarefa anterior terminar todos os estagios dela...ou seja a cada estagio (ou etapa) de uma instrução, conforme a mesma avança de etapa, os recursos que executaram essa etapa ao inves de ficar ocioso esperando o inicio da primeira etapa da próxima instrução, já assument a nova instrução começando a realiza-la, em concomitancia com a tarefa antecedente atraves do recusrso de Pipelining já da inicio a primeira etapa da próxima instrução. 8. Em um processador que possui um pipeline com 5 estágios, supondo que cada estágio seja executado em 1 ciclo de clock, quantos ciclos de clock são necessários para completar 50 instruções de máquina? Tendo que o Nº de estagios é igual a 5 e chamdo de E, nº de instruções sendo = 50 e chamado de I e por fim o n º ciclos chamdo de C ; então temos que C = I + (E – 1): Logo C = 50 + (5 – 1) C= 50 + 4 Ciclos de clocks gastos para completar as 50 instruções = 54 ciclos. 9. Diferencie compilador de interpretador. Compilador traduz os codigos antes da execução do programa e por isso é mais rapido em desempenho, e depois cria um programa executavel que sera processado sem a necessidade de tradução para o hardware. Interpretador traduz todo o codigo e contrário do compilador trabalha com o código-fonte escrito como sendo o código objeto, ele traduz o programa linha a linha, o programa vai sendo utilizado na medida em que vai sendo traduzido. 10. Qual o principal motivo para se desenvolver sistemas operacionais que suportam concorrência? A concorrencia é princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis, visto que nos sistemas monopragaramáveis sofriam com limitaçãoes nos quais recursos computacionais como processadores, memórias e dispositivosde entrada e saída eram utilizados de maneira pouco eficiente, limitando o desempenho dessas arquiteturas. Muitos desses recursos de alto custo permaneciam ociosos por longos períodos, havendo um evidente desperdício de recursos do processador e da memória. Comos sistemas multiprogramaveis a concorrencia permitiu o uso constante destes componentes permitindo assim sua evolução tecnologica e consequente aumento da produtividade e sofisticação dos programas que surgiram. 11. Qual a principal função da técnica de buffer? Realizar transferência de dados entre dispositivos de entrada e saída e a memória RAM, a fim de Ganhar tempo na acesso aos dados armazenados em dispositivos mais lentos, resultando na dimiuição da disparidade entre a velocidade de processamento existente entre o processador e o s dispositivos de entrada e saída. 12. Existem dispositivos que não podem ser usados por duas aplicações simultaneamente. Um exemplo é a impressora. É preciso terminar o pedido de impressão de um aplicativo para iniciar a impressão do próximo. Que tipo de solução é usada nos sistemas operacionais atuais para resolver essa questão? Descreva resumidamente o seu funcionamento. Solução denominada spooling, que corresponde a uma fila de impressão gerenciada pelo spolling atraves de um diretorio de armazenamento temporário – como um buffer. Quando um comando de impressão é executado, as informações que serão impressassão antes gravadas em um arquivo em disco ( o spool ) liberando imediatamente o programa para outras atividades. Posteriormente, o sistema operacional se encarrega-se de direcionar o conteúdo para a impressora, e conforme vai terminando cada trabalho de impressão vai liberando o ususário requisitante da impressão que este fique livre para realizar novas tarefas logo após enviar um comando de imprimir ao processador. 13. O que é a reentrância de código e por que ela pode melhorar o desempenho de um sistema? Reentrancia do código é tecnica que disponibiliza na memoria o codigo de determinado aplicativo para que fique disponivel para as varias requisições de processos do mesmo aplicativo que possam ocorrer, sem a necessidade de recarregar novamente o mesmo codigo na memoria, sendo que cada usuário o executa em um ponto diferente, manipulando dados próprios e exclusivos, otimizando o uso da memoria resultante em ganho de performance. 14. O que é uma System Call? Podemos definir uma System Call, ou chamadas de sistemas, como funções e mecanismos de proteção ao núcleo do sistema e de acesso aos seus serviços. Essas chamadas invocam o sistema operacional para que este faça algo, como a criação de um processo. Geralmente, essas tarefas que pedimos para que o sistema operacional faça são bem complexas e que exijam uma permissão maior do sistema, pois geralmente lidam com ferramentas em baixo nível, como gerenciamento de memória, processos e outros recursos que o usuário comum não tem acesso. Exempo classico de system call no Unix: s = mkdir(nome, modo) - Cria uma pasta (diretório) Podemos dividir as chamadas de sistema entre quatro grandes grupos: • Chamadas de sistemas para gerenciamento de processos • Chamadas de sistemas para gerenciamento de diretórios • Chamadas de sistemas para gerenciamento de arquivos 15. Qual a diferença entre um programa e um processo? Processo é o programa em execução, ou seja são módulos executáveis, os quais contêm linhas de código para que a execução do programa seja realizada apropriadamente. Isso quer dizer que o processo é uma lista de instruções contida no codigo fonte do programa, a qual informa ao processador que passos devem ser executados e em quais momentos isso acontece. Programa Executável são os dados necessários para criar um Processo, é uma entidade passiva, que pode ser visto como o conteúdo de um arquivo em disco, enquanto que o processo é uma entidade ativa, possuindo um contador de programa (PC), que especifica a próxima instrução a ser executada, e um conjunto de recursos a ele alocados. 16. Além do código, quais outros tipos de informações são necessários sobre um processo? -as variaveis contidas no codigo; -contexto de hardware = informações que contiam nos registradores no momento da interrupçõa do processo para sua retomada imediata com os valores já ifnormados; -contexto de software informando o identificador do processo = PID , o dono do processo, as permissões do mesmo, sua prioridade de execução, tempo de execução, etc; -Atribuição de memória ao processo; -Inserção do processo na lista de processos que corresponda. Por exemplo na lista de processos prontos. 17. Quais os estados em que um processo pode se encontrar, e quais as transições possíveis de um estado para outro? EXECUÇÃO ( RUNNING ): Um processo é dito em execução quando está sendo processo pela UCP. Há apenas um processo em execução a cada instante em sistemas com uma única UCP; PRONTO ( READY ): É um processo que aguarda para ser executado. São agrupados em listas encadeadas e recebem prioridades de execução. ESPERA ( WAIT ): Aguarda, organizados em listas encadeadas associadas a cada tipo de evento. Serão carregados novamente por algum evento externo ou por algum recurso para prosseguir seuprocessamento. Em alguns sitemas também é conhecido como “bloqueado”. Para realizar a transição entre estes estados existem quatro mudanças de estado que podem ocorrer a um processo, e o sistema operacional escalona os processos escolhendo qual em estado pronto será processado pela UCP da seguinte forma: • DE PRONTO PARA EXECUÇÃO ◦ Após a criação de um processo, o sistema o coloca em uma lista de processos no estado pronto, onde aguarda por uma oportunidade para ser executado; • 5.4.2 DE EXECUÇÃO PARA ESPERA ◦ Um processo passa do estado de execução para o estado de espera em função de eventos gerados por ele mesmo ou por eventos externos; • DE ESPERA PARA PRONTO ◦ Um processo passa do estado de espera para o estado de pronto quando a operação solicitada é atendida ou o recurso esperado é concedido. Um processo no estado de espera terá sempre de passar pelo estado de pronto antes de ser novamente selecionado para execução; • DE EXECUÇÃO PARA PRONTO ◦ Um processo em execução passa para o estado de pronto por eventos gerados pelo sistema, como o término da fatia de tempo que o processo possui para execução. Não necessariamente um processo em estado de espera ou de pronto se encontra na memória principal. Caso não haja espaço, o processo pode ser movido à memória secundária, onde aguardará até o momento de ser novamente processado. 18. O que é uma Máquina Virtual? Em que casos vale a pena utilizá-las? Uma máquina virtual (MV), do original em inglês virtual machine (VM), é uma implementação de ambiente computacional onde pode-se instalar e executar um sistema operacional, atraves de é uma máquina abstrata que tenta ser o mais próximo possível da realidade emulada, dessa forma permite que uma máquina real seja particionada de tal modo que diversos sistemas operacionais possam ser executados ao mesmo tempo dentro dessa maquina real chamda de hospedeira. Esse tipo de implementação é largamente utilizada em: • Consolidação de servidores; em vez de diversos servidores fisicamente diferentes, basta uma máquina com diversas Vms, rodando dentro de umamaquina fisica. Não é por acaso que VMs são populares entre empresas de hosting. • Outra aplicabilidade muito utilizada são os teste para outros sistemas operacionais; uma VM pode ser utilizada, por exemplo, por um programador como máquina de teste para seu programa, sme danificar o sistema principal instalado na maquina real hospedeira.
Compartilhar