Textos
SISTEMAS OPERACIONAIS - THREAD -
CSTADS
____________________________________________ PROF: Flavio Alexandre dos Reis www.reisfa.eti.br reis.falexandre@gmail.com
AGENDA
2/47
• • • • • • • • • •
INTRODUÇÃO AMBIENTE MONOTHREAD AMBIENTE MULTITHEEAD ARQUITETURA E IMPLEMENTAÇÃO THREAD EM MONOUSUÁRIO THREAD EM MICROKERNEL THREAD EM MODO HÍBRIDO SCHECULER ACTIVATION MODELO DE PROGRAMAÇÃO EXERCICIOS
CSTADS – 3O Período CSTADS – 3O Período
SISTEMAS OPERACIONAIS – FLAVIO REIS SISTEMAS OPERACIONAIS – FLAVIO REIS
INTRODUÇÃO
3/47
• Até o final da década de 1970, sistemas operacionais suportavam apenas processos com um único thread, ou seja, um processo com apenas um único programa fazendo parte do seu contexto. • Em 1979, durante o desenvolvimento do Sistema Operacional Toth, foi introduzido o conceito de processos lightweight (peso leve), onde o espaço de endereçamento de um processo era compartilhado por vários programas. • Apesar do conceito revolucionário, a idéia não foi utilizada comercialmente, e somente em meados de 1980, com o desenvolvimento do Sistema Operacional Mach na Universidade de Carnegie Mellon, ficou clara a separação entre o conceito de processo e thread. • A partir do conceito de múltipla threads é possível projetar e implementar aplicações concorrentes de forma eficiente, pois um processo pode ter partes diferentes do seu código sendo executadas em paralelo, com um menor overhead do que utilizando múltiplos processos.
CSTADS – 3O Período CSTADS – 3O Período SISTEMAS OPERACIONAIS – FLAVIO REIS SISTEMAS OPERACIONAIS – FLAVIO REIS
INTRODUÇÃO
4/47
• Como a threads de um mesmo processo compartilham o mesmo espaço de endereçamento, a comunicação entre threads não envolve mecanismos lentos de intercomunicação entre processos, aumentando o desempenho da aplicação. • O desenvolvimento de programas que exploram benefícios da programação multithread não é simples. • A presença do paralelismo introduz um novo conjunto