Buscar

Revisão Sistemas Operacionais

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

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 6, do total de 34 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

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 9, do total de 34 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

*
*
SISTEMAS OPERACIONAIS
SIMONE MARKENSON
Rio de Janeiro, maio de 2011
CONTEÚDO DA AULA
*
FUNÇÕES
*
COMPONENTES DE UM S.O.
Gerenciador
de Processos
Gerenciador
de Memória
Gerenciador
de Disco
Gerenciador
de Rede
Gerenciador
de E / S
Gerenciador
de Arquivos
Sistema de
Proteção
Sistema 
Interpretador 
de Comandos
S.O.
*
CLASSIFICAÇÃO
MONOTAREFA X MULTITAREFA
executa
CONCORRENTE ≠ SIMULTÂNEO
*
PERCENTUAL DE TEMPO QUE A TAREFA UTILIZOU A CPU NO ÚLTIMO MINUTO
SISTEMAS MULTITAREFA
*
CLASSIFICAÇÃO
MONOUSUÁRIO X MULTIUSUÁRIO
		USUÁRIO = GENTE!!!! 
TODO SISTEMA MULTIUSUÁRIO É OBRIGATORIAMENTE MULTITAREFA
MULTIUSUÁRIO SIGNIFICA MAIS DE UMA PESSOA NO MESMO SISTEMA
*
		
 MODO USUÁRIO	 			MODO KERNEL
instruções não privilegiadas		instruções privilegiadas
SYSTEM CALL
MODO USUÁRIO X MODO KERNEL
SYSTEM CALL (CHAMADA AO SISTEMA): 
PORTA DE ACESSO AO KERNEL
*
RESUMINDO
Sistema Operacional é um conjunto de programas cujas principais funções são:
 Interface com usuário
Administração dos recursos
Segurança e estabilidade
Sistemas multitarefa utilizam as interrupções para promover a sensação de execução simultânea, mas sabemos que se trata de execução concorrente.
*
RESUMINDO – aula 1
1) São funções do sistema operacional:
( ) gerenciar recursos de hardware e fornecer um aplicativo para navegação na internet
( ) gerenciar recursos de hardware e interface com o usuário
( ) interface com o usuário e correção ortográfica
( ) gerenciar recursos de software e interromper uma tarefa em execução.
 
2) Para que uma aplicação execute instruções privilegiadas deverá executar:
( ) uma arquivo específico para gerenciamento de hardware
( ) uma interrupção de hardware.
( ) uma solicitação ao administrador do sistema.
( ) uma chamada ao sistema
3) O uso de interrupções permite a utilização de:
( ) sistemas concorrentes
( ) comunicação de dados
( ) dispositivos de hardware como teclado e disco
( ) bibliotecas de software
*
RESUMINDO – aula 1
1) São funções do sistema operacional:
( ) gerenciar recursos de hardware e fornecer um aplicativo para navegação na internet
(X) gerenciar recursos de hardware e interface com o usuário
( ) interface com o usuário e correção ortográfica
( ) gerenciar recursos de software e interromper uma tarefa em execução.
 2) Para que uma aplicação execute instruções privilegiadas deverá executar:
( ) uma arquivo específico para gerenciamento de hardware
( ) uma interrupção de hardware.
( ) uma solicitação ao administrador do sistema.
(X) uma chamada ao sistema
3) O uso de interrupções permite a utilização de:
(X ) sistemas concorrentes
( ) comunicação de dados
( ) dispositivos de hardware como teclado e disco
( ) bibliotecas de software
*
CONCEITOS DE PROCESSOS
Instância de um programa em execução.
	
É a unidade de carga e alocação de uma tarefa
	
 Um programa é carregado para a memória onde aloca uma determinada área para código e dados
