Atps programa
Faculdade de Negócios e Tecnologias da Informação
Bacharel em Sistema de Informação - BSI
Professor: Wesley Walcacer Tschiedel
Programação Concorrente
Nome: Erly Andrade Azevedo Ra: 4252066515
Taguatinga-DF 07 Abril de 2015
Sumário
Relatório da Etapa 1 2
1. Exemplificando Threads 3
2. O problema produtor/consumidor 4
Código 5
Relatório da Etapa 2 12
3. Tratamento para a ocorrência de um Deadlock 13
Algoritmo do Avestruz (Ignorar a situação) 13
Detectar o deadlock e recuperar o sistema 13
Algoritmo do banqueiro 14
4. Passo 3 Implemente o problema 15
Referência 16
Relatório da Etapa 1
A criação e terminação de uma thread nova é em geral mais rápida do que a criação e terminação de um processo novo. A comutação de contexto entre duas threads é mais rápida do que entre dois processos. A comunicação entre threads é mais rápida do que a comunicação entre processos. Multiprogramação usando o modelo de threads é mais simples e mais portável do que multiprogramação usando múltiplos processos. As linguagens modernas como Java e C# possuem funcionalidades MULTITHREADING na própria estrutura da linguagem. C e C++ necessitam de biblioteca especifica para processamento MULTITHREADING. Uma thread é basicamente um outro programa rodando mas que tem os mesmos direitos de acesso à memória que o programa que carrega ela (que seria a thread principal). Esta não é a definição formal. É mais uma utilidade prática do negócio. Como ele tem os mesmos direitos de acesso à memória, compartilhar dados entre os dois programas é fácil. E cada um tem sua própria pilha, então nem precisa se preocupar com um eventual estouro dela (não abusem dessa frase, é possível estourar a pilha, apenas menos provável). C não possui nenhum suporte nativo à threads (isso é algo que depende muito do kernel do sistema operacional, pois é ele quem