Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Arquitetura de Sistemas Operacionais Capítulo 5 Processo Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Sumário Introdução Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação de processos Processos independentes, subprocessos e threads Processos foreground e background Processos do sistema operacional Processos CPU-bound e I/O-bound Sinais Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Introdução Como O processador é projetado para executar instruções, sendo incapaz de identificar qual programa esta sendo executado; A gerência do ambiente multiprogramável é função exclusiva do S.O; Assim Um programa deve estar associado a um processo. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Introdução O termo processo ganhou quase unanimidade, apesar de se usar tarefa ou job com o mesmo sentido; A gerência de processos é uma das principais tarefas do S.O.; Através de processos, um programa pode: Alocar recursos; Compartilhar dados; Trocar informações; Sincronizar a execução. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Introdução Em sistemas multiprogramavéis, os processos são executados concorrentemente, compartilhando recursos como: processador, memória e dispositivos de E/S; Em ambientes multiprocessados, além do citado acima, existe a execução simultânea; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Um processo, inicialmente, pode ser entendido como um programa em execução; Em sistemas multiusuários é necessário manter informações sobre diversos programas que estão sendo executados concorrentemente; Um sistema multiusuário cada usuário é associado a um processo; O usuário tem a impressão que todos os recursos estão ao seu dispor; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Mas não é verdade, o processador executa o programa do usuário em um intervalo de tempo, e no final deste intervalo executa outro programa; Para trocar os programas sem problemas, é necessário armazenar todas as informações se retornar a execução do programa sem erros; Todas as informações importantes e necessárias à execução do programa fazem parte do processo; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo A execução de um mesmo programa varia dependendo do processo no qual ele esta alocado (recursos disponíveis); A falta de recursos pode impedir a execução de um programa; Um processo é formado de três partes: Contexto de hardware; Contexto de software; Espaço de endereçamento. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Um processo pode ser definido como o ambiente onde um programa é executado; Este ambiente contém: Informações sobre a execução; Quanto de recursos pode utilizar: Espaço de endereçamento; Tempo de processador; Área em disco; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Estrutura do processo Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de hardware Contexto de hardware armazena: Conteúdo dos registradores gerais (CPU); Conteúdo dos registradores específicos: Program counter (PC); Stack pointer (SP); Registrador de status. Quando o processo perde a utilização da CPU, o sistema salva estas informações do contexto de hardware do processo; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de hardware Este contexto é fundamental em sistemas multiprogramavéis, onde processos revezam a utilização da CPU; A troca de processos executada pelo S.O. é chamada de mudança de contexto; A mudança de contexto consiste em salvar o conteúdo dos registradores do processo que esta deixando a CPU e carregá-los com os valores referentes ao novo processo; Esta operação resume-se em substituir o contexto de hardware de um processo pelo outro; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de hardware Mudança de contexto Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software No Contexto de software são especificadas as características e limites dos recursos que podem ser alocados ao processo, como: Número máximo de arquivos abertos simultaneamente; Prioridade da execução; Tamanho dos buffers para E/S; Muitas destas características são definidas na criação do processo, outras podem ser alteradas depois da criação; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software Grande parte das informações deste contexto estão em um arquivo do S.O. chamado de arquivo de contas; Esta arquivo, gerenciado pelo administrador de sistema, especifica os limites dos recursos que os processos podem alocar; Outras informações são geradas dinamicamente durante a execução do processo; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software O contexto de software é formado por três grupos de informações sobre o processo: Identificação; Quotas; Privilégios. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software Identificação Cada processo recebe um número único de identificação (PID – process identification) Esta identificação é usada pelo S.O. ou outro processo para referenciar, consultar o contexto ou alterar as características do processo identificado; Alguns S.O. utilizam também o nome Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software Identificação: O processo também possui a identificação do usuário que o criou (UID – user identification), atribuída na hora da criação; UID permite criar um modelo de segurança, onde apenas os objetos (processos, arquivos, áreas de memória) que possuem a mesma UID do usuário (processo) podem ser acessados; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software Quotas Quotas são os limites de cada recurso que um processo pode alocar; Se a quota for insuficiente: Processo é executado lentamente; Interronpido; Não ser executado. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software Quotas Alguns exemplos: Número máximo de arquivos abertos simultaneamente; Tamanho máximo de memória principal e secundária; Número máximo de operações de E/S pendentes; Tamanho máximo do buffer para E/S Número máximo de processos, subprocessos e threads. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software Privilégios Os privilégios ou direitos definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processos e o S.O. Direitos que afetam o próprio processo permite alterar as suas características como Privilégio de execução; Limites alocados na memória principal e secundária; Etc. Direitos que afetam os demais processos permitem alterar as características de outros processos Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software Privilégios Direitos que afetam o S.O. são mais amplos e poderosos, relacionados com gerência e operação do S.O., como: Desativação do sistema; Alteração das regras de segurança; Criação de outros processos privilegiados; Modificação de parâmetros de configuração de sistema. A maioria dos S.O. possui uma conta com todos os direitos: Root no Unix, Linux; administrator no Windows (inglês) System no OpenVMS. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estrutura do Processo Contexto de software Espaço de endereçamento É a área de memória pertencente ao processo onde as instruções e os dados são armazenados; Cada processo possui seu próprio espaço de endereçamento que deve ser protegido; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Espaço de Endereçamento Estrutura de um processo Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Bloco de Controle do Processo O S.O implementa o processo através de uma estrutura de dados nomeado por bloco de controle do processo (Process Control Block – PCB); O S.O. utiliza o PCB para manter todas as informações sobre o contexto de hardware e software mais o espaço de endereçamento; Os PCBs de todos os processos ficam na memória principal em uma área reservada para o S.O. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Bloco de Controle do Processo O tamanho da área dos PCBs é definida por um parâmetro do S.O. (número máximo de processos simultâneos); Toda a gerência é realizada através de system calls, que realizam as seguintes tarefas nos processos: Criação, alteração de características; Visualização; Eliminação; Sincronização; Suspensão; Etc. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Bloco de Controle do Processo PCB Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estados do Processo Em um sistema multiprogramavél tem de existir um compartilhamento da CPU; Assim os processos podem estar em diferentes estados, em função de eventos do S.O ou do próprio processo; Um processo ativo pode estar nos seguintes estados: Execução (running) Pronto (ready) Espera (wait) Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estados do Processo Execução (running) Um processo esta no estado execução quando esta sendo processado pela CPU; Em ambientes monoprocessados apenas um processo pode estar este estado; Os processos se alteram na utilização da CPU seguindo uma política estabelecida pelo S.O.; Em ambientes multiprocessados, mais de um processo pode estar no estado execução e o mesmo processo pode ser executado simultaneamente em mais de uma CPU(processamento paralelo) Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estados do Processo Pronto (ready) Um processo esta no estado pronto quando aguarda pelo processador para ser executado; O S.O. é responsável para determinar a ordem e os critérios que serão usados para determinar qual processo passar para o estado execução. Este mecanismo é chamado de escalonamento; Normalmente existem vários processos no estado pronto, que são organizados em listas encadeadas; Os processos devem ser ordenados pela sua prioridade; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estados do Processo Espera (wait) Um processo está no estado de espera quando está aguardando por algum evento externo ou recurso.Por exemplo: Término de operação de E/S; Espera de uma data e/ou hora para continuar a operação; É chamado, também, de bloqueado (blocked); O S.O, também, organiza os processos em listas encadeadas; Em geral, os processos são separados em listas associadas a cada tipo de evento, assim quando o evento ocorre todos os processos são transferidos para o estado pronto Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Estados do Processo Lista de PCBs Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Mudanças de Estado Um processo pode mudar de estado: Eventos voluntários – eventos originados pelo próprio processo; Eventos involuntários – eventos gerados pelo sistema operacional; Basicamente existem quatro tipos de mudanças de estado: Pronto -> execução; Execução -> espera; Espera -> pronto; Execução -> pronto. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Mudanças de Estado Pronto -> execução Após a criação do processo, o sistema o coloca na lista de processos no estado pronto; Cada S.O. tem seus próprios critérios a algoritmos para a escolha da ordem de execução dos processos (política de escalonamento) Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Mudanças de Estado Execução -> espera Um processo muda de execução para espera: Por eventos gerados pelo próprio processo, voluntários(E/S); Por eventos externos, involuntários (término da fatia de tempo). Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Mudanças de Estado Espera -> pronto O processo muda de estado quando a operação solicitada é atendida; Um processo sempre passa pelo estado pronto antes de ir ao estado de execução; Não existe mudança do estado espera para execução diretamente (letra c) Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Mudanças de Estado Execução -> pronto Um processo muda de execução para pronto, por eventos gerados pelo S.O., como fim da fatia de tempo. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Mudanças de Estado Mudanças de estado do processo Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Mudanças de Estado Um processo (pronto ou espera) pode não estar na memória principal; Isto ocorre quando não existe espaço na memória e parte do contexto do processos é levado para a memória secundária; Swapping é uma técnica usada para retirar processos da memória principal e trazê-los de volta, segundo critérios do S.O. Assim os processos (pronto ou espera) podem estar residentes ou não residentes na memória principal. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Mudanças de Estado Mudanças de estado do processo (2) Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Criação e Eliminação Processos são criados e eliminados; A criação ocorre quando o S.O. adiciona um novo PCB e aloca espaço de endereçamento; Após a criação do PCB o S.O. reconhece a existência do processo, podendo gerenciá-lo; Na eliminação de processo, todos os recursos associados ao processo são liberados e o PCB é eliminanado. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Criação e Eliminação Além dos três estados citados (execução, pronto e espera) a maioria dos S.O. cria mais dois estados para a criação e eliminação de processos; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Criação e Eliminação Criação (new) um processo está neste estado quando o S.O. já criou o PCB, mas não colocou na lista dos processos prontos; Alguns S.O. limitam o número de processos no estado de pronto em função dos recursos ou por questões de desempenho, assim alguns processos podem ficar mantidos no estado de criação; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Criação e Eliminação Razões para criação de processos: Logon interativo: um processo é criado através de uma sessão interativa; Criação por outro processo: um processo existente pode criar outros processos, sendo que estes novos processos podem ser independentes ou subprocessos; Criação pelo sistema operacional: o S.O. pode criar novos processos para oferecer novos serviços. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Criação e Eliminação Terminado (exit) Um processo esta neste estado quando não poderá ter mais nenhum programa executado em seu contexto, mas o S.O. ainda dispõe das informações de controle presente na memória; Não é mais considerado pronto, mas o PCB ainda existe, possibilitando recuperar informações sobre a contabilização de uso de recursos; Após recuperar as informações o processo pode deixar de existir; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Criação e Eliminação Razões para o término de processos: Término normal de execução; Eliminação por outro processo; Eliminação forçada por ausência de recursos disponíveis no sistema. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Criação e Eliminação Mudanças de estado do processo (3) Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Processos Independentes, Subprocessos e Threads são maneiras diferentes de implementar a concorrência dentro de uma aplicação; Busca-se dividir o código em partes de forma que trabalhem de forma cooperativa; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Processos independentes é a maneira mais simples de implementar a concorrência em sistemas multiprogramáveis, não existindo vínculo do processo criado com o criador; A criação de um processo independente exige a alocação de um PCB, possuindo contexto de hardware, de software e espaço de endereçamento próprio; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Subprocessos são processos criados dentro de uma estrutura hierarquia; O processo criador é o processo pai e o criado é o subprocesso ou processo filho; O subprocesso pode criar outras estruturas de subprocessos; Caso o processo pai deixe de existir os processos filhos deixaram de existir também; Os subprocessos possuem seu próprio PCB; Os subprocessos podem compartilhar quotas com o processo pai, neste caso, o pai cede parte da sua quota aos filho; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Estrutura de processos e subprocessos Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads O uso de processos independentes e subprocessos demanda consumo de diversos recursos do sistema; Sempre que um novo processo é criado o S.O. deve alocar recursos, consumindo tempo de CPU; Quando um processo termina, o S.O. gasta tempo para desalocar os recursos; A comunicação e sincronização entre processos é pouco eficiente, tendo em vista cada processo possui seu próprio espaço de endereçamento; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Thread foi introduzido tentar reduzir o tempo gasto com a criação, eliminação e troca de contexto de processos em aplicações concorrentes; Também tenta economizar recursos do sistema como um todo; Em um ambiente multithread um único processo pode suportar múltiplos threads, cada um relacionado a uma parte do código da aplicação; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Neste caso não é necessário haver diversos processos para implementar a concorrência; Threads compartilham o processador da mesma forma que os processos, ou seja, enquanto um thread espera por uma E/S, outro pode ser executado; Cada thread possui seu próprio contexto de hardware, mas compartilha o contexto de software e espaço de endereçamento; Este compartilhamento de endereço permite que a comunicação entre threads de um mesmo processo seja mais rápida e simples; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Independentes, Subprocessos e Threads Processo multithread Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Foreground e Background Um processo possui pelo menos dois canais de comunicação: Canais de entrada; Canais de saída; Estes canais podem estar associados a terminais, arquivos, impressoras, ou até mesmo outro processos; Um processo pode ser: Foreground; Background. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Foreground e Background Processo foreground: É aquele que permite a comunicação entre o processo e o usuário diretamente; O canal de entrada e saída estão associados a um terminal com teclado, mouse e monitor; O processamento interativo tem como base processos foreground; Processo background: É aquele onde não existe a comunicação com o usuário durante o seu processamento; Os canais de E/S não estão associados a nenhum dispositivo de E/S interativo, mas, geralmente a arquivos; O processamento BATCH utiliza processos background. Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Foreground e Background Processos foreground e background Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos Foreground e Background É possível associar um canal de saída de um processo com o canal de entrada de outro, isto é chamado de pipe; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processo Foreground e Background Pipe Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processo Foreground e Background Exemplos de pipe em Windows: dir > list.txt dir >> list.txt sort < names.txt > list.txt dir | sort dir | sort > c:\temp\list.txt dir | sort | more Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos do Sistema O conceito de processo pode ser implementado, também, na própria arquitetura do S.O.; A arquitetura de microkernel implementa este conceito para disponibilizar serviços para processos de aplicações e do próprio S.O.; Quando processos implementam serviços do sistema retira-se código do núcleo, tornando-o menor e mais estável; Caso não se deseja algum serviço basta não ativá-lo, liberando memória para os processos do usuário; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos do Sistema Serviços que podem ser implementados através de processos: Auditoria e segurança; Serviços de rede; Contabilização do uso de recursos; Contabilização de erros; Gerência de impressão; Gerência de jobs batch; Temporização; Comunicação de eventos; Interface de comandos (shell). Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos CPU e IO Bound Os processos podem ser classificados: CPU –bound; I/O-bound. Um processo é definido com CPU-bound(ligado a CPU) quando passa a maior parte do tempo no estado de execução (utilizando a CPU); Um processo é definido com I/O-bound(ligado a E/S) quando passa a maior parte do tempo no estado de espera (utilizando a E/S); Os processos interativos são bons exemplos de processos I/O-bound, pois normalmente a comunicação é feita por terminais (lenta) Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Processos CPU e IO Bound Processos CPU x IO Bound Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Sinais Sinais são um mecanismo que permite modificar processos de eventos gerados pelo S.O. ou por outros processos; O seu uso é fundamental para a gerencia de processos, além de permitir a comunicação e a sincronização entre processos; O crtl-C é um exemplo de sinais; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Sinais Uso de sinais Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Sinais Sinais podem ser usados em conjunto com temporizadores para informar ao processo eventos relacionados ao tempo; A maioria dos eventos associados aos sinais são gerados pelo S.O., ou pelo hardware – exceções, interrupções, limites de quotas excedidos, alarmes de tempos; Em outras situações, os eventos são gerados a partir de outros processos com o intuito de sincronização; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Sinais Geração de um sinal: Evento síncrono ou assíncrono ocorre; O S.O. notifica o processo através dos bits sinalização localizados no PCB. Um processo não responde imediatamente a um sinal; Os sinais ficam pendentes até que o processo seja escalonado; Caso, por exemplo, seja selecionado a eliminação do processo, esta tarefa só será realizada quando o processo for selecionado para execução; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * síncrono O tratamento de sinal é muito semelhante ao mecanismo de interrupções; Quando um sinal é tratado, salva-se o contexto, e a execução é desviada (signal handler), geralmente no núcleo do S.O. Após tratar o sinal, a execução retorna ao ponto onde foi interrompido; Em alguns casos o próprio processo pode tratar o sinal; O processo pode bloquear temporariamente, ou até mesmo ignorar por completo alguns sinais; O sinal está para o processo assim como as interrupções e exceções estão para o S.O.; Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo * Sinais Sinais, interrupções e exceções
Compartilhar