Processos

  • View
    6.169

  • Download
    2

  • Category

    Business

Preview:

DESCRIPTION

Aula sobre Processos, livro Sistemas operacionais modernos - Andrew Tanenbaum.

Citation preview

ProcessosRodrigo.piovesana@gmail.com

2010

Processos

Todos computadores modernos podem executar várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador também pode estar lendo a partir de um disco e dando saída a um texto para uma tela ou impressora.

A CPU executa N funções ao “mesmo tempo”, mas como executar N funções ao “mesmo tempo” se só temos uma CPU???

Processos seqüenciais e multiprogramação

rodrigo.piovesana@gmail.com

Processos

Diferenciação entre o programa e a sua execução

ProgramaEntidade estática e permanente

Seqüência de instruções

Passivo sob o ponto de vista do sistema operacional

ProcessoEntidade dinâmica e efêmera

Altera seu estado a medida que avança sua execução

Composto por programa, dados e contexto.

Analogia entre cozinheiro e a receita!

rodrigo.piovesana@gmail.com

Processo

Ambiente onde é executado um programa.

Elemento ativo. Altera seu estado.

Seqüência de instruções.

Processo

Hierarquia de Processos

Tempo Real x Sistemas Domésticos

Um processo pode criar outros processos. Criando uma estrutura de árvore para representá-la.

Cada ramo da árvore é um processo.

ProcessoUm mesmo programa sendo executado por dois usuários ao mesmo tempo, são dois processos em execução.

Editor de Texto

Processo 1 Usuário 1

Processo 2 Usuário 2

Hierarquias de Processos

P1

P3P4P2

P5 P6 P7 P8 P9 P10

Inicial

Criados por P1

Criados pelos filhos de P1

Hierarquia de Processos

No UNIX os processos são criados pela chamada de sistema FORK, cujos processos rodam em paralelo.

No MS-Dos o processo-pai espera pelo

filho.(chamada p/carregar arquivo binário).

Estados do Processo

Um processo passa por uma série de estados diferentes durante sua existência.

A mudança de estado é causada por uma série de eventos.

cat capitulo1 capitulo2 capitulo3 | grep arvore

Estados do Processo

Após ser criado um processo entra em um ciclo de CPU. (executa...espera...executa..)

Para dividir o uso da CPU entre os processos os demais

devem ficar bloqueados.

Estados do Processo

Executando:Usando a CPU.

Pronto: Em condições de Rodar (não tem CPU)

Bloqueado: Impedido de Rodar, depende de um evento

externo ao processo.

Estados do Processo

executando

BloqueadoPronto

1

4

3

2

1 - Processo bloqueado para fazer entrada de dados.

2 - Escalonador escolhe novo processo.

3 - Escalonador entrega Processador a esse novo processo.

4 - Entrada de dados concluída.

externo

novamenteS/condição

tempo

Estados do Processo - Transição

executando

BloqueadoPronto

1

4

3

2

1 - execução -> bloqueado. (processo)

2 -Execução -> pronto. (escalonador)

3 - Pronto ->execução (escalonador)

4 - bloqueado -> pronto. (externo)

WakeUP

DispathBlock

TimeRunOut

Processo

Escalonador de Processos

Decide qual processo vai rodar e por quanto tempo.

É uma rotina executada sem que o processo tome

conhecimento.

É o nível mais baixo do Sistema Operacional

Gerenciador de interrupções ou responsável pela

comunicação interprocessos.

Processo

Contexto de Hardware

Conteúdo dos Registradores PC(program counter),

SP(stack pointer) e bits de estado.

Fundamental para sistemas de time-sharing

(revezamento na utilização do processador).

A troca de processos na CPU (context switching -

mudança de contexto).

Processo - Mudança de Contexto

Processo A Processo B

Salva registradores do P.A.

Carrega registrador do P.B.

Salva Registrador do P.B.

Carrega Registrador do P.A.

executando

executando

