Sistemas Operacionais Aula 7,8 Processos Gerência de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário Conceito de Processo • Escalonamento de Processos • Operações com Processos • Processos Cooperativos • Comunicação entre Processos • SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 4 Diagrama de Estados de Processos SO - Prof. Edilberto Silva 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 SO - Prof. Edilberto Silva 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 SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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 SO - Prof. Edilberto Silva 9 Estado dos Processos (1) Estados possíveis dos processos running - rodando blocked - bloquiado ready - pronto Transições entre estados SO - Prof. Edilberto Silva 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 SO - Prof. Edilberto Silva 11 Mudanças de Estado Mudanças de estado do processo E s t a d o d e E x e c u ç ã o d b a c E s t a d o d e E s p e r a SO - Prof. Edilberto Silva E s t a d o d e P r o n t o 12 Espaço de Endereçamento Estrutura de um processo nom e PID o w n e r (U I D ) 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 t u s E s p 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 SO - Prof. Edilberto Silva 13 Implementação de Processos (1) Campos de uma entrada na tabela de processos SO - Prof. Edilberto Silva 14 Implementação de Processos (2) Esqueleto do que a camada mais baixa do SO faz quando uma interrupção ocorre SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 16 Process Control Block (PCB) SO - Prof. Edilberto Silva 17 Troca de CPU entre Processos SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 19 Fila de Processos Pronto e Várias Filas de E/S SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 22 Uma Árvore de Processos em um Sistema UNIX Típico. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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 SO - Prof. Edilberto Silva 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 E s p a ç o d e E n d e r e ç a m e n to SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 30 o d n ta cu xe e ss SO - Prof. Edilberto Silva A o o d s re o d a tr g e is ce r ro P a g e B o ss ce ro P o d s re o d a tr is g e r 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 e r a g e rr a C A o ss ce ro P o d s re o d a tr is g e r 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. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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 SO - Prof. Edilberto Silva 36 Processos Independentes, Subprocessos e Threads Processo multithread C o n te x t o d e h a r d w a r e C o n te x t o d e h a r d w a r e 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 r d w a r e E s p a ç o d e e n d e r e ç a m e n to SO - Prof. Edilberto Silva 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 SO - Prof. Edilberto Silva 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. SO - Prof. Edilberto Silva 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 P r o c e s s o A SO - Prof. Edilberto Silva P r o c e s s o 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) SO - Prof. Edilberto Silva 41 Processos CPU e IO Bound Processos CPU x IO Bound E/S E/S U C P U C P ( a ) C P U ­ b o u n d te m p o SO - Prof. Edilberto Silva 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 r a 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 SO - Prof. Edilberto Silva 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). SO - Prof. Edilberto Silva 44