Você está na página 1de 7

Sistemas Operacionais

Lista de Exercícios 3

Capítulo 5

5.1 Na Seção 5.4, mencionamos que a desabilitação de interrupções pode afetar com frequência
o relógio do sistema. Explique por que isso pode ocorrer e como esses efeitos podem ser
minimizados.

5.3 Qual é o significado do termo espera ocupada (busy waiting)? Que outros tipos de espera
existem em um sistema operacional? A espera ocupada pode ser totalmente evitada? Explique
sua resposta.

5.4 Explique por que os spinlocks não são apropriados para sistemas com um único processador,
mas são usados com frequência em sistemas multiprocessadores.

5.7 As condições de corrida podem ocorrer em muitos sistemas de computação. Considere um


sistema bancário que controle o saldo das contas com duas funções: deposit(amount) e
withdraw (amount). Essas duas funções recebem a quantia (amount) a ser depositada em
uma conta bancária ou dela retirada. Suponha que um marido e sua esposa compartilhem uma
conta bancária. Concorrentemente, o marido chama a função withdraw (), e a esposa chama
deposit(). Descreva como uma condição de corrida é possível e o que pode ser feito para
impedir que ela ocorra.

5.10 Explique por que a implementação de primitivas de sincronização por desabilitação de


interrupções não é apropriada em um sistema com um único processador se as primitivas de
sincronização devem ser usadas em programas de nível de usuário.

5.21 Os servidores podem ser projetados para limitar o número de conexões abertas. Por
exemplo, um servidor pode querer ter apenas N conexões de socket em determinado momento.
Assim que N conexões forem estabelecidas, o servidor não aceitará outra conexão de entrada
até que uma conexão existente seja liberada. Explique como os semáforos podem ser usados por
um servidor para limitar o número de conexões concorrentes.

5.100 Qual o termo usado para descrever a situação em que dados compartilhados podem ser
manipulados concorrentemente e o resultado da execução depende da ordem de acesso?

5.101 Qual o termo usado para descrever o segmento de código onde dados compartilhados
são acessados e possivelmente alterados?

5.102 Quais os três requisitos que uma solução para o problema da seção crítica deve
satisfazer?
5.103 Quais são as duas instruções genéricas de hardware que podem ser executadas
atomicamente?

5.104 Quais são as duas funções usados com mutex locks?

5.105 Quais são as duas operações que podem ser realizadas em um semáforo?

Capítulo 8

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

8.4 Considere um espaço de endereçamento lógico de 64 páginas de 1.024 palavras cada uma,
mapeado para uma memória física de 32 quadros.
a. Quantos bits há no endereço lógico?
b. Quantos bits há no endereço físico?

8.9 Explique a diferença entre fragmentação interna e externa.

8.11 Dadas seis partições de memória de 300 KB, 600 KB, 350 KB, 200 KB, 750 KB e 125 KB (em
ordem), como os algoritmos do first-fit, do best-fit e do worst-fit alocariam processos de
tamanhos 115 KB, 500 KB, 358 KB, 200 KB e 375 KB (em ordem)? Classifique os algoritmos em
termos da eficiência com que usam a memória.

8.13 Compare os esquemas de alocação contígua, segmentação pura e paginação pura para a
organização da memória em relação às questões a seguir:
a. Fragmentação externa
b. Fragmentação interna
c. Possibilidade de compartilhar código entre processos

8.14 Em um sistema com paginação, um processo não pode acessar memória que ele não possui.
Por quê? Como o sistema operacional poderia permitir o acesso a outras memórias? Por que ele
deveria ou não fazer isso?

8.19 Os programas binários em muitos sistemas são tipicamente estruturados como descrito a
seguir. O código é armazenado começando com um pequeno endereço virtual fixo, como 0. O
segmento de código é seguido pelo segmento de dados que é usado para armazenar as variáveis
do programa. Quando o programa começa a ser executado, a pilha é alocada na outra
extremidade do espaço de endereçamento virtual e pode crescer em direção a endereços virtuais
menores. Qual é a importância dessa estrutura para os seguintes esquemas?
a. Alocação de memória contígua
b. Segmentação pura
c. Paginação pura
8.20 Supondo um tamanho de página de 1 KB, quais são os números e deslocamentos de página
para as referências de endereço a seguir (fornecidas como números decimais):
a. 3085
b. 42095
c. 215201
d. 650000
e. 2000001

8.23 Considere um espaço de endereçamento lógico de 256 páginas com um tamanho de página
de 4 KB, mapeado para uma memória física de 64 quadros.
a. Quantos bits são requeridos no endereço lógico?
b. Quantos bits são requeridos no endereço físico?

