ANHANGUERA
ANHANGUERA
Sistemas Operacionais
Sistemas Operacionais
Prof. Esp. Rafael Gross
Prof. Esp. Rafael Gross
Processos 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
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
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
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
Programa em execução
Unidade de alocação do processador
Processo x Programa Processo x Programa programa Contexto de Software Contexto de Espaço de endereçamento
Estrutura do Processo
Contexto de Software
Identificação
Quotas
Espaço de Endereçamento
Estrutura de um processo Programa Contexto de Software prioridade de execução registrador PC data/hora de criação tempo de processador registrador SP quotas privilégios endereços de memória principal alocados registrador de status owner (UID) PID nome registradores gerais Contexto de Hardware Espaço de EndereçamentoBloco de Controle do Processo (1)
.. .. .. .. p o n t e i r o s E s ta d o d o p r o c e s s o R e g i s tr a d o r e s 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 L i m i te s d e m e m ó r i a L i s ta d e a r q u i v o s a b e r to s Imagem do Processo Process Control Block (PCB) Código Pilha Dados (parte modificável do espaço de endereçamento) (conjunto de atributos)Bloco de Controle do Processo (2)
registrador PC
registradores de uso geral
informações de escalonamento limites de memória
privilégios
relação de arquivos abertos
PCB => Process Control Block
Identificação
Estado
Controle
identificação estado
Ciclos de vida de um processo
Criação
Execução
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)
Nova tarefa em batch “Login” interativo Serviço do S.O. Processo filho Exemplo: Unix login shell init ps término logout
Criação (2)
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
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
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)
Processos: independentes ou cooperativos
•Processos independentesNã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 relacionamento
P.ex. Filiação
Podem compartilhar recursos Definição de hierarquia
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 relacionamento
P.ex. Filiação
Podem compartilhar recursos Definição 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
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)
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
Dispatcher
Pausa Time-out
Apto Executando
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 # 9 P C B # 1 P C B # 2 P C B # 4 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
Estados do Processo (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
a
c
d b
Mudanças de Estado (2)
Mudanças de estado do processo (2)
r e s i d e n te n ã o r e s i d e n t e E s t a d o d e E x e c u ç ã o E s t a d o d e E s p e r a 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 P r o n t o
Modelo de 5 estados (1)
Executando (running) Pronto (ready) Bloqueado (blocked) Criação (new) Destruição (exit)Novo Admissão Ocorrência do Evento (interrupção) Dispatch Liberação (término) Time-out Espera do evento (chamada de sistema) Pronto Execução Saída Bloqueado
Modelo de 5 estados (2)
• Necessidade de filasModelo 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
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)
Razões para suspender um processo Swapping
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
Admissão Suspensão Dispatch Time out Ativação Ocorrência do Evento Ativação Suspensão Espera do Evento Pronto, Suspenso Bloqueado, Suspenso Pronto Execução Saída Bloqueado Novo Admissão Ocorrência do Evento Finalização com suspensão
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 C P r o c e s s o B
P r o c e s s o E P r o c e s s o D
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 ( b ) P r o c e s s o B a c k g r o u n d s a í d a s a í d a a r q u i v o d e s a í d a t e r m i n a l t e r m i n a l e n t r a d a e n t r a d a a r q u i v o d e e n tr a d a
Processo Foreground e
Background (2)
Pipe 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 Bs a í d a d o 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 A P r o c e s s o BProcessos 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
Processos CPU e IO Bound
Processos CPU x IO Bound
( a ) C P U - b o u n d te m p o te m p o
E / S E / S
U C P U C P
Sinais
Uso de sinais [ c t r l - C ] P r o c e s s o i n t e r r u p ç ã o s i n a l S i s t e m a O p e r a c i o n a lSinais
Sinais, interrupções e exceções
H a r d w a r e 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 S i n a i s P r o c e s s o P r o c e s s o