Prévia do material em texto
PROCESSOS Prof. Eng. Eduardo Juliano Alberti(Adpatado de Prof. Alessandro Brawerman) PROCESSO • Um processo é um programa em execução acompanhado dos valores atuais do contador de programa, dos registradores e das variáveis. • Um processo pode ser considerado como uma tarefa. • Um programa é para um processo o que a partitura é para a orquestra sinfônica. 2 PROCESSO • Um processo é uma entidade Possui seu próprio espaço de endereço Região de texto: armazena o código que o processador executa Região de dados: armazena variáveis e memória alocada dinamicamente, que o processo usa durante a execução Região de pilha: armazena instruções e variáveis locais para chamadas ativas ao procedimento 3 PROCESSO • Um processo é um programa em execução. Um programa é uma entidade inanimada; somente quando um processador lhe ‘sopra vida’ é que ele se torna a entidade ativa que chamamos de processo. • Um processo possui sua própria CPU Virtual. 4 PROCESSO 5 PROCESSO • Na visão do processo, suas instruções são executadas individualmente e de forma exclusiva pela CPU. • Na visão da CPU, as instruções dos processos são executadas alternadamente. MULTIPROGRAMAÇÃO. • Receita de Bolo e Cuidados Médicos. 6 CRIAÇÃO DE PROCESSOS Principais eventos que provocam criação de processos 1. Inicialização do Sistema 2. Execução de uma chamada ao sistema de criação de processos por um processo em execução 3. Requisição de usuário para criação de um novo processo 4. Início de um programa em lotes (batch) 7 CRIAÇÃO DE PROCESSOS 1. Inicialização do Sistema Na inicialização processos de primeiro e Segundo plano são iniciados para dar suporte as tarefas do SO. Em elementos microcontrolados, todos os processos estarão disponíveis na inicialização, o que não acontece em elementos microprocessados. 8 CRIAÇÃO DE PROCESSOS 2. Execução de uma chamada ao sistema de criação de processos por um processo em execução Processos em execução podem emitir chamadas de criação de novos processos para auxiliá-los em suas tarefas. 9 CRIAÇÃO DE PROCESSOS 3. Requisição de usuário para criação de um novo processo Em sistemas interativos, usuários podem abrir quantos programas achar necessário. Cada programa aberto será processado como um novo processo. 10 CRIAÇÃO DE PROCESSOS 4. Início de um programa em lotes (batch) Apenas para sistemas de grande porte. Quando novos Jobs são enviados para processamento, o computador irá criar um processo assim que achar que a execução é possível. 11 CRIAÇÃO DE PROCESSOS Linux/Unix: fork (pai e filho têm mesma imagem de memória, strings no ambiente e arquivos abertos) Em geral filho executa execve para mudar imagem de memória e executar em novo programa (redirecionar entrada, saída e saída de erros padrões) Windows CreateProcess (programa a ser executado, parâmetros de linha de comando, atributos de segurança, bits de controle de arquivos abertos, prioridade, janela, ponteiro para estrutura info sobre o novo processo) 12 FINALIZAÇÃO DE PROCESSOS Condições que determinam fim de um processo 1. Saída Normal (voluntária) 2. Saída por Erro (voluntária) 3. Erro Fatal (involuntária) 4. Cancelado por outro processo (involuntária) 13 HIERARQUIAS DE PROCESSOS Pai cria processo filho, filho pode criar os seus próprios processos Forma uma hierarquia Em UNIX é chamado de ”grupo de processo” Windows não possui o conceito de hierarquia de processos Todos os processos são criados como iguais 14 VANTAGEM DE HIERARQUIA Por que é vantajoso criar uma hierárquia de processos em vez de uma lista encadeada? Hierarquia permite que o SO controle os relacionamentos pai-filho entre processos, o que simplifica operações como localizar todos os processos-filho de um determinado processo-pai quando esse for extinto. 15 HIERARQUIA EM LINUX 16 CICLO DE VIDA DE UM PROCESSO • O SO deve assegurar que cada processo receba uma quantidade suficiente de tempo de processador • O número de processos é muito maior que o de processadores • Portanto, a que dado instante, alguns processos podem ser executados e outros não 17 CICLO DE VIDA DE UM PROCESSO • Durante seu tempo de vida um processo passa por vários estados distintos • Vários eventos podem fazer com que um processo mude de estado 18 ESTADOS DE PROCESSO Executando Processo está executando em um processador Pronto Poderia executar em um processador se houvesse algum disponível Bloqueado Esperando que algum evento aconteça (exemplo E/S) 19 ESTADOS DE PROCESSO Executando Processo está executando em um processador Pronto Poderia executar em um processador se houvesse algum disponível Bloqueado Esperando que algum evento aconteça (exemplo E/S) 20 ESTADOS E TRANSIÇÕES A única transição feita pelo próprio processo é bloqueio, outras pelo SO. 21 Em execução ProntoBloqueado 1- Processo bloqueado para entrada 2-Escalonador pega outro processo 3-Escalonador escolhe este processo 4-Entrada fica habilitada SISTEMA UNIPROCESSADOR • Somente um processo pode ser executado por vez • Diversos outros podem estar prontos ou bloqueados • O SO mantém uma lista de PRONTOS e BLOQUEADOS 22 SISTEMA UNIPROCESSADOR • Lista de prontos: ordem de prioridade • Lista de bloqueados: desordenada 23 SISTEMA MULTIPROCESSADOR • Pode ter tantos processos em execução quantos são os processadores • Restante do funcionamento similar ao sistema uniprocessador 24 GERENCIAMENTO DE PROCESSOS • Como o SO intercala a execução de seus processos, deve gerenciá-los cuidadosamente para que não ocorra erros quando eles são interrompidos e retomados • Processos que estão Prontos ou em Execução estão acordados (disputam o tempo do processador) • Processos bloqueados estão adormecidos (não podem executar mesmo se houver um processador disponível) 25 GERENCIAMENTO DE PROCESSOS • A mudança de um estado para outro é chamada de transição • O SO gerencia transições de estado para melhor servir aos processos no sistema • Quando o processador é designado a um processo, temos o despacho. 26 GERENCIAMENTO DE PROCESSOS • Para evitar que que processo monopolize o sistema, o SO utiliza um relógio de interrupção em hardware • Cada processo executa durante um tempo específico (quantum) • Se o processo não devolver o processador voluntariamente o relógio gera um interrupção e o SO assume 27 DETALHAMENTO 28 BLOCOS DE CONTROLE DE PROCESSOS (PCBS) Mantém informações que o SO necessita para gerenciar um processo PID Estado Contador de programa (valor que determina qual instrução o processo deve executar em seguida) Prioridade de escalonamento Credenciais (recursos que o processo pode acessar) Ponteiro para o processo pai 29 BLOCOS DE CONTROLE DE PROCESSOS (PCBS) Ponteiros para os processos filhos Ponteiros para localizar os dados e instruções do processo na memória Ponteiros para recursos alocados • Contexto de execução: conteúdo dos registradores. • Quando um processo transita de um estado para outro o SO deve atualizar o PCB 30 BLOCOS DE CONTROLE DE PROCESSOS (PCBS) • SO mantém ponteiros para cada PCB em uma Tabela de Processos • Quando um processo é encerrado o SO libera a memória, os recursos e o retira da tabela 31 BLOCOS DE CONTROLE DE PROCESSOS (PCBS) 32 BLOCOS DE CONTROLE DE PROCESSOS (PCBS) 33 TABELA DE PROCESSOS 34 Gerenciamento de processos •Registradores •Contador de Programa •Palavra de estado do programa •Ponteiro de pilha •Estado do processo •Prioridade •Parâmetrosde escalonamento •(ID)entificador do Processo •Processo pai •Grupo de processo •Sinais •Momento em que processo iniciou •Tempo usado da CPU •Tempo de CPU do filho •Momento do próximo alarme Gerenciamento de memória • Ponteiro para o segmento de código • Ponteiro para o segmento de dados • Ponteiro para o segmento de pilha Gerenciamento de arquivos • Diretório-raiz • Diretório de trabalho • Descritores de arquivos • ID do usuário • ID do grupo OPERAÇÕES DE PROCESSO SOs devem ser capazes de executar certas operações de processo Criar um processo Destruir um processo Suspender Retomar Alterar a prioridade Bloquear Acordar Despachar (colocar o processo em execução) Habilitar comunicação de processos 35 DESTRUIR UM PROCESSO Envolve: Removê-lo do sistema Memória e outros recursos são devolvidos ao sistema Expurgado da lista ou tabelas Seu bloco de controle é apagado Destruição é mais complicada quando o processo gera outros processos Em alguns sistema cada processo filho é destruído automaticamente quando o pai é destruído Em outros, processos gerados prosseguem independente 36 ALTERAR A PRIORIDADE • Modificar o valor de prioridade no bloco de controle do processo • Ponteiro para o PCB em uma fila de prioridade diferente 37 SUSPENDER E RETOMAR • Um processo suspenso é retirado indefinidamente da disputa pelo processador até ser destruído • Um administrador pode suspender um processo por questões de segurança, para certificar-se que o processo esteja funcionando corretamente Novos estados: Suspenso-pronto Suspenso-bloqueado 38 SUSPENDER E RETOMAR 39 CHAVEAMENTO DE CONTEXTO • O SO utiliza o chaveamento para interromper um processo em execução e executar um processo pronto • O núcleo deve salvar o contexto do processo em execução no PCB desse processo e, então, carregar o contexto de execução anterior do processo pronto 40 CHAVEAMENTO DE CONTEXTO • Devem ser transparentes para os processos, não percebem que foram removidos do processador • O tempo para realizar o chaveamento deve ser minimizado pois durante o chaveamento o processador não pode executar instruções em nomes de processos 41 CHAVEAMENTO DE CONTEXTO 42