b) Thread

A estrutura de processos é bastante robusta, e esta realidade tem por objetivo garantir que problemas na execução de em um determinado processo não interfira no funcionamento de outros processos que estão também em execução. Entretanto, no caso de ambientes multiprogramáveis, a constante mudança de contexto entre processos pode gerar um custo de processamento que normalmente influencia negativamente na performance do computador.

Com o objetivo de reduzir esta quantidade de mudanças de contexto e, por conseguinte, economizar os recursos do sistema, surgiu o conceito de thread. O principal fundamento para o desenvolvimento deste conceito foi o de permitir que diversas threads fossem executadas no âmbito de um mesmo processo, compartilhando os recursos já alocados, o espaço de endereçamento e evitando o custo oriundo das mudanças de contexto.

O grande desafio dos sistemas “multithread” é justamente o de gerenciar os recursos compartilhados entre as diferentes threads, de forma a impedir que duas threads disputassem o mesmo recurso, o que é conhecido como condição de corrida.

Condição de Corrida

Uma condição de corrida é uma situação onde dois ou mais processos ou threads estão acessando dados compartilhados e o resultado final do processamento é dependente da ordem de execução dos eventos, ou seja, da ordem em que os processos ou threads acessaram a área compartilhada.

X
Copyright © 2014 AIEC.