Buscar

Fundamentos de Sistemas Operacionais Threads

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Fundamentos de Sistemas Operacionais
Threads
Disciplina: ADS e GTI
Prof. Dr. Anderson Aparecido Alves da Silva
anderson@uol.com.br
2
Sistema Operacional Threads
• Introdução
• Já sabemos que:
– Processos podem ser escalonados e executados em revezamento por um SO
– Um núcleo de processador executa um único processo por vez
– Processos brigam entre si, pois querem ocupar recursos do SO
– Um único processo pode executar várias tarefas
• Será que...
– As tarefas de um mesmo processo podem ser divididas e executadas separadamente?
• Resposta: sim, podem
3
Sistema Operacional Threads
• Introdução
• Thread
– Divisão interna de um mesmo processo em várias tarefas que podem ser executadas
ao “mesmo tempo”
• Importante
– Não são vários processos executados ao mesmo tempo
– São várias tarefas de um processo que podem ser executadas ao mesmo tempo
4
Sistema Operacional Threads
• Mono/Multithread
5
Sistema Operacional Threads
• Mono/Multithread
• Monothread
– Sistemas que suportam uma única thread (em real execução)
• Multithread
– SO que suportam múltiplas threads são chamados de multithread
6
Sistema Operacional Threads
• Multithread
• Vantagens do multithread
• Um programa dividido em vários threads pode rodar mais rápido que um programa
monolítico, pois várias tarefas podem ser executadas simultaneamente.
• Os vários threads de um programa podem trocar dados entre si e compartilhar o mesmo
espaço de memória e os mesmos recursos do sistema
7
Sistema Operacional Threads
• Exemplo 1 - multithread
• Imagine um jogo que pode ser modelado com linhas de execução diferentes, sendo uma
para desenho de imagem e outra para áudio
• Neste caso, há um thread para tratar rotinas de desenho e outro thread para tratar áudio
• No ponto de vista do usuário, a imagem é desenhada ao mesmo tempo em que o áudio é
emitido pelos alto-falantes
• Porém, para sistemas com uma única CPU, cada linha de execução é processada por vez
8
Sistema Operacional Threads
• Exemplo 2 - multithread
• Imagine um programa que gera um relatório muito grande em PDF
• É um processo demorado e, para dar alguma satisfação para o usuário, queremos mostrar
uma barra de progresso
• Queremos então gerar o PDF e ao mesmo tempo atualizar a barrinha
• Duas threads são usadas no processo:
– Thread 1: controla a emissão do relatório
– Thread 2: controla a barrinha Ambas estão no mesmo processo!
9
Sistema Operacional Threads
• Threads: ULT X KLT
• Thread do nível de usuário (ULT)
– São suportadas pela aplicação, sem conhecimento do kernel
– Geralmente são implementadas por aplicativos
– Códigos para criar, terminar e armazenar contexto
• Thread do nível de kernel (KLT)
– Não é realizada através do código do próprio programa
– Todo o processo é subsidiado pelo SO
10
Sistema Operacional Threads
• Threads: ULT X KLT
Thread de nível de usuário (ULT) Thread de nível de kernel (KLT)
11
Sistema Operacional Threads
• Threads no Windows
• Funciona melhor em multithread
• O Windows têm mais facilidade para gerenciar programas com apenas um processo e
vários threads, do que com vários processos e poucos threads, pois no Windows o tempo
para criar um processo e alternar entre eles é muito grande
12
Sistema Operacional Threads
• Threads no Linux
• Funciona bem em multithreads e monothreads
• O Linux e outros sistemas baseados no Unix por sua vez são capazes de criar novos
processos muito rápido, o que explica o fato de alguns aplicativos, como por exemplo o
Apache, rodarem muito mais rápido no Linux do que no Windows
13
Sistema Operacional Threads
• Principais Características
• Cada thread tem a sua pilha própria, mas divide o espaço de endereçamento do processo em que foi criada
• Duas threads executam o mesmo procedimento: cada uma tem a sua própria cópia das variáveis locais
• As threads podem acessar todas os dados globais do programa e a memória alocada
14
Sistema Operacional Threads
• Modelos de Multithreads
• Muitos-Para-Um
– Mapeia muitos threads de nível de usuário para threads do kernel
• Modelo Um-Para-Um
– Mapeia cada thread de usuário para uma única thread de kernel
– Gera mais concorrência do que o modelo muitos-para-um
• Modelo Muitos-Para-Muitos
– Mapeia muitos threads de nível de usuário para um número menor ou igual de threads
de kernel
15
Sistema Operacional Threads
• Cancelamento de threads
• Corresponde à tarefa de terminar um thread antes que se complete
• Um thread que está para ser cancelado é frequentemente denominado thread-alvo.
• Exemplo 1
– Se múltiplos threads estão pesquisando concorrentemente em um banco de dados e
um thread retorna o resultado, os threads que ainda estão sendo executados podem
ser cancelados
16
Sistema Operacional Threads
• Cancelamento de threads
• Exemplo 2
– Quando um usuário pressiona um botão em um navegador
– Com frequência, uma página da web é carregada em um thread separada.
– Quando se pressiona STOP, o thread que estava carregando a página é cancelado
17
Sistema Operacional Referências
• Referências
• Sistemas operacionais –Conceitos e Aplicações. Silberschatz, Galvin& Gane. Editora Campus, 2001.
• UNIX Internals: The New Frontiers. UreshVahalia. Editora Prentice-Hall, 1995.
• AdvancedConceptsin OperatingSystems. Singhal, Shivaratri. Editora McGraw-Hill, 1994.
• AdvancedLinux Programming (PDF disponível online). Mitchell, Oldham, Samuel, Editora New Riders, 2001.
• Machado, Francis Berenger e Maia, Luiz Paulo. Arquitetura de Sistemas Operacionais - 5ª edição. LTC Editora. 2013.
• Tanenbaum, Andrew S. e Bos, Herbert. Sistemas Operacionais Modernos - 4ª edição. Pearson Education. 2016.
• Deitel, H.M.; Deitel, P.J. e Choffnes D.R. Sistemas Operacionais - 3ª edição. Pearson Education. 2005.
• Oliveira, Rômulo Silva de; Carissimi, Alexandre da Silva e Toscani, Simão Sirineo. Sistemas Operacionais - 3ª edição -
• Série Livros Didáticos do Instituto de Informática da UFRGS - Volume 11. Editora Bookman – 2008
• Notas de aulas dos professores:
• Jefferson Igor da Silva – UFRN
• Filippo Valiante Filho – SENAC
• Evandro Junior

Outros materiais