Threads - fabianosabha.com.br

Download Report

Transcript Threads - fabianosabha.com.br

Sistemas
Operacionais
Prof. Fabiano Sabha
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
PLANEJAMENTO
1- Conceitos Básicos: Visão geral de um S.O.
Funções Básicas
Máquina de Camadas
Tipos de Sistemas Operacionais
2- Conceitos Básicos: Hardware e Software
Hardware
Processador
Memórias
Dispositivos de I/O
Barramento
Pipelining
Arquiteturas RISC e CISC
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
PLANEJAMENTO
2- Conceitos Básicos: Hardware e Software (continuação)
Software
Tradutor
Interpretador
Linker
Loader
Depurador
3- Conceitos Básicos: Concorrência
Sistemas Monoprogramáveis x Multiprogramáveis
Interrupções e Exceções
Operações de I/O
Buffering
Spooling
Reentrância
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
PLANEJAMENTO
4- Conceitos Básicos: Estrutura do S.O.
Funções do Núcleo
Modo de Acesso
Rotinas do S.O. e system Calls
Chamada de rotinas do S.O
Linguagem de Comandos
Ativação / desativação do Sistema
Arquiteturas do Núcleo
5- Processos
Estrutura do Processo
Estados do Processo
Mudança de Estados
Criação e Eliminação de Processos
Formas de Criação de Processos
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
PLANEJAMENTO
6- Thread
Ambiente Monothread
Ambiente Multithread
7- Sincronização e Comunicação entre Processos
Aplicações Concorrentes
Especificação de Concorrência em Programas
Problemas de Compartilhamento de Recursos
Atividades de Revisão
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
Sistemas
Operacionais
thReads
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
ESTRUTURA DO PROCESSO
Contexto de Software:
Especificados
os
Contexto
de
Espaço
de
Endereçamento:
É
a
área
de
Hardware
Contexto
de Hardware:dos
Armazena
oque
limites
e
características
recursos
Contexto de
memória
que pertencegerais
ao processo.
conteúdo
dos
registradores
da UCP,
Software
podem
ser alocados pelo processo.
Cada
processo
possui
seu
próprio
espaço
de
além dos registradores
Programade uso específicos.
endereçamento
do acesso
Ex.:
Número
máx.protegido
de
arquivos
abertos,
Quando
o processo
é interrompido,
o dos
demais
processos.
prioridade
tamanho
de buffer.
sistema
salvadeasexecução,
informações
no contexto
de
hardware
dodeprocesso.
Espaço
Três grupos
informação:
Instruções
e Endereçamento
dadosdesão
armazenados para
Identificação /execução
Quotas / Privilégios
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
• THREAD – O que é? (Linha de execução)
– É a forma de um processo se dividir em duas ou mais tarefas
que podem ser executados simultaneamente.
– O suporte é fornecido pelo Sistema Operacional.
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
THREAD – ESTRUTURA
– É implementado em dois modos:
– Modo usuário
– Modo Kernel
– É classificado em:
– Monothread
Suportam apenas uma linha de execução
– Multithread
Suportam múltiplas linhas de execução
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
EXEMPLO
Um jogo onde temos diferentes linhas de execução,
uma para o áudio e outra para vídeo.
O jogador percebe que som e imagem são processados
simultaneamente.
Em sistemas com 01 CPU : Paralelismo
Em sistemas com 02+ CPU: Simultâneo
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
AMBIENTE MONOTHREAD
• Um processo suporta apenas um programa no seu espaço
de endereçamento
• Aplicações concorrentes são implementadas com o uso de
vários processos independentes ou subprocessos.
•A utilização de processos independentes ou subprocessos,
permiti dividir uma aplicação em partes que podem traalhar
de forma concorrente:
Ex. Gerenciador de e-mail.
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
AMBIENTE MONOTHREAD
• Esse tipo de implementação, demanda maior consumo de
recursos do sistema.
• Novo processo = nova reserva de recursos
• Novo processo = novo espaço de endereçamento, o que
dificulta a comunicação entre processos.
• Cada processo tem seu próprio contexto.
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
AMBIENTE MULTITHREAD
• NÃO existe programas associados a processos e sim a
THREADS.
• O processo tem ao menos um thread de execução, assim
compartilha seu espaço de endereçamento.
•Definição:
•Uma sub-rotina de um programa que pode ser executada
concorrentemente ao programa chamador.
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
MODOS DE THREADS
MODO USUÁRIO (TMU): São implementados pelas aplicações
e não pelo sistema operacional.
Deve existir uma biblioteca de rotinas, que possibilite a
realização de tarefas como criar/eliminar threads, troca de
mensagens entre threads.
É possível implementar aplicações THREADS em sistemas
operacionais que não suportam THREADS.
São Rápidos e dispensam acessos ao kernel.
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
MODOS DE THREADS
MODO KERNEL (TMK): São implementados diretamente pelo
sistema operacional.
O SO, sabe da existência de cada thread e pode escaloná-los
individualmente.
No caso de multiplos processadores podem ser executados
simultaneamente.
Possuem baixo desempenho, devido a mudança no modo de
acesso.
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
MODOS DE THREADS
MODO HÍBRIDO: Essa arquitetura combina as vantagens e
desvantagens dos modos TMU e TMK.
Consegue trabalhar com THREADS diretamente no kernel ou
gerenciados por aplicações desenvolvidas pelo programador.
www.fabianosabha.com.br
FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais
ATIVIDADES DE FIXAÇÃO
Exercícios:
Questionário da Página 100
www.fabianosabha.com.br