Threads
Click here to load reader
-
Upload
nayron-fernandes -
Category
Documents
-
view
118 -
download
3
Transcript of Threads
23/10/2013
1
Depende!
Agilidade
◦ Se o objetivo é agilidade, deve-seimplementá-los no espaço do usuário.
Espaço do usuário:
◦ Refere-se ao conjunto de programas querodam com o processador em modo usuário.Existem certas instruções que não podem sercolocadas à disposição das aplicações, pois asua utilização indevida ocasiona sériosproblemas à integridade do sistema.
O controle de processos
◦ Nesse caso o controle do processo é feitodiretamente pelo sistema operacional,mas os threads são controlados porprocedimentos em tempo de execuçãoque serve como interface entre a máquinavirtual (processos) onde rodam os threads.
23/10/2013
2
Neste caso, o S.O. não “enxerga” os threads,pois eles são implementados no espaço dousuário, sendo submissos ao processo que oscriou.
Os threads não podem usufruir do sistema deinterrupções do sistema operacionais eportanto são não-preemptíveis.
Vantagens
◦ Agilidade
◦ O gerenciamento é menos complicado
Desvantagens
◦ Não preempção
◦ Impedidos de utilizar interrupções do sistema operacional
23/10/2013
3
Eficiência
◦ Se o objetivo é eficiência, então os threadspodem ser implementados no núcleo dosistema operacional, podendo serem vistospelo SO e usufruindo de seu sistema deinterrupções.
◦ Portanto passam a serem preemptíveis.
Nesse sentido os threads passam a sertratados como processos, possibilitando obloqueio de outros threads e tambémeficiência no escalonamento.
Agora não há necessidade de interromper oprocesso que o gerou (processo pai), uma vezque o thread “é um processo”.
23/10/2013
4
Com isso o Sistema Operacional podeinterromper um thread sem interromper oprocesso pai, e também outras ramificaçõesem execução.
O thread também irá competir igualmentecom os processos os ciclos do processador.
Vantagens de implementação no núcleo
◦ Maior autonomia dos threads
Desvantagens
◦ Sistema perde em portabilidade, asmudanças de contexto dos threads temagora a mesma complexidade dosprocessos.
23/10/2013
5
Quando terminam sua execução;
Quando o tempo alocado a seu processo pai foi esgotado
Ou se solicitou algum recurso do sistema.
23/10/2013
6
Programas multithread são programas quecontém várias threads, executando tarefasdistintas, simultaneamente. O browserHotJava, implementado em Java, é umexemplo.
O browser poderá fazer um scroll em umapágina enquanto carrega uma imagem ouexecuta vários aplicações ao mesmo tempo.
Exemplos:
Programação Reativa: aplicação responde a eventos de entrada.
Exemplo: interfaces com o usuário, onde cada evento corresponde a uma ação
Paralelismo físico/ distribuição: para tirar vantagem de múltiplas CPUs centralizadas ou distribuídas.
23/10/2013
7
Implementação de processos servidores queprestam serviços a processos clientes.
O emprego de ramificações na estrutura decontrole do servidor, permite oagrupamento dos threads num mesmoespaço de endereçamento, admitindoacesso concorrente de vários clientes a umúnico servidor.
Há dois tipos de ramificações:
Ramificações Estáticas:
Criadas em tempo de compilação
Exemplo: Servidores de terminais◦ Servidor cria ramificações
◦ Essas ramificações são locais ao servidor
◦ Ramificações atendem usuários enquantoestiverem conectados
23/10/2013
8
Como a ramificação fica no sistema enquantoo usuário estiver conectado, ela ocupa oespaço de memória mesmo que o cliente nãorequisite nenhuma operação do servidor.
Ramificações Dinâmicas:
Criadas e destruídas de acordo com as necessidades.
Exemplo: Servidores de arquivos◦ Cada vez que um cliente solicita uma operação, o
servidor cria uma ramificação que ficaráresponsável por determinada tarefa (leitura/escrita)e terminado sua execução o controle voltanovamente ao processo que a criou.
23/10/2013
9
◦ Ex: se forem feitas várias operações de leitura,serão geradas várias ramificações do processoresponsável pela operação de leitura.
É importante ressaltar novamente que essasramificações (threads) serão executadas“independentes” uma das outras, e serãoextintas assim que o serviço para qual foramcriadas, também termine.
Conclusão
A utilização do mecanismos de ramificaçõespermite que a memória seja otimizada etambém reaproveitada assim que essasterminem sua execução, levando a umaredução considerável no custo do sistema.