Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula... · 2011. 3. 31. ·...
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.