Please enable JavaScript.
Coggle requires JavaScript to display documents.
Processos - Coggle Diagram
Processos
Conceito de Processo
Definição
é a unidade de trabalho em um sistema moderno de tempo compartilhado.
um programa em execução
Progresso x Programa
Processo = Entidade Ativa
Programa = Entidade Passiva
a execução do processo deve progredir de modo sequencial
Estado do Processo
Novo (New)
O processo está sendo criado
Executando (Running)
Instruções estão sendo executadas
Esperando (Waiting)
O processo está esperando que ocorra algum evento
(p.e. término de E/S)
Pronto (Ready)
O processo está esperando para
ser atribuído a um processador
Terminado (Terminated)
O processo terminou sua execução
Um sistema operacional executa diversos programas
Sistemas batch
jobs
Sistemas compartilhados no tempo
programas ou tarefas do usuário
Diagrama de Estado do Processo
Bloco de controle de processo
Informações associadas a cada
processo
Estado do processo
Contador de programa
Registradores da CPU
Informação de escalonamento da
CPU
Informação de gerenciamento de
memória
Informação de contabilidade
Informação de status de E/S
Threads
Um processo pode ter múltiplos threads
Escalonamento de Processos
Multiprogramação
Manter a CPU sempre
executando algum processo
Compartilhamento de tempo
Alternância entre
programas em execução
permitindo a interação
do usuário
Escalonador de processos
Responsável por selecionar um processo disponível e atribuir á CPU
Número de processos em estado executando (running)
é de, no máximo, o número de CPU’s
lógicas disponíveis
Filas de escalonamento de processo
Fila de job
conjunto de todos os processos no sistema
Fila de pronto
conjunto de todos os processos residindo na memória principal
prontos e esperando para execução
Filas de dispositivo
conjunto de processos esperando por um dispositivo de E/S
Processos migram entre as diversas filas
Escalonadores
Escalonador a longo prazo
ou escalonador de
job
seleciona quais processos devem ser
trazidos para a fila de pronto
é invocado muito infrequentemente (segundos, minutos)
pode ser lento
controla o grau de
multiprogramação
Escalonador de médio prazo
Promove a troca de processos da memória para disco(swapping)
controlando o uso da memória e reduzindo o grau de multiprogramação
Escalonador a curto prazo
ou escalonador de
CPU
é invocado muito frequentemente (milissegundos)
deve ser rápido
seleciona qual processo deve ser
executado em seguida e aloca CPU
Troca de contexto
Contexto de um processo = PCB do processo
Quando a CPU passa para outro processo
o sistema deve
salvar o estado do processo antigo
e carregar o estado salvo para o novo processo
O tempo de troca de contexto é overhead
Tempo dependente do suporte do hardware
Multitarefa em Sistemas Móveis
Apple iOS
reduziu as restrições com o passar do tempo
aos tipos de aplicações que podem ser executadas em background
Android
Não impõe restrições
Comunicação Interprocessos
Os processos que são executados
podem ser
processos independentes
Não pode afetar ou ser afetado pelos outros processos
processos cooperativos
Pode afetar ou ser
afetado pelos outros processos
Normalmente
compartilha dados com outros processos
Motivos
Compartilhamento de informações
arquivos compartilhados com acesso concorrente
Agilidade na computação
Divisão em subtarefas com execução em paralelo
Modularidade
Divisão das funções do sistema em módulos
Conveniência
Trabalhar em várias tarefas ao mesmo tempo
Modelos de comunicação interprocesso
Memória compartilhada
Região de memória com acesso comum
Velocidade máxima e conveniência de comunicação
Mais rápida que a troca de mensagens por não exigir muitas chamadas ao sistema
baixa intervenção do
kernel
Troca de mensagens
Útil para trocar pequenas quantidades de dados
evitando conflitos
Mais fácil de implementar
Sistemas de Memória
Compartilhada
Processos se comunicam e “combinam” uma
região de memória compartilhada
Dois ou mais processos concordam em remover o mecanismo de proteção de memória do SO
Formato e local dos dados
são de responsabilidade completa dos processos envolvidos
SO não interfere
Processos são responsáveis por garantir que
não estarão escrevendo no mesmo local
simultaneamente
Sistema de Transmissão/Troca
de Mensagens
Sistema de mensagem
processos se comunicam entre si
sem lançar mão de variáveis compartilhadas
Facilidade de passagem de mensagem oferece duas operações
send(mensagem)
tamanho da mensagem fixo ou variável
receive(mensagem)
Se P e Q quiserem se comunicar
eles precisam
estabelecer um link de comunicação entre eles
trocar mensagens por meio de send/receive
Implementação do link de comunicação
físico
por exemplo, memória compartilhada, barramento de hardware
lógico
por exemplo, propriedades lógicas
Comunicação Direta
Processos devem nomear um ao outro explicitamente
send(P, mensagem)
envia uma mensagem ao
processo P
receive(Q, mensagem)
recebe uma mensagem do
processo Q
Propriedades do link de comunicação
Links são estabelecidos automaticamente
Um link é associado a exatamente um par de processos em comunicação
Entre cada par existe exatamente um link
O link pode ser unidirecional
mas normalmente é
bidirecional
Comunicação Indireta
As mensagens são direcionadas e recebidas de caixas de correio
também conhecidas como portas
Cada caixa de correio tem uma id exclusiva
Os processos só podem se comunicar se
compartilharem uma caixa de correio
Propriedades do link de comunicação
Link estabelecido somente se os processos
compartilharem uma caixa de correio comum
Um link pode estar associado a muitos processos
Cada par de processos pode compartilhar vários links de comunicação
O link pode ser unidirecional ou bidirecional
Operações
Cria uma nova caixa de correio
Envia e recebe mensagens por meio da caixa de correio
Destrói uma caixa de correio
Sincronização
A passagem de mensagens pode ser com bloqueio ou sem bloqueio
Bloqueio é considerado síncrono
Envio com bloqueio deixa o emissor bloqueado até que a mensagem é recebida
Recepção com bloqueio deixa o receptor bloqueado
até que a uma mensagem esteja disponível
Não bloqueio é considerado assíncrono
Envio sem bloqueio faz com que o emissor envie a mensagem e continue
Recepção sem bloqueio faz com que o receptor receba
uma mensagem válida ou nulo
Armazenamento em Buffer
Fila de mensagens conectadas ao link
implementados de três maneiras
Capacidade zero
0 mensagens
Emissor deve esperar pelo receptor
Capacidade limitada
tamanho finito de n
mensagens
Emissor deve esperar se o link estiver cheio
Capacidade ilimitada
tamanho infinito
Emissor nunca espera
Operações sobre Processos
Encerramento de processos
Processo executa última instrução e pede ao sistema operacional para excluí-lo(exit)
Dados de saída do filho para o pai (via wait)
Recursos do processo são desalocados pelo sistema operacional
Pai pode terminar a execução dos processos dos filhos(abort)
Filho excedeu recursos alocados
Tarefa atribuída ao filho não é mais exigida
Se o pai estiver saindo
Todos os filhos terminaram – término em cascata