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

Post on 21-Sep-2020

0 views 0 download

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

Fundamentos de Sistemas OperacionaisAula 2: Processos

Diego Passos

Última Aula

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.

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.

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).

Ciclo de Vida

Etapas de um Processo

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

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.

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.

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!

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.

Tipos de Processo

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.

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.

Relacionamentos entre Processos

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.

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.

Hierarquia de Processos (mais)

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).

Estados de um Processo

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.

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.

Modelo de 2 Estados

Processo pode estar em dois estados:Apto.Executando.

Processo alterna o estado de acordo com o escalonador.

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.

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.

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.

Modelo de 7 Estados

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

Revisã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.