Please enable JavaScript.
Coggle requires JavaScript to display documents.
Processos - Coggle Diagram
Processos
Escalonamento de Processos
Multiprogramação
Manter a CPU sempre executando processos (ocupada)
Compartilhamento de Tempo
Alternância entre programas em execução, permite interação do usuário
Escalonador de processos
Seleciona um processo disponível e atribui à CPU
Processos em "executando"
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
Todos os processos residindo na memória principal (esperando para execução)
Filas de dispositivo
Processos esperando por um dispositivo de E/S
Processos migram entre as filas
Escalonadores
Médio Prazo
Troca de processos da memória para disco (swapping)
Controla uso de memória
Reduz o grau da multiprogramação
Curto Prazo (de CPU)
Seleciona qual processo deve ser executado
Aloca CPU
Invocado muito frequentemente
Deve ser rápido
Longo Prazo (de job)
Seleciona processos para a fila de pronto
Invocado infrequentemente
Pode ser lento
Controla o grau de multiprogramação
Processos voltados para E/S
Gasta mais tempo realizando E/S
Bursts de CPU curtos
I/O-Bound
Processos voltados para CPU
Gasta mais tempo realizando cálculos
Poucos bursts de CPU muito longos
CPU-Bound
Troca de contexto
Contexto de um processo = PCB do processo
CPU muda de processo: sistema salva estado do processo antigo
Sistema carrega o estado salvo para novo processo
O tempo de troca é overhead
O sistema não realiza trabalho útil enquanto faz a troca
Tempo depende do suporte do hardware
Conceito de Processo
Um Processo inclui
Contador de programa
Código programa
Pilha LIFO
Seção de dados com variáveis globais
Região usada em alocação dinâmica
Processo x Programa
Processo = Entidade ativa
Programa = Entidade passiva
Estado do Processo
Executando: Intruções são executadas
Esperando: Esperando eventos ocorrerem
Novo: Processo está sendo criado
Pronto: Esperando para ser atribuído a um processador
Terminado: Terminou sua execução
Bloco de controle de processo
Estado do processo
Informação de gerenciamento de memória
Informação de escalonamento da CPU
Informação de contabilidade
Registradores da CPU
Informação de status de E/S
Contador de programa
Threads
Único thread de execução
Processo executa apenas uma tarefa por vez
Múltiplos threads de execução
Desempenha mais de uma tarefa por vez
Benéfico em sistemas multicore (exec. em paralelo)
PCB é expandido para incluir informações para cada thread
Comunicação Interprocessos
Troca de mensagens
Comunicação Direta
Cada par possui um link
Processos devem se nomear explicitamente
Comunicação Indireta
Mensagens direcionadas/recebidas de caixas de correio
Processos só se comunicam se compartilharem uma caixa
Link pode estar associado a vários processos
Cria a caixa, envia/recebe msgs, destrói a caixa
Sincronização
Síncrono
Bloqueio na passagem de mensagem
Emissor e receptor bloqueados
Assíncrono
Não bloqueio
Armazenamento em Buffer
Capacidade limitada
Tamanho finito de msgs
Emissor espera se o link estiver cheio
Capacidade zero
Emissor espera receptor
Capacidade ilimitada
Tamanho infinito
Emissor nunca espera
Ocorrem através do Send e Receive
Estabelecem link de comunicação entre eles
Processo independente
Não afeta e não é afetado por outros processos
Processo cooperativo
Pode afetar e ser afetado por outros processos
Importância
Compartilhamento de informaçoes
Agilidade na computação (divisão de tarefas)
Divisão das funções do sistema em módulos
Trabalhar em várias tarefas ao mesmo tempo
Memória compartilhada
Mais rápida
Processos combinam região de memória compartilhada
Processos possuem responsabilidade no formato e local dos dados
Operações sobre Processos
Encerramento
Processo exec última instrução e pede pro SO excluir
Pai pode terminar exec dos processos dos filhos (abort)
Criação
Execução
Pai e filhos executam simultaneamente
Pai espera até que filhos terminem
Compartilhamento de recursos
Pai e Filhos compartilham todos os recursos
Filhos compartilham subconjuntos dos recursos do pai
Pai e filho não compartilham recursos
Árvore de processos
Processo pai cria processos filho
Processo filho cria outros processos
SOs usam um identificador de processo