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

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

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Prof: Gustavo Wagner

Apresentações semelhantes


Apresentação em tema: "Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Prof: Gustavo Wagner"— Transcrição da apresentação:

1 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Prof: Gustavo Wagner gugawag@gmail.com

2 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2 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

3 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 3 Threads Como fazer um jogo de computador? Como fazer cada boneco andar independentemente; Como atualizar a interface gráfica? Como se comunicar com os outros jogadores em outras máquinas?

4 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 4 Threads Em SO tradicionais (leia-se antigos), o processo representa uma única thread (único fluxo de execução); Há casos que são necessários múltiplos fluxos de execução: jogo de computador;

5 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 5 Threads O processo é um agrupamento de recursos relacionados: –Memória, arquivos abertos, processos filhos, etc; Thread é o fluxo de execução do processo: –Tem PC, PSW, registradores, pilha;

6 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 6 Processos x Threads Processos servem para agrupar recursos; Threads servem para serem escalonadas na CPU; Múltiplas threads (pertencentes a um único processo) em execução é análogo a ter múltiplos processos em execução; Threads: compartilham mesmo espaço de endereçamento do processo, arquivos abertos, etc; Processos: compartilham memória, impressora, discos, etc;

7 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 7 Threads Threads são chamadas de processos leves, pois são mais “baratas” de serem criadas;

8 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8 Threads O Modelo de Thread (a)Três processos cada um com um thread (b) Um processo com três threads

9 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9 Multithread Dá a mesma ilusão de paralelismo pela troca constante na CPU; Não há a mesma independência entre threads como há entre processos; Uma thread, por exemplo, pode apagar completamente a pilha de outra thread;

10 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10 Proteção entre threads Não há, porque: –É impossível; –Não é necessário, pois o programador não será malicioso com ele mesmo;

11 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11 O Modelo de Thread Items compartilhados por todas as threads em um processo Itens privativos de cada thread Passam pelos mesmos estados que os processos;

12 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12 Início de um processo Há apenas uma única thread; Chamadas nas threads: –Thread_exit; –Thread_wait; –Thread_yield; Yield é necessário pois não há interrupção de relógio;

13 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 13 Benefícios de Threads Se uma thread bloquear, outras threads do processo podem continuar executando (só thread de núcleo); Compartilhamento de recursos: threads de um processo compartilham o mesmo espaço de endereçamento; Economia: mais fácil de serem criadas e destruídas (100x mais rápido);

14 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14 Benefícios de Threads Execução de várias atividades de uma aplicação ao mesmo tempo; Processos com threads I/O bound (orientadas a I/O) e CPU bound (orientadas a CPU) terminam mais rápido; Paralelismo real, em sistemas com múltiplas CPUs;

15 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 15 Threads em processadores de texto Uma thread para receber comandos do usuário; Uma thread para formatar o texto; Uma thread para salvar o arquivo em disco temporariamente;

16 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16 Processador de texto Um processador de texto com três threads

17 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17 Threads em servidores web Um servidor web com múltiplos threads

18 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 18 Código de threads em servidores web Código simplificado do slide anterior (a)Thread despachante (b)Thread operário

19 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 19 Threads de Usuário e Threads de Núcleo Threads são dividas em Threads de Usuário e de Núcleo; Thread de Usuário: o núcleo não sabe o que é thread. O Sistema Supervisor é quem escalona as threads, no nível do usuário; Thread de Núcleo: o núcleo reconhece threads e pode escaloná-las;

20 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 20 Implementação de Threads de Usuário Um pacote de threads de usuário

21 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 21 Threads de usuário Threads ficam no espaço de usuário; Núcleo apenas faz gerenciamento comum de processos monothreads; Vantagem óbvia: threads de usuário podem ser implementadas em um SO que não suporta threads; As threads executam no topo do Sistema Supervisor;

22 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 22 Sistema Supervisor Contém uma coleção de procedimentos: –Thread_create; –Thread_exit; –Thread_wait; –Thread_yield;

23 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 23 Sistema Supervisor Há uma tabela de threads por processo; Quando uma thread executa uma instrução que possa bloqueá-lo (read), ele chama um procedimento do sistema supervisor; Caso o procedimento perceba que a chamada da thread vai bloqueá-la, o sistema supervisor coloca uma nova thread para executar (se não, bloquearia todo o processo);

24 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 24 Vantagens de Threads de usuário Cada processo pode ter um algoritmo de escalonamento personalizado; Já que o espaço da tabela de threads não é colocado no núcleo, escala melhor. Seria um problema caso houvesse muitas threads;

25 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 25 Problemas Se uma thread bloquear, bloqueia todas as outras; –Possível solução: usar comando Select (verifica se uma chamada read vai bloquear a thread); A thread inicial precisa ceder a vez de execução para outras threads (thread_yield);

26 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 26 Implementação de Threads de Núcleo Um pacote de threads gerenciado pelo núcleo

27 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 27 Threads de Núcleo Não há necessidade de sistema supervisor, já que o escalonador do SO já faz esse papel; Há uma única tabela de threads; Criação ou destruição de threads: chama-se o núcleo;

28 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 28 Threads de Núcleo O núcleo toma a decisão de qual thread irá executar após o bloqueio de outra (escalonador); Núcleo faz reciclagem de threads, visto que é “caro” criar uma thread de núcleo em comparação com threads de usuário; Não há mais o problema de uma thread bloquear as outras;

29 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 29 Implementações Híbridas Multiplexação de threads de usuário sobre threads de núcleo

30 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 30 Threads Pop-Up Criação de um novo thread quando chega uma mensagem (a) antes da mensagem chegar (b) depois da mensagem chegar

31 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 31 Implementação de Threads Unix: –Thread de Usuário; Linux: –Thread de Núcleo. É possível usar apenas Thread de Usuário para manter compatibilidade com Unix; –Uso da chamada ao sistema Clone; Windows: –Thread de Núcleo;


Carregar ppt "Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Prof: Gustavo Wagner"

Apresentações semelhantes


Anúncios Google