Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2...

22
on Sistemas Operacionais Moder 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento

Transcript of Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2...

Page 1: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 2: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 3: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 4: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 5: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 6: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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:

Page 7: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 8: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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:

Page 9: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 10: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 11: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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.

Page 12: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 13: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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)

Page 14: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14

Threads (5)

Cada thread tem sua própria pilha

Page 15: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 16: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16

Ex. de uso de Thread (2)

Um servidor web com múltiplas threads

Page 17: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 18: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 19: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 20: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 21: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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

Page 22: Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4.

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