Programação de Sistemas
Distribuídos e
Concorrentes
1
Programação de Sistemas Distribuídos e Concorrentes
Sumario
Sistema Operacional
Monoprogramação
X Multiprogramação
Processo X Threads
Posix (Pthreads)
Pthreads
implementação
2
Programação de Sistemas Distribuídos e Concorrentes
Sistema Operacional
 É um programa responsável pelo gerenciamento de
hardware.
 Ele gerencia as aplicações, para que uma não interfira
no funcionamento da outra.
Monoprogramação
 Somente um programa de usuário é carregado em
memória por vez, e somente um programa concorre
pelo processamento.
Multiprogramação
 Vários programas são carregados em memoria, e
concorrem entre si pelo processamento.
3
Programação de Sistemas Distribuídos e Concorrentes
Processo
Processo é constituído por uma seqüência
de instrução, em execução. Processo pode
ser entendido como um programa em
execução.
Threads
Toda Threads pertence a um processo.
O termino de um processo, significa o
termino de todas as Threads pertencentes
á ele.
4
Programação de Sistemas Distribuídos e Concorrentes
Processo X Threads
Processo ocupa espaço de endereçamento,
e isto custa caro.
Thread são executadas no mesmo espaço
de endereçamento, isto é mais viável.
Se interromper um Processo, toda
aplicação é interrompida.
Uma Thread, pode ser interrompida, e o
processo criador continua sendo executado.
É mais rápido fazer chaveamento entre
Thread, do que entre Processos.
5
Programação de Sistemas Distribuídos e Concorrentes
Posix (Pthreads)
 POSIX Threads, ou Pthreads, é um padrão, criado
pelo IEEE que define uma API (application program
interface) para o desenvolvimento de aplicações
multi-threaded.
 A API é formada por aproximadamente 60 funções
que possibilitam a criação, suspensão e término de
threads, bem como a sincronização e o controle do
escalonamento destas threads. Atualmente ela pode
ser utilizada apenas com as linguagens C e C+.
6
Programação de Sistemas Distribuídos e Concorrentes
Pthreads
O programa inicia com uma única thread, principal
que (executa a função main do programa C). Após
outras threads são criadas pelo programador
através da função pthread_create, que tem como
parâmetro o nome de uma função para a thread
executar.
Um programa paralelo desenvolvido com Pthreads
consiste, em um conjunto de threads que
executam o código dentro de uma ou mais funções
definidas pelo usuário. Cada thread executa
independentemente das demais até o término da
função que lhe foi designada ou até a realização
de uma chamada à função pthread_exit, quando
então é destruída.
7
Programação de Sistemas Distribuídos e Concorrentes
Implementação
8
Programação de Sistemas Distribuídos e Concorrentes
 REFERÊNCIAS BIBLIOGRÁFICAS

Toscani-Simão Sirineo, Romulo Silva de Oliveira, Alexandre da Silva
Carissimi. Sistemas Operacionais e Programação Concorrente. Porto
Alegre RS. Sagra Luzzatto 2003
 Torelli-Programação Paralela em SMPs com OpenMP e POSIX
Threads. Acessado em 22/04/05 disponível em:
http://www.niee.ufrgs.br/cbcomp/cbcomp2004/html/pdf/Sistemas_Parale
los_Distribuidos/t170100281_3.pdf
9
Duvidas
Marcos Sfair
Jonats Santos
FIM.
10
Download

Problema da Parada