Sistemas Operativos

Capítulo 2 Descrição e Controlo dos Processos

Descrição e Controlo dos Processos
    

O Processo Estados de um Processo Descrição de Processos Controlo do Processo Gestão de Processos em UNIX SVR4

Paulo Neves

Sistemas Operativos

2

O Processo

Processo é criado para executar um programa Conceito de trace

Comportamento do processo Listagem de sequência de instruções

Paulo Neves

Sistemas Operativos

3

Ideias a reter

Tempo de execução alojado

Time out  despacho

    

Nível de multiprogramação Pedido de E/S  despacho Terminação  despacho Comutação obrigatória após time out Tempo de execução do despacho não influência tempo de alocação
Sistemas Operativos 4

Paulo Neves

Exemplo traces
A000 A001 A002 A003 A004 A005 A006 A007 A008 A009 A010 A011
Trace do processo A

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

A000 A001 A002 A003 A004 A005 Time Out D000 D001 D002 D003 D004 D005 B000 B001 B002 B003 Process End D000 D001 D002 D003 D004 D005 C000 C001 C002 I/O Request

B000 B001 B002 B003

C000 C001 C002 C003 C004 C005 C006 C007 C008 C009 C010 C011
Trace do processo C

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

D000 D001 D002 D003 D004 D005 A006 A007 A008 A009 A010 A011 D000 D001 D002 D003 D004 D005 C003 C004 C005 C006 C007 C008 D000 D001 D002 D003 D004 D005 C009 C010 C011

Process End

Time Out

Trace do processo B

Paulo Neves

Sistemas Operativos

5

Estados de um Processo
  

Modelo de 2 estados Modelo de 5 estados Modelos de 6 e 7 estados

Paulo Neves

Sistemas Operativos

6

Modelo de 2 estados

Processo pode estar em execução ou parado

Paulo Neves

Sistemas Operativos

7

Problemas do Modelo

Criação do processo

Novo batch job, Interactive Logon, criado pelo SO, criado por um processo Normalmente, time out, falta de memória, violação do espaço de endereçamento, erro de protecção, erro aritmético, time overrun, falha de E/S, instrução privilegiada, erro na utilização de dados, intervenção do SO ou operador, termino do pai, a pedido do pai
Sistemas Operativos

Termino do processo

Paulo Neves

8

Criação de um Processo I

Novo batch job
 

Sistema de controlo de jobs Novo job

Leitura da sequência de comandos de controlo da tarefa

Interactive Logon

Um utilizador autentica-se no sistema

Paulo Neves

Sistemas Operativos

9

Criação de um Processo II

Criado pelo SO

Fornecimento de serviços

A pedido de aplicações ou outras funcionalidades do SO

Exemplo: impressão Uma aplicação pode invocar a criação de processos
Sistemas Operativos 10

Criado por um processo existente

Paulo Neves

Termino de um Processo I

Terminação normal

Processo invoca uma chamada de sistema a indicar que terminou O processo demorou mais tempo a executar que o especificado Processo requisitou mais memória que a disponível
Sistemas Operativos 11

Time Out

Falta de memória

Paulo Neves

Término de um Processo II

Violação do espaço de endereçamento

Processo tentou aceder a outro espaço de endereçamento Processo tenta utilizar um recurso que não lhe pertence P. ex. divisão por zero
Sistemas Operativos 12

Erro de protecção

Erro aritmético

Paulo Neves

Término de um Processo III

Time overrun

Processo esperou mais tempo que o especificado para a ocorrência de um dado evento Ficheiro inexistente, falha de L/E, operação inválida

Falha de E/S

Paulo Neves

Sistemas Operativos

13

Término de um Processo IV

Instrução inválida

Processo tenta executar uma instrução inválida (típico: tenta executar dados) Instrução reservada ao SO Dados não inicializados ou de tipo incorrecto
Sistemas Operativos 14

Instrução privilegiada

Erro na utilização de dados

Paulo Neves

Término de um Processo V

Intervenção do SO ou operador

Por alguma razão um deles terminou o processo A terminação do pai provoca automaticamente a terminação de todos os processos por ele criados O processo que o criou invocou a terminação do filho
Sistemas Operativos 15

Termino do pai

A pedido do pai

Paulo Neves

O modelo de 5 Estados

Resposta aos problemas do modelo de 2 estados Estado bloqueado

Paulo Neves

Sistemas Operativos

16

Análise das transições

Null  New

Um novo processo é criado para executar um programa Evento desencadeado por qualquer uma das razões já apresentadas

Paulo Neves

Sistemas Operativos

17

SO pronto para aceitar novo processo

Processo é admitido Limitação para o número de processos

Alguns SOs

Paulo Neves

Sistemas Operativos

18

Dispatch
 

O processo é seleccionado para execução Só os processos no estado Ready podem ser despachados Algoritmos de escalonamento próprios

Paulo Neves

Sistemas Operativos

19

Time out

Tempo de execução ininterrupto chegou ao fim Política de prioridades (em alguns SOs)

