A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads

Apresentações semelhantes


Apresentação em tema: "Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads"— Transcrição da apresentação:

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

2 Contador de programa lógico
Processos O Modelo de Processo 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 Multiprogramação de quatro programas Modelo conceitual de 4 processos sequenciais, independentes Somente um programa está ativo a cada momento 2

3 Criação de Processos Eventos que levam à criação de processos:
Inicialização do sistema operacional Execução de chamadas ao sistema para a criação de processos (por outros programas) Solicitação do usuário para criar um novo processo (através de interface gráfica ou CLI) etc 3

4 Término de Processos Condições que levam ao término de processos
Saída normal (voluntária) – processo finalizou o trabalho. Comandos: exit, ExitProcess Saída por erro (voluntária) – quando o processo descobre um erro fatal (executar um programa que não existe) Erro fatal (involuntário) – execução de uma instrução ilegal, referência a memória inexistente ou divisão por zero Cancelamento por um outro processo (involuntário). Comandos: kill, TerminateProcess 4

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 5

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: 6

7 Escalonador de Processos
Camada mais inferior Acima daquela camada estão os processos sequenciaisde um SO estruturado por processos trata interrupções, escalonamento 7

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: 8

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 9

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 SO T -> 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 10

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. 11

12 Threads (3) Três processos cada um com um thread
(b) Um processo com três threads 12

13 Threads (4) Itens compartilhados por todos os threads em um processo (1) Itens privativos de cada thread (2) (1) (2) 13

14 Cada thread tem sua própria pilha
Threads (5) Cada thread tem sua própria pilha 14

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 15

16 Um servidor web com múltiplas threads
Ex. de uso de Thread (2) Um servidor web com múltiplas threads 16

17 Ex. de uso de Thread (3) Código simplificado do slide anterior
Thread despachante Thread operário 17

18 Implementação de Threads em Modo Usuário
Pacote de threads é gerenciado pela aplicação do usuário 18

19 Implementação de Threads em Modo Núcleo
Pacote de threads é gerenciado pelo núcleo do SO 19

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 20

21 Implementações de Threads em Modo Híbrido
Multiplexação de threads de usuário sobre threads de núcleo 21

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 22


Carregar ppt "Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads"

Apresentações semelhantes


Anúncios Google