8.24 Considere um sistema de computação com um endereço lógico de 32 bits e tamanho de


página de 4 KB. O sistema suporta até 512 MB de memória física. Quantas entradas haveria em
cada um dos itens a seguir?
a. Uma tabela de páginas convencional com um único nível
b. Uma tabela de páginas invertida

8.28 Considere a tabela de segmentos a seguir:

Quais são os endereços físicos para os seguintes endereços lógicos?


a) 0,430
b) 1,10
c) 2,500
d) 3,400
e) 4,112
Questões de Revisão – Capítulo 8

8.100 Quais os dois registradores que podem ser usados para oferecer uma forma simples de
proteção de memória?

8.101 Liste os três momentos diferentes que ligações de endereço podem ocorrer.

8.102 Qual dispositivo de hardware que mapeia endereços virtuais em físicos?


8.103 Quais as três estratégias para selecionar um espaço vazio do conjunto de espaços de
memória disponíveis?
8.104 Quais são os dois tipos de fragmentação?

8.105 O que cada entrada na tabela de páginas contém?

8.106 Qual o termo usado para descrever a situação que ocorre quando um número de página
não está presente na TLB?

8.107 Se um deslocamento de página (page offset) ocupa 13 bits, qual o tamanho da página em
bytes?

8.108 Quantas entradas existem em uma página de dois níveis com número de página de 20
bits?

Capítulo 11

11.8 Pesquisadores sugeriram que, em vez de termos uma lista de controle 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ários associada a cada usuário (especificando quais arquivos um
usuário pode acessar e como). Discuta os méritos relativos desses dois esquemas.

11.9 Considere um sistema de arquivos em que um arquivo possa ser excluído e seu espaço em
disco reclamado, mesmo que ainda existam links para esse arquivo. Que problemas podem
ocorrer se um novo arquivo for criado na mesma área de armazenamento ou com o mesmo nome
de caminho absoluto? Como esses problemas podem ser evitados?

11.14 Se o sistema operacional souber que determinada aplicação irá acessar dados de arquivo
de modo sequencial, como ele poderia usar essa informação para melhorar o desempenho?

11.16 Discuta as vantagens e desvantagens do suporte a links para arquivos que fazem o
cruzamento entre pontos de montagem (isto é, o link do arquivo referencia um arquivo que está
armazenado em um volume diferente).

Questões de Revisão – Capítulo 11

1. Liste pelo menos três atributos de um arquivo.

2. Liste pelo menos três operações que podem ser realizadas em um arquivo.

3. Quais são as duas maneiras fundamentais de se acessar um arquivo?

4. O que é um volume?
5. Qual é a maneira mais comum de se estruturar diretórios?

6. Se um ponto de montagem é /home e o dispositivo jane/programs é montado no ponto


de montagem, qual é o caminho completo para acessar o diretório programs.

7. Quais são as três classificações gerais de usuários em conexão com cada arquivo?

Capítulo 12

12.1 Considere um arquivo correntemente composto por 100 blocos. Suponha que o bloco de
controle do arquivo (e o bloco de índices, em caso de alocação indexada) já esteja em memória.
Calcule quantas operações de I/ O de disco são necessárias para as estratégias de alocação
contígua, encadeada e indexada (de nível único) se, para um bloco, as condições a seguir
estiverem presentes. No caso da alocação contígua, assuma que não exista espaço para
crescimento no começo do arquivo, mas exista no fim. Assuma também que as informações do
bloco a serem adicionadas estão armazenadas na memória.

a) O bloco é adicionado ao início.


b) O bloco é adicionado no meio.
c) O bloco é adicionado ao fim.
d) O bloco é removido do início.
e) O bloco é removido do meio.
f) O bloco é removido do fim.

12.3 Por que o mapa de bits para alocação de arquivos deve ser mantido em memória de massa
em vez de na memória principal?

12.10 Compare o desempenho das três técnicas para alocação de blocos de disco (contígua,
encadeada e indexada) tanto no acesso sequencial de arquivos quanto no acesso randômico.

12.11 Quais são as vantagens da variante da alocação encadeada que usa uma FAT para encadear
juntos os blocos de um arquivo?

12.16 Considere um sistema de arquivos que use inodes para representar arquivos. Os blocos de
disco têm 8 KB e um ponteiro para um bloco de disco requer 4 bytes. Esse sistema de arquivos
tem 12 blocos de disco diretos, assim como blocos de disco indiretos simples, duplos e triplos.
Qual é o tamanho máximo de arquivo que pode ser armazenado nesse sistema de arquivos?

