Mindmap
Processos

Mapa mental: Processos e Threads
Inhalt der Mindmap
Processos
Possui entrada, saída, contexto e um estado. Programa em Execução
Pronto. Em espera. Em execução. Encerrado
Escalonador
- Ambiente
- Interativo
- Preemptivos
- Garantido
- 1/n - Difícil
- Loteria
- Ticket é sorteado
- SJF
- Múltiplas Filas
- Filas com diferentes prioridades
- Prioridade
- Fair Share
- Cada usuário recebe um tempo para todos os seus processos
- Round - Robin
- Trade-off do Quantum
- Múltiplas Filas com Realimentação
- Windows/Linux - Prioridade para I/O por ser pequeno
- Garantido
- Escalonamento em dois níveis: Memória e CPU
- Preemptivos
- Batch
- Não ou Preemptivo com quantum alto
- Três níveis
- Escalona: Admissão, Memória, CPU
- Processos com menor tempo de acesso à CPU e maior tempo de interação com dispositivos de E/S primeiro
- Escalona: Admissão, Memória, CPU
- FIFO
- Não Preemptivo. Fácil. Ruim em caso de processos grandes.
- SJF
- Não preemptivo. Redução do turnround
- Shortest remaining time next (SRTN)
- SJF Preemptivo. Starvation em processos pequenos
- Três níveis
- Não ou Preemptivo com quantum alto
- Tempo Real
- Hard/Soft
- Eventos Periódicos ou Aperiódicos
- Algoritmos estáticos ou dinâmicos
- Interativo
- Processo que cuida da troca de contexto. Nível 0.
- Overhear salvar BCP
- Utiliza Hw e Sw
- Ambiente
Threads
- Usuário
- Vantagens: mais rápido, escalonamento próprio, menos chamas ao kernel
- Desvantagens: Processo inteiro é bloqueado se uma Thread realiza uma chamada bloqueante (PageFault). Escalonamento dentro do processo é complicado
- Criação e escalonamento sem conhecimento do Kernel
- Tabela de Thread por processo - Run Time System
- Kernel
- Vantagens: Processo inteiro não é bloqueado, apenas a thread (Page Fault)
- Desvantagens: Gerenciamento mais caro.
- Criação e escalonamento feito em Kernel
- Utilização o mesmo espaço de enderaçamento de um processo
- Pilhas de execução por threads
- Fáceis de gerenciar, mais leves, mais paralelismo, aplicações interativas(Servidor Web)
- Modelos 1:1, 1:M, M:N
- Separa os recursos da execução
- Usuário
Memória do processo: stack, heap, data, code
Espaço de endereçamento, Lista de alocação, Conjunto de Registradores
Comunicação/Sincronização de Processos
- Race Conditions
- Exclusão Mútua
- 4 Condições
- Seção crítica não pode executada simultaneamente
- Não considerar velocidade da execução dos processadores
- Um processo que não está na região crítica não pode bloquear outro
- Nenhum processo deve esperar infinitamente para ter acesso a seção crítica
- Soluções
- Espera Ocupada
- Processo fica esperando, desperdício de processador.
- Desabilitar Interrupções
- Processos desabilitam a interrupções do escalonador
- Processo pode não habilitar interrupções. Só funciona para um processador.
- Para um único processador
- Instrução TSL
- Instrução atômica em HW
- Processo fica testando se valor de Lock é 0
- Para múltiplos processadores
- Sem espera ocupada
- Passagem de Mensagem
- Alternativa para sistemas distribuídos
- Send/Receive
- Tratamento de erros na rede
- Monitores
- Processos são implementados dentro de um monitor e só um pode está ativo
- Uso de condições além de variáveis inteiras
- Wait/Signal
- Depende da Linguagem de programação
- Semáforos
- Variável inteira acessada de forma Atômica: Down e Up
- Se 2 processos derem Down em dois semáforos a ordem de execução pode causar deadlock - Espera Circular.
- Mutex/Binário Garante exclusão mútua
- Processos bloqueados vão para um fila de espera
- Variável inteira acessada de forma Atômica: Down e Up
- Sleep/Wakeup
- Passagem de Mensagem
- Espera Ocupada
- Controle da Seção Crítica
- Trecho de código que faz acesso aos recursos compartilhados
- 4 Condições
- Dois ou mais processos disputando um recurso e o resultado depende da ordem
- Exclusão Mútua
- Problemas Clássicos
- Jantar dos Filósofos
- Deadlock caso todos os filósofos pegam um só garfo ao mesmo tempo.
- Filósofos ficam infinitamente pegando um só garfo e não comem
- Semáforos para dizer se um filósofo está comendo, pensando ou faminto
- Processos que competem por um conjunto de recursos limitados
- Starvation se o tempo de uso for aleatório
- Leitor/Escritor
- Não pode haver leitura durante escrita
- Semáforo Mutex para SC de escrita
- Barbeiro
- Três semáforos: Customer, Barber e Mutex
- Produtor Consumidor
- Empty/Binário
- Garanti que o produtor dorme caso buffer cheio
- Garante exclusão mútua
- Full
- Sincronização Número de itens inseridos no Buffer
- Empty
- Sincronização buffer vazio
- Empty/Binário
- Jantar dos Filósofos
- Interprocess Comunications
- Send/Receive
- Nomeação
- Sincronização
- Envio Bloqueante ou não
- Recepção Bloqueante ou não
- Bufferização
- Capacidade Zero
- Limitada
- Limitada ou não limitada
- Send/Receive
- Race Conditions
Contexto de Hw(PC. SP.) Sw (pId, permissão), e Espaço de Endereçamento de Memória - Tudo fica no BCP
Pseudoparalelismo x Paralelismo real
Criados ao iniciar o S.O ou a partir de outro processo.
Término pode ser voluntário, pelo S.O, por outro processo.
Tabela de processos na memória - Coleção de BCP
DEALOCK
- 4 Condições para que ocorra
- Exclusão Mútua (Ñ share recurso): impossível de evitar
- Posse e Espera: Impossível de Evitar
- Não-preempção de um recurso: Evitável
- Adquirir todos os recursos previamente. Se um recurso naõ estiver disponível, liberar os demais. Inviável
- Espera Circular: Evitável
- Evitar grafo acíclico. Ex: Jantar dos Filósofos
- 4 Estratégias para tratar Deadlock
- Ignorar/Avestruz
- Detecção e Recuperação
- Preempção
- Eliminação do Processo
- Evitação dinâmica por meio da alocação segura de recursos
- Prevenção de uma das 4 condições
- 4 Condições para que ocorra
Informationen
- Beschreibung
- Mindmap am Processos, erstellt von Carlos Henrique am 26/07/2016.
- Erstellt von
- Carlos Henrique
- Aufrufe
- 6
- Bewertung