Buscar

1ª Lista de Exercícios Sistema Operacional II

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 9 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 9 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 9, do total de 9 páginas

Prévia do material em texto

1ª Lista de Exercícios Sistema Operacional II
Exercícios Memória Real
1. Em sistemas hierárquicos de memória é envolvida certa quantidade de sobrecarga quando se movimentam programas entre os vários níveis da hierarquia. Discuta por que os benefícios derivados desses sistemas justificam a sobrecarga envolvida.
R: Essa movimentação pode consumir recursos de sistemas que, se não isso, poderiam ser utilizados de maneira mais produtiva. Para aumentar a eficiência, sistemas concorrentes contem unidades de hardware denominadas controladoras de memoria que executam operações de transferência de memoria sem causar praticamente nenhuma sobrecarga computacional. Esse nível adicional, denominado cache, é muito mais rápido do que a memoria principal e, nos sistemas de hoje, está normalmente localizado em cada processador. Um processador pode referenciar programas e dados diretamente de seu cache. A memoria cache é extremamente cara em comparação com a memoria principal e, portanto, usam-se apenas caches relevantes pequenos.
2. Por que a busca sob demanda permaneceu como senso comum por tanto tempo? Por que as estratégias de busca antecipada estão recebendo mais atenção hoje do que recebiam há décadas?
R: Na paginação por demanda apenas as páginas que o processo acessa são carregadas para a memória física. O bit de válido/inválido indica se a página já está presente namemória ou se ainda está no disco. A busca antecipada de instruções é uma técnica utilizada nos processadores dos microcomputadores atuais, de forma a acelerar a execução de um programa. As instruções são pré-carregadas da memória principal para a memória cachê.
3. Discuta como ocorre a fragmentação de memória em cada um dos esquemas de organização de memória apresentados.
R: Para que seja possível a multiprogramação, podemos dividir a memória em n partições (provavelmente de tamanhos diferentes). Os jobs serão colocados em filas de entrada associadas à menor partição capaz de armazená-lo. Pelo fato de usarmos partições de tamanho fixo, todo o restante de espaço de memória não utilizado pelo job será perdido. Este desperdício de memória é chamado de fragmentação interna (espaço de memória perdido dentro da área alocada ao processo). Por outro lado, imagine que exista duas partições livres, uma de 25 e outra de 100 Kbytes, não contíguas. Nesse instante é criado um processo de 110 Kbytes que não poderá ser carregado em memória pela forma como ela é gerenciada. Este problema ocasiona o que chamamos de fragmentação externa (memória perdida fora da área ocupada por um processo).
4. Em que circunstâncias as sobreposições são úteis? Quando uma seção da memória principal pode sofrer sobreposição? Como a sobreposição afeta o tempo de desenvolvimento do programa? Como asobreposição afeta a capacidade de modificação de um programa?
R:
Implementada nos primeiros Sistemas Operacionais e ainda existentes em alguns sistemas monoprogramáveis.
Memória dividida em duas partes, Sistema Operacional e programa do usuário.
O programador tem controle sobre toda a memória principal, podendo acessar qualquer posição da memória, inclusive onde está residente o Sistema Operacional.
Um mecanismo de proteção utilizado é delimitar a área do Sistema Operacional que delimita a área do mesmo.
Fácil implementação e código reduzido, porém Ineficiência no uso do processador e da memória, pois apenas um usuário pode dispor desse recurso.
Programas limitados ao tamanho da memória disponível.
Overlay (sobreposição) – Solução encontrada para dividir o programa em partes (módulos), de forma que pudessem executar independentemente uma da outra, utilizando uma mesma área de memória.
As definições das áreas de Overlay são de responsabilidade do programador através de comandos específicos da linguagem utilizada.
5. Discuta as motivações da multiprogramação. Quais características de programas e máquinas tomam a multiprogramação desejável? Em quais circunstâncias a multiprogramação é indesejável?
R: A multiprogramação nada mais é que manter diversos processos na memória, e essa memória precisa ser dividida de maneira eficiente para que possamos manter o númeromáximo de processos. Existem diversas técnicas para gerenciar memória que variam de acordo com o hardware do processador.
Multiprogramação com Partições Fixas: A maneira mais simples de implementar a T para cada programa alocado.
Multiprogramação com Partições Variáveis: Nesse modelo, o tamanho das partições é ajustado de acordo com as necessidades dos processos. Os espaços livres na memória física são mantidos pelo sistema operacional em uma lista, chamada de lista de lacunas. Quando um processo é criado essa lista é percorrida em busca de uma lacuna de tamanho maior ou igual ao requisitado pelo processo, se a lacuna possuir um tamanho maior do que o necessário será criado uma nova lacuna com a porção extra, dessa forma, o processo receberá o tamanho exato de que necessita.
6. Estratégias de posicionamento determinam em que lugar da memória principal os programas e dados que chegam devem ser carregados. Suponha que um job que esteja esperando para começar a executar tenha requisitos de memória que possam ser atendidos imediatamente. O job deve ser carregado e iniciar a execução imediatamente?
R: Sim 
7. Cobrar por recursos em sistemas de multiprogramação pode ser complexo.
a) Em um sistema dedicado, o usuário normalmente é cobrado pelo sistema inteiro. Suponha que em um sistema de multiprogramação somente um usuário esteja correntemente no sistema. Ele deve sercobrado por todo o sistema?
R: Não, porque os desenvolvedores criaram compiladores, montadores e carregadores de realocação. Essas ferramentas produzem um programa realocável que pode executar em qualquer partição disponível que seja grande o suficiente para conter aquele programa.
b) Sistemas operacionais de multiprogramação geralmente consomem substanciais recursos de sistema, pois gerenciam ambientes multiusuários. Os usuários devem pagar por essa sobrecarga ou ela deve ser 'absorvida' pelo sistema operacional?
c) A maioria das pessoas concorda que a cobrança pela utilização de sistemas de Computador deve ser justa, mas poucas podem definir precisamente o que é 'justiça'. Outro atributo de esquemas de cobrança, mais fácil de definir, é a previsibilidade. Queremos saber se, quando um job custa uma certa quantia para ser executada uma vez, executá-lo novamente em circunstâncias similares custará aproximadamente a mesma quantia. Suponha que em um ambiente de multiprogramação cobremos pelo tempo de relógio normal, ou seja, o total real de tempo envolvido na execução do job desde o início até a conclusão. Esse esquema resultaria em encargos previsíveis? Por quê? 
8. Discuta as vantagens e desvantagens de alocação não contígua de memória.
R: É impossível alocação contígua de memória que não desperdice espaço. Imagine que a memória é dividida em blocos fixos bempequenos (como ela realmente é) por questão de exemplo vou dividi-la em blocos de 2MB tamanho da memória 100MB, e você quer gravar arquivos de forma contígua nela, entra um arquivo de 5MB na memória... Ela vai ocupar 3 blocos, devido não ter como se ocupar meio bloco... Imagine que ela ta 80% lotada e é apagado um arquivo lá do meio da memória que ocupa uns 20% dela, imagina se o arquivo não pudesse ser fragmentado e gravar aonde desse, um arquivo que ocupa 30% da memória não poderia ser alocado nesse cenário, devido aos arquivos serem contíguos e poderem ocupar só aqueles 20% que restava antes daquele arquivo ser apagado. E tradicionalmente o arquivo contíguo apresenta a vantagem do acesso a ele ser muito facilitado, tudo que ele precisa está à volta dele, por isso o Windows apresenta o desfragmentador de disco para melhora de performance, para economia do espaço vago ele grava alguns arquivos de forma fragmentada para melhorar a distribuição do espaço vago e oferece a opção de rejuntar os arquivos em disco para o acesso dele ser mais eficiente, se tratando de HD, reduz os movimentosque o braço do HD precisa fazer para acessar algo.
9. Muitos projetistas acreditam que sistemas operacionais devam sempre receber um status de 'mais confiável'. Alguns projetistas acham que mesmo os sistemas operacionais devam sofrer restrições, particularmente na sua capacidade dereferenciar certas áreas da memória. Discuta os prós e os contras de permitir que o sistema operacional acesse toda a faixa de endereços reais de um sistema de computador o tempo todo.
10. Desenvolvimentos em sistemas operacionais ocorreram geralmente de modo evolucionário, e não revolucionário. Descreva, para cada uma dessas transições, as motivações primárias que levaram projetistas de sistemas operacionais a produzir o novo tipo de sistema com base no antigo.
a) Sistemas monousuário dedicados para multiprogramação.
R: Porque os sistemas monousuários desperdiçavam uma quantidade considerável de recursos de computação e processos típicos consumiam muito tempo do de processador, dai projetistas perceberam que podiam aumentar ainda mais a utilização do processador implementando sistemas de multiprogramação nos quais diversos usuários disputavam simultaneamente os recursos do sistema. 
b) Sistemas de multiprogramação por partição fixa com tradução e carregamentos absolutos para sistemas de multiprogramação por partição fixa com tradução e carregamento relocalizáveis. 
R: Essa restrição resultava em desperdício de memoria. Se um job estivesse pronto para executar e a partição do programa estivesse ocupada, os jobs tinha de esperar, mesmo que houvesse outras partições disponíveis Para superar o problema de desperdício de memoria, os desenvolvedores criaram compiladores,montadores e carregadores de realocação. Essas ferramentas produzem um programa realocável que pode executar em qualquer partição disponível que seja grande o suficiente para conter aqueles programas.
c) Multiprogramação por partição fixa para multiprogramação por partição variável.
R: multiprogramação por partição fixa impõe restrições a um sistema que resultam na utilização ineficientes de recursos, por exemplo, uma partição pode ser muito pequena para acomodar um processo que esteja esperando, ou tão grande que o sistema perde recursos consideráveis devido ao à fragmentação interna. Projetistas decidem que uma melhoria obvia seria permitir que um processo ocupasse somente o espaço que precisasse (até a quantidade disponível na memoria principal). Esse esquema é denominado multiprogramação por partição variável.
d) Sistemas de alocação de memória contígua para sistemas de alocação de memória não contígua.
R: Porque a memoria contigua limitava o tamanho dos programas que poderiam ser executados em sistema. Uma maneira de o projetista superar essa limitação da memória era criar sobreposições que permitia ao sistema executar programas maiores do que a memoria principal.
e) Sistemas monousuário dedicados com transição manual de job para sistemas monousuário dedicados com sistemas de processamento em lote de fluxo único.
R: Sistemas monousuário dedicavam-se aum único job por um tempo maior do que o tempo de execução do job. O Jobs em geral exigia consideravelmente tempo de preparação durante o qual o sistema operacional era carregado, projetistas perceberam que, se pudessem automatizar vários aspectos da transição de job-para-job poderiam reduzir consideravelmente a quantidade de tempo desperdiçada entre Jobs, o que levou ao desenvolvimento de sistemas de processamento em lote.
11. Qual a função da MMU na gerência de memória? 
R: A MMU é um módulo de hardware que faz o mapeamento entre os endereços lógicos (end. da memória virtual) e os endereços físicos da memória (RAM), ou seja, é um dispositivo que transforma endereços virtuais em endereços físicos. Para isso, a MMU normalmente traduz número de páginas virtuais para número de páginas físicas utilizando uma cache chamada Translation Lookaside Buffer. Na figura abaixo temos ilustrado o mecanismo de tradução dos endereços.
12. O que é o TLB?
R: TLB (do inglês Translation Lookaside Buffer) é um dispositivo de hardware 
implementado a partir de uma pequena memória associativa que fica integrada na Unidade de Gestão de Memória de um processador.
13. Explique a importância do TLB no desempenho da MMU.
R: A TLB é uma espécie de cache, incluído no processador, que permite que ele mantenha as tabelas de endereços de algumas páginas pré-carregados, o que melhoraconsideravelmente a velocidade de acesso à memória, quando os dados necessários não são encontrados no cache L1 e L2. Quanto maior é a TLB, mais endereços podem ser armazenados e maior é o ganho.
14. Qual o tipo de fragmentação apresentado pelos métodos de gerência de memória baseados em partições fixas e por partições variáveis?
R: Nas partições fixas tem a fragmentação interna onde cada programa fica em uma partição que normalmente são maiores que o necessário, partições variáveis é a fragmentação externa que deixa espaços pequenos quando o programa vai terminando não deixando memória suficiente para outro programa.
15. Qual a diferença entre endereço físico e virtual?
R: Endereço virtual é gerado pela CPU e o físico é da memória RAM. Endereços virtuais são transformados em endereços físicos no momento de execução dos processos.
16. Qual a diferença entre monoprogramação e multiprogramação?
R: Multiprogramação é quando a memória esta fazendo vários processos e monoprogramação é quando está em um único processo por vez.
17. Explique o que é a atividade de swapping e diga como ela pode prejudicar o desempenho do sistema computacional.
R: Faz uma transferência temporária entre a memória principal e a secundaria só que pode demorar muito e consome muito a CPU.
18. Quando é mais interessante utilizarmos o algoritmo best-fit? E o worst-fit?
R: O best-fit,quando se deseja um processo mais rápido, e o worst-fit quando deseja criar o maior espaço possível.
19. Considerando partições fixas de memória de 100K, 500K, 200K, 300K e 600K (nessa ordem), como cada um dos algoritmos first-fit, best-fit e worst-fit colocaria processos de212K, 417K, 112K e 426K (nessa ordem)? Calcule a quantidade de espaço desperdiçado em cada algoritmo.
R: FIRST-FIT = 1033 K.
BEST-FIT = 433 K.
WORST-FIT = 1133K.
20. Considere um sistema cuja gerência de memória é feita através de partições variáveis. Inicialmente, existem as seguintes páginas: 10K, 4K, 20K, 18K, 7K, 9K, 12K e 13K, nessa ordem. Desenhe a memória com suas páginas e mostre como as páginas serão ocupadas pelos processos de tamanho: 5K, 10K, 15K, 8K, 3K, 7K e 6K. Considere essa ordem de solicitação. Simule os seguintes algoritmos:
a. First-fit
b. Best-fit
c. Worst-fit
d. Next-fit
FIRST-FIT
5k
10k
15k
8k
3k
7k
6k
7
6
2
7
3
1
8
7
3
15
10
10
4
5
5
BEST-FIT
5k
10k
15k
8k
3k
7k
6k
7k
6k
5k
7k
1k
8k
2k
5k
3k
15k
20k
1k
3k
10k
WORST-FIT
5k
10k
15k
8k
3k
7k
6k
5k
8k
9k
3k
3k
6k
7k
8k
10k
15k
5k
4k
3k
7k
NEXT-FIT
5k
10k
15k
8k
3k
7k
6k
13k
12k
3k
6k
7k
10k
8k
5k
15k
1k
3k
5k
5k

Continue navegando