Sunteți pe pagina 1din 4

Lista 02 – Exercícios

Disciplina: Sistemas Operacionais

1. Explique a diferença entre endereços lógicos e endereços físicos e as razões que justificam seu
uso.
Os endereços de memória gerados pelo processador na medida em que executa algum código, são chamados
de endereços lógicos, porque correspondem à lógica do programa, mas não são necessariamente iguais aos
endereços reais das instruções e variáveis na memória real do computador, que são chamados de endereços
físicos.

2. Como é organizado o espaço de memória de um processo?


Text: contém o código a ser executado pelo processo, gerado durante a compilação e a ligação das
bibliotecas.
Data: dados estáticos usados pelos programas.
Heap: armazenam dados para alocação dinâmica, malloc, free.
Slock: mantém a pilha de execução do processo.

3. O que é uma MMU – Memory Management Unit?


É um dispositivo de hardware que transforma endereços virtuais em endereços físicos. Na MMU, o valor no
registo de relocação é adicionado a todo o endereço lógico gerado por um processo do utilizador na altura de
ser enviado para a memória. O programa do utilizador manipula endereços lógicos; ele nunca vê endereços
físicos reais.

4. O que é troca de contexto? Quais políticas e mecanismos estão envolvidos na troca de contexto?
É o processo computacional de armazenar e restaurar o estado de uma CPU de forma que múltiplos processos
possam compartilhar uma única instância de CPU. É garantido que quando o contexto anterior armazenado
seja restaurado, o ponto de execução volte ao mesmo estado que foi deixado durante o armazenamento.
O estado de um processo inclui todos os registradores que o processo pode estar usando, especialmente o
contador de programa, e qualquer outro dado específico do sistema operacional. A estrutura que armazena
todas essas informações é chamada de bloco de controle de processo. O bloco pode ser armazenado na pilha
de execução do processo na memória do núcleo, ou em algum outro local específico definido pelo sistema
operacional. A seguir é feita a restauração do bloco de controle do processo que irá executar. Com a
atualização do contador de programa, a execução do novo processo pode iniciar.

5. Explique as principais formas de alocação de memória.


Alocação estática: Decisão tomada quando o programa é compilado.
Alocação dinâmica: Decisão é adiada até a execução. (Permite swapping)

6. Explique como é feita a translação entre endereços lógicos e físicos e o mecanismo de tratamento
de falta de página em um sistema de memória virtual paginada.

A translação entre endereço logico e físico em um processo com N páginas e realizada a partir de n frames livres
na memória, as páginas são carregadas em qualquer frame livre. A memória física e dividida em blocos
denominados frames com tamanho fixo, a memória logica e dividida em blocos de tamanho fixo denominados
páginas, acontece apenas a verificação da memória física disponível para a alocação do recurso. O mecanismo
de tratamento de falta de página em memória virtual paginada, acontece da seguinte maneira o page fault
handler consulta uma outra estrutura de dados para determinar se a referência é válida, e, em caso
afirmativo, onde se encontra a página. O handler obtém um frame livre. Transfere a página do disco para a
frame.
7. Por que os tamanhos de páginas e quadros possuem o mesmo tamanho?

8. Considere um sistema com endereços físicos e lógicos de 32 bits, que usa tabelas de páginas com três
níveis. Cada nível de tabela de páginas usa 7 bits do endereço lógico, sendo os restantes usados para o
offset. Cada entrada das tabelas de páginas ocupa 32 bits. Calcule, indicando seu raciocínio:
a) O tamanho das páginas e quadros, em bytes.

9. Explique o que é TLB, qual a sua finalidade e como é seu funcionamento.


A Translation Lookaside Buffer (TLB) é fundamental no acesso à memória. Basicamente, os endereços de
toda a memória RAM disponível são divididos em páginas de memória. Cada página de memória tem uma
tabela de endereços, com os dados armazenados e sua localização. Esta tabela precisa ser consultada antes
de cada acesso à memória. O grande problema é que em condições normais, a tabela fica armazenada na
própria memória RAM, o que faz com que o processador precise fazer um duplo acesso à memória, o primeiro
para ler a tabela de endereços e o segundo para recuperar os dados propriamente ditos. 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 melhora consideravelmente 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.

