Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Sistemas Operacionais * Departamento de Informatica-DI/UFPA Sistemas Operacionais Capítulo 5 Processo Sistemas Operacionais * Departamento de Informatica-DI/UFPA 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 Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Introdução Conceito de processo é base para implementação de um sistema multiprogramável. O processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução. A gerência de um ambiente multiprogamavel é uma função do SO, que deve controlara execução dos diversos programas e o uso concorrente do processador. Para isso para ser executado um programa precisa ser vinculado a um processo Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Introdução Apesar de denominações como tarefa ou job ainda serem encontradas com o mesmo sentido, o termo processo é atualmente utilizado por grande partes das bibliografias. Gerencias de processo é umas das principais funções de um sistema operacional Através de processo, um programa pode alocar recursos, compartilhar dados, trocar informações e sincronizar sua execução. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Introdução Nos sistemas multiprogramaveis, os processos são executados concorrentemente, compartilhando, dentre outros recursos, o uso do processador, da memória principal e dos recursos de E/S Pergunta: Em um sistema com múltiplos processadores existes concorrência de processos? Não só existe a concorrência de processos pelo uso do processador como também a execução simultânea de processos nos diferente processadores. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Def 1: Um processo é entendido inicialmente como um programa em execução, só que seu conceito é mais abrangente. Isso se torna mais claro quando pensamos como um sistema multiprogramaveis atendem os diversos usuários e mantem informações a respeito dos vários programas que estão sendo executados concorrente mente ? Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Num sistema multiusuário, cada usuário é associado a um processo. Ao executar um programa, o usuário tem a impressão de possuir o processador e todos os demais recursos reservados exclusivamente para o seu uso. Neste caso o processador executa o programa de um usuário durante um intervalo de tempo e, no instante seguinte poderá estar processando um outro programa. Para que a troca ocorra de programas ocorra sem problemas é necessário que todas as informações do programa interrompido sejam guardadas para que, quando o programa retornar a ser executado, não lhe falte informações necessárias a continuação do processamento Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Todas as informações necessárias à execução de um programa fazem parte do processo Def 2: Um processo também pode ser definido como um ambiente onde um programa é executado. Este ambiente, além das informações sobre execução, possui também o quanto de recurso do sistema o programa pode utilizar, como espaço de endereçamente, tempo do processador e area em disco. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo A execução de um mesmo programa pode variar dependendo do processo no qual ele é executado, ou seja, em função dos recursos disponíveis. A falta de recursos pode impedir a execução com sucesso de um programa. Um processo é formado por três partes, juntas mantêm todas a informações necessárias à execução de um programa conhecidas como: Contexto de Hardware Contexto de Software Espaçamento de Endereçamento Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do processo Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Hardware O contexto de hardware armazena o conteúdo dos registradores gerais do UCP, além dos registradores de uso específico, como program counter (PC), stack pointer (SP) e registradores de status. Os registradores são dispositivos com a função principal de armazenar dados temporariamente Alguns registradores podem diretamente por instruções (registradores de uso geral). Enquanto outros são responsáveis por armazenar informações de controle do processador e do sistema operacional (registradores de uso específicos). Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Hardware Registradores de uso específicos Program counter (PC): Contém os endereços da próxima instrução que o processador deve buscar e executar. Stack Pointer (SP): Contém o endereço de memória do topo da pilha, que é a estrutura de dados onde o sistema mantém as informações sobre os programas que estão sendo executados e tiveram que ser interrompidos; Registradores de status:É responsável por armazenar informaçoes sobre a execução de instuções. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Hardware Quando um processo está em execução seu contexto de hardware está armazenado no registradores do processador. No momento em que o processo perde a utilização da UCP, o sistema salva as informações do contexto de hardware no processo. O contexto de hardware é fundamental para implementação dos sistemas multiprogramaveis, onde os processos revezam na utilização da UCP, podendo ser interrompidos e posteriormente restaurados. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Hardware A troca de um processo por outro no processador, comandada pelo sistema operacional, e denominado de mudança de contexto. A mudança de contexto consiste em salvar o conteúdo dos registradores do processo que está deixando a UCP e carrega-los com os valores referentes do novo processo que será executado Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Hardware Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Software No contexto de software são especificados características e limites dos recursos que podem ser alocados pelo processo como: Numero máximo de arquivos que podem ser abertos simultaneamente. Prioridade de execução. Tamanho de buffer para operação de E/S A maior parte das informações do contexto de software do processo são previamente de um arquivo do SO conhecido de como arquivos de contas Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Software O contexto de software é composto por 3 grupos de informações sobre o processo: Identificação Quotas Privilégios Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Software Identificação Cada processo criado pelo sistema recebe um identificação única: PID (Process Identification) – representado por um número. Através do PID o SO e outros processos podem fazer referência a qualquer processo existente, consultando seu contexto ou alterando uma de suas características. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Software Identificação O processo também possui a identificação do usuário do processo (owner).Cada usuários possui uma identificação única: UID (User Identification) A UID permite implementar um modelo de segurança, onde apenas objetos (processos, arquivos, áreas de memórias e etc...) que possuem o mesmo UID de usuário podem ser acessados. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Software Quota As quotas são os limites de cada recurso do sistema que o processo pode alocar. Caso uma quota seja insuficiente, o processo poderá ser executado lentamente, interrompido durante o seu processamento ou mesmo não ser executado. Exemplos de quotas: Numero máximo de arquivos abertos simultaneamente Tamanho máximo de memória principal e secundaria que o processo pode alocar. Numero Maximo de operações de E/S Tamanho máximo dos buffers de E/S Numero máximo de processos, subprocessos e threads podem ser criados Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Contexto de Software Privilégios Privilégios ou direitos definem a ação que um processo pode fazer em relação a ele mesmo, aos demais processos e ao sistema operacional Privilégios que afetam o próprio processo permitem que suas características possam ser alteradas, como prioridades de execução, limites alocados na memória principal, etc. Privilégios que afetam o SO são mais amplos e poderosos, pois estão relacionados a operação e gerência do ambiente, como desativação do sistema, alteração de regras de segurança, criação de processos privilegiados, modificação de parâmetros de configuração do sistema. A maioria dos sistemas operacionais possuem uma conta de com todos esse privilégios disponíveis. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Espaço de Endereçamento O espaço de endereçamento é a área da memória pertencente ao processo onde as instruções e os dados do programa são armazenados para execução Cada processo possui seu próprio espaço de endereçamento que devem ser devidamente protegido do acesso dos demais processo. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Bloco de Controle O processo é implementado pelo SO através de uma estrutura dados chamado de bloco de controle de 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 o espaço de endereçamento de memória. Os PCBs de todos os processo residem na memória principal em uma área exclusiva do SO Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Bloco de Controle PCB Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estrutura do Processo Bloco de Controle O tamanho desta área geralmente é limitado por um parâmetro do sistema operacional que permite especificar quantos processo podem ser suportados simultaneamente pelo sistema. Toda a gerência de processo é realizado através de system calls que realizam operações como: Criação Alteração de Características Visualização Eliminação Sincronização Suspensão de processos Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estados do Processo Em um sistema multiprogramavel, um processo não deve alocar a UCP com exclusividade, de forma que possa existir um compartilhamento no uso do computador. Os processos passam por diferente estados ao longo do seu processamento, em função de eventos gerados pelo sistema operacional ou pelo próprio processo. Um processo ativo pode encontra-se em 3 estados diferentes Execução (running) Pronto (ready) Espera (wait) Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estados do Processo Execução (running) Um processo é dito no estado de execução quando está sendo processado pelo UCP. Em um sistema com apenas uma UCP, somente um processo pode está sendo executado em um dado instante Então os processo se alternam na utilização do processador seguindo um política estabelecida seguido pelo SO Em sistemas com múltiplos processadores, existe a possibilidade de mais de um processo está sendo executada ao mesmo temp. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estados do Processo Pronto (ready) Um processo está no estado de pronto quando aguarda apenas para ser executado. O SO é responsável por determinar a ordem e os critérios pelos quais os processos em estados de pronto devem fazer uso do processador Este mecanismo é conhecido como escalonamento Em geral existem vários processos no sistema no estado pronto organizados em filas encadeadas. Os processos devem estar ordenados pela sua importância, permitindo que processos mais prioritários sejam selecionados primeiramente para execução Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estados do Processo Espera (wait) Um processo no estado de espera aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento. Por exemplo Podemos citar o término de uma operação de entrada e saída. Também podemos citar um processo a espera de uma data e/ou hora para continuar sua execução. O SO organiza os vários processos no estado de espera em filas encadeadas. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estados do Processo Espera (wait) Em geral os processos são separados em filas de esperas associadas a cada tipo de evento. Neste caso, quando um evento acontece todos os processos da lista associada ao evento são transferidos para o estado de pronto Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Estados do Processo Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Mudança de Estados Um processo muda se estado durante um processamento em função de eventos organizados por ele próprio (eventos voluntários) ou pelo SO (eventos involuntários). Praticamente, existem 4 mudanças de estados que podem ocorrer a um processo Pronto Execução Após a criação do processo, o SO o coloca na lista de no estado de pronto. Cada SO tem seus próprios critérios e algoritmos para a escolha da ordem que os processo serão executados (políticas de escalonamento ) Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Mudança de Estados Execução Espera Um processo em execução passa para o estado de espera quando por eventos gerados pelo próprio processo como uma operação de E/S ou por eventos externos. Um evento externo é gerado, por exemplo, quando o sistema operacional suspende por um período de tempo a execução de um processo. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Mudança de Estados Espera Pronto Um processo no estado de espera passa para o estado de pronto quando a operação solicitada é atendida ou o recurso esperado é atendido. Um processo no estado de espera sempre terá que passar pelo estado de pronto para voltar a ser executado. Não existe a mudança do estado de espera para o estado de execução diretamente. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Mudança de Estados Execução Pronto Um processo em execução passa para o estado de pronto por eventos gerados pelo SO como término da fatia de tempo que o processo possui para sua execução. Nesse caso, o processo volta para fila de pronto, onde aguarda por uma nova oportunidade de para executar seu processamento. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Mudança de Estados Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Mudança de Estados Um processo em estado de pronto ou de espera pode não se encontrar na memória principal. Essa condição ocorre quando não existe espaço suficiente para todos os processos na memória principal e parte do contexto do processo é levada para a memória secundária. Uma técnica chamada Swapping retira processos da memória e traz de volta seguindo critérios de cada SO. Neste caso, os processos em estado de espera e pronto podem estar residentes ou não residentes na memória principal. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Mudança de Estados Um processo em estado de pronto ou de espera pode não se encontrar na memória principal. Essa condição ocorre quando não existe espaço suficiente para todos os processos na memória principal e parte do contexto do processo é levada para a memória secundária. Uma técnica chamada Swapping retira processos da memória e traz de volta seguindo critérios de cada SO. Neste caso, os processos em estado de espera e pronto podem estar residentes ou não residentes na memória principal. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Mudança de Estados Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Criação e Eliminação de Processos Processos são criados e eliminados por diverso motivos A criação de um processo ocorre a partir do momento em que o SO adiciona um novo PCB a sua estrutura e aloca um espaço de endereçamento na memória para o seu uso. A partir da criação do PCB, o SO já reconhece a existência do processo, podendo gerenciá-lo e associar programas ao seu contexto para serem executados. No caso da eliminação de um processo, todos os recursos associados ao processo são deslocados e o PCB é eliminado pelo SO. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Criação e Eliminação de Processos Processos são criados e eliminados por diverso motivos A criação de um processo ocorre a partir do momento em que o SO adiciona um novo PCB a sua estrutura e aloca um espaço de endereçamento na memória para o seu uso. A partir da criação do PCB, o SO já reconhece a existência do processo, podendo gerenciá-lo e associar programas ao seu contexto para serem executados. No caso da eliminação de um processo, todos os recursos associados ao processo são deslocados e o PCB é eliminado pelo SO. Alem dos três estados apresentados anteriormente para o processo a maioria dos sistemas operacionais estabelece dois estados adicionais: Criação(new) e Terminado(exit) Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Criação e Eliminação de Processos Criação (New) Um processo é dito no estado de criação quando o SO já criou um novo PCB, porem ainda não pode colocá-lo na lista de processos do estados de pronto Alguns SO limitam o número de processos ativos em função de recurso disponíveis ou de desempenho. Terminado (Exit) Um processo no estado de término não poderá ter mais nenhum programa executado no seu contexto, porem o SO ainda mantêm as informações de controle presente na memória Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Criação e Eliminação de Processos Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Independentes, Subprocessos e Thread Processo independentes, subprocessos e threads são maneiras diferentes de implementar a concorrência dentro de uma aplicação. Processo Independentes É a maneira mais fácil de implementar concorrência em sistemas multiprogramáveis. Neste caso não existe vínculo do processo criado com o processo criador Subprocesso São processo criados dentro de uma estrutura hierárquica. Neste momento o processo criador é denominado processo pai enquanto o novo processo é denominado de subprocesso ou processo filho. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Independentes, Subprocessos e Thread Thread Trabalho Artigo sobre thread Modelos de tópicos Introdução Ambiente Monothread Ambiente Multithread Arquitetura Implementação Entrega 2013 Apresentação serão sorteados 4 artigos Equipes com 2 componentes Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Foreground e Background Um processo sempre é associado à sua estrutura pelo menos dois canais de comunicação. Por onde são realizadas todas as entradas e saídas de dados ao longo do seu processamento. O canais de entrada (input) e de saída (output) de dados podem estar associados: Terminais Arquivos Impressora Até mesmo outros processos Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Foreground e Background Processo Foreground Um processo foreground é aquele que permite a comunicação direta do usuário com o processo. Neste caso tanto o canal de entrada como o canal de saída estão associados a um terminal com teclado, mouse e monitor, permitindo assim a interação com usuário. Processos interativos tem como base processo foreground. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Foreground e Background Processo Foreground Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Foreground e Background Processo Background Um processo Background é aquele onde não existe comunicação com usuário durante seu processamento Neste caso, os canais de E/S não estão associados a nenhum dispositivo de E/S interativo, mais em geral a arquivos de E/S. O processamento do tipo Batch é realizado através de processamento background Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Foreground e Background Processo Background Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Foreground e Background Também é possível associar o canal de saída de um processo ao canal de entrada de outro processo. Neste caso dizemos que existe um pipe ligando os dois processos. Exemplo Supomos que um processo A seja responsável por gerar uma listagem e o processo B seja responsável por ordenar essa listagem. Então basta associar um pipe ligando o canal de saida do processo A ao canal de entrada ao processo B Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo Foreground e Background PIPE Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo do Sistema Operacional O conceito de processo alem de está associado a aplicações do usuários, também pode ser implementado na própria arquitetura do SO. O SO implementa processos que disponibilizam serviços para processos das aplicações e do próprio sistema operacional A seguir uma lista de alguns serviços que o sistema operacional pode implementar através de processo: Auditoria e segurança Serviços de rede; Contabilização de recursos Contabilização de erros Gerencia de impressão Temporização Comunicação de eventos Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo CPU-Bound e I/O Bound Os processos podem ser classificados como CPU-Bound e I/O Bound, de acordo com a utilização do processador e dos dispositovos de E/S CPU-Bound Um processo é definido CPU-Bound (Ligado à UCP) quando passa a maior parte to tempo em estado de execução, ou seja, utilizando o processador. I/O-Bound Um processo é definido I/O-Bound (Ligado à E/S) quando passa a maior parte do tempo no estado de espera, pois realiza um elevado numero de operações de E/S. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processo Processo CPU-Bound e I/O Bound Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processos Sinais Sinais são um mecanismos que permite notificar processo de eventos gerados por outros processos ou pelo SO. O uso de sinais é fundamental para a gerencia de processos, alem de possibilitar a comunicação e sincronização entre processos Exemplo Quando o usuário utiliza uma seqüência de caracteres do teclado, como [Ctrl+C], para interromper a execução de um programa, neste caso o SO gera um sinal a partir da digitação desta combinação de teclas, sinalizando o processo a ocorrência do evento. Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processos Sinais A geração de um sinal ocorre quando o sistema operacional, a partir da ocorrência de eventos síncronos ou assíncronos notifica o processo através de bits de sinalização localizados no seu PCB. O processo não responde instantaneamente a um sinal os sinais ficam pendentes ate que o processo seja escalonado, quando então são tratados O tratamento de um sinal ocorre é muito semelhante ao mecanismo de interrupções, quando o sinal é tratado o contexto do processo é salvo e a execução desviada para um código de tratamento de sinal(Signal handler), geralmente no núcleo do sistema Sistemas Operacionais * Departamento de Informatica-DI/UFPA Processos Sinais O mecanismo de sinais assemelha-se ao tratamento de interrupções e exceções. O sinal está para o processo assim como a interrupção e exceções estão para SO.
Compartilhar