Please enable JavaScript.
Coggle requires JavaScript to display documents.
Processos - Coggle Diagram
Processos
Conceito
Componentes
monte (heap)
alocação dinâmica
dados globais (data section)
pilha (stack)
contador do programa
código (text)
Definição: Programa em execução
Programa (passivo) - Processo (ativo)
Estados
Novo
Executando
Esperando
Pronto
Terminado
Bloco de controle de Processo (Process Control Block/PCB)
Estado
Contador
Registradores
Escalonamento de CPU
Memória
Contabilidade
E/S
Threads
Single thread (clássico)
Multi thread em multi core
Escalonamento
Multiprogramação: CPU ocupada sempre
Compartilhamento de tempo: Alternância de programas em execução
Filas
Job (todos os processos)
Pronto (em memória, esperando cpu)
Dispositivo (aguardando [E/S)
Escalonadores
Longo prazo (job)
Processos que devem ser trazidos para fila de pronto
Médio prazo
Swap de memória e disco
Curto prazo
Seleciona próximo processo a executar
Troca de contexto
Troca de PCB (salvar + carregar)
Mobile
IOS
Limitado até 4.0
Android
Serviços (notificações)
Introdução
Computadores antigos: 1 programa por vez
Computadores modernos: vários programas concorrentes
Necessidade de compartimentalização
Processos
unidade de trabalho
Processos de sistemas + processo de usuário
Comunicação interprocessos (IPC)
Tipos
Independente
Cooperativo
Motivos
Compartilhamento de informações
Agilidade (execução em subtarefas)
Modularidade
Conveniência
Modelos
Memória compartilhada
Troca de mensagens
Sistemas de mensagens
Troca direta
send/receive
Troca indireta
Correio (portas)
Síncrona (bloqueante)
Assíncrona (não bloqueante)
Buffer
Capacidade: 0, limitada ou ilimitada
Operações sobre processos
Criação
Pai -> filhos -> árvore
Compartilhamento de recursos
Execução
Simultânea
Pai espera filhos
Encerramento
Exit (última instrução do processo)
Desalocação
Wait
Filho retorna dados ao pai
Abort
Pai aborta filhos
Encerramento em cascata