1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo...

83
1 Processos Prof. Alexandre Monteiro Recife

Transcript of 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo...

Page 1: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

1

Processos

Prof. Alexandre Monteiro

Recife

Page 2: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]

[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Page 3: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos Em um sistema multiprogramado vários programas

estão na RAM e são executados concorrentemente•A CPU permuta entre programas, executando cada um por dezenas/centenas de milisegundos.

- Uma CPU só pode executar um programa por vez.

•Mas no curso de 1’’ uma CPU pode executar diversos programas ilusão de paralelismo (pseudoparalelismo)

- Verdadeiro paralelismo = sistema multiprocessado

Page 4: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos O conceito de processo é a base para a

implementação de um sistema multiprogramável A gerência de um ambiente multiprogramável é

função do SO, o qual controla a execução dos programas e o uso concorrente da CPU

Neste contexto um programa esta associado a um processo

OBS: Apesar de denominações como tarefa ou job ainda serem usadas com o mesmo sentido, o termo processo é atualmente o mais utilizado.

job = tarefa = processo

Page 5: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos Vantagens da Multiprogramação:

•Aumento da taxa de utilização do processador

•Melhor utilização dos recursos em geral•Redução do tempo de execução de um conjunto de programas

•Dá a ideia ao usuário de que ele possui uma máquina só para si.

Page 6: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Tipos de Processo

Independentes: não podem afetar a execução dos outros processos.

Cooperativos: podem afetar ou ser afetados pela execução de outros processos.

Vantagens:• Compartilhamento de informações• Aumento da veloc. de computação (speedup)• Modularidade• Conveniência

Page 7: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

7

ProcessosO Modelo de Processo

• Multiprogramação de 4 programas• Modelo conceitual de 4 processos sequenciais,

independentes• Somente um programa está ativo a cada momento

Page 8: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos

4 programas na memória de um sistema multiprogramado e a abstração em processos.

Page 9: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos

4 programas na memória de um sistema multiprogramado e a abstração em processos.

Page 10: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos

4 programas na memória de um sistema multiprogramado e a abstração em processos.

Page 11: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Sequencial x Multiprogramado

Page 12: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos

Para que a troca de programa ocorra sem problemas é necessário que todas as informações do programa interrompido sejam guardadas

Todas as informações importantes à execução de um programa são parte do processo, por exemplo:

• seu espaço de endereçamento,• seu tempo de processador e• sua área de disco

Page 13: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos

Um processo é formado por três partes

• Contexto de Hardware• Contexto de Software• Espaço de endereçamento

Estas três partes mantêm todas as informações necessárias à execução de um programa

Quando um processador troca de processo caracteriza uma mudança de Contexto de Execução

Page 14: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estrutura de um Processo

Page 15: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Hardware

Armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico, por exemplo:

• Contador de programa (Program Counter - PC)

- Armazena o endereço de memória onde se encontra a próxima instrução a ser executada

• Apontador da pilha (Stack Poiter - SP)- A pilha contém valores que podem ser inteiros, reais ou endereços.- O SP aponta para o topo da pilha

• Status (Estado do Processo)- Contém diversos flags que auxiliam à tomar decisões após instruções

Page 16: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Hardware

Quando um processo está em execução, o seu contexto de HW está armazenado nos registradores da CPU.

No momento em que o processo perde a utilização da CPU, o sistema salva as informações no contexto de HW do processo

A troca de um processo por outro na CPU é denominada mudança de contexto.

Esta consiste em salvar o conteúdo dos registradores do processo que está deixando a CPU e carregá-los com os valores referentes ao do novo processo.

Page 17: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

(1)

(2)(3)

(4)

(5)

(6)

(7)

Page 18: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Hardware

A troca de contexto resume-se em substituir o contexto de HW de um processo A pelo de outro processo B.

Page 19: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Software

Especifica as características e limites dos recursos que podem ser alocados pelo processo, como:

• O número máximo de arquivos abertos simultaneamente,• A prioridade de execução e• O tamanho do buffer para E/S

Muitas informações do contexto de SW são provenientes de um arquivo do SO conhecido como arquivo de contas• Ele é gerenciado pelo Administrador do sistema

e contém os limites dos recursos que cada processo pode alocar.

Page 20: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Software

É formado por 3 grupos de informações:

• Identificação•Quotas•Privilégios

Page 21: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Software - Identificação Grupo Identificação

• Cada processo criado pelo sistema recebe uma identificação única

- PID – Process Identification

• Através do PID o SO e outros processos podem fazer referência a qualquer processo existente

• O processo também possui a identificação do usuário ou processo que o criou (owner).

- Cada usuário possui uma identificação no sistema- UID – User Identification

Page 22: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Software - Identificação A UID permite implementar um modelo de

segurança, onde apenas os objetos (processos, arquivos, áreas de memória,...) que possuem a mesma UID do usuário (ou processo pai) podem ser acessado.

Page 23: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.
Page 24: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Software - Quotas Grupo Quotas

•As quotas são os limites de cada recurso do sistema que um processo pode alocar

•Caso uma cota seja insuficiente, o processo poderá:

- Ser executado lentamente- Interrompido durante seu processamento- Ou até nem ser executado

Page 25: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Software - Quotas Grupo Quotas

•Alguns exemplos de quotas:- Número máximo de arquivos abertos simultaneamente

- Tamanho máximo de memória principal e secundária que o processo pode alocar

- Número máximo de operações de E/S pendentes

- Tamanho máximo do buffer para operações de E/S

- Número máximo de processos, subprocessos e threads que podem ser criados

Page 26: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Software - Privilégios

Grupo Privilégios

•Os privilégios ou direitos definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processo e ao SO.- Alterar a prioridade de execução- Modificar os limites alocados de memória- Alteração de regras de segurança- Criação de outros processos privilegiados- Modificação de parâmetros de configuração do sistema

Page 27: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contexto de Software - Privilégios

Grupo Privilégios

•Privilégio que afetam o SO são os mais amplos e poderosos.

•A maioria do SO possui uma conta de acesso SUPER privilegiada- Windows = administrator- UNIX = root

Page 28: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.
Page 29: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Espaço de Endereçamento

É a área de memória do processo onde as instruções e os dados do programa são armazenadas para execução

Cada processo possui seu espaço de endereçamento

Page 30: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Processo: Estrutura Detalhada

Page 31: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

PCB - Bloco de Controle do Processo

O processo é implementado pelo SO através de uma estrutura de dados (Lista Encadeada) chamada de Bloco de Controle do Processo (Process Control Block - PCB)

A partir do PCB, o SO mantém as informações sobre o contexto de HW, o contexto de SW e o espaço de endereçamento de cada processo.

O PCB possui todas as informações necessárias para que a execução do processo possa ser iniciada, interrompida e retomada conforme determinação do SO, sem prejuízo para o processo.

Page 32: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

PCB - Bloco de Controle do Processo Algumas informações típicas que o PCB possui são:

• Identificador de processo (pid);• Estado atual do processo;• Cópia do conteúdo do registrador contador de programa

(PC – Program Counter);• Cópia do conteúdo dos demais registradores do

processador;• PID do processo pai (parent process);• Ponteiro para a pilha;• Tempo em que o processo iniciou;• Tempo utilizado do processador;• Informações sobre diretório raiz e de trabalho.

OBS: Os PCBs de todos os processos residem na memória principal em uma área exclusiva do SO

Page 33: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

PCB na Memória (Lista Encadeada)

Address Windowing Extensions

Page 34: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estado do Processo

Para haver o compartilhamento da CPU em um sistema multiprogramável, os processos passam por diferentes estados ao longo do seu processamento

• A troca de estado ocorre em função de eventos gerados pelo próprio processo (voluntário) ou pelo SO (involuntário)

Os estados em que um processo pode se encontrar variam de sistema para sistema mas, de uma maneira geral, pode-se citar:

• Executando (Running)• Pronto (ready)• Bloqueado (blocked) – Também conhecido com Espera

(Wait)• Terminado (exit)

Page 35: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estados do Processo:Executando (running) Um processo está no estado executando quando ele

está sendo executado pelo processador.

Em ambientes com uma única CPU, somente um processo pode estar sendo executado em um certo instante.

Em ambientes com mais de uma CPU, existe a possibilidade de mais de um processo estar sendo executado ao mesmo tempo

• Neste tipo de sistema um mesmo processo também pode ser executado simultaneamente em mais de uma CPU

Page 36: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estados do Processo:Pronto (ready) O processo está temporariamente parado para que

outro processo possa ser executado.

O processo encontra-se pronto para a execução, aguardando apenas a liberação do processador para que ele seja executado;

Em geral existem vários processos no sistema no estado de pronto organizados em listas encadeadas;

Os processos são encadeados pela sua importância/prioridade

Page 37: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estados do Processo:Pronto (ready)

Page 38: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estados do Processo:Bloqueado (blocked) – Espera (wait) Um processo está no estado bloqueado/espera

quando aguarda a ocorrência de algum evento ou recurso externo para poder prosseguir, por exemplo:

- O término de uma operação de E/S- Espera de uma data e/ou hora para continuar sua

execução

O sistema também organiza os vários processos no estado de bloqueado/espera em listas encadeadas

- Em geral, os processos são separados em listas de espera associadas a cada tipo de evento

Page 39: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estados do Processo:Bloqueado (blocked) – Espera (wait)

Page 40: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

40

Processos x Programas

• Diferença sutil mas crucial.• Um processo é um programa em execução.• CPU chaveam conjuntos de processos, o que chamamos de

multiprogramação.• Analogia da Receita de Bolo:

• A receita é o programa (algoritmos).• O cozinheiro/programador é o processador (CPU)• Os ingredientes são os dados de entrada.• O processo é a atividade desempenhada pelo cozinheiro (ler receita, buscar e misturar ingredientes, assar o bolo)

Page 41: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

41

Processos x Programas

• Agora imagine que no meio do preparo o filho do cozinheiro chegue chorando e dizendo que uma abelha o picou:

• O cozinheiro registra de onde está (estado atual do processo é salvo).

• Pega livro de primeiros socorros e começa a seguir as instruções.

• Quando o problema da picada de abelha tiver sido tratado, o processador (cozinheiro) volta ao bolo.

• Nesse ponto vemos que o processador alternou de um processo para outro de mais alta prioridade

Page 42: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.
Page 43: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

43

Processos

• Um processo constitui uma atividade composta de:

• Programa• Entrada• Saída• Estado.

• Um programa sendo executado duas vezes, isso conta como dois processos. Apesar do SO compartilhar o código do programa em memória.

Page 44: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

44

Criação de Processos

Principais eventos que levam à criação de processos

1. Início do sistema

2. Execução de chamada ao sistema de criação de processos

3. Solicitação do usuário para criar um novo processo

4. Início de um job em lote

I. Processos e Foreground (primeiro plano): interagem com usuários

II. Processos e Background (segundo plano): função específica, que não se associam com o usuários (Daemons)

Page 45: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Criação de Processos

Sistemas Antigos: só o sistema podia criar novos processos

Sistemas Atuais: os usuários podem criar novos processos e destruir dinamicamente

SO deve fornecer chamadas para a manipulação e gerência de processos

Quando um novo processo é criado o seu PCB é preparado com as informações básicas e colocado na fila de prontos.

Page 46: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

46

Criação de Processos

Novos processo derivam do Processo Pai, sendo criada uma cópia dos endereços de memória para Processos Filhos

•UNIX (fork: cria novo processo e execve: sobrepõe espaço de endereçamento)

•Windows (CreateProcess) Pai e Filho tem seus Endereços de Memória distintos,

principalmente para escrita.

No UNIX há pouco compartilhamento, no Windows os espaços são distintos desde o início da criação do Processo Filho.

Page 47: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Criação de Processos Processos Pais criam processos Filhos, que podem criar

novos processos => gerando uma árvore de processos

Compartilhamento de Recursos:1. Pais e Filhos compartilham os mesmo recursos

2. Filhos compartilham um subconjunto de recursos do Pai

3. Pais e Filhos não compartilham recurso algum

Execução

1. Pai e Filhos executam concorrentemente

2. Pai aguarda até que o filho termine

Espaço de endereçamento

1. Filho é uma cópia do Pai (Firefox)

2. Filho tem um novo programa carregado (Google Chrome)

Page 48: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Árvore de Processos

Windows

Page 49: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Criação de Processos

Page 50: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

50

Término de Processos

Condições que levam ao término de processos

1. Saída normal (voluntária)

2. Saída por erro (voluntária)

3. Erro fatal (involuntário)

4. Cancelamento por um outro processo (involuntário)

Page 51: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

51

Término de Processos

Término de processos

• UNIX (exit)• Windows (ExitProcess)

Todos os programas baseados em tela também suportam o término voluntário.

Término do Erro Fatal: executar arquivo inexistente.

Instrução Ilegal: divisão por zero, referência a memória inexistente.

Término por cancelamento UNIX (Kill) e Windows (TerminateProcess)

Page 52: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Eliminação de Processo

Quando um processo é eliminado seus recursos associados são desalocados e o SO elimina o PCB.

Além dos 3 estados de um processo, a maioria dos SO têm mais 2 estados (um para criação e outro para eliminação)

Criação (New)• O SO criou um novo PCB, porém o processo

não está na lista de prontos Terminado (Exit)

• Não pode ser mais executado, porém o SO ainda mantém seu PCB

- O SO usa o PCB para contabilizar os recursos usados. Após isto, o processo pode deixar de existir

Page 53: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Eliminação de Processo

Pais podem terminar a execução de processos Filhos (abort)

1. Filhos excederam os recursos alocados

2. Tarefa de incumbência do Filho não é mais necessária

3. NO caso de Pai terminando

•SO não permite que o Filho continue se seu pai terminou

•Terminação em cascata

Page 54: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Criação e Eliminação de Processos

Page 55: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

55

Hierarquias de Processos

• Pai cria um processo filho, processo filho pode criar seu próprio processo

• Formam uma hierarquia

–UNIX chama isso de “grupo de processos”• Windows não possui o conceito de hierarquia de processos

–Todos os processos são criados iguais

Page 56: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

56

Estados de Processos (1)

• Possíveis estados de processos–em execução–bloqueado–Pronto–terminado

• Mostradas as transições entre os estados

Page 57: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Transições Possíveis entre Estados

Page 58: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estados de Processos

De forma resumida existem 4 mudanças de estado que podem ocorrer a um processo:

• (a) Pronto -> Execução

• (b) Execução -> Bloqueado/Espera

• (c) Bloqueado/Espera -> Pronto

• (d) Execução -> Pronto

Page 59: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Mudança de Estado de Processo(a) Pronto -> Execução Quando um processo é criado, o sistema o coloca em

uma fila de processos prontos, onde aguardará uma oportunidade para ser executado.

Cada SO tem seus próprios critérios e algoritmos para a escolha da ordem em que os processos serão executados (escalonamento).

Esta transição também ocorre quando todos os processos já tiveram o seu tempo de execução (fatia de tempo) e agora é novamente a vez do primeiro processo da fila de prontos ser executado pela CPU

Causada por eventos gerados pelo sistema. Isto é de forma involuntária ao processo.

Page 60: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estados do Processo:Pronto

Page 61: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Mudança de Estado de Processo(b) Execução -> Bloqueado/Espera

Um processo executando pode passar para o estado bloqueado por meio de eventos gerados pelo próprio processo

•Ex: uma operação de E/S Um processo executando também pode passar para

o estado bloqueado por eventos gerados pelo sistema

•Ex: SO suspende por um período a execução de um processo.

Page 62: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estados do Processo:Bloqueado (blocked) – Espera (wait)

Page 63: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Mudança de Estado de Processo(c) Bloqueado/Espera -> Pronto

Um processo no estado de bloqueado/espera passa para o estado de pronto quando a operação solicitada é atendida ou o recurso esperado é concedido.

Um processo no estado de bloqueado/espera sempre terá que passar pelo estado de pronto antes de poder ser novamente selecionado para execução

•Não existe mudança de estado de bloqueado/espera para o estado de execução diretamente

Page 64: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Mudança de Estado de Processo(d) Execução -> Pronto

Um processo em execução pode passar para o estado de pronto quando ocorrer o término da sua fatia de tempo, por exemplo.

Nesse caso, o processo volta para a fila de processos prontos, onde aguarda uma nova fatia de tempo;

Causada por eventos gerados pelo sistema. Isto é de forma involuntária ao processo.

OBS. Um processo em estado pronto ou bloqueado/espera pode não estar em RAM. Isto ocorre quando não existe espaço suficiente para todos os processo na RAM e parte do contexto do processo é levada para o HD. E isso leva mais tempo para executar.

Page 65: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Conceito de Escalonamento Para cada estado existe uma Fila que contém os

PCBs.

Nas transações entre estados, o PCB do processo é movido entre as filas apropriadas.

Page 66: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Razões para Suspender Processos Uma técnica conhecida como swapping retira

processos da RAM, liberando espaço de memória para outro processo, e os traz de volta seguindo critérios de cada SO.

Neste caso, os processos em estado bloqueado/espera e pronto podem estar residentes ou não residentes na RAM.

- SO pode suspender processos:- Em background- Utilitário

Suspeito de estar causando problemas

Solicitação de usuário interativo

Temporização: execução periódica

Solicitação do processo pai.

Page 67: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Mudanças de Estados do Processo

RAM

HD

Page 68: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

68

Estados de Processos (2)

• Camada mais inferior de um SO estruturado por processos

–trata interrupções, escalonamento• Acima daquela camada estão os processos

sequenciais

Page 69: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Escalonamento de Processos

Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro

A parte do sistema operacional responsável por essa decisão é chamada escalonador, e o algoritmo usado para tal é chamado de algoritmo de escalonamento

Para que um processo não execute tempo demais, praticamente todos os computadores possuem um mecanismo de relógio (clock) que causa uma interrupção, periodicamente

Page 70: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

70

Implementação de Processos (1)

Campos da entrada de uma tabela de processos

Page 71: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

71

Implementação de Processos (2)

Esqueleto do que o nível mais baixo do SO faz quando ocorre uma interrupção

Page 72: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Processos Foreground e Background- Processos Foreground: Permite a comunicação direta do usuário com o

processo durante o seu processamento

• Tem como base processamento interativo (teclado, mouse e monitor)

- Processos Background: Não permite a comunicação com o usuário durante o

seu processamento

• Tem como base processamento tipo batch (arquivos de E/S)

Page 73: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Processos Foreground e Background

Page 74: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Processos Foreground e Background Processo Foreground e Background – PIPE

É possível associar a saída de um processo a entrada de um outro. Para isso usa-se um pipe ligando os processos.

Exemplo em UNIX

cat cap1 cap2 cap3 | grep linguagem

cat está sendo usado para concatenar 3 arquivos

grep mostrará as linhas da saída de cat com a palavra linguagem

Page 75: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Processos Foreground e Background

Page 76: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Processos CPU-Bound e I/O Bound Processos CPU-Bound

• Passa a maior parte do tempo no estado de execução, ou seja, utilizando a CPU

- Esse tipo de processamento realiza pouca E/S (aplicações científicas)

Processos I/O-Bound• Passa a maior parte do seu tempo no estado

de bloqueado (ou espera), pois realiza muita E/S

- Esse tipo de processamento usa pouco a CPU (aplicações comerciais)

Page 77: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Processos CPU-Bound e I/O Bound

Page 78: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Múltiplos Processos

Page 79: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Concorrência

São formas diferentes de implementar concorrência

Busca-se subdividir o código em partes que permitam o trabalho cooperativo entre estas partes

São elas:

• Processos Independentes• Subprocessos• Threads

Page 80: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Processos Independentes

O uso de processo independentes é a forma mais simples de implementar a concorrência em sistemas multiprogramáveis

Neste caso não existe vínculo do processo criado com o seu criador

A criação de um processo independente exige a alocação de um PCB.

A criação e eliminação de processos independentes e subprocessos demanda recursos do sistema (CPU, RAM,...).

Além disso, como cada processo tem seu espaço de endereçamento, a comunicação e sincronização entre processo é pouco eficiente

Page 81: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Subprocessos(Cooperativos)

São processos criados dentro de uma estrutura hierárquica

• Processo criador = processo pai• Novo processo = subprocesso ou processo filho

Um subprocesso pode criar outros subprocessos

Existe dependência entre o processo pai e filho

• Se o pai morre, o filho morre automaticamente

Também possuem seu próprio PCB

Subprocessos podem compartilhar quotas com seu pai Vantagens: Compartilha informações, aumenta a velocidade

computacional (speed-up), modularidade, conveniência.

Page 82: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Subprocessos

Page 83: 1 Processos Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Referências

Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008.

Modern Operating Systems 3 e. Prentice-Hall, 2008.