ANHANGUERA Sistemas Operacionais Prof. Esp. Rafael Gross Processos
Sumário Introdução Conceito de processo 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
Introdução Multiprogramação (relembrando) Execução simultânea de vários programas com o objetivo de tornar mais eficiente o aproveitamento dos recursos do computador Conceitos necessários a multiprogramação Processo Interrupção Proteção entre processos O próprio sistema operacional é um programa
Conceito de processo (1) Diferenciação entre o programa e sua execução Programa Entidade estática e permanente Sequência de instruções Passivo sob o ponto de vista do SO Processo Entidade dinâmica e efêmera Altera seu estado a medida que avança sua execução Composto por programa (código), dados e contexto (vetores)
Conceito de processo (2) Abstração que representa um programa em execução Diferentes instâncias Um programa pode ter várias instâncias em execução, i.e., diferentes processos Mesmo código (programa) porém dados e momentos de execução (contexto) diferentes Forma pela qual o SO enxerga um programa e possibilita sua execução Processos executam Programas de usuários Programas do próprio sistema operacional (daemons)
Estrutura do Processo Programa em execução Unidade de alocação do processador Processo x Programa Contexto de Software programa Espaço de endereçamento Contexto de Hardware
Contexto de Software Identificação Quotas Privilégios
Espaço de Endereçamento Estrutura de um processo nome PID owner (UID) prioridade de execução registradores gerais registrador PC data/hora de criação Contexto de Software Contexto de Hardware tempo de processador registrador SP quotas privilégios Programa Espaço de Endereçamento registrador de status endereços de memória principal alocados
Bloco de Controle do Processo (1) p o n t e i r o s Imagem do Processo (conjunto de atributos) Process Control Block (PCB) Código Pilha Dados (parte modificável do espaço de endereçamento) E s t a d o d o p r o c e s s o N o m e d o p r o c e s s o P r i o r i d a d e d o p r o c e s s o R e g i s t r a d o r e s L i m i t e s d e m e m ó r i a L i s t a d e a r q u i v o s a b e r t o s.
Bloco de Controle do Processo (2) PCB => Process Control Block Identificação Estado Controle identificação estado registrador SP registrador PC registradores de uso geral informações de escalonamento limites de memória privilégios relação de arquivos abertos
Ciclos de vida de um processo Criação Execução Término
Criação (1) Momento da execução Chamadas de sistemas P.ex. fork, wait, etc Pode ser associada a uma sessão de trabalho P.ex. Login de usuários: login + senha -> shell (processo) Identificado por um número único (PID)
Criação (2) Nova tarefa em batch Login interativo Serviço do S.O. Processo filho Exemplo: Unix init login shell ps logout término
Criação (3) Etapas de Criação Atribui um identificador único (PID) Aloca uma entrada na tabela de processos Aloca espaço para o processo Inicializa o PCB (Process Control Block) Coloca o processo na fila apropriada Cria estruturas auxiliares
Execução (1) Processos apresentam dois ciclos básicos de operação Ciclo de processador Tempo que ocupa a CPU Ciclo de entrada e saída Tempo em espera pela conclusão de um evento (p.ex. E/S) Primeiro ciclo é sempre de processador Troca de ciclos por: CPU -> E/S: chamada de sistema E/S -> CPU: ocorrência de evento (interrupção)
Execução (2) Processos CPU bound Ciclo de processador >> ciclo de E/S I/O bound Ciclo de E/S >> ciclo de processador Situação ideal Misturar processos CPU bound com I/O bound Benefícios a nível de escalonamento
Término Final de execução (normal) Por erros P.ex. proteção, aritméticos, E/S, tentativa de execução de instruções inválidas, falta de memória (falta de recurso), exceder limite de tempo, violação de acesso. Intervenção de outros processos (kill) logoff de usuários (forçado)
Relacionamento entre processos (1) Processos: independentes ou cooperativos Processos independentes Não afetam e nem são afetados pelos demais processos Não apresentam relacionamentos com outros processos Processos cooperativos Afetam e são afetados pelos demais processos Apresentam algum tipo de de relacionamento P.ex. Filiação Podem compartilhar recursos Definição de de hierarquia
Relacionamento entre processos (2) Hierarquia de processos Processo criador é processo pai Processo criado é processo filho Representação através de uma árvore Semântica associada: o que fazer na destruição de um processo? Toda a descendência morre A descendência é herdada pelo processo vô Postergar a destruição efetiva do processo pai até o final de todos processos filhos.
Estados do Processo (1) Após criado, o processo necessita entrar em ciclo de processador Hipóteses Processador não está disponível Vários processos sendo criados Que fazer? Criação de um fila de processos aptos (p/ espera pelo processador) Estados de um processo (modelo simplificado) Execução (running) Pronto (ready) Espera ou bloqueado (wait ou blocked)
Estados do Processo (2) Modelo simplicado a dois estados Manter uma fila de processos aptos aa executar Esperando pelo processador ficar livre Escalonador (dispatcher) Atribui o processador a um processo da fila de aptos Pode prevenir um único processo de monopolizar o processador Criação Apto Dispatcher Executando Término Pausa Time-out
Estados do Processo (4) Lista de processos L i s t a d e p r o c e s s o s e m e s t a d o d e p r o n t o. P C B # 5. P C B # 1 L i s t a d e p r o c e s s o s e m e s t a d o d e e s p e r a. P C B # 9.. P C B # 2 P C B # 4
Mudanças de Estado (1) Mudanças de estado do processo (1) E s t a d o d e E x e c u ç ã o b d a c E s t a d o d e E s p e r a E s t a d o d e P r o n t o
Mudanças de Estado (2) Mudanças de estado do processo (2) E s t a d o d e E x e c u ç ã o r e s i d e n t e n ã o r e s i d e n t e E s t a d o d e E s p e r a E s t a d o d e P r o n t o E s t a d o d e E s p e r a E s t a d o d e P r o n t o
Modelo de 5 estados (1) Executando (running) Pronto (ready) Bloqueado (blocked) Criação (new) Destruição (exit)
Modelo de 5 estados (2) Necessidade de filas Admissão Pronto Dispatch Time-out Execução Liberação (término) Novo Saída Ocorrência do Evento (interrupção) Espera do evento (chamada de sistema) Bloqueado
Modelo de 5 estados (3) Mudanças de estado do processo (3) criação e eliminação E s t a d o d e E x e c u ç ã o E s t a d o d e T é r m i n o E s t a d o d e E s p e r a E s t a d o d e P r o n t o E s t a d o d e C r i a ç ã o
Processos suspensos (1) Processador é mais rápido que operações de E/S Possibilidade de todos processos estarem bloqueados esperando por E/S Liberar memória ocupada por estes processos Transferidos para o disco (swap) Estado bloqueado assume duas situações Bloqueado com processo em memória Bloqueado com processo no disco Necessidade de novos estados Bloqueado suspenso (blocked suspend) Apto suspenso (ready suspend)
Processos suspensos (2) Swapping Razões para suspender um processo SO necessita liberar memória para executar um novo processo Solicitação do usuário Comportamento típico de depuradores Temporização Processo deve ter sua execução interrompida por um certo período de tempo Suspensão de um processo por outro processo P.ex. sincronização
Diagrama de estados de processos Novo com suspensão Admissão Admissão Suspensão Pronto, Suspenso Ativação Suspensão Pronto Dispatch Time out Execução Finalização Saída Ocorrência do Evento Ocorrência do Evento Espera do Evento Bloqueado, Suspenso Ativação Bloqueado
Processos Independentes, Subprocessos e Threads (1) Estrutura de processos e subprocessos P r o c e s s o A P r o c e s s o B P r o c e s s o C P r o c e s s o D P r o c e s s o E
Processos Foreground e Background (1) 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 t r a d a s a í d a t e r m i n a l t e r m i n a l ( b ) P r o c e s s o B a c k g r o u n d e n t r a d a s a í d a a r q u i v o d e e n tr a d a a r q u i v o d e s a í d a
Processo Foreground Background (2) Pipe e e n t r a d a d o P r o c e s s o A P r o c e s s o A s a í d a d o P r o c e s s o A e n t r a d a d o P r o c e s s o B P r o c e s s o B s a í d a d o P r o c e s s o B
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)
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 t e m p o t e m p o ( b ) I / O - b o u n d
Sinais Uso de sinais i n t e r r u p ç ã o S i s t e m a O p e r a c i o n a l s i n a l [ c t r l - C ] P r o c e s s o
Sinais Sinais, interrupções e exceções P r o c e s s o P r o c e s s o S i n a i s S i s t e m a O p e r a c i o n a l I n t e r r u p ç õ e s E x c e ç õ e s H a r d w a r e