40
Capítulo 1 Introdução Exercícios práticos 1.1 Quais são as três finalidades principais de um sistema operacional? 1.2 Quais são as principais diferenças entre sistemas operacionais para computadores de grande porte (mainframes) e computadores pessoais? 1.3 Liste as quatro etapas que são necessárias para se executar um programa em uma máquina completamente dedicada. 1.4 Enfatizamos a necessidade de um sistema operacional fazer uso eficiente do hardware de computação. Quando é apropriado que o sistema operacional deixe de lado esse princípio e “desperdice” recursos? Por que esse tipo de sistema não é realmente desperdiçador? 1.5 Qual é a principal dificuldade que um programador precisa contornar na escrita de um sistema operacional para um ambiente de tempo real? 1.6 Considere as diversas definições de sistema operacional. Considere se o sistema operacional deverá incluir aplicações como navegadores Web e programas de correio. Argumente tanto contra como a favor, e dê suporte à sua resposta. 1.7 Como a distinção entre o modo kernel e o modo usuário funciona como uma forma rudimentar de sistema de proteção (segurança)? 1.8 Quais das seguintes instruções deverão ser privilegiadas? a. Definir o valor do timer. b. Ler o clock. c. Limpar a memória.

exercicios_todos_capitulos

Embed Size (px)

Citation preview

Page 1: exercicios_todos_capitulos

Capítulo 1

Introdução Exercícios práticos 1.1

Quais são as três finalidades principais de um sistema operacional?

1.2

Quais são as principais diferenças entre sistemas operacionais para

computadores de grande porte (mainframes) e computadores pessoais?

1.3

Liste as quatro etapas que são necessárias para se executar um programa

em uma máquina completamente dedicada.

1.4

Enfatizamos a necessidade de um sistema operacional fazer uso eficiente

do hardware de computação. Quando é apropriado que o sistema operacional

deixe de lado esse princípio e “desperdice” recursos? Por que esse tipo

de sistema não é realmente desperdiçador?

1.5

Qual é a principal dificuldade que um programador precisa contornar na

escrita de um sistema operacional para um ambiente de tempo real?

1.6

Considere as diversas definições de sistema operacional. Considere se o

sistema operacional deverá incluir aplicações como navegadores Web e

programas de correio. Argumente tanto contra como a favor, e dê suporte à

sua resposta.

1.7

Como a distinção entre o modo kernel e o modo usuário funciona como uma

forma rudimentar de sistema de proteção (segurança)?

1.8

Quais das seguintes instruções deverão ser privilegiadas?

a.

Definir o valor do timer.

b.

Ler o clock.

c.

Limpar a memória.

Page 2: exercicios_todos_capitulos

d.

Emitir uma instrução de trap.

e.

Desativar interrupções.

f.

Modificar entradas na tabela de status de dispositivo.

g.

Passar do modo usuário para kernel.

h.

Acessar dispositivo de E/S.

1.9

Alguns computadores antigos protegiam o sistema operacional colocando-o

em uma partição da memória que não poderia ser modificada pelo job do

usuário ou pelo próprio sistema operacional. Descreva duas dificuldades

que você acredita que poderiam surgir com tal esquema.

1.10

Algumas CPUs oferecem mais de dois modos de operação. Quais são os dois

usos possíveis desses modos múltiplos?

1.11

Os timers poderiam ser usados para calcular a hora atual. Dê uma pequena

descrição de como isso poderia ser realizado.

1.12

A Internet é uma LAN ou uma WAN?

Capítulo 2

Estruturas do sistema operacional Exercícios práticos 2.1

Qual é a finalidade das chamadas do sistema?

2.2

Quais são as cinco principais atividades de um sistema operacional em

relação ao gerenciamento de processos?

2.3

Quais são as três atividades principais de um sistema operacional em

relação ao gerenciamento de memória?

2.4

Page 3: exercicios_todos_capitulos

Quais são as três atividades principais de um sistema operacional em

relação ao gerenciamento de armazenamento secundário?

2.5

Qual é a finalidade do interpretador de comandos? Por que ele normalmente

é separado do kernel?

2.6

Que chamadas do sistema precisam ser executadas por um interpretador de

comandos ou shell a fim de inicial um novo processo?

2.7

Qual é a finalidade dos programas do sistema?

2.8

Qual é a principal vantagem da técnica em camadas para o projeto do

sistema? Quais são as desvantagens do uso da técnica em camadas?

2.9

Liste cinco serviços fornecidos por um sistema operacional. Explique como

cada um oferece conveniência aos usuários. Explique também em quais casos

seria impossível para os programas em nível de usuário oferecerem esses

serviços.

2.10

Qual é a finalidade das chamadas do sistema?

2.11

Quais são as principais vantagens da técnica de microkernel para o

projeto do sistema?

2.12

Por que alguns sistemas armazenam o sistema operacional em firmware, e

outros em disco?

2.13

Como um sistema poderia ser projetado para permitir uma escolha de

sistemas operacionais para inicializar? O que o programa de bootstrap

precisaria fazer?

Page 4: exercicios_todos_capitulos

Capítulo 3

Processos Exercícios práticos 3.1

O Palm OS não fornece meios de processamento simultâneo. Discuta três

complicações principais que o processamento simultâneo acrescenta a um

sistema operacional.

3.2

O processador Sun UltraSPARC possui múltiplos conjuntos de registradores.

Descreva as ações de uma troca de contexto se o novo contexto já estiver

carregado em um dos conjuntos de registradores. O que mais precisa

acontecer se o novo contexto estiver na memória, ao invés de um conjunto

de registradores e todos os conjuntos de registradores estiverem em uso?

3.3

Quando um processo cria um novo processo usando a operação fork(), qual

dos seguintes estados é compartilhado entre o processo pai e o processo

filho?

a.

Pilha

b.

Heap

c.

Segmentos de memória compartilhada

3.4

Novamente considerando o mecanismo de RPC, considere a semântica

“exatamente uma vez”. O algoritmo para implementar essa semântica é

executado corretamente, mesmo que a mensagem “ACK” de volta ao cliente

seja perdida devido a um problema de rede? Descreva a seqüência de

mensagens e se a semântica “exatamente uma vez” ainda é preservada.

3.5

Considere que um sistema distribuído é suscetível a falhas no servidor.

Que mecanismos seriam exigidos para garantir a semântica “exatamente uma

