Buscar

Aula S.O. 160316

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

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

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ê viu 3, do total de 3 páginas

Prévia do material em texto

2 - Estados do Processo
Em execução (running) 
São processos que estão efetivamente usando a CPU ,ou seja, “rodando”.
Geralmente, encontra-se apenas um processo neste estado.
Pronto (ready)
São processos que aguardam sua vez para usar a CPU,ou seja, estão prontos para “rodar”, esperando sua vez. Geralmente a maioria dos processos estão neste estado.
Em espera (wait) 
São processos que aguardam um recurso para dar prosseguimento ao seu processamento. Este recurso não é a CPU. Pode ser um dado da rede, até um acesso a disco. Geralmente, poucos processos (se houver algum) estão neste estado.
 
Diagramas de Estados de Processos 
ESPERA(
alguns
)
PRONTO
(
muitos
)
EXECUÇÃO 
(1)
SubProcessos e Threads 
- Um processo pode criar outros processos, de maneira hierárquica. 
- Quando processo (pai) cria outro processo (filho) este é chamado de subprocesso que, por sua vez, pode criar outros subprocessos. 
- Caso um processo pai deixe de existir, todos os subprocessos deste “pai” também deixarão de existir.
- Subprocessos são criados para otimizar o compartilhamento de CPU e de outros recursos. 
- O conceito de threads foi introduzido para reduzir a criação/eliminação de processos.
- Cada thread possui seu próprio conjunto de registradores, porém, podem compartilhar o mesmo espaço de endereçamento.
- A principal característica das threads, apesar de funcionarem como processos, é que um thread pode alterar dados de uma outra thread.
Comunicação entre Processos
Há processos que compartilham recursos, entre um ou mais computadores, porém, alguns problemas podem decorrer do livre compartilhamento destes recursos.
Starvation (“morrer de fome”)
Quando um processo aloca recursos, um após o outro, sem liberá-los, faz com que outros processos permaneçam no estado de espera. À medida que o número de processos neste estado aumenta, sistemas degradam sua performance, até que sistemas “travem”.
Deadlock
Outro problema causado pela falta de comunicação.
		A nível de processo, um exemplo:
P1 R1 
P2 R2
P3 R3
	Quando o ciclo se “fecha” sistemas podem “travar”. Uma definição de deadlock seria uma alocação cíclica de recursos causando um “impasse” que pode até “travar” sistemas.
O que fazer ?
Prevenir: alguns sistemas previnem (evitam) a ocorrência de deadlocks mantendo uma tabela de processos, recursos, e requests.
	Processo
	Recurso
	Pedido
	P1
	R1
	R3
	P2
	R2
	R1
	P3
	R3
	R2
Quando é identificado o ciclo é dado um aviso “deadlock warning” o último pedido é negado.
EX.: ORACLE.
Reagir: uma forma de reagir a um deadlock qu já ocorreu é matar um processo. Problemas: Qual processo? Qual impacto?
Ignorar: desenvolvedores de S.O. dizem que deadlocks são problemas dos aplicativos e seus desenvolvedores.
Semáforos
Como no problema dos filósofos comensais, semáforos podem ser utilizados para impedir que filósofos “vizinhos” comam ao mesmo tempo (resolvendo problema). 
Semáforos podem, portanto, resolver problemas de sincronização de processos. Porém, seu uso incorreto pode incorrer em erros de “timming”, difíceis de serem identificados, pois, podem ocorrer (ou não) em uma sequência em partículas. 
Monitores
É outra estrutura de sincronização de alto nível. Na programação, usam-se variáveis que definem estados de uma instância. A estrutura do monitor garante que somente um processo, de cada vez, possa estar ativo. Apesar de resolver o problema monitores não são ainda uma estrutura suficientemente “poderosa” para modelar esquemas de sincronização.

Outros materiais