10. Explique o que é, para que serve e o que contém um PCB ‐ Process Control Block.
PCB é uma estrutura de dados que serve para armazenar as informações relativas ao contexto e os demais
dados necessários à gerencia de uma tarefa presente no sistema. Ele serve também para que seja efetuada a
Troca de Contexto o que é: interromper a execução de uma tarefa e retornar a ela mais tarde, sem corromper
seu estado interno. Um TCB tipicamente contém as seguintes informações:
 Identificador da tarefa (pode ser um número inteiro, um apontador, uma referência de objeto ou um
identificador opaco);
 Estado da tarefa (nova, pronta, executando, suspensa, terminada);
 Informações de contexto do processador (valores contidos nos registradores);
 Lista de áreas de memória usadas pela tarefa;
 Lista de arquivos abertos, conexões de rede e outros recursos usados pela tarefa (exclusivos ou
compartilhados com outras tarefas);
 Informações de gerência e contabilização (prioridade, usuário proprietário, data de início, tempo de
processamento já decorrido, volume de dados lidos/escritos, etc.).

11. Por que é necessário limpar o cache TLB após cada troca de contexto entre processos? Por que isso não é
necessário nas trocas de contexto entre threads?

12. Explique o que é fragmentação externa. Quais formas de alocação de memória estão livres desse
problema?
Fragmentação externa: entre processos.

13. Como funcionam as tabelas multiníveis da alocação paginada?


A tabela de páginas é dividida em partes, ou seja, a própria tabela é paginada. Deste modo, uma parte da
tabela pode ficar em memória secundária (disco). A cada entrada da primeira tabela de páginas corresponde
ao endereço da segunda tabela, onde está indicado finalmente o endereço físico. Dado que a tabela de páginas
é ela própria paginada, o número da página, com 40 bits, divide-se ainda em:
Número de página (p1) de 20 bits.
Deslocamento (offset) (p2) de 20 bits.
Os 12 bits de deslocamento dentro da página física completam o endereço de 32 bits da página.
Visto que se aumenta o número de acessos intermédios, às várias tabelas, as TLB desempenham um papel
essencial no desempenho dos acessos à memória. Em sistemas de endereçamento de 64 bits são sempre
necessários pelo menos 3 níveis de tabelas, com o endereço tipicamente dividido em 32+10+10+10. A tabela
de primeiro nível, neste sistema, tem de estar sempre presente em memória física primária (RAM), caso
contrário o sistema não teria modo de saber onde se encontrava mapeada determinada parcela de
informação.

14. Para que serve o registrador PTBR e qual sua relação com o TCB de uma tarefa?

15. Para que serve o despachante (dispatcher)?


O dispatcher é responsável pela troca de contexto dos processos após o escalonador determinar qual
processo deve fazer uso do processador.

16. Explique o princípio da localidade de referências: Localidade temporal, localidade espacial e localidade
sequencial.

17. O que é memória virtual? Qual seu mecanismo básico?

18. A frequência de faltas de página depende de vários fatores, de alguns exemplos.

19. Como é feito a escolha para substituição de uma página na memória RAM? Explique o algoritmo FIFO,
OPT, LRU, Algoritmo de segunda chance, NRU e o algoritmo de envelhecimento.

20. Explique o que é fragmentação interna. Quais formas de alocação de memória estão livres desse
problema?

21. O que é conjunto de trabalho?

22. Para que serve o escalonador de processos (scheduler)?

23. Em que consistem as estratégias de alocação first‐fit, best‐fit, worst‐fit e next‐fit?


First-fit: consiste em escolher a primeira área livre que satisfaça o pedido de alocação, tem como vantagem a
rapidez, sobretudo se a lida de áreas livres for muito longa.
Best-fit: consiste em escolher menor área possível que posso atender à solicitação de alocação.
Worst-fit: consiste em escolher sempre a maior área livre possível, de forma que os resíduos sejam grande e
possam ser usados em outras alocações.
Next-fit: variante de anterior (first-fit) que consiste em percorrer a lista a parti da última área alocada ou
liberada, para que o uso da área livre seja distribuído de forma mais homogênea no espaço de memória.

24. O que é uma falta de página? Quais são suas causas possíveis e como o sistema operacional deve tratá‐
las?

25. Ao dividir a memória em blocos de tamanho fixo (quadros) e dividir a memória lógica (espaço de
endereçamento de processos) em blocos do mesmo tamanho (páginas) e permitir que as páginas sejam
carregadas em quaisquer quadros disponíveis, estaremos implementando a) Memória Virtual
b) Journaling
c) Paginação de Memória
d) Enquadramento de memória

26. O que é um contexto de uma tarefa? Dê um exemplo.

S-ar putea să vă placă și