Buscar

Prova 2 - Sistemas Operacionais (simulado)

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

Prévia do material em texto

Explique, com exemplos, o conceito do escalonamento multi-filas.
No escalonamento multi-filas os processos são agrupados em filas, cada fila possui um algoritmo de escalonamento, e entre as filas também existe um algoritmo de escalonamento, sendo a ultima obrigatoriamente de prioridades.
Existe dois tipos de escalonamento de Multi-filas.
Escalonamento multi-filas sem retorno: Os processos são alocados de acordo com as prioridades. Desvantagem: starvation. 
Escalonamento multi-filas com retorno: Os processos podem alterar entre filas, neste escalonamento não ocorre starvation porque possui algoritmo de envelhecimento (aging).
Exemplo:
Fila 1 P1, P2, P5, P10 Algoritmo: SFJ
Algoritmo: Prioridade 
Fila2 P3, P4, P20, P7 Algoritmo: FCFS
Algoritmo: Prioridades Fila3 P14, P17, P18, P19 Algoritmo: Round Robin(q=3).
Explique, com exemplos, o que é seção crítica.
Cada processo tem um segmento de código, chamado seção crítica, em que o processo pode estar alterando variáveis comuns. Quando um processo estiver executando sua seção crítica, nenhum outro processo deve ter autorização para fazer o mesmo. O problema da seção critica é o projeto de um protocolo que os processos possam usar para cooperar. Cada processo deve solicitar permissão para entrar em sua seção crítica. A seção de código que implementa essa solicitação é a seção de entrada. A seção crítica pode ser seguida por uma seção de saída, o código restante é a seção remanescente. 
			Exemplo: O acesso ao banco de dados podem ser executadas de duas maneiras: (1) Leitura (2) Escrita. Suponhamos que o processo P esteja escrevendo dados, o processo Q estaria lendo, com isso geraria um problema da seção crítica. 
	Uma solução para a seção critica deve satisfazer aos três requisitos a seguir.
	- exclusão mutua: se Pi esta na seção critica, nenhum outro processo pode entrar nela.
	- Progresso garantido: se nenhum outro processo está na seção critica, um progresso que tente faze-lo não pode ser detido indefinidamente.
	- Espera limitada: se um processo deseja entrar na seção crítica, há um limite no número de outros processos que podem entrar nela antes dele. 
Do { 
	Flag[ i ] = TRUE
	Turn = j;
	White (flag[ j ] && turn == j);
		Seção crítica 
	Flag[ i ] = FALSE;
		Seção remanescente 
}while(TRUE) 
 Explique com exemplos o que é deadlocks. Qual a postura do SO pode adotar com relação a esse tipo de problema?
Um exemplo para ilustrar a ideia de deadlocks seria quando dois carros entram em uma ucuca ponte nos sentidos contrários. Um deveria esperar o outro retornar para que o outro termine a passagem.
			Existe 3 medidas para esse problema:
			1: O sistema ignora e finge que não existe deadlocks. Sistemas atuais utilizam este procedimento.
			2: O sistema permite a entrada do deadlock, detecta e recupera.
			3: O sistema assume um protocolo para prevenir ou evitar o deadlock, garantindo que nunca ocorrera deadlocks no sistema.
Explique por que SJF não é implementado na pratica.
Há uma dificuldade em saber a extensão da próxima requisição de CPU. Para o escalonamento de longo prazo em um sistema batch, podemos usar como tamanho o limite de tempo do processo especificado por um usuário ao submeter a tarefa. Um valor muito baixo causará um erro de limite de tempo ultrapassado e exigirá nova submissão. Embora o algoritmo SJF seja ideal, ele não pode ser implementado o nível do escalonamento de CPU de curto prazo. Não há como saber a extensão do próximo burst de CPU. Uma técnica utilizada é tentar aproximar o escalonamento SJF prevendo o valor. Espera-se que o próximo burst de CPU seja semelhante em tamanho aos anteriores. Assim, calculando o próximo burst de CPU, podemos selecionar o processo com o menor burst de CPU previsto. 
			O próximo burst de CPU, em geral, é previsto como uma média exponencial dos períodos medidos dos bursts de CPU anteriores. 
Implementação de semáforos em SO modernos, destacando o mecanismo para evitar espera ocupada.
Defina deadlock. Quais são as quatro condições que o caracterizam?
Um conjunto de processos bloqueados, cada um retendo um recurso e esperando para adquirir um recurso retido de outro processo no conjunto.
Exclusão mútua: Somente um processo de cada vez pode usar um recurso 
Manter e esperar: Um processo retendo pelo menos um recurso está esperando para adquirir recursos adicionais mantidos por outros processos.
Sem preempção: Um recurso pode ser liberado apenas voluntariamente pelo processo que o mantém, após esse processo ter completado sua tarefa
Espera circular: Existe um conjunto {P0, P1, …, P0} de processos esperando de modo que P0 está esperando um recurso que é mantido por P1, P1 está esperando um recurso que é mantido por P2, …, Pn–1 está esperando um recurso que é mantido por Pn, e P0 está esperando um recurso que é mantido por P0.

Continue navegando