*
ESTADOS DE UM PROCESSO
modelo de 5 estados
*
RESUMINDO – aula 2
1) Sobre o conceito de processos, marque a afirmação verdadeira.
( ) Processo é a mesma coisa que programa.
( ) Processo é um programa que está em execução
( ) Processo é uma característica do processador
( ) Processo é um programa armazenado no disco
 
2) Pode ser responsável pela troca de contexto:
( ) Operação aritmética
( ) Interrupção por tempo provocada pelo temporizador
( ) sistema operacional
( ) Outro programa que quer executar.
*
RESUMINDO – aula 2
1) Sobre o conceito de processos, marque a afirmação verdadeira.
( ) Processo é a mesma coisa que programa.
(X) Processo é um programa que está em execução
( ) Processo é uma característica do processador
( ) Processo é um programa armazenado no disco
 
2) Pode ser responsável pela troca de contexto:
( ) Operação aritmética
(X) Interrupção por tempo provocada pelo temporizador
( ) sistema operacional
( ) Outro programa que quer executar.
*
THREADS
São fluxos de execução distintos dentro de um mesmo processo.
É a unidade de execução de um sistema.
Um processo
Um thread
Múltiplos processos
Um thread por processo
Um processo
múltiplos threads
Multiplos processos
Múltiplos threads por processo
*
Para que servem?
Melhor aproveitamento da fatia de tempo
Compartilhamento de Recursos
Economia de tempo de gerenciamento
Utilização de Múltiplos Processadores
*
RESUMO
 
 Uma thread pode ser imaginada então como uma função de um programa que tem “vida própria” para a execução mas não pode ser criada isoladamente.
*
RESUMINDO – aula 3
1) Uma thread é a execução de um fluxo de processamento, isto significa que um processo pode ser composto por várias threads. Neste contexto é correto afirmar que:
( ) Uma thread é equivalente a um processo filho pois a execução de cada thread é independente
( ) Uma thread pode ser compartilhada por vários processos pois o espaço de endereçamento é compartilhado.
( ) Uma thread pode existir sem estar associada a um processo.
( ) Threads de um mesmo processo podem ter suas execuções independentes e compartilham espaço de endereçamento de memória.
 2) Considere uma aplicação baseada em threads em um sistema operacional com suporte a threads. Se uma das threads for bloqueada por solicitar uma operação de E/S as demais threads do mesmo processo:
( ) Poderão continuar executando se não dependerem do thread que foi bloqueada.
( ) Serão bloqueadas também.
( ) Não serão bloqueadas mas ficarão aguardando o desbloqueio da thread que executou a operação de E/S
( ) Serão interrompidas provocando um erro no processo.
*
RESUMINDO – aula 3
1) Uma thread é a execução de um fluxo de processamento, isto significa que um processo pode ser composto por várias threads. Neste contexto é correto afirmar que:
( ) Uma thread é equivalente a um processo filho pois a execução de cada thread é independente
( ) Uma thread pode ser compartilhada por vários processos pois o espaço de endereçamento é compartilhado.
( ) Uma thread pode existir sem estar associada a um processo.
(X) Threads de um mesmo processo podem ter suas execuções independentes e compartilham espaço de endereçamento de memória.
 2) Considere uma aplicação baseada em threads em um sistema operacional com suporte a threads. Se uma das threads for bloqueada por solicitar uma operação de E/S as demais threads do mesmo processo:
( X) Poderão continuar executando se não dependerem do thread que foi bloqueada.
( ) Serão bloqueadas também.
( ) Não serão bloqueadas mas ficarão aguardando o desbloqueio da thread que executou a operação de E/S
( ) Serão interrompidas provocando um erro no processo.
*
CONCORRÊNCIA
				Thread 1		Thread2
Linha 1			A= A * 2		B= B + 1
Linha 2			B= B * 2		A= A + 1
Caso 1: Thread 1 linha 1 e linha 2, thread 2 linha 1 e linha 2
			 Resultado final: A =3 B = 3 
