Buscar

Gerenciamento de Memória

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 4 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

1 – O Gerenciador de Processos é um dos mais importantes gerenciadores em um Sistema
Operacional. Descreva:
(a) as funções desse gerenciador;
Execução do processo no processador de maneira adequada (considerando a prioridade do
processo e a quantidade de processos gerenciados)
(b) a conceituação de processos versus a conceituação de threads;
Processo: um programa em execução, também um conjunto de informações necessárias
para a concorrência de programas no sistema operacional. Além disso, também pode ser
entendido como o ambiente onde um programa é executado.
Threads: é a menor unidade de processamento que pode ser executada em um sistema
operacional. Na maioria dos sistemas operacionais modernos, uma thread existe dentro de
um processo e um único processo pode conter várias threads.
(c) as condições que levam ao término de um processo;
1. Saída normal (voluntária).
2. Erro fatal (involuntário).
3. Saída por erro (voluntária).
4. Morto por outro processo (involuntário).
(d) os possíveis estados de um processo;
1. Em execução (realmente usando a CPU naquele instante).
2. Pronto (executável, temporariamente parado para deixar outro processo ser executado).
3. Bloqueado (incapaz de ser executado até que algum evento externo aconteça).
(e) os principais algoritmos de escalonamento de processos;
1. FIFO - FCFS
2. SJF - Shortest Job First
3. Prioridade
4. Round-Robin
5. Múltiplas Filas
6. Garantido
7. Lotérico
8. Tempo-Real
(f) uma discussão que relacione exclusão mútua, região crítica, sincronização e
comunicação entre processos.
2 – Responda às perguntas a seguir.
a) Qual a relação entre timesharing e multiprogramação?
A diferença entre o sistema de compartilhamento de tempo e de multiprogramação está no
funcionamento de cada um.
Os sistemas de compartilhamento de tempo, também chamados de time-sharing,
possibilitam que vários programas sejam executados através de uma divisão de tempo do
processador em intervalos curtos.
Os sistemas de multiprogramação ou multitarefa são uma evolução dos programas de
monoprogramação. Eles possibilitam, por exemplo, que enquanto um programa esteja em
operação de leitura outros possam ser executados.
b)Qual é a diferença entre o modo núcleo (também chamado supervisor, protegido ou
privilegiado) e o modo usuário? Por que essa diferença é importante para um sistema
operacional?
Grande parte das CPUs modernas providenciam dois modos de execução, o kernel e o
usuário. A CPU pode executar cada instrução na sua lista de instruções e usar todo o poder
do hardware quando executando o modo kernel. Porém só pode utilizar um conjunto de
instruções e pequena capacidade quando executa o modo usuário. Tendo os dois modos
permite programadores a negarem aos usuários acessos vitais da cpu.
c)Como funciona uma chamada de sistema?
Primeiro se empilha os parâmetros passados pela função, há então uma chamada real para
a rotina de biblioteca, onde se chama todas as rotinas. Coloca-se o número da chamada de
sistema em um lugar onde o sistema operacional espera, como um registro. Seguida de
uma execução em um endereço fixo dentro do kernel. Acontece um despache para o
tratador correto da chamada de sistema, onde é tratado. Então acontece o retorno do
controle para a rotina de biblioteca no espaço usuário, o retorno usual da chamada de
rotina, e finalmente a limpeza da pilha, podendo haver incremento do ponteiro da pilha para
remover os parâmetros empilhados antes da chamada.
d) Porque o acesso a serviços do sistema operacional é feito através de chamadas de
sistemas e não por chamadas a subrotinas? Em outros termos, qual a diferença entre uma
chamada de sistema e uma chamada de subrotina para efeitos de implementação de um
sistema operacional?
Enquanto as chamadas de subrotinas são transferências para procedimentos normais do
programa, as chamadas de sistema transferem a execução para o sistema operacional.
Para o programador assembly (linguagem de montagem), as chamadas de sistema são
bastante visíveis. Por exemplo, o conhecido "INT 21H" no MSDOS. Em uma linguagem de
alto nível, elas ficam escondidas dentro da biblioteca utilizada pelo compilador
3 – Descreva o que acontece com processos I/O bound com relação aos processos
CPU-bound, em cada uma das seguintes políticas de escalonamento:
(a) FCFS
O processador é alocado seguindo a ordem de chegada dos processos à fila de processos
prontos. O processo que tem a CPU não a libera até que acabe sua execução ou até que
fique bloqueada por uma operação de E/S. Porém, o algoritmo tende a dar prioridade aos
processos com muita carga de CPU.
(b) Round Robin.
É semelhante ao FCFS, porém a fila passa a ser circular de forma que um processo só
utiliza a CPU por um determinado período de tempo determinado quantum.
Descreva como os processos (I/O bound e CPU bound) são escalonados uns em relação
aos outros. Classifique esses algoritmos em ordem de favorecimento, determinando quais
desses algoritmos favorecem mais e quais favorecem menos os processos I/O bound.
4 – Os três principais estados de um processo são: ready, running e blocked. Descreva
quais eventos fazem um processo mudar de estado. Descreva todas as situações possíveis
envolvendo esses três estados.
A transição 1 ocorre quando o sistema operacional descobre que um processo não pode
continuar agora. Em alguns sistemas o processo pode executar uma chamada de sistema,
como em pause, para entrar em um estado bloqueado. Em outros, incluindo UNIX, quando
um processo lê de um pipe ou de um arquivo especial (por exemplo, um terminal) e não há
uma entrada disponível, o processo é automaticamente bloqueado.
As transições 2 e 3 são causadas pelo escalonador de processos, uma parte do sistema
operacional, sem o processo nem saber a respeito delas. A transição 2 ocorre quando o
escalonador decide que o processo em andamento foi executado por tempo suficiente, e é o
momento de deixar outro processo ter algum tempo de CPU. A transição 3 ocorre quando
todos os outros processos tiveram sua parcela justa e está na hora de o primeiro processo
chegar à CPU para ser executado novamente.
A transição 4 se verifica quando o evento externo pelo qual um processo estava esperando
(como a cheada de alguma entrada) acontece. Se nenhum outro processo estiver sendo
executado naquele instante, a transição 3 será desencadeada e o processo começará a ser
executado. Caso contrário, ele talvez tenha de esperar no estado de pronto por um intervalo
curto até que a CPU esteja disponível e chegue sua vez.
5 – No contexto de gerenciamento de processos, no que consiste o problema de inversão
de prioridades? Exemplifique. Que tipo de soluções existem para esse tipo de problema?
A inversão de prioridades ocorre quando uma tarefa de alta prioridade é impedida de
executar por causa de uma tarefa de baixa prioridade. Uma solução elegante para o
problema da inversão de prioridades é obtida através de um protocolo de herança de
prioridade [Sha et al., 1990]. O protocolo de herança de prioridade mais simples consiste
em aumentar temporariamente a prioridade da tarefa tb que detém o recurso de uso
exclusivo R. Caso esse recurso seja requisitado por uma tarefa de maior prioridade ta
, a tarefa tb “herda” temporariamente a prioridade de ta, para que possa executar e liberar o
recurso R mais rapidamente. Assim que liberar o recurso, tb retorna à sua prioridade
anterior

Continue navegando