Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Sistemas Operacionais Processos Prof. Rogério Colpani E-mail: rocolpani@gmail.com 1 Roteiro 2 Sistemas Operacionais 1. Introdução. 2. Definição de processo. 3. Estrutura do processo. 4. Bloco de controle do processo. 5. Estados de processo: ciclo de vida de um processo. 6. Gerenciamento de processo. 7. Processo CPU-bound e I/O-bound. 8. Hierarquia de processos. 9. Chaveamento de contexto. 10.Interrupções. Introdução 3 Sistemas Operacionais Muitos sistemas na natureza têm a capacidade de realizar várias ações ao mesmo tempo. Exemplo O corpo humano realiza uma grande variedade de operações em paralelo - ou, como diremos, concorrentemente. • Respiração, circulação do sangue, digestão, pensar, andar. Os computadores também executam operações concorrentemente. Exemplo • Compilar um programa, enviar um arquivo a uma impressora, exibir uma página web e ouvir música. Definição de processo 4 Sistemas Operacionais Um processo é um programa em execução Um processo é um conjunto de informações para que o SO implemente a concorrência de programas. Para que a concorrência entre os programas ocorra sem problemas, é necessário que todas as informações do programa interrompido sejam guardadas para que, quando este voltar a ser executado, não lhe falte nenhuma informação necessária à continuação do processamento. Estrutura do processo 5 Sistemas Operacionais Estrutura do processo 6 Sistemas Operacionais Contexto de hardware conteúdo dos registradores gerais. Conteúdo dos registradores específicos, como PC, ponteiro de pilha e registrador de status. O contexto de hardware é fundamental para a implementação dos sistemas multiprogramáveis, onde os processos se alternam na utilização da CPU. O SO gerencia a mudança de contexto, base para a implementação da concorrência, que consiste em salvar o conteúdo dos registradores do processo que está deixando a CPU e carregá-lo com os valores referentes ao do novo processo que será executado. Estrutura do processo 7 Sistemas Operacionais Estrutura do processo 8 Sistemas Operacionais Contexto de software São especificados limites e características dos recursos que podem ser alocados pelo processo, exemplo: Número máximo de arquivos abertos simultaneamente. Prioridade de execução. Tamanho do buffer para operações de E/S. Tamanho máximo de memória principal e secundária que o processo pode alocar. PID – identificador de processo. Algumas destas características são determinadas no momento da criação do processo, enquanto outras podem ser alteradas durante sua execução. Estrutura do processo 9 Sistemas Operacionais Espaço de endereçamento É a área de memória pertencente ao processo onde instruções e dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de endereçamento, que deve ser devidamente protegido do acesso dos demais processos. Estrutura do processo 10 Sistemas Operacionais Bloco de controle do processo 11 Sistemas Operacionais O processo é implementado pelo SO através de uma estrutura de dados chamada bloco de controle do processo (Process Control Block - PCB). A partir do PCB, o SO mantém todas as informações sobre o contexto de hardware, contexto de software e espaço de endereçamento de cada processo. Estados de processos: ciclo de vida de um processo 12 Sistemas Operacionais Em um sistema multiprogramável, um processo não deve alocar exclusivamente a CPU, de forma que exista um compartilhamento no uso do processador. Os processos passam por diferentes estados ao longo do seu processamento, em função de eventos gerados pelo SO ou pelo próprio processo. Estados de processos: ciclo de vida de um processo 13 Sistemas Operacionais Diz-se que um processo está executando (ou seja, no estado de execução) se estiver executando em um processador. Diz-se que um processo está pronto (ou seja, estado “de pronto”) quando poderia executar em um processador se houvesse algum disponível. Diz-se que um processo está bloqueado (ou seja, estado bloqueado) se estiver esperando que algum evento aconteça antes de poder prosseguir. • Exemplo: evento de conclusão de E/S. Gerenciamento de processo 14 Sistemas Operacionais Estados de processos e estados de transição Execução Bloqueado Pronto Bloqueado Temporizador esgotado Despacho Despertar Adormecido Acordado COMPETEM por tempo de processador NÃO competem por tempo de processador Gerenciamento de processo 15 Sistemas Operacionais • Quando um programa é executado, processos são criados e inseridos na lista de prontos. • Um processo vai passando para o topo da lista à medida que outros concluem sua vez de usar o processador. • Quando o processo chega ao topo da lista e há um processador disponível, aquele processo é designado a um processador e diz-se que ele fez uma transição de estado, passando do estado de pronto para o estado de execução. Execução Pronto Despacho Processo A Processo B Processo C Processo D ... Processo D topo Lista de prontos CPU SE CPU = livre ENTÃO Executa Processo D 16 Sistemas Operacionais • Para evitar que qualquer um dos processos monopolize o sistema, acidental ou maliciosamente, o SO estabelece um relógio de interrupção de hardware (temporizador de intervalo) que permite que o processo execute durante um intervalo de tempo específico. • Se o processo não devolver o processador voluntariamente antes que o intervalo de tempo expire, o relógio de interrupção gera uma interrupção, fazendo que o SO obtenha o controle do processador. Então o SO muda o estado do processo, que estava anteriormente em execução, para pronto e despacha o primeiro processo da lista de prontos. Execução Pronto Temporizador esgotado Gerenciamento de processo 17 Sistemas Operacionais • Se um processo em execução iniciar uma operação de E/S antes que seu tempo expire e, consequentemente, tiver de esperar que a operação E/S seja concluída antes de poder usar o processador novamente, o processo em execução entregará voluntariamente o processador. Nesse caso, diz-se que o processo bloqueou a si mesmo, deixando em suspenso a conclusão da operação de E/S. Execução Bloqueado Bloqueado Gerenciamento de processo 18 Sistemas Operacionais • Ocorre quando uma operação de E/S (ou algum outro evento pelo qual o processo esteja esperando) é concluído. Bloqueado Pronto Despertar Gerenciamento de processo 19 Sistemas Operacionais Criação de processos • Momento da execução do programa. • Chamada de sistemas • Exemplo: fork. • O SO normalmente executa diversas operações quando cria um processo. • Primeiro, deve ser capaz de identificar cada processo; portanto, designa ao processo um número de identificação de processo (PID). • Em seguida, o SO cria um bloco de controle de processo (PCB) ou descritor de processo, que mantém as informações que o SO necessita para gerenciar o processo. PCB incluem informações como: • PID. • Estado do processo. • Contador de programa. • Prioridade de escalonamento. • Credenciais (dados que determinam os recursos que esse processo pode acessar). • Um ponteiro para o processo-pai. • Ponteiros para os processos-filho (se existir). • Ponteiros para localizar os dados e instruções do processo na memória. • Ponteiros para recursos alocados (tais como arquivos). Gerenciamento de processo 20 Sistemas Operacionais • O PCB também armazena o conteúdo de registradores, denominado contexto de execução, do processador no qual o processo estava executando da última vez, quando fez a transição de saída do estado de execução. • Isso possibilita o SO a restaurar o contexto de execução de um processo quando esse voltar ao estado de execução. • Quando um processo transita de um estado para outro, o SO tem de atualizar informações no PCB do processo. • SO mantém ponteiros para cada PCB do processo em uma tabela de processo. • Quando o processo é encerrado, o SO libera a memória e outros recursos do processo, retira o processo da tabela de processos e disponibiliza sua memória e outros recursos para outros processos. Gerenciamento de processo 21 Sistemas Operacionais Tabela de processo e blocos de controle de processo Gerenciamento de processo Tabela de processo PID PCB 1 . 2 . ... ... N . Bloco de controle de processo Contador de programa Registradores Estado Prioridade Espaço de endereço Pai Filhos Arquivos abertos ... Outras sinalizações Bloco de controle de processo Contador de programa Registradores Estado Prioridade Espaço de endereço Pai Filhos Arquivos abertos ... Outras sinalizações 22 Sistemas Operacionais Término de processos • Condições de término de processos: 1. Saída normal. 2. Saída por erro. 3. Erro fatal. 4. Cancelamento por um outro processo. Gerenciamento de processo 23 Sistemas Operacionais 1. Saída normal: os processos terminam porque fizeram seu trabalho. • Exemplo: quando acaba de compilar o programa atribuído a ele, o compilador executa uma chamada de sistema para dizer ao SO que ele terminou. • Exemplo: ícones de menu em processadores de texto ou browsers no qual o usuário pode clicar para dizer ao processo que remova quaisquer arquivos temporários que ele tenha aberto e, então, termine. 2. Saída por erro: o processo descobre um erro fatal • Exemplo: se um usuário digita um comando para compilar o programa com “nome x” e esse arquivo não existe, o compilador simplesmente termina a execução. 3. Erro fatal: erro causado pelo processo, muitas vezes por um erro de programa. • Exemplo: divisão por zero. • Exemplo: referência a memória inexistente. 4. Cancelamento por outro processo: um processo executa uma chamada de sistema dizendo ao SO para cancelar algum outro processo. • Exemplo: comando kill. Gerenciamento de processo 24 Sistemas Operacionais • Quando um processo é terminado, este é removido do sistema. • A memória e outros recursos do processo são devolvidos ao sistema e ele é “expulso” das listas ou tabelas de quaisquer sistemas, e seu bloco de controle de processo é apagado, ou seja, o espaço de memória do PCB é disponibilizado para outros processos no sistema. Gerenciamento de processo 25 Sistemas Operacionais Processo CPU-bound Maior parte do tempo no estado de execução, utilizando o processador, ou pronto. Realiza poucas operações de leitura e gravação. Exemplo: aplicações científicas que efetuam muitos cálculos. Processo I/O-bound Maior parte do tempo no estado de espera. Realiza um elevado número de operações de E/S. Exemplo: aplicações comerciais, que se baseiam em leitura, processamento e gravação. Processos CPU-bound e I/O-bound 26 Sistemas Operacionais Processos CPU-bound e I/O-bound 27 Sistemas Operacionais • Um processo pode gerar um novo processo. Se o fizer, o processo criador é denominado processo-pai, e o processo criado é denominado processo-filho. • Processo-filho é criado por um processo-pai. • Em alguns SOs cada processo gerado é destruído automaticamente quando seu pai é destruído. • Em outros SOs os processos gerados prosseguem independentemente de seus pais, e a destruição desses não tem nenhum efeito sobre seus filhos. Hierarquia de processos A B C D E F G H Exemplo 1. Processo A é pai dos processos B, C e D. Então os processos B, C e D são filhos de A. 2. Processo G é pai de H. 3. Processo E é filho de B. 28 Sistemas Operacionais • O SO realiza um chaveamento de contexto para interromper um processo em execução e começar a executar um processo previamente pronto. • Para realizar um chaveamento de contexto, o núcleo deve primeiramente salvar o contexto de execução do processo em execução no PCB desse processo e, então, carregar o contexto de execução anterior do processo pronto a partir do PCB desse último. • Durante o chaveamento de contexto um processador não pode realizar nenhuma computação “útil”, ou seja, não executa instruções em nome de nenhum determinado processo, o que reduz o rendimento. • Deve minimizar o tempo de chaveamento de contexto. Chaveamento de contexto 29 Sistemas Operacionais Chaveamento de contexto Memória principal PCB do processo P1 PCB do processo P2 Processador P1 Processador P1 Processador P2 P1 executa no processador Após uma interrupção o núcleo decide despachar um novo processo e inicia um chaveamento de contexto P2 executa no processador O núcleo armazena o contexto de execução do processo P1 em seu PCB na memória O núcleo carrega o contexto de execução do processo P2 do seu PCB na memória 30 Sistemas Operacionais • Interrupções habilitam o software a responder a sinais de hardware. • Interrupções é um meio de baixo custo de conseguir a atenção do processador. • Tratador de instruções é um conjunto de instruções a ser executado em resposta a cada tipo de interrupção. • Interrupções • Síncronas: processador gera uma interrupção como resultado da execução das instruções de um processo. • Exemplo: processo tenta realizar uma ação ilegal, como dividir por zero ou se referir a uma localização de memória protegida. • Assíncronas: causado por algum evento não relacionado com a instrução corrente do processo. • Exemplo: o teclado gera uma interrupção quando um usuário pressiona uma tecla; o mouse gera uma interrupção ao ser movimentado ou quando um de seus botões é pressionado. Interrupções 31 Sistemas Operacionais Exemplo Como o SO e o hardware interagem em resposta a interrupções de relógio. 1. A cada intervalo do temporizador, o relógio de interrupção gera uma interrupção que permite ao sistema operacional executar para realizar operações de gerenciamento de sistema como escalonamento de processo. O processor está executando o processo P1 (1), quando o relógio emite uma interrupção (2). 2. Ao receber a interrupção, o processador acessa a entrada do vetor de interrupção que corresponde à interrupção do temporizador (3). 3. Então o processador salva o contexto de execução do processo na memória (4) para que o contexto de execução do processo P1 não seja perdido quando o tratador de interrupção executar. 4. Depois o processador executa o tratador de interrupção, que determina como responder à interrupção (5). 5. Desse modo, o tratador de interrupção pode restaurar o estado do processo que estava executando anteriormente (P1) ou chamar o escalonador de processador do SO para determinar o “próximo” processo a executar. 6. Nesse caso o tratador chama o escalonador de processo, que decide que o processo P2, o processo de maior prioridade em espera, deve obter o processador (6). Então o contexto do P2 é carregado do seu PCB para a memória principal e o contexto de execução do P1 é salvo no seu PCB na memória principal. Interrupções 32 Sistemas Operacionais Interrupções Relógio de interrupção Processo P1 Controle do processador (1) Interrupção (2) (3) Contexto de execução salvo em localização temporária da memória (4) (5) Tratador de interrupções Processo P2 (6) 33 Sistemas Operacionais Sistemas Operacionais DEITEL, H.M.; DEITEL, P.J.; CHOFFNES, D.R. 3.ed. São Paulo: Pearson Pretince Hall, 2005. Capítulo 2 Sistemas Operacionais Modernos TANENBAUM, A. S. Prentice Hall (Pearson), 2007. Capítulo 2 Referências