Arquitetura de Computadores Moderna Slide Arquitetura de Computadores Moderna Parte II - Sistemas Operacionais Processos - Motivação Slide Arquitetura de Computadores Moderna ! Necessidade de gerenciamento dos programas instanciados para execução ! Multiprogramação • Pseudo-paralelismo Cap. 2 - Processos (1) ! Multiprocessamento ! Modelo de processo • Processos sequenciais Prof. Marcelo Moreno • Programa em execução acompanhado de seus valores [email protected] para contador de programa, registradores e variáveis • CPU troca de um processo para outro Dep. Ciência da Computação Dep. Ciência da Computação Multiprogramação Slide Arquitetura de Computadores Moderna Processos Slide Arquitetura de Computadores Moderna ! Alternância de processos • Comandada pelo escalonador de processos do sistema operacional • Não somente processos de usuário desejam utilizar CPU • Eventos assíncronos do sistema necessitam tratamento de processamento ! Relação Programa x Processo • Receita de bolo x Fazer o bolo • Multiprogramação? Dep. Ciência da Computação Dep. Ciência da Computação Criação de processos Slide Arquitetura de Computadores Moderna ! Principais eventos que levam à criação de processos Término de Processos Slide Arquitetura de Computadores Moderna ! Condições que levam ao término de processos • Início do sistema • Saída normal (voluntária) • Execução de chamada ao sistema de criação de processos • Saída por erro (voluntária) • Solicitação do usuário para criar um novo processo • Erro fatal (involuntário) • Início de um job em lote • Cancelamento por um outro processo (involuntário) ! Independente do caso, chamada de sistema para criação do processo • fork(), CreateProcess() • Espaços de endereçamento distintos Dep. Ciência da Computação Dep. Ciência da Computação Hierarquia de Processos Slide Arquitetura de Computadores Moderna Estados de Processos Slide ! Pai cria um processo filho, processo filho pode criar outros processos ! Alguns sistemas formam uma hierarquia cat chapter1 chapter2 chapter3 | grep tree • UNIX chama isso de “grupo de processos” • Windows não possui o conceito de hierarquia de processos – Todos os processos são criados em mesmo nível Dep. Ciência da Computação Arquitetura de Computadores Moderna Dep. Ciência da Computação Estados de Processos Slide Arquitetura de Computadores Moderna Implementação de Processos Slide Arquitetura de Computadores Moderna ! Tabela de processos ! Estrutura processo Dep. Ciência da Computação Dep. Ciência da Computação Implementação de Processos Slide ! Vetor de Interrupções Arquitetura de Computadores Moderna Threads Slide Arquitetura de Computadores Moderna ! Processo agrupa recursos para uma linha de execução (thread) • Uma thread possui um contador de programa • É possível termos várias threads compartilhando recursos de um mesmo processo? ! Programação multithread ! Modelo de Threads • Compartilham o mesmo espaço de endereçamento • Lightweight Processes - processos leves Dep. Ciência da Computação Dep. Ciência da Computação Processos x Threads Slide Arquitetura de Computadores Moderna Dep. Ciência da Computação Processos x Threads Slide Dep. Ciência da Computação Modelo de Thread Slide Dep. Ciência da Computação Arquitetura de Computadores Moderna Arquitetura de Computadores Moderna Uso de Threads Slide Dep. Ciência da Computação Arquitetura de Computadores Moderna Uso de Threads Slide Arquitetura de Computadores Moderna Dep. Ciência da Computação Uso de Threads Slide Dep. Ciência da Computação Uso de Threads Slide Dep. Ciência da Computação Arquitetura de Computadores Moderna Arquitetura de Computadores Moderna Implementação - Threads de Usuário Slide Dep. Ciência da Computação Arquitetura de Computadores Moderna ! Vantagens • Trocas de contexto no espaço do usuário • Escalonamento é procedimento local • Escalonador personalizado • Escalabilidade ! Desvantagens • Chamadas ao sistema com bloqueio • Thread deve liberar CPU explicitamente • Threads são úteis para aplicações com bloqueio (I/O bound) • Pouco desempenho para aplicações CPU bound Implementação - Threads de Núcleo Slide Arquitetura de Computadores Moderna Implementação - Threads híbridas Slide ! Vantagens • Não é necessário um supervisor • Tabela de processos estendida • Escalonamento de threads • Chamadas ao sistema com bloqueio ! Desvantagens • Velocidade para criar/destruir uma thread • Trocas de contexto • Escalabilidade Dep. Ciência da Computação Dep. Ciência da Computação Arquitetura de Computadores Moderna