executando

Processo

Contexto de Software

Especifica características do processo que vão influir na

sua execução.

Identificação (PID-Process Identification)

Quotas (limite de recursos que pode alocar)

Privilégios (segurança, acesso)

SubProcesso

Permite dividir uma aplicação em partes para poder trabalhar de forma concorrente.

Aumento do throughput da aplicação.

Cada subprocesso tem seu contexto de hardware,

contexto de software e espaço de endereçamento.

Threads

Compartilham o processador da mesma forma que o processo

Compartilham o mesmo espaço de endereçamento,

permitindo que um thread possa alterar dados de

outro thread.

O SO pode ou não estar ciente do uso de threads, se

está ciente o SO possui uma tabela de threads.

Acelera o processo para pequenas tarefas.

Comunicação

Um processo pode passar informação para o outro (pipeline | )

Para não gerar conflito de recurso

Sequencia. “A” produz resultados para “B” imprimí-los.

Escalonamento

Quem vai primeiro? O SO determina baseado no algorítmo de escalonamento.

Sistemas em Lote?

O primeiro usuário que chegou usa o recurso.

Sistema em lote

Usuário 1

•JOB1

•JOB2

Usuário 2

•JOB1

•JOB2

Usuário 3

•JOB1

•JOB2

Algorítmo de Escalonamento

Algorítmo

•Imparcial

•Eficiência

•Resposta (usuários interativos)

•Turnaround (usuário de lote)

•Throughput

Algorítmo de Escalonamento

Algum ITEM sempre vai ser penalizado!

Não há como atender todos os quesitos sem penalizar outros..

•TEMPO

•Armazenar todas as informaçõespara realizar a troca

Round Robin

•Fatores Externos

•Estático ou dinâmicoPrioridade

•Classes de prioridadeMúltiplas

Filas

•Job mais Curto

•Garantido

•Sorteio

Algoritmosem Lote

Bloco de controle de processos

Process Control Block - PCB

Também conhecido como descritor de processos,

É uma área de memória, localizada no núcleo do S.O.,que armazena as informações referentes a umprocesso.

Bloco de Controle de Processos

Ponteiros

Estado do Processo

Nome do Processo

Propriedade do Processo

Registradores

Limites de memória

Lista de arquivos abertos

Operações sobre processos

Operações básicas sobre processos:

Criar um processo;

Destruir um processo;

Suspender um processo;

Retornar (reativar) um processo;

Alterar a prioridade de um processo;

Bloquear um processo;

Desbloquear um processo (wakeup);

Despachar um processo (dispatch).

Operações sobre processos

Criação do Processo:

Nomear o processo;

Inserir o processo na lista de processosconhecidos;

Determinar a prioridade inicial doprocesso;

Criar o descritor do processo;

Alocar os recursos iniciais do processo

Operações sobre processos

Destruição do Processo:

Remover do sistema;

Retornar o controle dos recursos para oSistema Operacional;

Apaga os conteúdos das listas e tabelas;

Apaga o seu descritor.

Operações sobre processos

Suspensão do processo:

Operação importante;

Realizada por breves períodos de tempo;

Para atender um momento de pico;

Pode liberar ou não os recursos;

Operações sobre processos

Retorno ou Ativação do Processo:

Reiniciar a partir do ponto em que haviasido suspenso.

Salvamento do contexto

Operações sobre processos

Alteração de Prioridade do Processo:

Alterar o conteúdo de prioridades nodescritor de processos.

Operações sobre processos

Bloqueio de Processo:

Impedido de rodar até que ocorra umevento externo ao sistema;

Não pode rodar mesmo que oprocessador esteja disponível;

Sem condições lógicas de prosseguir.

Operações sobre processos

Desbloqueio do Processo:

Quando acontece um evento externo peloqual o processo estava aguardando

Se nenhum processo estiver rodando já édisparado em seguida, caso contrário vaipara o estado de pronto.

Recommended