Caso 2: Thread 2 linha 1 e linha 2, thread 1 linha 1 e linha 2: 
			Resultado final: A = 4 B= 4
Caso3: Thread1 linha1, thread 2 linha1 e linha 2, thread1 linha 2
			Resultado final: A = 3 B = 4
O RESULTADO DEPENDE DA ORDEM DE EXECUÇÃO
PROBLEMAS DA CONCORRÊNCIA!!!!
*
CONCEITOS FUNDAMENTAIS
Condição de corrida
	
	Eventos que geram resultados não determinísticos
Região crítica
	
	Parte do código que utiliza recursos compartilhados
Exclusão Mútua
	
	Mecanismo de proteção a uma região crítica
ENTRAR_RC()
 Código da região crítica
SAIR_RC()
*
COMO FUNCIONA
 ENTRAR_RC()				 Espera ocupada 
							 OU
							 bloqueio
 Código da região crítica
 SAIR_RC()				Liberação do recurso
*
EXCLUSÃO MÚTUA
Somente um processo por vez pode executar uma região crítica
Um processointerrompido fora de uma região crítica não pode impedir que outro processo tenha acesso a esta região crítica
Não pode haver nem deadlock nem starvation
Quando não houver processo executando uma região crítica qualquer processo que solicitar acesso deverá obtê-lo imediatamente
Um processo deve permanecer executando uma região crítica por tempo finito
Nada pode ser assumido sobre a velocidade relativa e dos processos nem o número de processadores
*
RESUMINDO – aula 4
1) A condição de corrida é derivada de:
( ) aplicações concorrentes que não garantem exclusão mútua às regiões críticas
( ) aplicações baseadas em threads
( ) sistemas operacionais sem suporte a múltiplas threads
( ) aplicações em sistemas monotarefa que tentam executar ao mesmo tempo.
2) Preciso de giz e apagador para a aula. Peguei a caixa de giz, mas parei para conversar. Ao tentar pegar o apagador fiquei sabendo que outro professor, que só daria aula no segundo tempo, pegou o apagador e aguardava a caixa de giz que não estava sobre a mesa. Não sabia quem era o outro professor então fiquei esperando que fosse devolvido. Como iria ter aula no segundo tempo, resolvi guardar o giz e esperar o apagador. Esta situação retrata:
( ) Uma condição de corrida.
( ) Um deadlock em função da exclusão mútua no acesso aos dois recursos
( ) Um evento que será solucionado assim que terminar a aula.
( ) Um deadlock que poderá ser solucionado indo em busca do apagador e arrancando-o da mão do outro professor.
*
RESUMINDO – aula 4
1) A condição de corrida é derivada de:
( X) aplicações concorrentes que não garantem exclusão mútua às regiões críticas
( ) aplicações baseadas em threads
( ) sistemas operacionais sem suporte a múltiplas threads
( ) aplicações em sistemas monotarefa que tentam executar ao mesmo tempo.
2) Preciso de giz e apagador para a aula. Peguei a caixa de giz, mas parei para conversar. Ao tentar pegar o apagador fiquei sabendo que outro professor, que só daria aula no segundo tempo, pegou o apagador e aguardava a caixa de giz que não estava sobre a mesa. Não sabia quem era o outro professor então fiquei esperando que fosse devolvido. Como iria ter aula no segundo tempo, resolvi guardar o giz e esperar o apagador. Esta situação retrata:
( ) Uma condição de corrida.
(X) Um deadlock em função da exclusão mútua no acesso aos dois recursos
( ) Um evento que será solucionado assim que terminar a aula.
( ) Um deadlock que poderá ser solucionado indo em busca do apagador e arrancando-o da mão do outro professor.
*
ENFIM... SOLUÇÕES!
Soluções algorítmicas
São baseadas em espera ocupada
Processos se alternam no uso de suas respectivas RCs, fazendo com que o tempo de execução seja ditado pelo processo mais lento.
Somente pode ser utilizado por dois processos.
Se um dos processos falhar (abortar, por exemplo) o outro jamais poderá entrar em sua RC novamente pois a variável vez não será alterada, contrariando uma das regras de implementação de mecanismos de exclusão mútua
*
ENFIM... SOLUÇÕES!
Soluções baseadas em hardware
Inibir interrupções
Não habilitar as interrupções por erro de programação (só desligando o computador!!!)
 Como somente as interrupções do processador que executou a instrução são desabilitadas não garante exclusão mútua em sistemas multiprocessados.
