Threads e processos
Threads
É uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente. O suporte à thread é fornecido pelo próprio sistema operativo (SO), no caso da linha de execução ao nível do núcleo , ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT).
Os threads, conceitualmente, se assemelham a subprocessos, porém, diferentemente destes, não possuem identidade própria e, portanto, não são independentes. Cada thread possui seu próprio contador de programa, sua pilha e seus registradores, porém compartilham todo o mesmo espaço de endereçamento como se fossem uma única entidade .
Processos
Trata-se de uma estrutura mais complexa que contém, além do programa no seu formato executável, todas as informações necessárias à execução e ao controle da execução do mesmo, como por exemplo: o contador de programa, pilhas, registradores e área de dados.
Em quanto o programa é uma entidade passiva, que pode ser visto como o conteúdo de um arquivo em disco, o processo é uma entidade ativa, possuindo um contador de programa(PC), que especifica a próxima instrução a ser executada, e um conjunto de recursos a ele alocados.
Estado de execução de um processo
É quando um processo em execução solicita um recurso que não está disponível no momento cuja obtenção seja operacionalizada fora da UCP, ele automaticamente perde o controle da UCP e passa do estado de execução para o de espera. O processo estando no estado de espera passa para o estado de pronto para execução assim que tiver sua solicitação de recurso atendida pelo sistema. No estado de pronto ele está em condições de reiniciar sua execução e fica aguardando apenas chegar sua vez de retomar o controle da UCP. Definição de processo e threads
Um processo é constituído por:
Program Counter, Stack (Pilha), Conjunto de registradores, Registrador de “status”, Espaço próprio de