Sistemas operacionais online
Processos, Threads, Concorrência e Escalonamento
Tópicos
• • • • • Processos Threads Concorrência Comunicação interprocesso Escalonamento
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
Término de Processos
Condições que levam ao término de processos 1. Saída normal (voluntária) – programado 2. Saída por erro (voluntária) – programado 3. Erro fatal (involuntário) 4. Cancelamento por um outro processo (involuntário)
Estados de Processos
• Possíveis estados de processos
– em execução – bloqueado – pronto
Camadas de Processos
• Camada mais inferior de um SO estruturado por processos
– trata interrupções, escalonamento
• Acima daquela camada estão os processos sequenciais
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
Implementação de Processos (1)
Campos da entrada de uma tabela de processos
Múltiplos processos
Implementação de Processos (2)
Esqueleto do que o nível mais baixo do SO faz quando ocorre uma interrupção
Threads O Modelo de Thread (1)
(a) Três processos, cada um com um thread (b) Um processo com três threads
Threads: Motivação Concorrência
• Problemas:
– Programas que precisam de mais poder computacional – Dificuldade de implementação de CPUs mais rápidas
• Solução:
– Construção de computadores capazes de executar várias tarefas