Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. ·...

29
Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos

Transcript of Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. ·...

Page 1: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Fundamentos de Sistemas OperacionaisAula 2: Processos

Diego Passos

Page 2: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Última Aula

Page 3: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Multiprogramação

Vários processos em memória.Prontos para execução.Sistema pode alternar a execução entre eles.

Motivação:Melhorar desepenho do sistema.Vazão, tempo de resposta...

O próprio SO é um processo.Reside em memória.Executado de tempos em tempos.

Page 4: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Processos

Diferente de Programa:Um Programa é um código a ser executado.Um Processo é um programa em execução, uma instância.

Componentes de um Processo:Código (conjunto de instruções).Estado da execução.

Memória (variáveis).Registradores.

"Um processo é uma entidade dinâmica e efêmera".Muda a cada instante.Em geral, termina.

Page 5: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Processos (mais)

Um programa pode ter mais de uma instância em execução.

Mais de um processo.Mesmo código.Estados diferentes.

Há vários tipos de processos em um SO:Processos de aplicações do usuário.Processos de serviços do sistema (daemons).

Page 6: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Ciclo de Vida

Page 7: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Etapas de um Processo

Todo processo passa pelas seguintes etapas:Criação.Execução.Término.

Page 8: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Criação de um Processo

Um processo pode ser criado por:Um outro processo.

e.g., aplicação executada a partir de um menu.Diretamente pelo kernel.

e.g., o processo init no Linux.Um processo pode criar outros através de chamadas de sistema:

forkexecvspawn

Ao ser criado, processo recebe um PID:Process IdentifierIdentificador único do processo no sistema.

Page 9: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Criação de um Processo (mais)

Etapas de criação:SO recebe um nome de arquivo (o programa executável).SO verifica se arquivo existe.Verifica também se o formato está correto (elf, pe32...).SO aloca memória para o novo processo.

Cria uma "imagem" do processo em memória.

Page 10: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Execução de um Processo

Processos executam dois tipos de ação:Processamento.Entrada e saída (E/S).

Primeira ação executada é sempre do tipo processamento.Alternância entre processamento e E/S ocorre por:

Chamada de sistema (processamento -> E/S).Interrupção (E/S -> processamento).

Nem sempre!

Page 11: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Término de um Processo

Maioria dos processos termina.Servidores (web, e-mail, etc) são "permanentes".

Término pode ocorrer:Normalmente.Por erros.

Execução de instrução inválida.Erros em operações aritiméticas.Falhas de proteção.

Por intervenção de outros processos/usuários.Por falha de hardware.

Processos retornam código de encerramento.

Page 12: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Tipos de Processo

Page 13: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Processos CPU Bound

Processos intensivos em uso de CPU (processamento).Pouco uso de operações de E/S (proporcionalmente).Desempenho é determinado por:

Velocidade de acesso à memória principal."Velocidade" do processador.Quantidade de cache no sistema.

Exemplos de aplicações CPU Bound:Grandes cálculos numéricos.Visualização de estruturas tridimensionais.Algoritmos de roteamento.

Page 14: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Processos I/O Bound

Processos intensivos em operações de E/S:Acesso a Discos.Envio/recebimento de pacotes.

O desempenho é determinado pela velocidade de acesso do dispositivo de E/S:

Velocidade de acesso a disco.Banda disponível de rede.

Exemplos:Cópia de arquivos.Servidores FTP.

Page 15: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Relacionamentos entre Processos

Page 16: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Tipos de Relacionamento

Processos podem ser independentes.Nenhuma ligação entre eles.

Processos podem ser pais de outros processos.Um processo pai pede ao SO a criação de processos filhos.Definem hierarquias.

Processos podem compartilhar recursos.e.g., área comum de memória ou canal de comunicação.

Page 17: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Hierarquia de Processos

No Linux, todo processo é filho de algum outro processo.Exceto pelo init, que é o primeiro processo criado pelo SO.

Responsável por iniciar o sistema.Dispara aplicações básicas para o usuário.

Isso gera uma grande árvore de processos.

Page 18: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Hierarquia de Processos (mais)

Page 19: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Políticas de Manutenção de Hierarquia

O que ocorre quando um processo pai morre?Várias possibilidades:

Todos os descendentes morrem.Processo "avô" herda os filhos.Terminação efetiva do processo é postergada até que todos os filhos morram.Filhos ficam órfãos (estrutura em árvore é quebrada).

Page 20: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Estados de um Processo

Page 21: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Após a Criação

Em um SO com multiprogramação:

Há vários processos em memória.Poucos processadores.Concorrência.

Solução:Criação de uma fila de processos em espera.Chamada de Fila de Processos Aptos.

Page 22: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Após a Criação

Em um SO com multiprogramação:

Há vários processos em memória.Poucos processadores.Concorrência.

Solução:Criação de uma fila de processos em espera.Chamada de Fila de Processos Aptos.

Page 23: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Modelo de 2 Estados

Processo pode estar em dois estados:Apto.Executando.

Processo alterna o estado de acordo com o escalonador.

Page 24: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Modelo de 2 Estados: Limitações

Supõe que um processo sempre está apto a executar.O escalonador sempre pode colocar um processo em execução.

O que ocorre se um processo está aguardando uma operação de E/S?

Ele não pode utilizar o processador.Solução:

Criação do estado Bloqueado.

Page 25: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Modelo de 5 Estados

Um processo executando pode requisitar E/S e ser bloqueado.

Eventualmente, E/S é concluída e processo volta a ser apto.

Há estados separados também para criação e término.

Page 26: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Processo Suspenso

Um processo pode ser removido da memória principal.Colocado em memória secundária.

Swap.Libera memória principal para outros processos.

Processos precisam estar em memória principal para serem executados.

Ciclo de execução de uma instrução.Quando um processo não está em memória principal, diz-se que ele está suspenso.

Modelo de 5 estados não é suficiente.

Page 27: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Modelo de 7 Estados

Há 2 tipos de suspensão:Suspenso Apto.Suspenso Bloqueado.

Page 28: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Revisão

Page 29: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. · Fundamentos de Sistemas Operacionais Aula 2: Processos Diego Passos. Última Aula. Multiprogramação

Para Lembrar

Definição de processo.Hierarquia entre processos

Processo pai, processo filho.Processos I/O Bound vs. Processos CPU Bound.Estados de um processo.

Apto, bloqueado, suspenso apto, suspenso bloqueado.Razões para mudança de estado.