12. 20 Considere um sistema que mantém os espaços livres em uma lista.


a) Suponha que o ponteiro para a lista de espaços livres seja perdido. O sistema seria
capaz de reconstruir a lista de espaços livres? Explique sua resposta.
b) Sugira um esquema que assegure que o ponteiro não seja perdido por falhas na
memória.
Questões de Revisão – Capítulo 12

1. Qual é o nome do sistema de arquivo padrão de Linux?

2. Qual o termo em Unix usado para referenciar um bloco de controle de arquivo (FCB)?

3. Quais são as duas abordagens utilizadas para se implementar um diretório?

4. Liste pelo menos duas abordagens para alocar blocos de disco para arquivos.

5. Como seria a representação do vetor de bits se os blocos 0, 3, 4 e 6 estiverem livres?

Capítulo 15

15.1 Ataques de estouro de buffer (buffer overflow) podem ser evitados adotando-se uma
metodologia de programação melhor ou usando-se suporte de hardware especial. Discuta essas
soluções.

15.2 Uma senha pode se tornar conhecida por outros usuários de várias maneiras. Há um método
simples para a detecção de que esse tipo de evento ocorreu? Explique sua resposta.

15.3 Qual é a finalidade do uso de um “salt” junto a senha fornecida pelo usuário? Onde o “salt”
deve ser armazenado e como ele deve ser usado?

15.4 A lista de todas as senhas é mantida dentro do sistema operacional. Assim, se um usuário
consegue ler essa lista, a proteção de senha não é mais fornecida. Sugira um esquema que evite
esse problema. (Dica: Use representações interna e externa diferentes).

15.5 Uma adição experimental ao Unix permite que um usuário conecte um programa cão de
guarda (watchdog) a um arquivo. O cão de guarda é invocado sempre que um programa solicita
acesso ao arquivo. Em seguida, ele concede ou nega acesso ao arquivo. Discuta duas vantagens
e duas desvantagens do uso de cães de guarda para segurança.

15.6 O programa COPS do Unix varre determinado sistema em busca de possíveis brechas de
segurança e alerta o usuário quanto a possíveis problemas. Cite dois perigos potenciais que o uso
desse sistema pode causar à segurança. Como esses problemas podem ser minimizados ou
eliminados?
15.7 Discuta um meio pelo qual gerentes de sistemas conectados à Internet poderiam projetar
seus sistemas de modo a limitar ou eliminar o dano causado por worms. Quais são as
desvantagens de fazer a alteração que você sugeriu?

15.9 Faça uma lista de seis preocupações de segurança para um sistema de computação de um
banco. Para cada item de sua lista, defina se essa preocupação está relacionada com a segurança
física, humana ou do sistema operacional.
15.10 Cite duas vantagens da criptografia de dados armazenados no sistema de computação.

15.11 Que programas de computador de uso comum são propensos a ataques do intermediário
(man-in-the-middle)? Discuta soluções que impeçam esse tipo de ataque.

15.12 Compare os esquemas de criptografia simétrica e assimétrica e discuta sob que


circunstâncias um sistema distribuído usuária um ou outro.

15.13 Por que Dkd,N[Eke,N(m)] não fornece autenticação do emissor? Para que finalidades essa
criptografia pode ser aplicada?

15.14 Discuta como o algoritmo de criptografia assimétrica pode ser usado para atender os
objetivos a seguir:
a. Autenticação: o receptor sabe que somente o emissor poderia ter gerado a mensagem.
b. Sigilo: somente o receptor pode descriptografar a mensagem.
c. Autenticação e sigilo: somente o receptor pode descriptografar a mensagem e ele sabe
que somente o emissor poderia tê-la gerado.

Questões de Revisão – Capítulo 15


15.1 Qual é a técnica mais comum para ataques de segurança?

15.2 Quais são os quatro níveis em que medidas de segurança devem ser tomadas?

15.3 Liste exemplos de pelo menos três ameaças de programa.

15.4 Liste exemplos de pelo menos duas ameaças de rede e sistema.

15.6 Qual o nome do algoritmo de criptografia em que a mesma chave é usada para criptografar
e descriptografar?

15.7 Qual é o nome de um protocolo criptográfico comumente utilizado?

15.8 Qual é o método mais comum para se autenticar um usuário?

15.10 Qual é o primeiro passo para se implementar uma defesa de segurança?

15.11 Qual é o termo quando um sistema direciona um invasor para um local onde o sistema
pode monitorar as atividades do invasor?

Você também pode gostar