28
Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional

Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

  • Upload
    leminh

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Sistemas Operacionais

Prof. Pedro Luís Antonelli Anhanguera Educacional

Page 2: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

ARQUITETURA E IMPLEMENTAÇÃO

• Pacote de Threads

– Conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.

– Threads em Modo Usuário

– Threads em Modo Kernel

– Threads em Modo Hibrido

Page 3: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Usuário

– Threads em modo usuário são implementas por chamadas a uma

biblioteca de rotinas que são linkadas e carregadas em tempo de execução (run-time) no mesmo espaço de endereçamento do processo e executadas em modo usuário.

– O sistema operacional não sabe da existência de múltiplos threads, sendo responsabilidade da biblioteca gerenciar e sincronizar os diversos threads existentes.

MACHADO, fig.6.8, pag 97 – Threads em modo usuário

Page 4: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Usuário

MACHADO, fig.6.8, pag 97 – Threads em modo usuário

Page 5: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Usuário

• A primeira vantagem deste modelo é a possibilidade de sistema operacional que não suporta threads, implementar aplicações multithreads.

• Utilizando a biblioteca, múltiplos threads poder ser utilizados, compartilhando o mesmo espaço de endereçamento do processo e outros recursos.

• Threads em modo usuário são rápidos e eficientes, por dispensar acesso ao kernel do sistema para a criação, eliminação, sincronização e troca de contexto das threads.

• A biblioteca oferece todo o suporte necessário em modo usuário, sem a necessidade de chamadas ao sistema (system calls).

Page 6: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Usuário

• O sistema operacional desconhece a existência dos threads, sendo

responsabilidade da biblioteca particionar o tempo de CPU do processo (time-slice) entre os diversos threads existentes.

• Como cada aplicação possui sua cópia da biblioteca, é possível implementar uma política de escalonamento diferente, em função da sua necessidade.

• Apesar das vantagens, threads em modo usuários são difíceis de implementar.

• Outro problema do pacote em modo usuário está no compartilhamento de variáveis da biblioteca multithread sem a devida sincronização.

Page 7: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Kernel

– Threads em modo kernel são implementadas diretamente pelo núcleo do

sistema, por chamadas ao sistema (system calls) que oferecem todas as funções de gerenciamento e sincronização .

– O sistema operacional (escalonador) sabe da existência de cada thread e pode escalona-los individualmente.

– No caso de múltiplos processadores, os threads de um mesmo processo podem ser executados simultaneamente.

– Problema é o baixo desempenho.

Page 8: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Kernel

MACHADO, fig.6.9, pag 98 – Threads em modo kernel

Page 9: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Kernel

• Os problemas apresentados para a implementação de pacotes em modo usuário não são encontrados neste modelo, como compartilhamento de variáveis, tratamento de sinais, chamadas síncronas, escalonamento em múltiplos processadores, etc.

• O grande problema para pacotes em modo kernel é o seu desempenho, sendo da ordem de dez vezes mais lento que o modo usuário.

• Enquanto que pacotes em modo usuário todo tratamento é feito sem a ajuda do sistema operacional, ou seja, sem a mudança do modo de acesso (usuário-kernel-usuário), pacotes em modo kernel utilizam chamadas ao sistema e conseqüente mudança de modo de acesso.

MACHADO, fig.6.9, pag 98 – Threads em modo kernel

Page 10: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Híbrido

– Nesta arquitetura existe a idéia de combinar as vantagens de threads implementados em modo usuário e modo kernel.

– Para facilitar a explicação deste modelo, chamaremos os threads em modo kernel de TMKs e os de modo usuário de TMUs.

– Um processo pode ter vários TMKs e, por sua vez, um TMK pode ter vários TMUs. O núcleo do sistema reconhece os TMKs e pode escaloná-los individualmente.

Page 11: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Híbrido

– Um TMU pode ser executado em um TMK, em um determinado momento, e no instante seguinte ser executado em outro.

– O programador desenvolve a aplicação em termos de TMUs e especifica quantos TMKs estão associados ao processo.

– Os TMU são mapeados em TMK enquanto o processo está sendo executado. O programador pode utilizar apenas TMKs, TMUs ou uma combinação de ambos.

Page 12: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Híbrido

MACHADO, figs..6.10 e 6.11, pag. 99 – Threads em modo hibrido

Page 13: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Threads em Modo Híbrido

– O pacote híbrido, apesar da maior flexibilidade, também apresenta problemas herdados de ambas as implementações.

– Por exemplo, quando um TMK realiza uma chamada bloqueante, todos os TMUs são colocados no estado de espera.

– TMUs que desejam utilizar vários processadores devem utilizar diferentes TMKs, o que influenciará no desempenho.

Page 14: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Scheduler Activations

– Os problemas apresentados no pacote de threads híbrido existem devido a falta de comunicação entre os threads em modo usuário e modo kernel.

– O modelo ideal deveria utilizar as facilidades do pacote em modo kernel com o desempenho e flexibilidade do modo usuário.

– Este pacote combina o melhor do dois mundos, mas ao contrário de multiplexar os threads em modo usuário entre os de modo kernel, o núcleo do sistema troca informações com a biblioteca de threads utilizando uma estrutura de dados chamada scheduler activation.

Page 15: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Scheduler Activations