vez” para a execução de RPCs?

Page 5: exercicios_todos_capitulos

Capítulo 4

Threads Exercícios práticos 4.1

Forneça dois exemplos de programação em que o multithreading oferece

melhor desempenho do que uma solução de único thread.

4.2

Quais são duas diferenças entre os threads em nível de usuário e os

threads em nível de kernel? Sob quais circunstâncias um tipo é melhor que

o outro?

4.3

Descreva as ações tomadas por um kernel para a troca de contexto entre os

threads em nível de kernel.

4.4

Que recursos são usados quando um thread é criado? Como eles diferem

daqueles usados quando um processo é criado?

4.5

Considere que um sistema operacional relaciona threads em nível de

usuário ao kernel usando o modelo muitos-para-muitos e o mapeamento é

feito por meio de LWPs. Além do mais, o sistema permite que os

desenvolvedores criem threads em tempo real. É necessário vincular um

thread em tempo real a um LWP? Explique.

4.6

Um programa Pthread que realiza a função de somatório foi apresentado na

Seção 4.3.1. Reescreva esse programa em Java.

Page 6: exercicios_todos_capitulos

Capítulo 5

Escalonamento de CPU Exercícios práticos 5.1

Um algoritmo de escalonamento de CPU determina uma ordem para a execução

de seus processos escalonados. Dados n processos a serem escalonados em

um processador, quantos schedules diferentes possíveis existem? Dê uma

fórmula em termos de n.

5.2

Defina a diferença entre escalonamento preemptivo e não preemptivo.

5.3

Suponha que os processos a seguir cheguem para execução nos momentos

indicados. Cada processo será executado pela quantidade de tempo listada.

Ao responder as perguntas, use o escalonamento não preemptivo e baseie

todas as decisões na informação que você tem no momento em que a decisão

precisa ser tomada.

Processo Tempo de chegada Tempo de burst

P1 0,0 8

P2 0,4 4

P3 1,0 1

a.

Qual é o tempo de turnaround médio para esses processos com o algoritmo

de escalonamento FCFS?

b.

Qual é o tempo de turnaround médio para esses processos com o algoritmo

de escalonamento SJF?

c.

O algoritmo SJF deveria melhorar o desempenho, mas observe que decidimos

executar o processo P1 no tempo 0 porque não sabíamos se dois processos mais curtos chegariam cedo. Calcule o tempo de turnaround médio se a CPU

ficar ociosa pela primeira 1 unidade e depois o escalonamento SJF for

usado. Lembre-se de que os processos P1 e P2 estão aguardando durante esse tempo ocioso, de modo que seu tempo de espera poderá aumentar. Esse

algoritmo poderia ser conhecido como escalonamento com conhecimento

futuro.

5.4

Page 7: exercicios_todos_capitulos

Que vantagem existe em haver diferentes tamanhos de quantum de tempo em

diferentes níveis de um sistema de enfileiramento multinível?

5.5

Muitos algoritmos de escalonamento de CPU são parametrizados. Por

exemplo, o algoritmo RR requer que um parâmetro indique a fatia de tempo.

As filas de feedback multinível exigem parâmetros para definir o número

de filas, os algoritmos de escalonamento para cada fila, os critérios

usados para mover processos entre as filas, e assim por diante.

Esses algoritmos, portanto, na realidade são conjuntos de algoritmos (por

exemplo, o conjunto de algoritmos RR para todas as fatias de tempo, e

assim por diante). Um conjunto de algoritmos pode incluir outro (por

exemplo, o algoritmo FCFS é o algoritmo RR com um quantum de tempo

infinito). Que relação (se houver) existe entre os seguintes pares de

conjuntos de algoritmos?

a.

Prioridade e SJF

b.

Filas de feedback multinível e FCFS

c.

Prioridade e FCFS

d.

RR e SJF

5.6

Suponha que um algoritmo de escalonamento (no nível de escalonamento de

CPU a curto prazo) favorece aqueles processos que usaram o menor tempo de

processador no passado recente. Por que esse algoritmo favorece os

programas voltados para E/S e não deixa os programas voltados para CPU

estagnados permanentemente?

5.7

Faça a distinção entre escalonamento PCS e SCS.

5.8

Considere que um sistema operacional relaciona os threads em nível de

usuário ao modelo muitos-para-muitos, onde o mapeamento é feito por meio

do uso de LWPs. Além do mais, o sistema permite que desenvolvedores de

programa criem threads de tempo real. É necessário vincular um thread de

tempo real a um LWP?

Page 8: exercicios_todos_capitulos

Capítulo 6

Sincronismo de processos Exercícios práticos 6.1

Na Seção 6.4, mencionamos que desativar interrupções com freqüência

poderia afetar o clock do sistema. Explique por que isso poderia

acontecer e como esses efeitos poderiam ser monimizados.

6.2

O problema dos fumantes de cigarro. Considere um sistema com três

processos fumante e um processo agente. Cada fumante continuamente

prepara um cigarro e depois o fuma. Mas, para preparar e fumar um

cigarro, o fumante precisa de três ingredientes: tabaco, papel e

fósforos. Um dos processos fumante tem papel, outro tem tabaco, e o

terceiro tem fósforos. O agente tem um estoque infinito de todos os três

materiais. O agente coloca dois dos ingredientes sobre a mesa. O fumante

que tem o ingrediente restante, então, prepara e fuma um cigarro,

sinalizando ao agente quando terminar. O agente, então coloca outros dois

dos ingredientes, e o ciclo se repete. Escreva um programa para

sincronizar o agente e os fumantes usando o sincronismo Java.

6.3

Dê os motivos pelos quais Solaris, Windows XP e Linux implementam

múltiplos mecanismos de bloqueio. Descreva as circunstâncias sob as quais

eles usam spinlocks, mutexes, semáforos, mutexes adaptativos e variáveis

de condição. Em cada caso, explique por que o mecanismo é necessário.

6.4

Explique as diferenças, em termos de custo, entre os três tipos de

armazenamento: volátil, não volátil e estável.

6.5

Explique a finalidade do mecanismo de ponto de verificação. Com que

freqüência os pontos de verificação devem ser realizados? Descreva como a

freqüência dos pontos de verificação afeta:

O desempenho do sistema quando não ocorre falha

O tempo gasto para se recuperar de uma falha do sistema