Processo prioritário pode forçar a preempção do actual

Paulo Neves

Sistemas Operativos

20

O processo é terminado pelo SO após indicação deste ou  O processo é abortado

Paulo Neves

Sistemas Operativos

21

Event Wait

Processo colocado em espera

P. ex. operação de E/S

Evita quebras de desempenho ou  Aplicação solicita ao SO um serviço ainda não activo  Recurso tem de ser libertado

Paulo Neves Sistemas Operativos 22

Event Occurs

Processo sai do estado bloqueado

Evento pelo qual esperava ocorreu Pode ser seleccionado para execução a qualquer momento

Processo entra no estado Ready

Paulo Neves

Sistemas Operativos

23

Ready  Exit

Reflecte o facto do processo pode ser terminado a qualquer altura A pedido do pai, termino do pai Blocked  Exit

Existe pela mesma razão

Paulo Neves

Sistemas Operativos

24

Modelo de 6 e 7 Estados
  

Suporte ao modelo de memória virtual Processo pode estar suspenso Modelo de 7 estados contempla 2 estados de suspensão
 

Ready/suspend Blocked/suspend

Paulo Neves

Sistemas Operativos

25

Modelo de 6 e 7 estados

Paulo Neves

Sistemas Operativos

26

Modelo de 6 estados

Estado suspended

Processo foi colocado em memória secundária Colocação pelo SO

Fornecimento de mais memória a outros processos

Paulo Neves

Sistemas Operativos

27

Modelo de 7 estados

Blocked/suspended

Processo está bloqueado e foi colocado em memória secundária Processo encontra-se pronto para execução, mas foi colocado em memória secundária Para ser executado tem de ser trazido para memória
Sistemas Operativos 28

Ready/suspended

Paulo Neves

Análise de Algumas Transições
   

Blocked  Blocked/suspend Blocked/suspend  Ready/suspend Ready/suspend  Ready Ready  Ready/suspend

Paulo Neves

Sistemas Operativos

29

Blocked  Blocked/suspend

Libertação de memória para outros processos Não existem processos prontos para execução em memória

Necessário colocar alguns processos bloqueados em memória secundária Trazer processos para a memória
Sistemas Operativos 30

Paulo Neves

Blocked/suspend  Ready/suspend
 

Ocorrência do evento Processo permanece em memória secundária SO tem de ter acesso ao estado dos processos suspensos

Paulo Neves

Sistemas Operativos

31

Ready/suspend  Ready

Não existem processos prontos para execução em memória Processo é prioritário

Mesmo que hajam processos prontos em memória

Paulo Neves

Sistemas Operativos

32

Ready  Ready/suspend
  

Normalmente não é muito utilizado Políticas de prioridade Libertação de memória para outros processos

Todos os processos que estão em memória estão prontos para execução

Paulo Neves

Sistemas Operativos

33

Descrição dos Processos

 

SO gere os recursos que os processos pedem Para o SO controlar, tem de possuir informação Que informação? Como é ela organizada?

Paulo Neves

Sistemas Operativos

34

Estruturas de Controlo do SO

Paulo Neves

Sistemas Operativos

35

Em relação às tabelas…

As tabelas não estão isoladas

Possuem ligações entre si

Como é que o SO sabe como criar as tabelas?

SO tem de possuir informação sobre os recursos

Inicialização

Paulo Neves

Sistemas Operativos

36

Imagem de um Processo I
  

Manifestação física do processo Estrutura de dados pré-definida Estrutura que permite
  

Conhecimento do estado do processo Recursos alojados O programa que lhe está associado

Paulo Neves

Sistemas Operativos

37

Imagem de um Processo II

Dados do Utilizador

Dados modificáveis do utilizador Programa a ser executado Armazenamento de parâmetros e endereços de retorno

Programa do Utilizador

Pilha de Sistema

Bloco de Controlo do Processo
Sistemas Operativos 38

Paulo Neves

Bloco de Controlo do Processo

Identificação do processo

Identificadores numéricos diversos Registos visíveis ao utilizador Registos de controlo e estado Apontadores de pilha de sistema

Informação do estado do processador
  

Informação de controlo do processo
Sistemas Operativos 39

Paulo Neves

Informação de Controlo do Processo I

Informação de escalonamento e estado

Estado, prioridade, identificação do evento que bloqueou o processo Ligações entre processos Flags, sinais, mensagens Parte ou toda a informação residente no BCP
Sistemas Operativos 40

Estruturação dos dados

Comunicação inter-processos
 

Paulo Neves

Informação de Controlo do Processo II

Privilégios do processo
 

Tipos de instruções e memória Utilização de recursos e serviços

 

Gestão de memória Utilização e posse de recursos

Paulo Neves

Sistemas Operativos

41

Filas de Processos com o Mesmo Estado

Paulo Neves

Sistemas Operativos

42

Controlo do Processo
    

Modos de Execução Criação do Processo Comutação de Processos Comutação de Modo Execução do SO

