Sistemas Operacionais Aula 7,8 Processos Gerência de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: Prof. José Juan Espantoso
Sumário Conceito de Processo Escalonamento de Processos Operações com Processos Processos Cooperativos Comunicação entre Processos 2
Conceito de Processo Quando os sistemas passaram a ser multiprogramados os programas não puderam mais ter controle total e acesso a todos os recursos do sistema; Necessidade de maior controle e compartilhamento Um processo é: - Um programa em execução; - Unidade de trabalho em um sistema de tempo compartilhado (em alguns casos há uma unidade menor, denominada thread); - Todas as atividades, desde as do sistema operacional até as do usuário são encapsuladas em um processo. 3
Estados de Processo Durante a execução de um processo, ele altera seu estado: Novo (new): O processo está sendo criado. Executando (running): instruções estão sendo executadas. Esperando (waiting): O processo está esperando algum evento acontecer. Pronto (ready): O processo está esperando ser associado a um processador. Terminado (terminated): O processo terminou sua execução. 4
Diagrama de Estados de Processos 5
Processos Modelo de Processo Multiprogramação de 4 programas Modelo conceitual de 4 processos independentes e sequenciais Apenas um programa ativo em um dado instante 6
Criação de Processos Principais eventos que causam a criação de processos - Inicialização do sistema - Execução de um sistema de criação de processos (ex. Shell) - Usuário requesita a criação de um novo processo - Inicialização de um arquivo de lote 7
Terminação de Processos - Término normal (voluntário) - Término com erro (voluntário) - Erro Fatal (involuntário) - Morto por outro processo (involuntário) Processo executa última declaração e pede ao sistema operacional para decidir (exit). - Recursos do processo são desalocados pelo sistema operacional. Algumas situações o pai pode terminar a execução do processo filho (abort): - Filho se excedeu alocando recursos. - Tarefa delegada ao filho não é mais necessária. - Pai está terminando. 8
Hierarquia de Processos Processos pai criam processos filhos, e processos filhos criam sou próprios filhos Formando uma hierarquia Em UNIX chama-se isto de "process group" Windows não possui conceito de hierarquia de processos Todos processos são criados iguais 9
Estado dos Processos (1) Estados possíveis dos processos running - rodando blocked - bloquiado ready - pronto Transições entre estados 10
Estado dos Processos (2) Camada mais baixa de SO estruturados-aprocesso Tratamento de interrupções, escalonamento (scheduling) Acima desta camada estão processos sequenciais 11
Mudanças de Estado Mudanças de estado do processo E sta d o d e E xe cu çã o d b a c E sta d o d e E sp e ra E sta d o d e Pro n to 12
Espaço de Endereçamento Estrutura de um processo nom e PID o w n e r (U ID ) r e g istr a d o r e s g e r a is p r io r id a d e d e e x e cu ç ã o d a ta / h o ra d e cr ia ç ã o r e g istr a d o r P C C o n te x t o d e S o f tw a r e C o n te x t o d e H a rd w a re r e g istr a d o r S P te m p o d e p r o ce ssa d o r q u o ta s Pro g ra m a p r iv ilé g io s r e g istr a d o r d e sta tu s Esp aço d e E n d e r e ç a m e n to e n d e r e ç o s d e m e m ó r ia p r in cip a l a lo ca d o s 13
Implementação de Processos (1) Campos de uma entrada na tabela de processos 14
Implementação de Processos (2) Esqueleto do que a camada mais baixa do SO faz quando uma interrupção ocorre 15
Process Control Block (PCB) É a informação associada a cada processo.contém: Estado do Processo. Contador. Informações de escalonamento da CPU. Informação de Gerenciamento de memória. Informação para Contabilidade. Informações do status de E/S. 16
Process Control Block (PCB) 17
Troca de CPU entre Processos 18
Filas de Escalonamento de Processos Fila de processos conjunto de processos no sistema. Fila de Processos prontos (Ready queue) conjunto de todos os processos residentes na memória principal, prontos e esperando para executar. Fila de dispositivos conjunto dos processos esperando por um dispositivo de E/S. Existe uma migração de processos entre as várias filas. 19
Fila de Processos Pronto e Várias Filas de E/S 20
Escalonamento de Processos e CPU Escalonador de processos (Long-term scheduler) seleciona quais processos devem ser trazidos para a fila de processos prontos. Escalonador da CPU (Short-term scheduler) seleciona qual processo deve ser executados a seguir e aloca CPU para ele. O escalonador de processos controla o grau de multiprogramação. Processos podem ser descritos como: Processos com E/S predominante (I/O-bound process) gasta mais tempo realizando E/S do que computando, muitos ciclos curtos de CPU. Processos com uso de CPU predominante (CPU-bound process) gasta mais tempo realizando computações; poucos ciclos longos de CPU. 21
Troca de Contexto Quando CPU alterna para outro processo, o sistema deve salvar o estado do processo deixando o processador e carregar o estado anteriormente salvo do processo novo. Tempo de Troca de Contexto é dependente de suporte em hardware. Criação de Processos Processo pai cria processo filho, o qual, por sua vez, pode criar outros processos, formando uma árvore de processos. Compartilhamento de Recursos Pai e filho compartilham todos os recursos. Filho compartilha um subconjunto dos recursos do pai. 22
Uma Árvore de Processos em um Sistema UNIX Típico. 23
Processos Cooperativos Processos Independentes não podem afetar ou ser afetados pela execução de outro processo. Processos Cooperantes podem afetar ou ser afetados pela execução de outro processo. Vantagens da cooperação entre processos: Compartilhamento de Informações. Aumento na velocidade da computação. Modularidade. 24
Comunicação entre Processos (Interproccess Communication) É o mecanismo para processos se comunicarem e sincronizarem suas ações. Sistema de mensagens processos se comunicam uns com os outros sem utilização de variáveis compartilhadas. O suporte a IPC provê duas operações uma para envio outra para recebimento: send (mensagem) tamanho da mensagem fixo ou variável receive (mensagem) Se dois processos P1 e P2 querem se comunicar, eles necessitam: Estabelecer um link de comunicação entre eles. Trocar mensagens via send/receive. 25
Comunicação Direta Processos devem nomear o outro explicitamente: send (P1, mensagem) envia uma mensagem ao processo P receive (P2, mensagem) recebe uma mensagem do processo P2 Propriedades dos links de comunicação Links são estabelecidos automaticamente. Um link é associado com exatamente um par de processos comunicantes. 26
Comunicação Indireta Mensagens são dirigidas e recebidas de caixas postais através de mailboxes (também chamadas de portas). Propriedades do link de comunicação: Um link pode estar associado com muitos processos. Operações Criar uma nova mailbox. Enviar e receber mensagens através da mailbox. Destruir uma mailbox. 27
Modelos de Processo Modelo de Processo: O Sistema Operacional gerencia os processos através de system calls, que realizam operações como criação, eliminação e suspensão; O processo pode ser dividido em três elementos básicos: Contexto de Hardware; Contexto de Software; Espaço de Endereçamento 28
Estrutura do processo C o n te x t o d e S o f tw a r e C o n te x t o d e H a rd w a re Pro g ra m a Esp aço de E n d e r e ç a m e n to 29
Contexto de Hardware Contexto de Hardware O contexto de hardware constituí-se, basicamente, do conteúdo de registradores (PC, SP, etc.); Quando um processo está em execução, o seu contexto de hardware está armazenado nos registradores do processador; O contexto de hardware é fundamental p/ a implementação dos sistemas de tempo compartilhado, onde os processos se revezam na utilização do processador. 30
o d n ta cu xe e A o ss g ce o d s re o d a tr is re P ro a g e B o ss ce ro P o d s re o d a tr is g re a lv a S o d n ta cu xe e B o ss ce ro P o d s re o d a tr is g re a g e rr a C A o ss ce ro P o d s re o d a tr is g re a lv a S B o ss ce ro P A o ss ce ro P l a n o ci ra e p O a m te is S Mudança de contexto rr a C o d n ta cu xe e Contexto de Hardware 31
Contexto de Software Contexto de Software O contexto de software especifica características do processo que vão influir na execução de um programa; Por exemplo, número máximo de arquivos abertos simultaneamente ou o tamanho do buffer p/ operações de E/S; O contexto de software define basicamente três grupos de informação sobre um processo: sua identificação, suas quotas e seus privilégios. 32
Contexto de Software Contexto de Software O contexto de software especifica características do processo que vão influir na execução de um programa; Por exemplo, número máximo de arquivos abertos simultaneamente ou o tamanho do buffer p/ operações de E/S; O contexto de software define basicamente três grupos de informação sobre um processo: sua identificação, suas quotas e seus privilégios. 33
Contexto de Software Contexto de Software Identificação: Cada processo criado pelo sistema recebe uma identificação única (PID Process Identification), representada por um número; Quotas: As quotas são os limites de cada recurso do sistema que um processo pode alocar. Caso uma quota seja insuficiente, o processo deverá ser executado lentamente ou mesmo não ser executado; Privilégios: Os privilégios definem o que o processo pode ou não fazer em relação ao sistema e aos outros processos. 34
Endereçamento Contexto de Endereçamento É a área de memória onde o programa será executado, além do espaço para os dados utilizados por ele; Cada processo possui seu próprio espaço de endereçamento, que deve ser protegido do acesso dos demais processos. 35
Processos Independentes, Subprocessos e Threads Estrutura de processos e subprocessos Pro ce sso A Pro ce sso C Pro ce sso B Pro ce sso D Pro ce sso E 36
Processos Independentes, Subprocessos e Threads Processo multithread C o n te x t o d e h a rd w a re C o n te x t o d e h a rd w a re T h re a d 1 T h re a d 2 T h re a d 3 C o n te x t o d e so f tw a r e C o n te x t o d e h a rd w a re Esp aço d e e n d e r e ç a m e n to 37
Processos Foreground e Background Processos foreground e background (a ) P r o c e s s o F o r e g r o u n d e n tra d a s a íd a te r m in a l te r m in a l (b ) P r o c e s s o B a c k g r o u n d e n tra d a s a íd a a r q u iv o d e e n tr a d a a r q u iv o d e s a íd a 38
Processo Foreground e Background Pipe Um pipe é um pseudo-arquivo que pode ser usado para conectar dois processos; Quando o processo A desejar enviar dados ao processo B, ele escreve no pipe como se este fosse um arquivo de saída; Já o processo B lê os dados, tratando o pipe como um arquivo de entrada. 39
Processo Foreground e Background Pipe s a íd a d o Pro ce sso A e n tra d a d o Pro ce sso A s a íd a d o Pro ce sso B e n tra d a d o Pro ce sso B Pro ce sso A P ro ce sso B 40
Processos do Sistema 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) 41
Processos CPU e IO Bound Processos CPU x IO Bound E/S E/S U C P U C P (a ) C PU b o u n d te m p o te m p o (b ) I/ O b o u n d 42
in te r r u p ç ã o s in a l S is t e m a O p e ra c io n a l [c tr l C ] Pro ce sso Sinais, interrupções e exceções Pro ce sso Pro ce sso S in a is S is t e m a O p e r a c io n a l In te rru p çõ e s Exceções H a rd w a re 43
Threads Uma thread (ou um processo leve) é uma unidade básica de utilização da CPU; ela consiste de: Contador de programas Conjunto de registradores Espaço de pilha Uma thread compartilha com seus pares (outras threads vinculadas): Seção de código Seção de dados Recursos do sistema operacional Coletivamente conhecida como uma tarefa (task). 44