O tempo gasto para se recuperar de uma falha do disco

6.6

Explique o conceito da atomicidade da transação.

6.7

Page 9: exercicios_todos_capitulos

Mostre que alguns schedules são possíveis sob o protocolo de bloqueio em

duas fases, mas não sob o protocolo de estampa de tempo, e vice-versa.

6.8

A instrução [TD]wait()[TN] em todos os exemplos de programa Java fez

parte de um loop [TD]while[TN]. Explique por que você sempre deverá ter

que usar uma instrução [TD]while[TN] ao usar [TD]wait()[TN] e por que

você nunca usaria uma instrução [TD]if[TN].

Page 10: exercicios_todos_capitulos

Capítulo 7

Deadlocks Exercícios práticos 7.1

Liste três exemplos de deadlocks que não estão relacionados a um ambiente

de sistema de computador.

7.2

Suponha que um sistema esteja em um estado inseguro. Mostre que é

possível que os processos terminem sua execução sem entrar em um estado

de deadlock.

7.3

Prove que o algoritmo de segurança apresentado na Seção 7.5.3 requer uma

ordem de m x n2 operações.

7.4

Considere um sistema de computação que executa 5.000 jobs por mês sem

esquema de prevenção ou impedimento de deadlock. Os deadlocks ocorrem por

volta de duas vezes por mês, e o operador precisa terminar e reexecutar

cerca de 10 jobs por deadlock. Cada job tem valor aproximado de US$ 2 (em

tempo de CPU), e os jobs terminados tendem a estar na metade quando são

abortados.

Um programador de sistemas estimou que um algoritmo de impedimento de

impasse (como o algoritmo do banqueiro) poderia ser instalado no sistema

com um aumento no tempo médio de execução por tarefa de aproximadamente

10 por cento. Como a máquina atualmente possui um tempo ocioso de 30 por

cento, todos os 5.000 jobs por mês ainda poderiam ser executados, embora

o tempo de turnaround aumente em cerca de 20 por cento na média.

a.

Quais são os argumentos a favor da instalação do algoritmo de impedimento

de impasse?

b.

Quais são os argumentos contra a instalação do algoritmo de impedimento

de impasse?

7.5

Um sistema poderia detectar que alguns de seus processos estão

estagnando? Se a sua resposta for “sim”, explique como isso pode ser

feito. Se a resposta for “não”, explique como o sistema pode lidar com o

problema de estagnação.

Page 11: exercicios_todos_capitulos

7.6

Considere a política de alocação de recursos a seguir. Solicitações e

liberações de recursos são permitidas a qualquer momento. Se uma

solicitação de recursos não puder ser satisfeita porque os recursos não

estão disponíveis, então verificamos quaisquer processos que estão

bloqueados, esperando pelos recursos. Se eles tiverem os recursos

desejados, então esses recursos são retirados deles e dados aos processos

solicitantes. O vetor de recursos pelos quais o processo está esperando é

aumentado para incluir os recursos que foram retirados.

Por exemplo, considere um sistema com três tipos de recurso e um vetor

Available inicializado com (4,2,2). Se o processo P0 solicitar (2,2,1), ele os obtém. Se P1 solicitar (1,0,1), ele os obtém. Depois, se P0 solicitar (0,0,1), ele é bloqueado (recurso não disponível). Se P2 agora solicitar (2,0,0), ele recebe o recurso disponível (1,0,0) e um que foi

alocado a P0 (pois P0 está bloqueado). O vetor Allocation de P0 chega até (1,2,1) e seu vetor Need vai até (1,0,1).

a.

O deadlock pode ocorrer? Se a sua resposta for “sim”, dê um exemplo. Se

você responder “não”, especifique qual condição necessária não pode

ocorrer.

b.

Pode ocorrer bloqueio indefinido? Explique sua resposta.

7.7

Suponha que você tenha codificado o algoritmo de segurança de impedimento

de deadlock e agora tenha que implementar o algoritmo de detecção de

impasse. Você pode fazer isso usando simplesmente o código do algoritmo

de segurança e redefinindo Maxi = Waitingi + Allocationi, onde Waitingi é

um vetor especificando os recursos que o processo i está esperando, e

Allocationi é conforme definido na Seção 7.5? Explique sua resposta.

7.8

É possível ter um deadlock envolvendo apenas um único processo? Explique

sua resposta.

Page 12: exercicios_todos_capitulos

Capítulo 8

Gerenciamento de memória Exercícios práticos 8.1

Cite duas diferenças entre endereços lógico e físico.

8.2

Considere um sistema em que um programa pode ser separado em duas partes:

código e dados. A CPU sabe se deseja uma instrução (busca de instrução)

ou dados (busca ou armazenamento de dados). Portanto, dois pares de

registrador de limite de base são fornecidos: um para instruções e um

para dados. O par de registradores de limite de base de instrução é

automaticamente somente de leitura, de modo que os programas podem ser

compartilhados entre diferentes usuários. Discuta as vantagens e

desvantagens desse esquema.

8.3

Por que os tamanhos de página sempre são potências de 2?

8.4

Considere o espaço de endereços lógico de oito páginas de 1024 words

cada, mapeado em uma memória física de 32 frames.

a.

Quantos bits existem no endereço lógico?

b.

Quantos bits existem no endereço físico?

8.5

Qual é o efeito de permitir duas entradas em uma tabela de página para

apontar para o mesmo frame de página na memória? Explique como esse

efeito poderia ser usado para diminuir a quantidade de tempo necessária

para copiar uma grande quantidade de memória de um lugar para outro. Que

efeito teria a atualização de algum byte na página um sobre a outra

página?

8.6

Descreva um mecanismo pelo qual um segmento poderia pertencer ao espaço

de endereços de dois processos diferentes.

8.7

O compartilhamento de segmentos entre processos sem exigir o mesmo número

de segmento é possível em um sistema de segmentação vinculado

dinamicamente.

Page 13: exercicios_todos_capitulos

a.

Defina um sistema que permita o vínculo e compartilhamento estático de

segmentos sem exigir que os números de segmento sejam os mesmos.

b.

Descreva um esquema de paginação que permita que as páginas sejam

compartilhadas sem exigir que os números de página sejam os mesmos.

8.8

Em um IBM/370, a proteção de memória é fornecida por meio do uso de

chaves. Uma chave é uma quantidade de 4 bits. Cada bloco de 2K de memória

tem uma chave (a chave de armazenamento) associada a ele. A CPU também

tem uma chave (a chave de proteção) associada a ela. Uma operação de

armazenamento só é permitida se as duas chaves forem iguais, ou se

qualquer uma delas for zero. Qual dos seguintes esquemas de gerenciamento

de memória poderia ser usado com sucesso com esse hardware?

a.

Máquina simples

b.

Sistema monousuário

c.

Multiprogramação com um número fixo de processos

d.

Multiprogramação com um número variável de processos

e.

Paginação

f.

Segmentação

Page 14: exercicios_todos_capitulos

Capítulo 9

Memória virtual Exercícios práticos 9.1

Sob quais circunstâncias ocorrem as faltas de página? Descreva as ações

tomadas pelo sistema operacional quando ocorre uma falta de página.

9.2

Considere que você tem uma string de referência de página para um

processo com m frames (todos inicialmente vazios). A string de referência

de página possui tamanho p; n números de página distintos ocorrem nela.

Responda a estas perguntas para quaisquer algoritmos de substituição de

página:

a.

Qual é um limite inferior no número de faltas de página?

b.

Qual é um limite superior no número de faltas de página?

9.3

Quais das seguintes técnicas e estruturas de programação são “boas” para

um ambiente paginado por demanda? Quais “não são boas”? Explique suas

respostas.

a.

Pilha

b.

Tabela de símbolos com hash

c.

Busca seqüencial

d.

Busca binária

e.

Código puro

f.

Operações de vetor

g.

Indireção

9.4

Page 15: exercicios_todos_capitulos

Considere os seguintes algoritmos de substituição de página. Avalie esses

algoritmos em uma escala de cinco pontos, desde “ruim” até “perfeito”, de

acordo com sua taxa de falta de página. Separe os algoritmos que sofrem a

anomalia de Belady do restante.

a.

Substituição LRU

b.

Substituição FIFO

c.

Substituição ideal

d.

Substituição da segunda chance

9.5

Quando a memória virtual é implementada em um sistema de computação,

existem certos custos associados à técnica e certos benefícios. Liste os

custos e os benefícios. É possível que os custos excedam os benefícios?

Se for, que medidas podem ser tomadas para garantir que isso não

aconteça?

9.6

Um sistema operacional admite uma memória virtual paginada, usando um

processador central com um tempo de ciclo de 1 microssegundo. É

necessário 1 microssegundo adicional para acessar uma página diferente da

atual. As páginas têm 1000 words, e o dispositivo de paginação [e um

tambor que gira a 3000 rotações por minuto e transfere 1 milhão de words

por segundo. As medições estatísticas a seguir foram obtidas a partir do

sistema:

1 por cento de todas as instruções executadas acessaram uma página

diferente da página atual.

Das instruções que acessaram outra página, 80 por cento acessou uma

página já na memória.

Quando uma nova página era exigida, a página substituída era modificada 5

por cento do tempo.

Calcule o tempo de instrução efetivo nesse sistema, supondo que o sistema

esteja rodando um processo apenas e que o processador esteja ocioso

durante as transferências de tambor.

9.7

Considere o array bidimensional A:

[LIST]int A[][] = new int[100][100];

onde [TD]A[0][0][TN] está no local 200, em um sistema de memória paginada

com páginas de tamanho 200. Um pequeno processo está na página 0 (locais

Page 16: exercicios_todos_capitulos

de 0 a 199) para manipular a matriz; assim, cada busca de instrução será

a partir da página 0.

Para três frames de página, quantas faltas de página são geradas pelos

seguintes loops de inicialização de array, usando a substituição LRU, e

supondo que o frame de página 1 tenha o processonele, e os outros dois

estejam inicialmente vazios?

a.

[LIST]for (int j = 0; j < 100; j++)

for (int i = 0; i < 100; i++)

A[i][j] = 0;

b.

[LIST]b. for (int i = 0; i < 100; i++)

for (int j = 0; j < 100; j++)

A[i][j] = 0;

9.8

Considere a seguinte string de referência de página:

1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 2, 3, 7, 6, 3, 2, 1, 2, 3, 6.

Quantas faltas de página ocorreriam para os seguintes algoritmos de

substituição, considerando um, dois, três, quatro, cinco, seis ou sete

frames? Lembre-se de que todos os frames estão inicialmente vazios, de

modo que suas primeiras páginas exclusivas custarão uma falta cada.

Substituição LRU

Substituição FIFO

Substituição ideal

9.9

Suponha que você queira usar um algoritmo de página que exige um bit de

referência (como a substituição da segunda chance ou modelo de conjunto

de trabalho), mas o hardware não oferece um. Esboce como você poderia

simular um bit de referência mesmo que não fosse fornecido pelo hardware,

ou explique por que não é possível fazer isso. Se for possível, calcule

qual seria o custo.

9.10

Você idealizou um novo algoritmo de substituição de página que acredita

poder ser ideal. Em alguns casos de teste complicados, ocorre a anomalia

de Belady. O novo algoritmo é ideal? Explique sua resposta.

9.11

A segmentação é semelhante à paginação, mas usa “páginas” de tamanho

variável. Defina dois algoritmos de substituição de segmento baseados nos

esquemas de substituição de página FIFO e LRU. Lembre-se de que, como os

segmentos não têm o mesmo tamanho, o segmento escolhido para ser

substituído pode não ser grande o suficiente para deixar locais

Page 17: exercicios_todos_capitulos

consecutivos suficientes para o segmento necessário. Considere

estratégias para sistemas onde os segmentos não podem ser relocados, e

aqueles para sistemas onde eles podem.

9.12

Considere um sistema de computador paginado por demanda, onde o grau de

multiprogramação é atualmente fixado em quatro. O sistema foi medido

recentemente para se determinar a utilização da CPU e o disco de

paginação. Os resultados são uma das seguintes alternativas. Para cada

caso, o que está acontecendo? O grau de multiprogramação pode ser

aumentado para aumentar a utilização de CPU? A paginação está ajudando?

a.

Utilização de CPU 13 por cento; utilização de disco 97 por cento

b.

Utilização de CPU 87 por cento; utilização de disco 3 por cento

c.

Utilização de CPU 13 por cento; utilização de disco 3 por cento

9.13

Temos um sistema operacional para uma máquina que usa registradores de

base e limite, mas modificamos a máquina para fornecer uma tabela de

página. As tabelas de página podem ser montadas para simular

registradores de base e limite? Como elas podem, ou por que elas não

podem?

Page 18: exercicios_todos_capitulos

Capítulo 10

Interface do sistema de arquivos Exercícios práticos 10.1

Alguns sistemas automaticamente excluem todos os arquivos do usuário

quando um usuário efetua o logoff ou termina um job, a menos que o

usuário solicite explicitamente que eles sejam mantidos; outros sistemas

mantêm todos os arquivos, a menos que o usuário os exclua explicitamente.

Discuta os méritos relativos de cada técnica.

10.2

Por que alguns sistemas registram o tipo de um arquivo, enquanto outros

deixam isso para o usuário ou simplesmente não implementam múltiplos

tipos de arquivo? Qual sistema é “melhor”?

10.3

De modo semelhante, alguns sistemas admitem muitos tipos de estruturas

para os dados de um arquivo, enquanto outros simplesmente dão suporte a

um fluxo de bytes. Quais são as vantagens e desvantagens?

10.4

Você conseguiria simular uma estrutura de diretório multinível com uma

estrutura de diretório de único nível em que nomes arbitrariamente longos

possam ser usados? Se a sua resposta for sim, explique como você pode

fazer isso, e compare esse esquema com o esquema de diretório multinível.

Se a sua resposta for não, explique o que impede o sucesso da sua

simulação. Como você responderia a mudança se os nomes de arquivo fossem

limitados a sete caracteres?

10.5

Explique a finalidade das operações [TD]open()[TN] e [TD]close()[TN].

10.6

Dê um exemplo de uma aplicação em que os dados em um arquivo devem ser

acessados na seguinte ordem:

a.

Seqüencialmente

b.

Aleatoriamente

10.7

Em alguns sistemas, um subdiretório pode ser lido e escrito por um

usuário autorizado, assim como os arquivos comuns.

Page 19: exercicios_todos_capitulos

a.

Descreva os problemas de proteção que poderiam surgir.

b.

Sugira um esquema para lidar com cada um dos problemas de proteção que

você nomeou na parte a.

10.8

Considere um sistema que admita 5000 usuários. Suponha que você queira

permitir que 4990 desses usuários consigam acessar um arquivo.

a.

Como você especificaria esse esquema de proteção no UNIX?

b.

Você poderia sugerir outro esquema de proteção que possa ser usado de

modo mais eficaz para essa finalidade do que o esquema fornecido pelo

UNIX?

10.9

Pesquisadores sugeriram que, ao invés de ter uma lista de acesso

associada a cada arquivo (especificando quais usuários podem acessar o

arquivo, e como), deveríamos ter uma lista de controle de usuário

associada a cada usuário (especificando quais arquivos um usuário pode

acessar, e como). Discuta os méritos relativos desses dois esquemas.

Page 20: exercicios_todos_capitulos

Capítulo 11

Implementação do sistema de arquivos Exercícios práticos 11.

Considere um arquivo consistindo atualmente em 100 blocos. Considere que

o bloco de controle de arquivo (e o bloco de índice, no caso da alocação

indexada) já está na memória. Calcule quantas operações de E/S de disco

são exigidas para estratégias de alocação contígua, vinculada e indexada

(único nível), se, para um bloco, as condições a seguir se mantiverem. No

caso de alocação contígua, considere que não existe espaço para

crescimento no início, mas existe espaço para crescer no final. Suponha

que a informação do bloco a ser acrescentado esteja armazenada na

memória.

a.

O bloco é acrescentado no início.

b.

O bloco é acrescentado no meio.

c.

O bloco é acrescentado no final.

d.

O bloco é removido do início.

e.

O bloco é removido do meio.

f.

O bloco é removido do final.

11.2

Que problemas poderiam ocorrer se um sistema permitisse que um sistema de

arquivos fosse montado simultaneamente em mais de um local?

11.3

Por que o mapa de bits para alocação de arquivos deve ser mantido no

armazenamento em massa, ao invés da memória principal?

11.4

Considere um sistema que admita as estratégias de alocação contígua,

vinculada e indexada. Que critérios deverão ser usados na decisão de qual

estratégia é melhor utilizada para determinado arquivo?

11.5

Page 21: exercicios_todos_capitulos

Um problema com a alocação contígua é que o usuário deve pré-alocar

espaço suficiente para cada arquivo. Se o arquivo crescer e se tornar

maior do que o espaço alocado para ele, ações especiais deverão ser

tomadas. Uma solução para esse problema é definir uma estrutura de

arquivo consistindo em uma área contígua inicial (de um tamanho

especificado). Se essa área for preenchida, o sistema operacional define

automaticamente uma área de estouro que está vinculada à área contígua

inicial. Se a área de estouro for preenchida, outra área de estouro é

alocada. Compare essa implementação de um arquivo com as implementações

contígua e vinculada padrão.

11.6

Como os caches ajudam a melhorar o desempenho? Por que os sistemas não

usam mais caches ou caches maiores se eles são tão úteis?

11.7

Por que é vantajoso para o usuário que um sistema operacional aloque

dinamicamente suas tabelas internas? Quais são as penalidades para o

sistema operacional por fazer isso?

11.8

Explique como a camada VFS permite que um sistema operacional facilmente

dê suporte a vários tipos de sistemas de arquivo?

Page 22: exercicios_todos_capitulos

Capítulo 12

Estrutura de armazenamento em massa Exercícios práticos 12.1

A busca acelerada descrita no Exercício 12.3 é típica de unidades de

disco rígido. Ao contrário, disquetes (e muitos discos rígidos

manufaturados antes de meados da década de 1980) normalmente buscam em

uma velocidade fixa. Suponha que o disco no Exercício 12.3 tenha uma

busca com taxa constante, ao invés de uma busca com aceleração constante,

de modo que o tempo de busca seja na forma t = x + yL, onde t é o tempo

em milissegundos e L é a distância da busca. Suponha que o tempo para

busca a um cilindro adjacente seja 1 milissegundo, como antes, e 0,5

milissegundos para cada cilindro adicional.

a.

Escreva uma equação para esse tempo de busca como uma função da distância

de busca.

b.

Usando a função de tempo de busca da parte a, calcule o tempo de busca

total para cada um dos schedules no Exercício 12.2. Sua resposta é igual

à do Exercício 12.3(c)?

c.

Qual é o ganho de velocidade percentual do schedule mais rápido em

relação ao FCFS nesse caso?

12.2

O escalonamento de disco, que não seja o escalonamento FCFS, é útil em um

ambiente de único usuário? Explique sua resposta.

12.3

Explique por que o escalonamento SSTF tende a favorecer cilindros do meio

em relação aos cilindros mais internos e mais externos.

12.4

Por que a latência de rotação normalmente não é considerada no

escalonamento de disco? Como você modificaria SSTF, SCAN e C-SCAN para

incluir a otimização da latência?

12.5

Como o uso de um disco de RAM afetaria a sua seleção de um algoritmo de

escalonamento de disco? Que fatores você precisaria considerar? As mesmas

considerações se aplicam ao escalonamento de disco rígido, dado que o

Page 23: exercicios_todos_capitulos

sistema de arquivo armazena os blocos usados recentemente em um cache de

buffer na memória principal?

12.6

Por que é importante balancear a E/S do sistema de arquivos entre os

discos e os controladores de um sistema em um ambiente multitarefa?

12.7

Quais são os prós e os contras envolvidos na leitura repetida de páginas

de código do sistema de arquivos em comparação com o uso do espaço de

swap para armazená-las?

12.8

Existe algum meio de implementar o armazenamento verdadeiramente estável?

Explique sua resposta.

12.9

O termo “SCSI-II fast wide” indica um barramento SCSI que opera em uma

taxa de dados de 20 megabytes por segundo quando move um pacote de bytes

entre o host e um dispositivo. Suponha que uma unidade de disco SCSI-II

fast wide gire a 7200 RPM, tenha um tamanho de setor de 512 bytes e

mantenha 160 setores por trilha.

a.

Estime a taxa de transferência sustentada dessa unidade em megabytes por

segundo.

b.

Suponha que a unidade tenha 7000 cilindros, 20 trilhas por cilindro, um

tempo de troca de cabeça (de uma placa para outra) de 0,5 milissegundos e

um tempo de busca de cilindro adjacente de 2 milissegundos. Use essa

informação adicional para oferecer uma estimativa precisa da taxa de

transferência sustentada para uma transferência em grande quantidade.

c.

Suponha que o tempo de busca médio para a unidade seja de 8

milissegundos. Estime o número de E/Ss por segundo e a taxa de

transferência efetiva para uma carga de trabalho de acesso aleatório que

lê setores individuais que estão espalhados pelo disco.

d.

Calcule o número de E/Ss de acesso aleatório por segundo e a taxa de

transferência para tamanhos de E/S de 4 kilobytes, 8 kilobytes e 64

kilobytes.

e.

Se várias solicitações estiverem em uma fila, um algoritmo de

escalonamento como SCAN deverá ser capaz de reduzir a distância média de

busca. Suponha que uma carga de trabalho de acesso aleatório esteja lendo

páginas de 8 kilobytes, o tamanho médio da fila seja 10 e o algoritmo de

Page 24: exercicios_todos_capitulos

escalonamento reduza o tempo médio de busca para 3 milissegundos. Agora,

calcule o número de E/Ss por segundo e a taxa de transferência efetiva da

unidade.

12.10

Mais de uma unidade de disco pode estar conectada a um barramento SCSI.

Em particular, um barramento SCSI-II fast wide (ver Exercício 12.9) pode

estar conectado a no máximo 15 unidades de disco. Lembre-se de que esse

barramento tem uma largura de banda de 20 megabytes por segundo. A

qualquer momento, apenas um pacote pode ser transferido no barramento

entre o cache interno de algum disco e o host. Porém, um disco pode estar

movendo seu braço de disco enquanto algum outro disco está transferindo

um pacote no barramento. Além disso, um disco pode estar transferindo

dados entre suas placas magnéticas e seu cache interno enquanto algum

outro disco está transferindo um pacote no barramento. Considerando as

taxas de transferência que você calculou para as diversas cargas de

trabalho no Exercício 12.9, discuta quantos discos podem ser usados

efetivamente por um barramento SCSI-II fast wide.

12.11

O remapeamento de blocos defeituosos por reserva de setor ou por

deslizamento de setor poderia influenciar o desempenho. Suponha que a

unidade no Exercício 12.9 tenha um total de 100 setores defeituosos em

locais aleatórios e que cada setor defeituoso seja mapeado para uma

reserva localizada em uma trilha diferente, mas dentro do mesmo cilindro.

Estime o número de E/Ss por segundo e a taxa de transferência efetiva

para uma carga de trabalho de acesso aleatório consistindo em leituras de

8 kilobytes, com um tamanho de fila de 1 (ou seja, a escolha do algoritmo

de escalonamento não é um fator). Qual é o efeito de um setor defeituoso

sobre o desempenho?

12.12

Em um jukebox de disco, qual seria o efeito de ter mais arquivos abertos

do que o número de unidades no jukebox?

12.13

Se os discos rígidos magnéticos por fim têm o mesmo custo por gigabyte

das fitas, as fitas se tornarão obsoletas, ou elas ainda serão

necessárias? Explique sua resposta.

12.14

Às vezes é dito que a fita é um meio de acesso seqüencial, enquanto o

disco magnético é um meio de acesso aleatório. Na verdade, a conveniência

de um dispositivo de armazenamento para acesso aleatório depende do

tamanho da transferência. O termo taxa de transferência de streaming

indica a taxa de dados para uma transferência que está a caminho,

excluindo o efeito da latência de acesso. Ao contrário, a taxa de

Page 25: exercicios_todos_capitulos

transferência efetiva é a razão do total de bytes pelo total de segundos,

incluindo o tempo adicional, como a latência de acesso.

Suponha que, em um computador, o cache de nível 2 tenha uma latência de

acesso de 8 nanossegundos e uma taxa de transferência de streaming de 800

megabytes por segundo, a memória principal tenha uma latência de acesso

de 60 nanossegundos e uma taxa de transferência de streaming de 80

megabytes por segundo, o disco magnético tenha uma latência de acesso de

15 milissegundos e uma taxa de transferência de streaming de 5 megabytes

por segundo, e a unidade de fita tenha uma latência de acesso de 60

segundos e uma taxa de transferência de streaming de 2 megabytes por

segundo.

a.

O acesso aleatório faz com que a taxa de transferência efetiva de um

dispositivo diminua, pois nenhum dado é transferido usando o tempo de

acesso. Para o disco descrito, qual é a taxa de transferência efetiva se

um acesso médio for seguido por uma transferência de streaming de 512

bytes, ou 8 kilobytes, 1 megabyte e 16 megabytes?

b.

A utilização de um dispositivo é a razão entre a taxa de transferência

efetiva e a taxa de transferência de streaming. Calcule a utilização da

unidade de disco para acesso aleatório que realiza transferências em cada

um dos quatro tamanhos dados na parte a.

c.

Suponha que uma utilização de 25 por cento (ou mais) seja considerada

aceitável. Usando os valores de desempenho fornecidos, calcule o menor

tamanho de transferência para o disco que ofereça uma utilização

aceitável.

d.

Complete a seguinte sentença: Um disco é um dispositivo de acesso

aleatório para transferências maiores do que _____ bytes, e é um

dispositivo de acesso seqüencial para transferências menores.

e.

Calcule os tamanhos de transferência mínimos que ofereçam utilização

aceitável para cache, memória e fita.

f.

Quando uma fita é um dispositivo de acesso aleatório e quando é um

dispositivo de acesso seqüencial?

12.15

Suponha que concordemos que 1 kilobyte seja 1.024 bytes, 1 megabyte seja

1.0242 bytes, e 1 gigabyte seja 1.0243 bytes. Essa progressão continua

por terabytes, petabytes e exabytes (1.0246). Atualmente, existem vários

novos projetos científicos propostos que planejam registrar e armazenar

Page 26: exercicios_todos_capitulos

alguns exabytes de dados durante a próxima década. Para responder as

perguntas seguintes, você precisará fazer algumas hipóteses razoáveis;

expresse as hipóteses que você fizer.

a.

Quantas unidades de disco seriam necessárias para manter 4 exabytes de

dados?

b.

Quantas fitas magnéticas seriam necessárias para manter 4 exabytes de

dados?

c.

Quantas fitas ópticas seriam necessárias para manter 4 exabytes de dados

(ver Exercício 12.21)?

d.

Quantos cartuchos de armazenamento holográfico seriam necessários para

manter 4 exabytes de dados (ver Exercício 12.20)?

e.

Quantos pés cúbicos de espaço de armazenamento cada opção exigiria?

Page 27: exercicios_todos_capitulos

Capítulo 13

Sistemas de E/S Exercícios práticos 13.1

Cite três vantagens de se colocar funcionalidade em um controlador de

dispositivo, ao invés do kernel. Cite três desvantagens.

13.2

O exemplo de handshaking da Seção 13.2 usou 2 bits: um bit de ocupado e

um bit de comando pronto. É possível implementar esse handshaking com

apenas 1 bit? Se for, descreva o protocolo. Se não for, explique por que

1 bit é insuficiente.

13.3

Por que um sistema poderia usar a E/S controlada por interrupção para

gerenciar uma única porta serial, mas realizar o polling de E/S para

gerenciar um processador de front-endereço, como um concentrador de

terminais?

13.4

O polling para o término de uma E/S pode desperdiçar uma grande

quantidade de ciclos de CPU se o processador repetir um loop de espera

ocupada muitas vezes antes que a E/S termine. Mas, se o dispositivo de

E/S estiver pronto para atendimento, o polling pode ser muito mais

eficiente do que capturar e despachar uma interrupção. Descreva uma

estratégia híbrida, que combina polling, sleeping e interrupções para

atendimento de dispositivo de E/S. Para cada uma dessas três estratégias

(polling puro, interrupções puras, híbrida), descreva um ambiente de

computação em que essa estratégia é mais eficiente do que qualquer uma

das outras.

13.5

Como o DMA aumenta a concorrência do sistema? De que maneira ele complica

o projeto do hardware?

13.6

Por que é importante expandir o barramento do sistema e as velocidades de

dispositivo à medida que a velocidade da CPU aumenta?

13.7

Faça a distinção entre um driver STREAMS e um módulo STREAMS.

Page 28: exercicios_todos_capitulos

Capítulo 14

Proteção Exercícios práticos 14.1

Quais são as principais diferenças entre listas de capacidade e listas de

acesso?

14.2

Um arquivo MCP do Burroughs B7000/B6000 pode ser marcado como dados

sensíveis. Quando um arquivo desse tipo é excluído, sua área de

armazenamento é alterada para alguns bits aleatórios. Para que finalidade

esse esquema seria útil?

14.3

Em um sistema de proteção por anel, o nível 0 tem o maior acesso aos

objetos, e o nível n (maior que zero) tem menos direitos de acesso. Os

direitos de acesso de um programa em determinado nível na estrutura de

anel são considerados como um conjunto de capacidades. Qual é o

relacionamento entre as capacidades de um domínio no nível j e um domínio

no nível i a um objeto (para j > i)?

14.4

O sistema RC 4000 (e outros sistemas) definiu uma árvore de processos

(chamada árvore de processos) de modo que todos os descendentes de um

processo recebam recursos (objetos) e direitos de acesso apenas por seus

ancestrais. Assim, um descendente nunca pode ter a capacidade de fazer

algo que seus ancestrais não podem fazer. A raiz da árvore é o sistema

operacional, que tem a capacidade de fazer qualquer coisa. Suponha que o

conjunto de direitos de acesso fosse representado por uma matriz de

acesso, A. A(x,y) define os direitos de acesso do processo x ao objeto y.

Se x é um descendente de z, qual é o relacionamento entre A(x,y) e A(z,y)

para um objeto qualquer y?

14.5

Que problemas de proteção podem surgir se uma pilha compartilhada for

usada para a passagem de parâmetros?

14.6

Considere um ambiente de computação onde um único exclusivo é associado a

cada processo e cada objeto no sistema. Suponha que permitamos que um

processo com número n acesse um objeto com número m somente se n > m. Que

tipo de estrutura de proteção nós temos?

14.7

Page 29: exercicios_todos_capitulos

Considere um ambiente de computação onde um processo recebe o privilégio

de acessar um objeto apenas n vezes. Sugira um esquema para implementar

essa política.

14.8

Se todos os direitos de acesso a um objeto forem excluídos, o objeto não

pode mais ser acessado. Nesse ponto, o objeto também deverá ser excluído,

e o espaço que ele ocupa deverá ser retornado ao sistema. Sugira uma

implementação eficiente desse esquema.

14.9

Por que é difícil proteger um sistema em que os usuários têm permissão

para realizar sua própria E/S?

14.10

Listas de capacidade normalmente são mantidas dentro do espaço de

endereços do usuário. Como o sistema garante que o usuário não pode

modificar o conteúdo da lista?

Page 30: exercicios_todos_capitulos

Capítulo 15

Segurança Sem exercícios

Page 31: exercicios_todos_capitulos

Capítulo 16

Estruturas de sistemas distribuídos Exercícios práticos 16.1

A maioria das WANs emprega apenas uma topologia parcialmente conectada.

Por que isso acontece?

16.2

Sob que circunstâncias uma rede por passagem de tokens é mais eficaz do

que uma rede Ethernet?

16.3

Por que seria uma má idéia que os gateways passem pacotes de broadcast

entre as redes? Quais seriam as vantagens de se fazer isso?

16.4

Discuta as vantagens e desvantagens de se colocar traduções de nomes em

cache para os computadores localizados em domínios remotos.

16.5

Quais são as vantagens e desvantagens de se usar a comutação de

circuitos? Para que tipos de aplicações a comutação de circuitos é uma

estrutura viável?

16.6

Quais são dois problemas amedrontadores que os projetistas precisam

solucionar para implementar um sistema transparente à rede?

16.7

A migração de processos dentro de uma rede heterogênea normalmente é

impossível, dadas as diferenças em arquiteturas e sistemas operacionais.

Descreva um método para processar a migração por diferentes arquiteturas

executando:

a.

O mesmo sistema operacional

b.

Diferentes sistemas operacionais

16.8

Para criar um sistema distribuído robusto, você precisa saber que tipos

de falhas podem ocorrer.

a.

Page 32: exercicios_todos_capitulos

Liste três tipos possíveis de falha em um sistema distribuído.

b.

Especifique quais das entradas na sua lista também se aplicam a um

sistema centralizado.

16.9

É sempre crucial saber que a mensagem que você enviou chegou em seu

destino com segurança? Se a sua resposta for sim, explique por que. Se a

sua resposta for não, ofereça exemplos apropriados.

16.10

Apresente um algoritmo para reconstruir um anel lógico após a falha de um

processo no anel.

16.11

Considere um sistema distribuído com dois locais, A e B. Considere se o

local A pode distinguir entre o seguinte:

a.

B está parado.

b.

O link entre A e B está interrompido.

c.

B está extremamente sobrecarregado e seu tempo de resposta é 100 vezes

maior do que o normal.

Que implicações tem a sua resposta para a recuperação nos sistemas

distribuídos?

Page 33: exercicios_todos_capitulos

Capítulo 17

Sistemas de arquivos distribuídos Sem exercícios

Page 34: exercicios_todos_capitulos

Capítulo 18

Coordenação distribuída Sem exercícios

Page 35: exercicios_todos_capitulos

Capítulo 19

Sistemas de tempo real Sem exercícios

Page 36: exercicios_todos_capitulos

Capítulo 20

Sistemas de multimídia Sem exercícios

Page 37: exercicios_todos_capitulos

Capítulo 21

O sistema Linux Exercícios práticos 21.1

Módulos de kernel carregáveis dinamicamente oferecem flexibilidade quando

os drivers são acrescentados a um sistema, mas eles também possuem

desvantagens? Sob que circunstâncias um kernel seria compilado em um

único arquivo binário, e quando seria melhor mantê-lo dividido em

módulos? Explique sua resposta.

21.2

Multithreading é uma técnica de programação comumente utilizada. Descreva

três maneiras diferentes como os threads poderiam ser implementados.

Explique como essas maneiras se comparam com o mecanismo clone do Linux.

Quando cada mecanismo alternativo poderia ser melhor ou pior do que o uso

de clones?

21.3

O kernel do Linux não permite a paginação para fora da memória do kernel.

Que efeito tem essa restrição sobre o projeto do kernel? Quais são duas

vantagens e duas desvantagens dessa decisão de projeto?

21.4

Quais são três vantagens do vínculo dinâmico (compartilhado) de

bibliotecas em comparação com o vínculo estático? Quais são dois casos

onde o vínculo estático é preferível?

21.5

Compare o uso de soquetes de rede como uso de memória compartilhada como

um mecanismo para comunicar dados entre processos em um computador

isolado. Quais são as vantagens de cada método? Quando cada um poderia

ser preferido?

21.6

Sistemas UNIX costumavam usar otimizações de layout de disco com base na

posição rotativa dos dados do disco, mas as implementações modernas,

incluindo o Linux, simplesmente otimizam para o acesso seqüencial aos

dados. Por que eles fazem isso? De que características do hardware o

acesso seqüencial tira proveito? Por que a otimização da rotação não é

mais tão útil?

Page 38: exercicios_todos_capitulos

Capítulo 22

Windows XP Exercícios práticos 22.1

Que tipo de sistema operacional é o Windows XP? Descreva duas de suas

principais características.

22.2

Liste os objetivos de projeto do Windows XP. Descreva dois com detalhes.

22.3

Descreva o processo de booting para um sistema Windows XP.

22.4

Descreva as três principais camadas arquitetônicas do Windows XP.

22.5

Qual é a tarefa do gerenciador de objetos?

22.6

Que tipos de serviços o gerenciador de processos oferece? O que é uma

chamada de procedimento local?

22.7

Quais são as responsabilidades do gerenciador de E/S?

22.8

O Windows XP oferece quaisquer processos no modo usuário que lhe permitam

executar programas desenvolvidos para outros sistemas operacionais?

Descreva dois desses subsistemas.

22.9

Que tipos de rede o Windows XP admite? Como o Windows XP implementa os

protocolos de transporte? Descreva dois protocolos de rede.

22.10

Como o namespace do NTFS é organizado? Descreva.

22.11

Como o NTFS trata das estruturas de dados? Como o NTFS se recupera de uma

falha no sistema? O que é garantido após uma recuperação?

22.12

Como o Windows XP aloca memória do usuário?

22.13

Page 39: exercicios_todos_capitulos

Descreva algumas das maneiras como uma aplicação pode usar a memória por

meio da API Win32.

Page 40: exercicios_todos_capitulos

Capítulo 23

Sistemas operacionais influentes Sem exercícios