Buscar

Lista de Exercícios 1 2017

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais