Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1
Processos e ThreadsCapítulo 2
2.1 Processos2.2 Threads2.3 Comunicação interprocesso2.4 Problemas clássicos de IPC2.5 Escalonamento
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2
ProcessosO Modelo de Processo
• Multiprogramação de quatro programas• Modelo conceitual de 4 processos sequenciais, independentes• Somente um programa está ativo a cada momento
• O computador moderno permite, ao mesmo tempo, a execução de vários programas -> pseudoparalelismo
• Um processo é apenas um programa em execução acompanhado dos valores atuais do contador de programa, dos registradores e das variáveis
Multiprogramação
Contador de programa lógico
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 3
Criação de Processos
Eventos que levam à criação de processos:
1. Inicialização do sistema operacional2. Execução de chamadas ao sistema
para a criação de processos (por outros programas)
3. Solicitação do usuário para criar um novo processo (através de interface gráfica ou CLI)
4. etc
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 4
Término de Processos
Condições que levam ao término de processos1. Saída normal (voluntária) – processo finalizou o
trabalho. Comandos: exit, ExitProcess2. Saída por erro (voluntária) – quando o processo
descobre um erro fatal (executar um programa que não existe)
3. Erro fatal (involuntário) – execução de uma instrução ilegal, referência a memória inexistente ou divisão por zero
4. Cancelamento por um outro processo (involuntário). Comandos: kill, TerminateProcess
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 5
Hierarquias de Processos
• Processo pai cria um processo filho, processo filho pode criar outro processo filho, e assim por diante formando uma hierarquia de processos– UNIX chama isso de “grupo de processos”
• Windows não possui o conceito de hierarquia de processos– Todos os processos criados iguais
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 6
Estados de Processos
• Possíveis estados de processos– em execução (realmente usando a CPU naquele instante);– Bloqueado (incapaz de executar enquanto um evento
externo não ocorrer);– Pronto (executável; temporariamente parado para dar lugar
a outro processo).
• As transições entre os estados:
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 7
Escalonador de Processos
Camada mais inferior Acima daquela camada estão os processos sequenciaisde um SO estruturado por processos– trata interrupções, escalonamento
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8
Implementação de Processos (1)
Cada processo está atrelado a uma lista de parâmetros (descritores)
Campos de entrada de uma tabela de processos:
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9
Implementação de Processos (2)
Esqueleto do que o nível mais baixo do SO (kernel) faz quando ocorre uma interrupção
para a troca de execução de processo
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10
Threads (1)
Threads (linha ou fio, traduzindo pro português) traz a ideia de uma “linha de execução de um processo)
Um processo pode conter várias threads (multithread):– É como se fossem miniprocessos dentro de um
processo
Processos X Threads:P -> Entidades que agrupam os recursos do SOT -> Entidades escalonadas para a execução sobre a CPU
IMPORTANTE: todos as threads de um mesmo processo compartilham o mesmo espaço de endereçamento
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11
Threads (2)
Sobre o fluxo de controle de uma thread:
- Cada thread possui um contador de programa que mantêm o controle de qual instrução ele deve executar em seguida.
- Cada thread possui seu próprio conjunto de valores contidos
nos registradores da CPU, que por sua vez contêm suas variáveis atuais de trabalho.
- Cada thread apresenta uma pilha contendo o histórico de parâmetros referentes às execuções de chamadas de procedimentos, com uma estrutura para cada procedimento chamado mas ainda não retornado.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12
Threads (3)
(a) Três processos cada um com um thread(b) Um processo com três threads
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 13
Threads (4)
• Itens compartilhados por todos os threads em um processo (1)
• Itens privativos de cada thread (2)
(1) (2)
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14
Threads (5)
Cada thread tem sua própria pilha
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 15
Ex. de uso de Thread (1)
Processador de texto com três threads: (i) leitura do teclado, (ii) armazenamento e
resgate de disco, (iii) edição do texto
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16
Ex. de uso de Thread (2)
Um servidor web com múltiplas threads
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17
Ex. de uso de Thread (3)
• Código simplificado do slide anterior(a) Thread despachante(b) Thread operário
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 18
Implementação de Threads em Modo Usuário
Pacote de threads é gerenciado pela aplicação do usuário
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 19
Implementação de Threads em Modo Núcleo
Pacote de threads é gerenciado pelo núcleo do SO
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 20
Threads Modo Usuário x Modo Núcleo
• Threads em modo usuário conseguem também ser executadas sobre SO que não suporte threads
• Trocas de contexto entre threads modo usuário são mais rápidas
• Threads em modo núcleo não necessitam de um sistema para controle de tempo de execução em modo usuário
• Troca de contexto entre threads de modo núcleo é mais demorada
• Em modo núcleo, alternância do processador pode ocorrer entre threads de processos diferentes
• Em modo usuário, alternância se dá somente entre threads do mesmo processo, até que outro processo seja escalonado
• Em modo usuário, pode ocorrer monopolização da CPU se uma thread não ceder nunca a vez para as demais threads do processo
• Se uma thread modo usuário faz uma chamada com bloqueio, todas as demais threads do processo serão bloqueadas, o que não ocorre em threads em modo núcleo– embora haja soluções “deslegantes” para se
contornar isto em modo usuário
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 21
Implementações de Threads em Modo Híbrido
Multiplexação de threads de usuário sobre threads de núcleo
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 22
Thread Pop-Up
• Criação de uma nova thread quando chega uma mensagem – não por uma thread aguardando um evento ou coisa do tipo
Top Related