INSTITUTO DE ENGENHARIA E GEOCINCIAS IEG PROGRAMA DE COMPUTAO Sistemas Operacionais Processos Prof. Clayton Santos Sistemas Operacionais Clayton A. M. Santos Sumrio Conceito de Processos Introduo Estados de Processo Gerenciamento de processo Interrupes Comunicao interprocessos 2 Sistemas Operacionais Clayton A. M. Santos Objetivos Nesse captulo voc ver: O conceito de um processo O ciclo de vida de um processo Estados de um processo e transies de estado Blocos de controle de processos (PCBs)/descritores de processos Como os processadores transitam entre processos via chaveamento de contexto Como interrupes habilitam o hardware a se comunicar com o software Como os processos conversam uns com os outros via comunicao interprocessos (IPC) 3 Sistemas Operacionais Clayton A. M. Santos Introduo Os computadores executam vrias operaes ao mesmo tempo Por exemplo, compilar um programa, enviar um arquivo para impressora, exibir uma pgina Web, reproduzir msicas e receber mensagens de correio eletrnico. Os processos permitem que os sistemas executem e monitorem atividades simultneas. Os processos transitam entre estados de processo. Os sistemas operacionais executam operaes por meio de processos, como criar, destruir, suspender, retornar e acordar. 4 Sistemas Operacionais Clayton A. M. Santos Definio de Processo Um programa em Execuo Um processo tem seu prprio espao de endereo, que consiste em: Regio de texto Armazena o cdigo que o processador executa Regio de dados Armazena variveis e memria alocada dinamicamente Regio de pilha Armazena instrues e variveis locais chamadas ativas ao procedimento 5 Sistemas Operacionais Clayton A. M. Santos Estrutura do Processo 6 Instr. 1.1 Instr. 1.2 Instr. 1.3 Instr. 1.4 Instr. 1.5 . . . PROG_1 Informaes de Registradores Instr. 2.1 Instr. 2.2 Instr. 2.3 Instr. 2.4 Instr. 2.5 . . . PROG_2 Informaes de Registradores Instr. 3.1 Instr. 3.2 Instr. 3.3 Instr. 3.4 Instr. 3.5 . . . PROG_3 Informaes de Registradores Processo X Processo Y Processo Z I n s t r .
1 . 1 I n s t r .
1 . 2 I n s t r .
1 . 3 I n s t r .
1 . 4 I n s t r . S O I n s t r .
2 . 1 I n s t r .
2 . 2 I n s t r .
S O I n s t r .
3 . 1 I n s t r . 3 . 2 I n s t r .
3 . 3 I n s t r .
3 . 4 I n s t r .
S O I n s t r . 1 . 5 ... t 0 t 4 t 5 t 7 t 8 t 12 t 13 t 1 t 2 t 3 t Sistemas Operacionais Clayton A. M. Santos Estados de processo: ciclo de vida de um processo Um processo passa por uma srie de estados de processo distinto Estado de Execuo O processo est sendo executado em um processador Estado de Pronto O processo poderia ser executado em um processador se houvesse algum disponvel. Estado bloqueado O processo est aguardando a ocorrncia de algum avento para prosseguir 7 Sistemas Operacionais Clayton A. M. Santos Gerenciamento de processo O sistema operacional mantm uma lista de prontos e uma lista de bloqueados para armazenar referncias a processos que no esto sendo executados. Os sistemas operacionais prestam certos servios fundamentais aos processos. Por exemplo: Criam processos; Destroem processos; Suspendem processos; Retomam processos; Mudam a prioridade de um processo. Bloqueiam processos Acordam (ativam) processos Despacham processos, 8 Sistemas Operacionais Clayton A. M. Santos Estados de Processo O ato de designar um processador ao primeiro processo da lista de prontos denominado de despacho; O sistema operacional usa o temporizador de intervalo para permitir que um processo seja executado durante um intervalo de tempo especfico; A multitarefa cooperativa permite que todo processo seja executado at o fim. 9 Sistemas Operacionais Clayton A. M. Santos Estados de Transio At agora existem quatro estados de transio possveis Quando um processo despachado, ele transita de pronto para em execuo; Quando o quantum de um processo expira, ele transita de em execuo para pronto; Quando um processo bloqueado, ele transita de em execuo para bloqueado; Quando um evento ocorre, ele transita de bloqueado para pronto. 10 Sistemas Operacionais Clayton A. M. Santos Estados de Transio Transies de estado de processo 11 Sistemas Operacionais Clayton A. M. Santos Processos - Criao 12 A criao de um processo ocorre a partir do momento em que o sistema operacional adiciona um novo PCB sua estrutura e aloca um espao de endereamento na memria para uso. Os processos podem ser criados a partir: Logon Interativo Ao fornecer username e senha Via Linguagem de Comandos Prompt de comando Via Rotina do Sistema Operacional A partir de qualquer programa executvel Ao executar um programa, outros processos podero ser habilitados e executados. Sistemas Operacionais Clayton A. M. Santos Processos - Eliminao 13 Um processo no estado de terminado no poder ter mais nenhum programa executado no seu contexto, porm o sistema operacional ainda mantm suas informaes de controle presentes na memria. Os processos podem ser eliminados a partir: Logout ou logoff Trmino Normal de Execuo Eliminao por um outro processo; Eliminao forada por ausncia de recursos disponveis no sistema. Sistemas Operacionais Clayton A. M. Santos Blocos de Controle de Processo (PCBs)/Descritores de Processo Os PCBs mantm as informaes que sistema operacional precisa para gerenciar o processo Normalmente, eles incluem as seguintes informaes: Nmero de identificao do processo (PID); Estado do processo; Contador de programa; Prioridade de escalonamento; Credencias; Um ponteiro para o processo-pai Ponteiros para os processos-filho Ponteiros para localizar os dados e instrues do processo na memria; Ponteiros para recursos alocados. 14 Sistemas Operacionais Clayton A. M. Santos Blocos de Controle de Processo (PCBs)/Descritores de Processo Tabela de Processos O sistema operacional mantm ponteiros para cada PCB do processo em uma tabela de processos no mbito total do sistema ou por usurio Permite acesso rpido aos PCBs Quando um processo encerrado, a tabela de processos retira o processo da tabela e disponibiliza todos os seus recursos. 15 Sistemas Operacionais Clayton A. M. Santos Blocos de Controle de Processo (PCBs)/Descritores de Processo Tabela de Processos e Blocos de Controle de Processo 16 Sistemas Operacionais Clayton A. M. Santos Operaes de Processo Um processo pode gerar um novo processo O processo de criao chamado de processo-pai; O processo criado chamado de processo-filho; Cada processo-filho criado por exatamente um processo-pai; Quando um processo-pai desfeito, os sistemas operacionais em geral respondem de duas formas: Destroem todos os processos-filho desse processo-pai; Permitem que os processos-filho prossigam independentemente dos processos-pai. 17 Sistemas Operacionais Clayton A. M. Santos Operaes de Processo Hierarquia de criao de processo 18 Sistemas Operacionais Clayton A. M. Santos Operaes de Processo Hierarquia de processos no Linux 19 Criado quando o ncleo carregado Gerenciamento de memria Gerenciamento de dispositivos Escrita de dados Gerenciamento de arquivos Carrega mensagens lanadas pelo kernel Editor de texto Informaes do usurio Permisso Sistemas Operacionais Clayton A. M. Santos Suspender e Retornar Suspenso de um processo O processo retirado indefinidamente da disputa por tempo em um processador, sem ser destrudo; til para detectar ameaas segurana e para depurao de software; A suspenso pode ser iniciada pelo processo que est sendo suspenso ou por outro processo; O processo suspenso precisa ser retomado por outro processo: Existem dois estados de suspenso: Suspenso-pronto; Suspenso bloqueado. 20 Sistemas Operacionais Clayton A. M. Santos Suspender e Retornar Transies de estado de processo com suspenso e retomada 21 Sistemas Operacionais Clayton A. M. Santos Chaveamento de contexto O sistema operacional realiza um chaveamento de contexto para interromper um processo em execuo e comear a executar um processo previamente pronto; Salva o contexto de execuo anterior do processo em execuo no PCP desse processo; Carrega o contexto de execuo anterior do processo pronto no PCP desse ltimo Deve ser transparente aos processos O processador no pode realizar nenhuma computao til O sistema operacional precisa, portanto, diminuir o tempo de chaveamento de contexto. executado no hardware por algumas arquiteturas. 22 Sistemas Operacionais Clayton A. M. Santos Chaveamento de contexto Chaveamento de contexto 23 Sistemas Operacionais Clayton A. M. Santos 24 Processos Foreground Permite a comunicao direta do usurio com o processo durante o seu processamento. Tanto o canal de entrada, quanto o canal de sada esto associados com teclado, monitor e mouse, permitindo a interao com o usurio. Entrada Sada Terminal Terminal Sistemas Operacionais Clayton A. M. Santos 25 Processos Background No existe comunicao com o usurio durante o processamento. Os canais de E/S no esto associados a nenhum dispositivo de E/S, mas em geral a arquivos de E/S. Um exemplo o processamento do tipo batch. Entrada Sada Arquivo de Entrada Arquivo de Sada Sistemas Operacionais Clayton A. M. Santos 26 Processos CPU-bound Um processo definido como CPU-bound (ligado a UCP) quando passa a maior parte do tempo no estado de execuo, utilizando o processador ou pronto. Realiza pouqussimas operaes de leitura e gravao Pode ser encontrado em aplicaes cientficas, devido a efetuao de diversos clculos UCP E/S (a) CPU-bound Sistemas Operacionais Clayton A. M. Santos 27 Processos IO-bound Um processo definido como IO-bound (ligado E/S) quando passa a maior parte do tempo no estado de espera. Realiza elevadas operaes de E/S. Pode ser encontrado em aplicaes comerciais, pois se baseiam em leitura, processamento e gravao. UCP E/S (a) IO-bound Sistemas Operacionais Clayton A. M. Santos 28 Interrupes As interrupes habilitam o software a responder a sinais de hardware Podem ser iniciadas por um processo em execuo A interrupo denominada desvio (trap); considerada sncrona em relao operao do processo; Por exemplo, quando um processo tenta realizar uma ao ilegal, como dividir por zero ou referir-se a uma memria protegida Podem ser iniciadas por algum evento que pode ou no estar relacionado ao processo em execuo Nesse caso, considerada assncrona em relao operao do processo; Por exemplo, quando uma tecla pressionada no teclado ou o mouse movido Sistemas Operacionais Clayton A. M. Santos 29 Processamento de Interrupes Tratamento de interrupes Assim que recebe uma interrupo, o processador conclui a execuo da instruo corrente e faz uma pausa no processo corrente; Em seguida, o processador executa uma das funes de tratamento de interrupo do ncleo; O tratador de interrupo determina como o sistema deve responder; Os tratadores de interrupo so armazenados em um conjunto de ponteiros denominado vetor de interrupo; Aps a concluso do tratador de interrupo, o processo interrompido restaurado e executado ou o processo seguinte executado. Sistemas Operacionais Clayton A. M. Santos Processamento de Interrupes Tratamento de interrupes 30 Sistemas Operacionais Clayton A. M. Santos 31 Classes de Interrupes As interrupes suportadas dependem da arquitetura do sistema A especificao IA-32 distingue os dois tipos de sinal que um processador pode receber: Interrupes Notificam o processador de que ocorreu um evento ou que o status de um dispositivo externo mudou. So geradas por dispositivos externos a um processador. Excees Indicam que ocorreu um erro, seja no hardware, seja em decorrncia de uma instruo de software. So classificadas como falhas, desvios ou abortos. Sistemas Operacionais Clayton A. M. Santos Classes de Interrupes Tipos comuns de interrupes reconhecidos pela arquitetura Intel IA-32 32 Sistemas Operacionais Clayton A. M. Santos Classes de Interrupes Classes de excees do Intel IA-32 33 Sistemas Operacionais Clayton A. M. Santos 34 Comunicao Interprocessos Muitos sistemas operacionais fornecem mecanismos para comunicaes interprocessos (IPC). Os processos precisam se comunicar uns com os outros em ambientes de multiprogramao ou de rede. Por exemplo, um navegador Web pode recuperar dados de um servidor remoto. essencial para processos que precisam coordenar (sincronizar) atividades para alcanar uma meta comum. Sistemas Operacionais Clayton A. M. Santos 35 Sinais So interrupes de software que notificam o processo de que um evento ocorreu. No permitem que os processos especifiquem dados para trocar com outros processos. Os processos podem capturar, ignorar ou mascarar um sinal. Um processo captura um sinal especificando uma rotina que o sistema operacional chama quando libera o sinal. Um processo ignora um sinal dependendo da ao-padro do sistema operacional para trat-lo. Um processo mascara um sinal instruindo o sistema operacional a no liberar sinais desse tipo at que o processo bloqueie a mscara do sinal. Sistemas Operacionais Clayton A. M. Santos 36 Prxima Aula Threads