Resumos sistemas distribuidos
Concorrência de processos: o o Processos correm concorrentemente num sistema executando acções independentemente Com partilha de tempo, as acções são intercaladas de um modo imprevisível
Verificam-se duas necessidades
Comunicação
Passagem de informação entre processos; Um produz itens que vão ser usados pelo outro; Um processo servidor recebe pedidos de clientes e devolve resultados.
Sincronização
Processos podem ter que esperar antes de poder prosseguir; Esperar até item estar disponível para o consumir; Esperar até resposta ser devolvida => esperas activas indesejáveis.
Processos vs Threads Processos
Agrupamento de recursos necessários para a execução de um programa. Um processo é criado pelo sistema operativo e podem conter informações relacionadas com os recursos do programa e o estado de execução do mesmo. Possui o seu espaço de endereçamento privado. Inicia-se com uma thread de execução.
Threads
Sequência de instruções que vão ser executadas num programa. São entidades escalonadas para a execução sobre o CPU. Procedimento que é executado dentro de um processo de uma forma independente. Um processo pode ter várias threads. Threads dos vários processos podem correr concorrentemente. Threads criadas dentro do mesmo processo:
– – Partilham memória (variáveis globais e heap) e recursos do processo Mantêm o seu stack com variáveis locais privadas
Pode conter um controlo de fluxo independente e ser escalonável, porque mantém própria:
– – – Pilha Propriedades de escalonamento Dados específicos da thread
Partilham os recursos de um processo:
– É possível ler e escrever nas mesmas posições de memória, sendo por isso necessária uma sincronização explícita que tem de ser feita pelo programador.
Vantagens do uso de Threads: Criar e terminar uma thread é mais rápido do que um processo (menos sobrecarga para o sistema operativo); •