MACHADO, figs..6.10 e 6.11, pag. 99 –Scheduler activations (abaixo)

Page 16: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Scheduler Activations

– A maneira de alcançar um melhor desempenho é evitar a mudanças de acessos (usuário-kernel-usuário) desnecessárias.

– Caso um thread utilize uma chamada ao sistema que o coloque no estado de espera, não é necessário que o kernel seja ativado. Basta que a própria biblioteca em modo usuário possa escalonar outro thread.

– Isto é possível porque a biblioteca em modo usuário e o kernel se comunicam e trabalham de forma cooperativa. Cada camada implementa seu escalonamento de forma independente, porém trocando informações quando necessário.

Page 17: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Pthreads

– Uma das grandes dificuldades da utilização de threads em aplicações em geral foi a ausência de um padrão.

– Em 1995, o padrão POSIX (Portable Operating System Interface) P1003.1c foi aprovado.

– Com este padrão, também conhecido como Pthreads, aplicações comerciais multithread tornaram-se mais comuns.

– O padrão Pthreads é largamente encontrado em ambientes Unix, geralmente implementado em aplicações escritas em Linguagem C.

Page 18: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

APIs definidas pelo padrão POSIX

Page 19: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Pthreads

- O POSIX pode ser implementado modo usuário, modo kernel ou uma combinação de ambos (híbrido).

- O padrão utiliza a abordagem de orientação a objetos para representar suas propriedades, como tamanho de pilha, política de escalonamento e prioridades para os threads.

- No padrão POSIX threads são criados e eliminados dinamicamente, conforme a necessidade. Além disto, o padrão oferece mecanismos de sincronização, como semáforos e variáveis condicionais.

Page 20: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Pthreads

- O tratamento de sinais é muito dependente da implementação do pacote em um determinado sistema operacional.

- O POSIX threads exige que todas as bibliotecas e chamadas ao sistema sejam thread-safe, ou seja, se um fabricante deseja oferecer o pacote, deverá reescrever grande parte do sistema para torná-lo compatível

Page 21: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Considerações sobre Threads

• Multithreading é a capacidade que o sistema operacional possui de executar várias threads simultaneamente sem que uma interfira na outra. Estas threads compartilham os recursos do processo, mas são capazes de ser executadas de forma independente.

• Para possuir processamento multithread “real”, os processadores precisam ser capazes de atender duas ou mais threads ao mesmo tempo e não simular este efeito, atendendo-as uma por vez em um curto período de tempo.

Page 22: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Considerações sobre Threads

• A maior vantagem trazida com a execução multithread é permitir que os computadores com múltiplos núcleos de processamento possam aproveitar todo o seu potencial e operar de forma mais rápida.

• Apenas para ilustrar, nos computadores sem este tipo de suporte, quando o processo principal toma muito tempo, a aplicação inteira parece travar.

Page 23: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

SuperThreading

• Esta tecnologia foi desenvolvida a partir da observação de que algumas vezes o processador era deixado ocioso enquanto executava as instruções de uma thread (nem todo processo requisita toda a capacidade do processador).

• O objetivo principal era aproveitar este período de ociosidade para a execução de instruções de outra thread.

• Na execução SuperThreading o processador pode executar instruções de threads diferentes para cada ciclo de processamento.

• Entretanto, quando um destes ciclos não está mais sendo utilizado por determinada thread, é aproveitado para executar outra que esteja pronta.

Page 24: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Hyper-threading

• Hyper-threading ou Simultaneous multithreading (SMT), basicamente, seria uma espécie de evolução da tecnologia SuperThreading, porém sem a limitação de que todas as instruções executadas em um mesmo ciclo de processamento sejam da mesma thread.

• A tencologia de Hyper-thread permite que as threads sejam executadas em paralelo (paralelismo) dentro de cada núcleo de processador existente no computador.

• Este tipo de processamento aproveita de forma mais eficiente o uso dos recursos dos processadores e melhora ainda mais a performance multithread dos programas.

Page 25: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Hyper-threading

• Na imagem abaixo você pode conferir a presença da tecnologia Hyper-threading (HT) nos processadores Pentium 4.

Page 26: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Hyper-threading

• Para deixar um pouco mais claro, pode-se dizer que um único processador com tecnologia hyper-threading habilitada é tratado pelo sistema operacional como dois processadores ao invés de apenas um.

• Assim sendo, um único processador físico poderia ser tratado pelo Sistema Operacional como dois processadores virtuais dividindo tarefas entre eles.

Page 27: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

Momento Atual

Fonte : http://ark.intel.com/pt-br/products/63696/Intel-Core-i7-3960X-Processor-Extreme-Edition- acesso em 28/03/2012

Page 28: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula08-Processos-e... · Anhanguera Educacional . ARQUITETURA E IMPLEMENTAÇÃO •Pacote

BIBLIOGRAFIA

• MACHADO, F. B. & MAIA, L. P., Arquitetura de Sistemas Operacionais, 4 Edição, São Paulo, LTC, 2007.

• TANENBAUM, A. S. Sistemas Operacionais Modernos: 2ª edição, São Paulo, editora Prentice Hall, 2003.

• SILBERSCHATZ, A. Sistemas Operacionais – Conceitos: São Paulo, editora LTC, 2004.