Processos e Threads
Professor Me. Pedro Henrique Neves da Silva
• Introduzir a noção de processo - um programa em execução que forma a base de toda a computação;
• Descrever os diversos recursos dos processos, incluindo escalonamento, criação, término e comunicação;
• Introduzir a noção de thread - uma unidade de utilização de CPU que forma a base dos sistemas multithread; e
• Explorar várias estratégias para threads.
Processos e Threads
Objetivos:
• Um sitema operacional executa uma variedade de programas:
– Sistema em batch - jobs;
– Sistemas de tempo compartilhado - programas do usuário ou tarefas
• Processo: é um programa em execução que é executado sequencialmente;
• O processo é composto por:
– O código do programa - text section;
– A pilha do processo - stack;
– A seção de dados - data section;
– Heap
Processos e Threads
Processos
• Programas são entidades passivas que são armazenadas no disco;
• Processos são entidades ativas;
• O programa se torna processo quando o arquivo executável é carregado no processador;
• Essa execução pode ser iniciada de várias formas diferentes;
• Um programa pode iniciar vários processos.
Processos e Threads
Processos
Processos e Threads
Processos na Memória
• Durante a execução de um processo, ele troca de estados:
– novo: O processo está sendo criado;
– executando: As instruções estão sendo executadas;
– esperando: O processo está esperando por algum evento;
– pronto: O processo está pronto para ser executado; e – concluido: O processo terminou a execução.
Processos e Threads
Estados do Processo
Processos e Threads
Estados do Processo
• É a informação associada com cada processo e contém:
– Estado do processo;
– Program Counter (PC);
– Registradores;
– Informações do escalonamento;
– Informações do gerenciamento de memória;
– Estatísticas de uso; e – Informações de E/S.
Processos e Threads
Bloco de Controle do Processo (PCB)
Processos e Threads
Bloco de Controle do Processo (PCB)
Processos e Threads
Troca na CPU entre os Processos
• Quando a CPU troca para outro processo, o sistema deve guardar o estado do processo anterior e carregar o estado do novo processo via troca de contexto;
• Durante a troca de contexto, o sistema não pode fazer nenhuma operação;
– Quanto mais complexo o SO e o PCB, maior a troca de contexto;
• Tempo da troca depende do suporte do hardware
Processos e Threads
Troca na CPU entre os Processos
• Escalonamento de Processos: seleciona o próximo processo para ser executado na CPU;
– Lista de processos: conjunto de todos os processos do sistema;
– Lista dos prontos: conjunto de processos residentes na memória principal, prontos e esperando para serem executados;
– Lista de E/S: conjunto de processos esperando por um dispositivo de E/S;
Processos e Threads
Escalonamento de Processos
Processos e Threads
Escalonamento de Processos
• Quando a CPU troca para outro processo, o sistema deve guardar o estado do processo anterior e carregar o estado do novo processo via troca de contexto;
• Durante a troca de contexto, o sistema não pode fazer nenhuma operação;
– Quanto mais complexo o SO e o PCB, maior a troca de contexto;