Paulo Neves

Sistemas Operativos

43

Modos de Execução

Modo de kernel – Kernel Mode
  

Modo com maiores privilégios Leque de instruções executáveis maior Acesso a todos os recursos do processador Normalmente utilizado na execução das aplicações do utilizador Algumas instruções são protegidas
Sistemas Operativos 44

Modo de utilizador – User Mode

Paulo Neves

O Kernel – Funcionalidades I

Gestão de processos
   

Criação e termino Escalonamento e despacho Comutação Sincronização e suporte para comunicação inter-processo Gestão de BCPs

Paulo Neves

Sistemas Operativos

45

O Kernel – Funcionalidades II

Gestão de Memória
  

Alocação do espaço de endereçamento Swapping Gestão do sistema de paginação/segmentação Gestão de buffers Alocação de canais de E/S
Sistemas Operativos 46

Gestão de E/S
 

Paulo Neves

O Kernel – Funcionalidades III

Funções de suporte
  

Interrupt handling Monitorização Geração de estatísticas de utilização (accounting)

Paulo Neves

Sistemas Operativos

47

Criação do Processo
    

Atribuição de um ID único Alocação de espaço de endereçamento Inicialização do BCP Definir as ligações apropriadas Criar ou expandir outras estruturas de dados

Paulo Neves

Sistemas Operativos

48

Comutação de Processos – Razões I

Interrupções externas à execução da instrução actual
 

Interrupção por tempo Interrupção por operação de E/S (ocorrência do evento) Interrupção por parte falha de memória Erro fatal versus erro não fatal
Sistemas Operativos 49

Excepções

Paulo Neves

Comutação de Processos – Razões II

Chamada ao supervisor
  

Programa efectua chamada ao supervisor Rotina que faz parte do SO Passagem para o estado blocked

Paulo Neves

Sistemas Operativos

50

Passos da Comutação
 

Guardar o contexto do processador Actualização do BCP

Estado e contabilização

Mover o BCP do processo para a fila apropriada Selecção de outro processo para execução
Sistemas Operativos 51

Paulo Neves

Passos da Comutação II
 

Actualização do BCP do novo processo Actualização das estruturas de gestão de memória Actualização do contexto do processador com a informação correspondente do BCP

Paulo Neves

Sistemas Operativos

52

Comutação de Modo

Comutação entre os modos do processador Geração de uma interrupção
 

 

Guardar o contexto do programa actual PC aponta para inicio da rotina de tratamento Comutação para o modo de kernel Executa as instruções da rotina
Sistemas Operativos 53

Paulo Neves

Implicações

Salvaguarda do contexto

Contexto do processador (BCP)

Pode degenerar numa comutação de processo Mais rápida que uma comutação de processo

Paulo Neves

Sistemas Operativos

54

Execução do SO

O SO é um processo?
 

Quem o controla? Como? Processador Memória

Concorre com os outros processos?
 

Paulo Neves

Sistemas Operativos

55

Abordagens
 

Kernel separado Funções do SO são executadas no espaço de endereçamento dos processos Funções do SO são executadas em processos separados

Paulo Neves

Sistemas Operativos

56

Kernel Separado

Kernel não é um processo, não precisa ser controlado SO é uma entidade separada que opera em modo privilegiado

Paulo Neves

Sistemas Operativos

57

Funções do SO são executadas no espaço de endereçamento dos processos
 

Máquinas de pequeno porte Utilização de stack separada para execução em modo privilegiado Apenas ocorre uma comutação de modo

Paulo Neves

Sistemas Operativos

58

Funções do SO são executadas em processos separados
 

Colecção de processos Existência de um programa de comutação separado

Paulo Neves

Sistemas Operativos

59

Gestão de Processos em UNIX SVR4

Paulo Neves

Sistemas Operativos

60

A primitiva fork()

Forma de criação de processos em UNIX Devolve um valor inteiro que tem de ser processado em software Caso não consiga criar o processo devolve –1 ao processo pai

Paulo Neves

Sistemas Operativos

61

A primitiva fork() – Passos I

 

Alocação de um slot na tabela de processos para o novo processo Especificação de um identificador único Cópia da imagem do processo do pai para o filho, excepto memória partilhada Incrementa contadores de ficheiros do pai, reflectindo a inclusão de um novo dono
Sistemas Operativos 62

Paulo Neves

A primitiva fork() – Passos II

  

O processo filho é colocado no estado Ready to Run Devolve ao pai o ID do processo filho Devolve ao filho 0 Valor de retorno permite a identificação do processo em execução e separação do programa
Sistemas Operativos 63

Paulo Neves

Mini-teste!

Explique o que entende por imagem e bloco de controlo de um processo. Explique o que entende por comutação de modo e as suas vantagens em relação a comutação de contexto.

Paulo Neves

Sistemas Operativos

64

Questões

?
Paulo Neves Sistemas Operativos 65

Sign up to vote on this title
UsefulNot useful