Instruções TSL
Utiliza espera ocupada
Possibilidade de starvation;
Deve garantir exclusividade no uso do barramento para multiprocessadores
*
ENFIM... SOLUÇÕES!
Soluções baseadas no Sistema Operacional
Troca de Mensagens
Utilizado também em sistemas distribuídos
Utiliza primitivas send e receive para o envio e recebimento de mensagens.
As primitivas podem ou não bloquear o processo
Considere um receive bloqueante e um send não bloqueante. O processo deve aguardar um send par liberar o processo bloqueado na instrução receive.
receive(caixa_postal)
	 Região Crítica
send (caixa_postal)
*
ENFIM... SOLUÇÕES!
Soluções baseadas no Sistema Operacional
Semáforos
O semáforo deve ser inicializado com um valor não negativo.
A operação wait decrementa o semáforo; se o valor ficar negativo o processo é bloqueado
A operação signal incrementa o semáforo; se o valor não ficar positivo o processo bloqueado pela operação wait é desbloqueado.
			Wait(s)
				Região Crítica
			Signal(s)
*
Sincronização: produtor/consumidor
BUFFER INFINITO
Produtor (i) {
while (T) {
	produz_item()
	wait(s)
 	 adiciona_item()
	signal(s)
	signal(n)
 }
}
Consumidor(i) {
 while (T) { 
	wait(n) 
	wait(s) 
	 remove_item()
	signal(s)
	consome_item()
 }
}
Valor inicial: s =	_____	n = ______ 
*
Sincronização: produtor/consumidor
BUFFER FINITO
Produtor (i) {
while (T) {
	produz_item()
	wait(v)
	wait(s)
 	 adiciona_item()
	signal(s)
	signal(n)
 }
}
Consumidor(i) {
 while (T) { 
	wait(n) 
	wait(s) 
	 remove_item()
	signal(s)
	consome_item()
	signal(v)
 }
}
Valor inicial: s =	_____	n = ______ v= ______ 
*
RESUMINDO – aula 5
1) Considere o problema do produtor/consumidor com buffer infinito (caso 1). O que acontece se trocarmos de posição as linhas wait(n) e wait(s) na rotina consumidor?
( ) deadlock
( ) condição de corrida
( ) starvation do produtor
( ) não faz diferença a ordem em que estas linhas são executadas
2) Considerando o problema do produtor/consumidor com buffer finito (caso 2), o que acontece se trocarmos de posição as linhas signal(n) e signal(s) na rotina produtor?
( ) condição de corrida.
( ) deadlock 
( ) starvation do consumidor
( ) não faz diferença a ordem em que estas linhas são executadas
*
RESUMINDO – aula 5
1) Considere o problema do produtor/consumidor com buffer infinito (caso 1). O que acontece se trocarmos de posição as linhas wait(n) e wait(s) na rotina consumidor?
( X ) deadlock
( ) condição de corrida
( ) starvation do produtor
( ) não faz diferença a ordem em que estas linhas são executadas
2) Considerando o problema do produtor/consumidor com buffer finito (caso 2), o que acontece se trocarmos de posição as linhas signal(n) e signal(s) na rotina produtor?
( ) condição de corrida.
( ) deadlock 
( ) starvation do consumidor
(X ) não faz diferença a ordem em que estas linhas são executadas
*
*

Outros materiais